@loaders.gl/schema 3.1.0-alpha.3 → 4.0.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.
- package/dist/category/mesh/convert-mesh.js +1 -1
- package/dist/category/mesh/convert-mesh.js.map +1 -1
- package/dist/category/mesh/mesh-to-arrow-table.js +1 -1
- package/dist/category/mesh/mesh-to-arrow-table.js.map +1 -1
- package/dist/lib/arrow/arrow-type-utils.js +1 -1
- package/dist/lib/arrow/arrow-type-utils.js.map +1 -1
- package/dist/lib/batches/table-batch-builder.js.map +1 -1
- package/dist/lib/schema/impl/field.js +1 -1
- package/dist/lib/schema/impl/field.js.map +1 -1
- package/dist/lib/schema/impl/schema.js.map +1 -1
- package/dist/lib/schema/impl/type.js +8 -8
- package/dist/lib/schema/impl/type.js.map +1 -1
- package/dist/lib/schema-utils/deduce-column-type.js.map +1 -1
- package/dist/lib/utils/async-queue.js.map +1 -1
- package/package.json +4 -5
- package/src/category/mesh/mesh-to-arrow-table.ts +1 -1
- package/src/category/table/table-types.ts +1 -1
- package/src/lib/arrow/arrow-type-utils.ts +1 -1
- package/src/lib/batches/table-batch-builder.ts +1 -1
- package/src/lib/schema/impl/schema.ts +2 -2
- package/src/lib/schema/impl/type.ts +2 -2
- package/src/lib/schema-utils/deduce-column-type.ts +6 -2
- package/src/lib/utils/async-queue.ts +7 -4
- package/dist/dist.min.js +0 -2
- package/dist/dist.min.js.map +0 -1
package/dist/dist.min.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/type.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/enum.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/base.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/buffer.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/schema.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/Arrow.dom.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/compat.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/data.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/Arrow.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/bit.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/index.js","webpack:////home/user/apps/loaders.gl/node_modules/flatbuffers/js/flatbuffers.mjs","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/recordbatch.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/fb/Schema.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/buffer.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/io/stream.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/chunked.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/utf8.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/ipc/metadata/message.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/io/interfaces.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/column.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/args.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/io/adapters.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/math.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/bn.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/ipc/reader.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/table.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/vector.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/row.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/index.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/fb/Message.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/utf8.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/binary.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/ipc/writer.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/ipc/message.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/dictionary.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/int.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/pretty.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/bool.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/null.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/date.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/decimal.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/dictionary.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/fixedsizebinary.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/float.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/int.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/time.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/timestamp.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/interval.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/list.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/run.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/fixedsizelist.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/map.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/struct.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/union.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/set.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/ipc/metadata/file.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/io/file.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/int.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/typecomparator.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/recordbatch.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/binary.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/bool.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/date.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/decimal.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/fixedsizebinary.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/fixedsizelist.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/float.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/interval.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/list.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/map.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/null.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/struct.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/timestamp.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/time.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/union.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/vector/utf8.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/get.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/iterator.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/compute/predicate.js","webpack:///./src/bundle.ts","webpack:////home/user/apps/loaders.gl/node_modules/text-encoding-utf-8/lib/encoding.lib.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/builder/valid.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/builderctor.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/fb/File.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/vectorloader.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/typeassembler.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/ipc/metadata/json.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/vectorassembler.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/jsontypeassembler.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/jsonvectorassembler.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/util/fn.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/indexof.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/toarray.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/bytewidth.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/visitor/vectorctor.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/io/whatwg/iterable.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/io/whatwg/builder.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/io/whatwg/reader.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/io/whatwg/writer.js","webpack:////home/user/apps/loaders.gl/node_modules/apache-arrow/compute/dataframe.js","webpack:///./src/lib/batches/base-table-batch-aggregator.ts","webpack:///./src/lib/utils/row-utils.ts","webpack:///./src/lib/batches/row-table-batch-aggregator.ts","webpack:///./src/lib/batches/columnar-table-batch-aggregator.ts","webpack:///./src/lib/batches/table-batch-builder.ts","webpack:///./src/category/mesh/mesh-utils.ts","webpack:///./src/lib/arrow/arrow-type-utils.ts","webpack:///./src/lib/schema/impl/schema.ts","webpack:///./src/lib/utils/assert.ts","webpack:///./src/lib/schema/impl/field.ts","webpack:///./src/lib/schema/impl/enum.ts","webpack:///./src/lib/schema/impl/type.ts","webpack:///./src/lib/arrow/arrow-like-type-utils.ts","webpack:///./src/category/mesh/deduce-mesh-schema.ts","webpack:///./src/category/mesh/mesh-to-arrow-table.ts","webpack:///./src/category/mesh/convert-mesh.ts","webpack:///./src/lib/schema-utils/deduce-column-type.ts","webpack:///./src/lib/arrow/get-type-info.ts","webpack:///./src/lib/utils/async-queue.ts"],"names":["root","factory","exports","module","define","amd","a","i","window","installedModules","__webpack_require__","moduleId","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","strideForType","Dictionary","Map_","FixedSizeList","FixedSizeBinary","SparseUnion","DenseUnion","Union","Struct","List","IntervalYearMonth","IntervalDayTime","Interval","TimestampNanosecond","TimestampMicrosecond","TimestampMillisecond","TimestampSecond","Timestamp","TimeNanosecond","TimeMicrosecond","TimeMillisecond","TimeSecond","Time","DateMillisecond","DateDay","Date_","Decimal","Bool","Utf8","Binary","Float64","Float32","Float16","Float","Uint64","Uint32","Uint16","Uint8","Int64","Int32","Int16","Int8","Int","Null","DataType","enum_1","x","typeId","Type","Date","Map","NONE","proto","children","ArrayType","Array","Int_","isSigned","bitWidth","super","this","Int8Array","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Error","precision","Precision","HALF","SINGLE","Float32Array","DOUBLE","Float64Array","scale","unit","DateUnit","DAY","MILLISECOND","Time_","TimeUnit","SECOND","MICROSECOND","NANOSECOND","Timestamp_","timezone","Interval_","IntervalUnit","DAY_TIME","YEAR_MONTH","child","valueType","type","map","f","join","Union_","typeIds","from","typeIdToChildIndex","reduce","idx","UnionMode","Dense","Sparse","byteWidth","listSize","keysSorted","getId","atomicDictionaryId","dictionary","indices","id","isOrdered","low","BufferType","MessageHeader","MetadataVersion","Schema_1","Message_1","VariableWidthBuilder","FixedWidthBuilder","Builder","vector_1","data_1","valid_1","buffer_1","type_1","nulls","length","finished","nullValues","stride","_nulls","BitmapBufferBuilder","_isValid","createIsValidFunction","options","queueingStrategy","highWaterMark","sizeProperty","source","numChunks","builder","new","append","toVector","finish","throughIterable","async","throughAsyncIterable","Vector","flush","numInvalid","size","_offsets","byteLength","_values","_typeIds","reservedLength","reservedByteLength","buffer","set","index","setValid","isValid","setValue","_setValue","valid","numChildren","buffers","values","offsets","nullCount","TYPE","OFFSET","DATA","last","VALIDITY","data","Data","clear","forEach","opts","DataBufferBuilder","reserve","_pendingLength","OffsetsBufferBuilder","pending","_pending","current","undefined","_flush","pendingLength","_flushPending","AbstractVector","BaseVector","chunked_1","vector_2","_children","childData","_bindDataAccessors","offset","nullBitmap","valueOffsets","VectorName","others","Chunked","concat","begin","end","clampRange","_sliceInternal","self","clone","slice","isConcatSpreadable","compareArrayLike","rebaseValueOffsets","toUint8ClampedArrayAsyncIterator","toFloat64ArrayAsyncIterator","toFloat32ArrayAsyncIterator","toUint32ArrayAsyncIterator","toUint16ArrayAsyncIterator","toUint8ArrayAsyncIterator","toInt32ArrayAsyncIterator","toInt16ArrayAsyncIterator","toInt8ArrayAsyncIterator","toArrayBufferViewAsyncIterator","toUint8ClampedArrayIterator","toFloat64ArrayIterator","toFloat32ArrayIterator","toUint32ArrayIterator","toUint16ArrayIterator","toUint8ArrayIterator","toInt32ArrayIterator","toInt16ArrayIterator","toInt8ArrayIterator","toArrayBufferViewIterator","toUint8ClampedArray","toFloat64Array","toFloat32Array","toBigUint64Array","toUint32Array","toUint16Array","toUint8Array","toBigInt64Array","toInt32Array","toInt16Array","toInt8Array","toArrayBufferView","joinUint8Arrays","memcpy","flatbuffers_1","utf8_1","ByteBuffer","flatbuffers","compat_1","SharedArrayBuf","SharedArrayBuffer","ArrayBuffer","target","targetByteOffset","sourceByteLength","targetByteLength","dst","byteOffset","src","Math","min","ArrayBufferViewCtor","input","isIteratorResult","encodeUtf8","bytes","isView","BYTES_PER_ELEMENT","chunks","result","xOffset","yOffset","xLen","yLen","y","j","collapseContiguousByteRanges","b","sliced","Infinity","subarray","BigInt64Array","BigUint64Array","Uint8ClampedArray","pump","iterator","next","ArrayCtor","wrap","isIterable","it","done","isPromise","emit","isAsyncIterable","asyncIterator","Field","Schema","fields","metadata","dictionaries","generateDictionaryMap","columnNames","names","xs","filter","columnIndices","Boolean","args","other","isArray","curFields","mergeMaps","newFields","f2","findIndex","newDictionaries","nullable","m1","m2","isDictionary","has","Utf8Builder","SparseUnionBuilder","DenseUnionBuilder","UnionBuilder","TimeNanosecondBuilder","TimeMicrosecondBuilder","TimeMillisecondBuilder","TimeSecondBuilder","TimeBuilder","TimestampNanosecondBuilder","TimestampMicrosecondBuilder","TimestampMillisecondBuilder","TimestampSecondBuilder","TimestampBuilder","StructBuilder","NullBuilder","MapBuilder","ListBuilder","Uint64Builder","Uint32Builder","Uint16Builder","Uint8Builder","Int64Builder","Int32Builder","Int16Builder","Int8Builder","IntBuilder","IntervalYearMonthBuilder","IntervalDayTimeBuilder","IntervalBuilder","Float64Builder","Float32Builder","Float16Builder","FloatBuilder","FixedSizeListBuilder","FixedSizeBinaryBuilder","DictionaryBuilder","DecimalBuilder","DateMillisecondBuilder","DateDayBuilder","DateBuilder","BoolBuilder","BinaryBuilder","util","predicate","CountByResult","FilteredDataFrame","DataFrame","RecordBatch","Message","JSONMessageReader","AsyncMessageReader","MessageReader","RecordBatchJSONWriter","RecordBatchStreamWriter","RecordBatchFileWriter","RecordBatchWriter","AsyncRecordBatchStreamReader","AsyncRecordBatchFileReader","RecordBatchStreamReader","RecordBatchFileReader","RecordBatchReader","AsyncByteQueue","AsyncByteStream","ByteStream","Utf8Vector","SparseUnionVector","DenseUnionVector","UnionVector","TimeNanosecondVector","TimeMicrosecondVector","TimeMillisecondVector","TimeSecondVector","TimeVector","TimestampNanosecondVector","TimestampMicrosecondVector","TimestampMillisecondVector","TimestampSecondVector","TimestampVector","StructVector","NullVector","MapVector","ListVector","Uint64Vector","Uint32Vector","Uint16Vector","Uint8Vector","Int64Vector","Int32Vector","Int16Vector","Int8Vector","IntVector","IntervalYearMonthVector","IntervalDayTimeVector","IntervalVector","Float64Vector","Float32Vector","Float16Vector","FloatVector","FixedSizeListVector","FixedSizeBinaryVector","DictionaryVector","DecimalVector","DateMillisecondVector","DateDayVector","DateVector","BoolVector","BinaryVector","Visitor","Column","Table","adapters_1","index_1","reader_1","writer_1","iterable_1","builder_1","reader_2","writer_2","default","toDOMStream","builderThroughDOMStream","recordBatchReaderThroughDOMStream","recordBatchWriterThroughDOMStream","Arrow_1","nodes","node","visit","getVisitFn","apply","throwIfNotFound","visitor","fn","dtype","inferDType","visitNull","visitBool","visitInt","visitInt8","visitInt16","visitInt32","visitInt64","visitUint8","visitUint16","visitUint32","visitUint64","visitFloat","visitFloat16","visitFloat32","visitFloat64","visitUtf8","visitBinary","visitFixedSizeBinary","visitDate","visitDateDay","visitDateMillisecond","visitTimestamp","visitTimestampSecond","visitTimestampMillisecond","visitTimestampMicrosecond","visitTimestampNanosecond","visitTime","visitTimeSecond","visitTimeMillisecond","visitTimeMicrosecond","visitTimeNanosecond","visitDecimal","visitList","visitStruct","visitUnion","visitDenseUnion","visitSparseUnion","visitDictionary","visitInterval","visitIntervalDayTime","visitIntervalYearMonth","visitFixedSizeList","visitMap","_node","_args","isReadableNodeStream","isWritableNodeStream","isReadableDOMStream","isWritableDOMStream","isFetchResponse","isFSReadStream","isFileHandle","isUnderlyingSink","isArrayLike","isArrowJSON","isObservable","isObject","BigUint64ArrayAvailable","BigInt64ArrayAvailable","BigIntAvailable","BigInt","interfaces_1","BigIntCtor","BigIntUnavailableError","BigIntUnavailable","asIntN","asUintN","BigInt64ArrayCtor","BigInt64ArrayUnavailableError","BigUint64ArrayCtor","BigUint64ArrayUnavailableError","isNumber","isBoolean","isFunction","then","subscribe","ReadableInterop","kUnknownNullCount","bit_1","bit_2","floor","max","_nullCount","popcnt_bit_range","childStride","_sliceBuffers","_sliceChildren","newLength","bitmap","fill","truncateBitmap","arr","valueOffsetsOrChildren","freeze","table_1","column_1","visitor_1","schema_1","index_2","stream_1","message_1","message_2","recordbatch_1","dataframe_1","util_bn_","util_int_","util_bit_","util_math_","util_buffer_","util_vector_","typecomparator_1","compareSchemas","compareFields","compareTypes","getBool","_data","_index","byte","bit","getBit","packBools","popcnt_uint32","popcnt_array","BitIterator","setBool","alignedSize","context","byteIndex","cnt","pos","view","DataView","len","getUint32","getUint16","getUint8","uint32","lhs","rhs","sum","rhsInside","lhsInside","vectorFromValuesWithType","StructRow","MapRow","base_1","binary_1","bool_1","date_1","decimal_1","dictionary_1","fixedsizebinary_1","fixedsizelist_1","float_1","interval_1","int_1","list_1","map_1","null_1","struct_1","timestamp_1","time_1","union_1","row_1","chunked_2","base_2","get_1","set_1","indexof_1","toarray_1","iterator_1","bytewidth_1","vectorctor_1","instance","transform","chunk","push","newDataType","indexOf","fromIndex","toArray","getByteWidth","wrapNullableGet","wrapNullableSet","keys","T","VectorCtor","partial1","partial2","partial0","Offset","SIZEOF_SHORT","SIZEOF_INT","FILE_IDENTIFIER_LENGTH","SIZE_PREFIX_LENGTH","Encoding","UTF8_BYTES","UTF16_STRING","int32","float32","float64","isLittleEndian","Long","high","ZERO","toFloat64","equals","opt_initial_size","initial_size","bb","allocate","space","minalign","vtable","vtable_in_use","isNested","object_start","vtables","vector_num_elems","force_defaults","capacity","forceDefaults","dataBuffer","asUint8Array","position","prep","additional_bytes","align_size","old_buf_size","growByteBuffer","pad","byte_size","writeInt8","writeInt16","writeInt32","writeInt64","writeFloat32","writeFloat64","addInt8","addInt16","addInt32","addInt64","addFloat32","addFloat64","addFieldInt8","voffset","defaultValue","slot","addFieldInt16","addFieldInt32","addFieldInt64","addFieldFloat32","addFieldFloat64","addFieldOffset","addOffset","addFieldStruct","nested","obj","notNested","new_buf_size","nbb","setPosition","startObject","numfields","endObject","vtableloc","trimmed_size","existing_vtable","vt1","outer_loop","vt2","readInt16","root_table","opt_file_identifier","opt_size_prefix","size_prefix","file_identifier","charCodeAt","finishSizePrefixed","requiredField","table","field","table_start","vtable_start","readInt32","startVector","elem_size","num_elems","alignment","endVector","createString","utf8","codePoint","createLong","bytes_","position_","readInt8","readUint8","readUint16","readUint32","readInt64","readUint64","readFloat32","readFloat64","writeUint8","writeUint16","writeUint32","writeUint64","getBufferIdentifier","String","fromCharCode","__offset","bb_pos","vtable_offset","__union","__string","opt_encoding","__indirect","__vector","__vector_len","__has_identifier","ident","_InternalEmptyPlaceholderRecordBatch","args_1","schema","_schema","fs","selectFieldArgs","vs","ensureSameLengthData","flatten","_dictionaries","DictionaryCollector","collect","nameToIndex","selectAt","columnName","arguments","batch","Buffer","DictionaryEncoding","KeyValue","Duration","LargeBinary","LargeUtf8","FloatingPoint","LargeList","Struct_","Endianness","DictionaryKind","Feature","__init","startNull","endNull","startStruct_","endStruct_","startList","endList","startLargeList","endLargeList","startFixedSizeList","addListSize","endFixedSizeList","startMap","addKeysSorted","endMap","typeIdsOffset","numElems","startUnion","addMode","addTypeIds","endUnion","startInt","addBitWidth","addIsSigned","endInt","startFloatingPoint","addPrecision","endFloatingPoint","startUtf8","endUtf8","startBinary","endBinary","startLargeUtf8","endLargeUtf8","startLargeBinary","endLargeBinary","startFixedSizeBinary","addByteWidth","endFixedSizeBinary","startBool","endBool","startDecimal","addScale","endDecimal","startDate","addUnit","endDate","startTime","endTime","optionalEncoding","timezoneOffset","startTimestamp","addTimezone","endTimestamp","startInterval","endInterval","startDuration","endDuration","keyOffset","valueOffset","startKeyValue","addKey","addValue","endKeyValue","DenseArray","indexTypeOffset","dictionaryKind","startDictionaryEncoding","addId","addIndexType","addIsOrdered","addDictionaryKind","endDictionaryEncoding","nameOffset","typeType","typeOffset","dictionaryOffset","childrenOffset","customMetadataOffset","startField","addName","addNullable","addTypeType","addType","addDictionary","addChildren","addCustomMetadata","endField","Little","endianness","fieldsOffset","featuresOffset","startSchema","addEndianness","addFields","addFeatures","endSchema","WideBufferBuilder","BufferBuilder","roundLengthUpToNearest64Bytes","BPE","constructor","_resize","extra","reserved","array","sliceOrExtendArray","numValid","val","cur","_ArrayType64","buffer64","ArrayType64","AsyncQueue","write","sync","decodeUtf8","ByteStreamSource","fromIterable","throw","return","peek","read","AsyncByteStreamSource","fromAsyncIterable","fromNodeStream","fromDOMStream","body","closed","reason","cancel","cmd","ITERATOR_DONE","_closedPromise","Promise","_closedPromiseResolve","ChunkedIterator","chunkIndex","chunkIterator","getChunkIterator","vectors","calculateOffsets","_type","_chunks","_chunkOffsets","_length","_numChildren","selectChunkArgs","_indices","columns","vector","getChildAt","vec","mid","search","isValidInternal","getInternal","element","indexOfInternal","arraySet","typedSet","start","found","slices","chunkOffsets","chunkLength","chunkOffset","to","text_encoding_utf_8_1","_Buffer","eval","useNativeEncoders","TextDecoder","TextEncoder","decoder","decode","toString","encoder","encode","FieldNode","BufferRegion","DictionaryBatch","typeassembler_1","json_1","bodyLength","version","headerType","header","_version","_headerType","_createHeader","_bodyLength","msg","message","V4","fromJSON","messageHeaderFromJSON","buf","_message","getRootAsMessage","decodeMessageHeader","headerOffset","isSchema","isRecordBatch","isDictionaryBatch","startMessage","addVersion","addHeader","addHeaderType","addBodyLength","finishMessageBuffer","endMessage","_nodes","_buffers","isDelta","_isDelta","_id","decodeFieldChildren","childrenLength","decodeCustomMetadata","parent","entry","customMetadataLength","customMetadata","decodeIndexType","decodeFieldType","typeIdsArray","childOffsets","childrenVectorOffset","createChildrenVector","metadataOffset","createCustomMetadataVector","k","v","dictType","dictMeta","indexType","fieldFromJSON","fieldOffsets","startFieldsVector","fieldsVectorOffset","createFieldsVector","platformIsLittleEndian","Big","fieldsLength","decodeSchemaFields","schemaFromJSON","recordBatch","startNodesVector","reverse","nodesVectorOffset","startBuffersVector","b_","buffersVectorOffset","startRecordBatch","addLength","addNodes","addBuffers","endRecordBatch","nodesLength","decodeFieldNodes","bufferRegions","buffersLength","decodeBuffers","recordBatchFromJSON","dictionaryBatch","dataOffset","startDictionaryBatch","addIsDelta","addData","endDictionaryBatch","dictionaryBatchFromJSON","createFieldNode","createBuffer","setInt16","ArrowJSON","_json","_getDOMStream","tee","writable","_getNodeStream","pipe","pipeTo","duplex","pipeThrough","_DOMStream","_nodeStream","toNodeStream","resolvers","_ensureOpen","shift","resolve","_error","error","reject","_","abort","close","_field","SingleChunkColumn","rest","some","column","_chunk","selectColumnChildrenArgs","selectVectorChildrenArgs","selectColumnArgs","selectArgs","_selectArgs","Ctor","vals","res","_selectFieldArgs","_selectChunkArgs","_selectVectorChildrenArgs","_selectColumnChildrenArgs","toKeysAndValues","ret","entries","fieldIndex","valueIndex","threw","bufferLength","isNaN","e","AdaptiveByteReader","releaseLock","stream","events","event","err","onEvent","race","isFinite","evt","destroy","cleanup","byobReader","defaultReader","supportsBYOB","reader","getBYOBReader","getDefaultReader","catch","readFromBYOBReader","readInto","handler","float64ToUint16","uint16ToFloat64","f64","u32","h","expo","sigf","sign","NaN","BN","bignumToBigInt","bignumToString","isArrowBigNumSymbol","BigNum","setPrototypeOf","SignedBigNum","UnsignedBigNum","DecimalBigNum","bignumToNumber","bn","signed","words","number","hi","lo","decimalToString","digits","base64","base32","checks","for","toJSON","valueOf","toPrimitive","hint","assign","num","file_1","file_2","vectorloader_1","impl","_impl","autoDestroy","numDictionaries","numRecordBatches","isFile","footer","isSync","isAsync","isStream","reset","opening","open","readRecordBatch","objectMode","writableStrategy","readableStrategy","RecordBatchJSONReaderImpl","fromArrowJSON","stat","file","AsyncRandomAccessFile","magicX2AndPadding","checkForMagicArrowString","readAt","magicLength","AsyncRecordBatchFileReaderImpl","AsyncRecordBatchStreamReaderImpl","fromFileHandle","RecordBatchFileReaderImpl","fromAsyncByteStream","RecordBatchStreamReaderImpl","fromByteStream","readAllSync","readAllAsync","RecordBatchReaderImpl","_dictionaryIndex","_recordBatchIndex","_loadVectors","types","VectorLoader","visitMany","_reader","_handle","shouldAutoDestroy","readSchema","_readNextMessageAndValidate","readMessageBody","_loadRecordBatch","_loadDictionaryBatch","readMessage","RandomAccessFile","_footer","_readFooter","block","dictionaryBatches","_readDictionaryBatch","getRecordBatch","seek","getDictionaryBatch","magicAndPadding","Footer","JSONVectorLoader","recordbatch_2","TypeError","empty","fromStruct","tableFromIterable","tableFromAsyncIterable","batches","cols","distributeColumnsIntoRecordBatches","getColumnAt","getColumnIndex","encoding","writeAll","oldToNew","memo","newIdx","_f","_fs","distributeVectorsIntoRecordBatches","createElementComparator","clampIndex","tmp","adjust","big0","isNaNFast","typeofSearch","valueOfSearch","comparators","createSubElementsComparator","creatMapComparator","createArrayLikeComparator","createVectorComparator","createObjectComparator","compareArray","compareObject","compareVector","lKeyItr","rKeyItr","rValItr","rVal","lKey","rKey","pretty_1","kParent","kRowIndex","kKeyToIdx","kIdxToVal","kCustomInspect","Row","numKeys","ktoi","itov","getValue","getIndex","ki","vi","kr","vr","callbackfn","thisArg","callback","str","valueToString","defineProperties","configurable","createRowProxy","defineRowProxyProperties","desc","row","setter","Proxy","getKey","RowProxyHandler","isExtensible","deleteProperty","preventExtensions","ownKeys","receiver","Reflect","utf8_2","builder_2","builderctor_1","newBuilder","defaultOptions","getChildOptions","BodyCompression","BodyCompressionMethod","CompressionType","NS13596923344997147894","null_count","LZ4_FRAME","BUFFER","codec","method","startBodyCompression","addCodec","addMethod","endBodyCompression","nodesOffset","buffersOffset","compressionOffset","addCompression","V1","buffer_2","vectorassembler_1","jsontypeassembler_1","jsonvectorassembler_1","_position","_started","_sink","_dictionaryBlocks","_recordBatchBlocks","_dictionaryDeltaOffsets","writeLegacyIpcFormat","_autoDestroy","_writeLegacyIpcFormat","writeAllAsync","sink","_writeFooter","_writeSchema","payload","_writeRecordBatch","flatbufferSize","prefixSize","nPaddingBytes","FileBlock","_write","of","_writePadding","_writeMessage","MAGIC","nBytes","VectorAssembler","assemble","_writeDictionaries","_writeBodyBuffers","padding","_writeDictionaryBatch","writer","_writeMagic","_recordBatches","JSON","stringify","fieldToJSON","JSONVectorAssembler","dictionaryBatchToJSON","records","assembler","JSONTypeAssembler","MAGIC_STR","PADDING","invalidMessageType","nullMessage","invalidMessageMetadata","expected","actual","invalidMessageBodyLength","readMetadataLength","readMetadata","throwIfNull","metadataLength","_body","_batchIndex","flattenDataSources","is64bit","ArrowType","vectorTypeToDataType","InputType","arrayTypeToDataType","convert32To64Bit","_values64","typeCtor","dataCtor","ctor","hashFn","_dictionaryOffset","_keysToIndices","valueToKey","keysToIndices","prev","_dictionary","curr","math_1","bn_1","toBigInt","run_1","_run","Run","run","childIndex","_valueToChildTypeId","childTypeId","SetVisitor","setEpochMsToMillisecondsLong","epochMs","setVariableWidthBytes","setDateDay","setEpochMsToDays","setDateMillisecond","setNumeric","setFloat16","setNumericX2","values64","long","setTimestampSecond","setTimestampMillisecond","setTimestampMicrosecond","setEpochMsToMicrosecondsLong","setTimestampNanosecond","setEpochMsToNanosecondsLong","setTimeSecond","setTimeMillisecond","setTimeMicrosecond","setTimeNanosecond","setDenseUnion","setSparseUnion","setIntervalDayTime","setIntervalYearMonth","itr","_setStructVectorValue","_setStructArrayValue","_setStructObjectValue","File_1","Footer_","recordBatches","_dictionaryBatches","getRootAsFooter","OffHeapFooter","schemaOffset","startRecordBatchesVector","rb","recordBatchesOffset","startDictionariesVector","db","dictionaryBatchesOffset","startFooter","addSchema","addRecordBatches","addDictionaries","finishFooterBuffer","endFooter","recordBatchesLength","dictionariesLength","fileBlock","metaDataLength","Block","createBlock","getInt32","bytesRead","Int128","BaseInt64","intAsHex","kPowersOfTen","L","R","product","lessThan","_times","_plus","out_buffer","fromString","out","posn","group","parseInt","substr","multiple","times","plus","left","right","this_high","other_high","negate","startsWith","L0","L1","L2","L3","R0","R1","R2","R3","multiply","sums","TypeComparator","compareManyFields","every","compareConstructor","compareAny","compareInt","compareFloat","compareDate","compareTimestamp","compareTime","compareUnion","compareInterval","noopBuf","nullBufs","bitmapLength","vecs","batchArgs","numBatches","batchLength","numColumns","Number","POSITIVE_INFINITY","distributeChildData","uniformlyDistributeChunksAcrossRecordBatches","unshift","_changeLengthAndBackfillNullBitmap","batchData","convertTo16Bit","_row","bound","GetVisitor","epochMillisecondsLongToMs","epochMillisecondsToDate","getVariableWidthBytes","getDateDay","epochDaysToMs","epochDaysToDate","getDateMillisecond","epochMillisecondsLongToDate","getNumeric","getFloat16","getBigInts","getTimestampSecond","getTimestampMillisecond","getTimestampMicrosecond","epochMicrosecondsLongToMs","getTimestampNanosecond","epochNanosecondsLongToMs","getTimeSecond","getTimeMillisecond","getTimeMicrosecond","getTimeNanosecond","getDenseUnion","getSparseUnion","getIntervalDayTime","getIntervalYearMonth","interval","int32s","_vector","decimal","IteratorVisitor","VectorIterator","getFn","vectorIterator","nullByte","nullBit","nullableIterator","custom","or","and","col","lit","CustomPredicate","Not","GTeq","LTeq","Equals","Or","And","CombinationPredicate","ComparisonPredicate","Predicate","Col","Literal","Value","ge","le","eq","colidx","expr","_bindLitLit","_bindLitCol","_bindColLit","_bindColCol","accum","_batch","rtrn","left_func","right_func","col_func","lastDictionary","reverseLookup","lastKey","func","bind_","moduleExports","require","globalThis","loaders","inRange","ToDictionary","Stream","tokens","endOfStream","prepend","token","pop","decoderError","fatal","opt_code_point","toLowerCase","_streaming","_BOMseen","_decoder","_fatal","_ignoreBOM","_encoder","_options","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","bite","code_point","UTF8Encoder","count","temp","input_stream","code_points","cp","codePointsToString","opt_string","string","u","stringToCodePoints","fnBody","noNaNs","valueToCase","Function","GetBuilderCtor","dictionariesOffset","nodesIndex","buffersIndex","nextFieldNode","readNullBitmap","readData","readOffsets","readTypeIds","readDictionary","nextBufferRange","sources","isTimestamp","isInt","isTime","isDate","convertArray","isDecimal","isBinary","isFixedSizeBinary","joined","binaryDataFromJSON","isBool","isUtf8","TypeAssembler","startTypeIdsVector","createTypeIdsVector","fieldNodesFromJSON","fieldNodes","validity","buffersFromJSON","fieldChildrenFromJSON","customMetadataFromJSON","_metadata","indexTypeFromJSON","typeFromJSON","schemaFieldsFromJSON","_byteLength","_bufferRegions","vectorChildren","assembleResult","RangeError","isNull","addBuffer","_nullV","assembleFlatVector","assembleFlatListVector","firstOffset","lastOffset","assembleListVector","assembleNestedVector","maxChildTypeId","childLengths","shiftedOffsets","unshiftedOffsets","childLength","enum_2","bigNumsToStrings","binaryToString","octets","toUpperCase","IndexOfVisitor","indexOfValue","searchElement","indexOfNull","compare","indexOfUnion","ToArrayVisitor","arrayOfVector","ByteWidthVisitor","variableWidthColumnErrorMessage","____","visitFields","GetVectorConstructor","bm","hwm","ReadableStream","controller","desiredSize","enqueue","asyncIterableAsReadableDOMStream","iterableAsReadableDOMStream","BuilderTransform","_numChunks","_finished","_bufferedSize","builderOptions","_controller","_builder","_getSize","chunkByteLength","readableHighWaterMark","writableHighWaterMark","_maybeFlush","WritableStream","_writeValueAndReturnChunkSize","bufferedSize","_enqueue","queue","readable","predicate_1","countBy","scan","scanReverse","batchIndex","numRows","count_by","countByteLength","ceil","log","counts","FilteredBatchIterator","predicateFunc","_predicate","isBound","RowTableBatchAggregator","_headers","rowCount","addArrayRow","cursor","rows","addObjectRow","getBatch","shape","batchType","convertToObjectRow","arrayRow","headers","objectRow","convertToArrayRow","rowObject","arrayRows","rowArray","objectRows","ColumnarTableBatchAggregator","_reallocateColumns","fieldName","_pruneColumns","allocated","oldColumn","typedArray","DEFAULT_OPTIONS","batchSize","batchDebounceMs","limit","_limitMB","TableBatchBuilder","now","limitReached","totalLength","totalBytes","addRow","rowBytes","_estimateRowMB","aggregator","TableBatchType","_getTableBatchType","chunkComplete","bytesUsed","isChunkComplete","getFullBatch","_isFull","_getBatch","getFinalBatch","lastBatchEmittedMs","normalizedBatch","batchCount","BaseTableBatchAggregator","ArrowBatch","getMeshSize","attributes","attributeName","attribute","getMeshBoundingBox","minX","minY","minZ","maxX","maxY","maxZ","positions","POSITION","z","getArrowType","getArrowVector","condition","assert","usedNames","console","warn","checkNames","compareTo","select","nameMap","selectedFields","schemaOrFields","otherSchema","fieldMap","mergedFields","getArrowTypeFromTypedArray","deduceMeshSchema","deduceMeshField","deduceMeshFields","optionalMetadata","makeMeshAttributeMetadata","byteStride","normalized","convertMeshToArrowTable","mesh","attributeKey","listType","listVector","convertMesh","convertMeshToColumnarTable","deduceTypeFromColumn","deduceTypeFromValue","getTypeInfo","arrowTypeLike","typeName","typeEnumName","getTypeKey","ReverseType","typeKey","ArrayQueue","dequeue","_settlers","_closed","settler"],"mappings":"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","file":"dist.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 84);\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strideForType = exports.Dictionary = exports.Map_ = exports.FixedSizeList = exports.FixedSizeBinary = exports.SparseUnion = exports.DenseUnion = exports.Union = exports.Struct = exports.List = exports.IntervalYearMonth = exports.IntervalDayTime = exports.Interval = exports.TimestampNanosecond = exports.TimestampMicrosecond = exports.TimestampMillisecond = exports.TimestampSecond = exports.Timestamp = exports.TimeNanosecond = exports.TimeMicrosecond = exports.TimeMillisecond = exports.TimeSecond = exports.Time = exports.DateMillisecond = exports.DateDay = exports.Date_ = exports.Decimal = exports.Bool = exports.Utf8 = exports.Binary = exports.Float64 = exports.Float32 = exports.Float16 = exports.Float = exports.Uint64 = exports.Uint32 = exports.Uint16 = exports.Uint8 = exports.Int64 = exports.Int32 = exports.Int16 = exports.Int8 = exports.Int = exports.Null = exports.DataType = void 0;\nconst enum_1 = require(\"./enum\");\n/**\n * An abstract base class for classes that encapsulate metadata about each of\n * the logical types that Arrow can represent.\n */\nclass DataType {\n /** @nocollapse */ static isNull(x) { return x && x.typeId === enum_1.Type.Null; }\n /** @nocollapse */ static isInt(x) { return x && x.typeId === enum_1.Type.Int; }\n /** @nocollapse */ static isFloat(x) { return x && x.typeId === enum_1.Type.Float; }\n /** @nocollapse */ static isBinary(x) { return x && x.typeId === enum_1.Type.Binary; }\n /** @nocollapse */ static isUtf8(x) { return x && x.typeId === enum_1.Type.Utf8; }\n /** @nocollapse */ static isBool(x) { return x && x.typeId === enum_1.Type.Bool; }\n /** @nocollapse */ static isDecimal(x) { return x && x.typeId === enum_1.Type.Decimal; }\n /** @nocollapse */ static isDate(x) { return x && x.typeId === enum_1.Type.Date; }\n /** @nocollapse */ static isTime(x) { return x && x.typeId === enum_1.Type.Time; }\n /** @nocollapse */ static isTimestamp(x) { return x && x.typeId === enum_1.Type.Timestamp; }\n /** @nocollapse */ static isInterval(x) { return x && x.typeId === enum_1.Type.Interval; }\n /** @nocollapse */ static isList(x) { return x && x.typeId === enum_1.Type.List; }\n /** @nocollapse */ static isStruct(x) { return x && x.typeId === enum_1.Type.Struct; }\n /** @nocollapse */ static isUnion(x) { return x && x.typeId === enum_1.Type.Union; }\n /** @nocollapse */ static isFixedSizeBinary(x) { return x && x.typeId === enum_1.Type.FixedSizeBinary; }\n /** @nocollapse */ static isFixedSizeList(x) { return x && x.typeId === enum_1.Type.FixedSizeList; }\n /** @nocollapse */ static isMap(x) { return x && x.typeId === enum_1.Type.Map; }\n /** @nocollapse */ static isDictionary(x) { return x && x.typeId === enum_1.Type.Dictionary; }\n get typeId() { return enum_1.Type.NONE; }\n}\nexports.DataType = DataType;\nDataType[Symbol.toStringTag] = ((proto) => {\n proto.children = null;\n proto.ArrayType = Array;\n return proto[Symbol.toStringTag] = 'DataType';\n})(DataType.prototype);\n/** @ignore */\nclass Null extends DataType {\n toString() { return `Null`; }\n get typeId() { return enum_1.Type.Null; }\n}\nexports.Null = Null;\nNull[Symbol.toStringTag] = ((proto) => {\n return proto[Symbol.toStringTag] = 'Null';\n})(Null.prototype);\n/** @ignore */\nclass Int_ extends DataType {\n constructor(isSigned, bitWidth) {\n super();\n this.isSigned = isSigned;\n this.bitWidth = bitWidth;\n }\n get typeId() { return enum_1.Type.Int; }\n get ArrayType() {\n switch (this.bitWidth) {\n case 8: return this.isSigned ? Int8Array : Uint8Array;\n case 16: return this.isSigned ? Int16Array : Uint16Array;\n case 32: return this.isSigned ? Int32Array : Uint32Array;\n case 64: return this.isSigned ? Int32Array : Uint32Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n toString() { return `${this.isSigned ? `I` : `Ui`}nt${this.bitWidth}`; }\n}\nexports.Int = Int_;\nInt_[Symbol.toStringTag] = ((proto) => {\n proto.isSigned = null;\n proto.bitWidth = null;\n return proto[Symbol.toStringTag] = 'Int';\n})(Int_.prototype);\n/** @ignore */\nclass Int8 extends Int_ {\n constructor() { super(true, 8); }\n}\nexports.Int8 = Int8;\n/** @ignore */\nclass Int16 extends Int_ {\n constructor() { super(true, 16); }\n}\nexports.Int16 = Int16;\n/** @ignore */\nclass Int32 extends Int_ {\n constructor() { super(true, 32); }\n}\nexports.Int32 = Int32;\n/** @ignore */\nclass Int64 extends Int_ {\n constructor() { super(true, 64); }\n}\nexports.Int64 = Int64;\n/** @ignore */\nclass Uint8 extends Int_ {\n constructor() { super(false, 8); }\n}\nexports.Uint8 = Uint8;\n/** @ignore */\nclass Uint16 extends Int_ {\n constructor() { super(false, 16); }\n}\nexports.Uint16 = Uint16;\n/** @ignore */\nclass Uint32 extends Int_ {\n constructor() { super(false, 32); }\n}\nexports.Uint32 = Uint32;\n/** @ignore */\nclass Uint64 extends Int_ {\n constructor() { super(false, 64); }\n}\nexports.Uint64 = Uint64;\nObject.defineProperty(Int8.prototype, 'ArrayType', { value: Int8Array });\nObject.defineProperty(Int16.prototype, 'ArrayType', { value: Int16Array });\nObject.defineProperty(Int32.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Int64.prototype, 'ArrayType', { value: Int32Array });\nObject.defineProperty(Uint8.prototype, 'ArrayType', { value: Uint8Array });\nObject.defineProperty(Uint16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Uint32.prototype, 'ArrayType', { value: Uint32Array });\nObject.defineProperty(Uint64.prototype, 'ArrayType', { value: Uint32Array });\n/** @ignore */\nclass Float extends DataType {\n constructor(precision) {\n super();\n this.precision = precision;\n }\n get typeId() { return enum_1.Type.Float; }\n get ArrayType() {\n switch (this.precision) {\n case enum_1.Precision.HALF: return Uint16Array;\n case enum_1.Precision.SINGLE: return Float32Array;\n case enum_1.Precision.DOUBLE: return Float64Array;\n }\n // @ts-ignore\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n toString() { return `Float${(this.precision << 5) || 16}`; }\n}\nexports.Float = Float;\nFloat[Symbol.toStringTag] = ((proto) => {\n proto.precision = null;\n return proto[Symbol.toStringTag] = 'Float';\n})(Float.prototype);\n/** @ignore */\nclass Float16 extends Float {\n constructor() { super(enum_1.Precision.HALF); }\n}\nexports.Float16 = Float16;\n/** @ignore */\nclass Float32 extends Float {\n constructor() { super(enum_1.Precision.SINGLE); }\n}\nexports.Float32 = Float32;\n/** @ignore */\nclass Float64 extends Float {\n constructor() { super(enum_1.Precision.DOUBLE); }\n}\nexports.Float64 = Float64;\nObject.defineProperty(Float16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Float32.prototype, 'ArrayType', { value: Float32Array });\nObject.defineProperty(Float64.prototype, 'ArrayType', { value: Float64Array });\n/** @ignore */\nclass Binary extends DataType {\n constructor() {\n super();\n }\n get typeId() { return enum_1.Type.Binary; }\n toString() { return `Binary`; }\n}\nexports.Binary = Binary;\nBinary[Symbol.toStringTag] = ((proto) => {\n proto.ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Binary';\n})(Binary.prototype);\n/** @ignore */\nclass Utf8 extends DataType {\n constructor() {\n super();\n }\n get typeId() { return enum_1.Type.Utf8; }\n toString() { return `Utf8`; }\n}\nexports.Utf8 = Utf8;\nUtf8[Symbol.toStringTag] = ((proto) => {\n proto.ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Utf8';\n})(Utf8.prototype);\n/** @ignore */\nclass Bool extends DataType {\n constructor() {\n super();\n }\n get typeId() { return enum_1.Type.Bool; }\n toString() { return `Bool`; }\n}\nexports.Bool = Bool;\nBool[Symbol.toStringTag] = ((proto) => {\n proto.ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Bool';\n})(Bool.prototype);\n/** @ignore */\nclass Decimal extends DataType {\n constructor(scale, precision) {\n super();\n this.scale = scale;\n this.precision = precision;\n }\n get typeId() { return enum_1.Type.Decimal; }\n toString() { return `Decimal[${this.precision}e${this.scale > 0 ? `+` : ``}${this.scale}]`; }\n}\nexports.Decimal = Decimal;\nDecimal[Symbol.toStringTag] = ((proto) => {\n proto.scale = null;\n proto.precision = null;\n proto.ArrayType = Uint32Array;\n return proto[Symbol.toStringTag] = 'Decimal';\n})(Decimal.prototype);\n/** @ignore */\nclass Date_ extends DataType {\n constructor(unit) {\n super();\n this.unit = unit;\n }\n get typeId() { return enum_1.Type.Date; }\n toString() { return `Date${(this.unit + 1) * 32}<${enum_1.DateUnit[this.unit]}>`; }\n}\nexports.Date_ = Date_;\nDate_[Symbol.toStringTag] = ((proto) => {\n proto.unit = null;\n proto.ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Date';\n})(Date_.prototype);\n/** @ignore */\nclass DateDay extends Date_ {\n constructor() { super(enum_1.DateUnit.DAY); }\n}\nexports.DateDay = DateDay;\n/** @ignore */\nclass DateMillisecond extends Date_ {\n constructor() { super(enum_1.DateUnit.MILLISECOND); }\n}\nexports.DateMillisecond = DateMillisecond;\n/** @ignore */\nclass Time_ extends DataType {\n constructor(unit, bitWidth) {\n super();\n this.unit = unit;\n this.bitWidth = bitWidth;\n }\n get typeId() { return enum_1.Type.Time; }\n toString() { return `Time${this.bitWidth}<${enum_1.TimeUnit[this.unit]}>`; }\n}\nexports.Time = Time_;\nTime_[Symbol.toStringTag] = ((proto) => {\n proto.unit = null;\n proto.bitWidth = null;\n proto.ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Time';\n})(Time_.prototype);\n/** @ignore */\nclass TimeSecond extends Time_ {\n constructor() { super(enum_1.TimeUnit.SECOND, 32); }\n}\nexports.TimeSecond = TimeSecond;\n/** @ignore */\nclass TimeMillisecond extends Time_ {\n constructor() { super(enum_1.TimeUnit.MILLISECOND, 32); }\n}\nexports.TimeMillisecond = TimeMillisecond;\n/** @ignore */\nclass TimeMicrosecond extends Time_ {\n constructor() { super(enum_1.TimeUnit.MICROSECOND, 64); }\n}\nexports.TimeMicrosecond = TimeMicrosecond;\n/** @ignore */\nclass TimeNanosecond extends Time_ {\n constructor() { super(enum_1.TimeUnit.NANOSECOND, 64); }\n}\nexports.TimeNanosecond = TimeNanosecond;\n/** @ignore */\nclass Timestamp_ extends DataType {\n constructor(unit, timezone) {\n super();\n this.unit = unit;\n this.timezone = timezone;\n }\n get typeId() { return enum_1.Type.Timestamp; }\n toString() { return `Timestamp<${enum_1.TimeUnit[this.unit]}${this.timezone ? `, ${this.timezone}` : ``}>`; }\n}\nexports.Timestamp = Timestamp_;\nTimestamp_[Symbol.toStringTag] = ((proto) => {\n proto.unit = null;\n proto.timezone = null;\n proto.ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Timestamp';\n})(Timestamp_.prototype);\n/** @ignore */\nclass TimestampSecond extends Timestamp_ {\n constructor(timezone) { super(enum_1.TimeUnit.SECOND, timezone); }\n}\nexports.TimestampSecond = TimestampSecond;\n/** @ignore */\nclass TimestampMillisecond extends Timestamp_ {\n constructor(timezone) { super(enum_1.TimeUnit.MILLISECOND, timezone); }\n}\nexports.TimestampMillisecond = TimestampMillisecond;\n/** @ignore */\nclass TimestampMicrosecond extends Timestamp_ {\n constructor(timezone) { super(enum_1.TimeUnit.MICROSECOND, timezone); }\n}\nexports.TimestampMicrosecond = TimestampMicrosecond;\n/** @ignore */\nclass TimestampNanosecond extends Timestamp_ {\n constructor(timezone) { super(enum_1.TimeUnit.NANOSECOND, timezone); }\n}\nexports.TimestampNanosecond = TimestampNanosecond;\n/** @ignore */\nclass Interval_ extends DataType {\n constructor(unit) {\n super();\n this.unit = unit;\n }\n get typeId() { return enum_1.Type.Interval; }\n toString() { return `Interval<${enum_1.IntervalUnit[this.unit]}>`; }\n}\nexports.Interval = Interval_;\nInterval_[Symbol.toStringTag] = ((proto) => {\n proto.unit = null;\n proto.ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Interval';\n})(Interval_.prototype);\n/** @ignore */\nclass IntervalDayTime extends Interval_ {\n constructor() { super(enum_1.IntervalUnit.DAY_TIME); }\n}\nexports.IntervalDayTime = IntervalDayTime;\n/** @ignore */\nclass IntervalYearMonth extends Interval_ {\n constructor() { super(enum_1.IntervalUnit.YEAR_MONTH); }\n}\nexports.IntervalYearMonth = IntervalYearMonth;\n/** @ignore */\nclass List extends DataType {\n constructor(child) {\n super();\n this.children = [child];\n }\n get typeId() { return enum_1.Type.List; }\n toString() { return `List<${this.valueType}>`; }\n get valueType() { return this.children[0].type; }\n get valueField() { return this.children[0]; }\n get ArrayType() { return this.valueType.ArrayType; }\n}\nexports.List = List;\nList[Symbol.toStringTag] = ((proto) => {\n proto.children = null;\n return proto[Symbol.toStringTag] = 'List';\n})(List.prototype);\n/** @ignore */\nclass Struct extends DataType {\n constructor(children) {\n super();\n this.children = children;\n }\n get typeId() { return enum_1.Type.Struct; }\n toString() { return `Struct<{${this.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n}\nexports.Struct = Struct;\nStruct[Symbol.toStringTag] = ((proto) => {\n proto.children = null;\n return proto[Symbol.toStringTag] = 'Struct';\n})(Struct.prototype);\n/** @ignore */\nclass Union_ extends DataType {\n constructor(mode, typeIds, children) {\n super();\n this.mode = mode;\n this.children = children;\n this.typeIds = typeIds = Int32Array.from(typeIds);\n this.typeIdToChildIndex = typeIds.reduce((typeIdToChildIndex, typeId, idx) => {\n return (typeIdToChildIndex[typeId] = idx) && typeIdToChildIndex || typeIdToChildIndex;\n }, Object.create(null));\n }\n get typeId() { return enum_1.Type.Union; }\n toString() {\n return `${this[Symbol.toStringTag]}<${this.children.map((x) => `${x.type}`).join(` | `)}>`;\n }\n}\nexports.Union = Union_;\nUnion_[Symbol.toStringTag] = ((proto) => {\n proto.mode = null;\n proto.typeIds = null;\n proto.children = null;\n proto.typeIdToChildIndex = null;\n proto.ArrayType = Int8Array;\n return proto[Symbol.toStringTag] = 'Union';\n})(Union_.prototype);\n/** @ignore */\nclass DenseUnion extends Union_ {\n constructor(typeIds, children) {\n super(enum_1.UnionMode.Dense, typeIds, children);\n }\n}\nexports.DenseUnion = DenseUnion;\n/** @ignore */\nclass SparseUnion extends Union_ {\n constructor(typeIds, children) {\n super(enum_1.UnionMode.Sparse, typeIds, children);\n }\n}\nexports.SparseUnion = SparseUnion;\n/** @ignore */\nclass FixedSizeBinary extends DataType {\n constructor(byteWidth) {\n super();\n this.byteWidth = byteWidth;\n }\n get typeId() { return enum_1.Type.FixedSizeBinary; }\n toString() { return `FixedSizeBinary[${this.byteWidth}]`; }\n}\nexports.FixedSizeBinary = FixedSizeBinary;\nFixedSizeBinary[Symbol.toStringTag] = ((proto) => {\n proto.byteWidth = null;\n proto.ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'FixedSizeBinary';\n})(FixedSizeBinary.prototype);\n/** @ignore */\nclass FixedSizeList extends DataType {\n constructor(listSize, child) {\n super();\n this.listSize = listSize;\n this.children = [child];\n }\n get typeId() { return enum_1.Type.FixedSizeList; }\n get valueType() { return this.children[0].type; }\n get valueField() { return this.children[0]; }\n get ArrayType() { return this.valueType.ArrayType; }\n toString() { return `FixedSizeList[${this.listSize}]<${this.valueType}>`; }\n}\nexports.FixedSizeList = FixedSizeList;\nFixedSizeList[Symbol.toStringTag] = ((proto) => {\n proto.children = null;\n proto.listSize = null;\n return proto[Symbol.toStringTag] = 'FixedSizeList';\n})(FixedSizeList.prototype);\n/** @ignore */\nclass Map_ extends DataType {\n constructor(child, keysSorted = false) {\n super();\n this.children = [child];\n this.keysSorted = keysSorted;\n }\n get typeId() { return enum_1.Type.Map; }\n get keyType() { return this.children[0].type.children[0].type; }\n get valueType() { return this.children[0].type.children[1].type; }\n toString() { return `Map<{${this.children[0].type.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n}\nexports.Map_ = Map_;\nMap_[Symbol.toStringTag] = ((proto) => {\n proto.children = null;\n proto.keysSorted = null;\n return proto[Symbol.toStringTag] = 'Map_';\n})(Map_.prototype);\n/** @ignore */\nconst getId = ((atomicDictionaryId) => () => ++atomicDictionaryId)(-1);\n/** @ignore */\nclass Dictionary extends DataType {\n constructor(dictionary, indices, id, isOrdered) {\n super();\n this.indices = indices;\n this.dictionary = dictionary;\n this.isOrdered = isOrdered || false;\n this.id = id == null ? getId() : typeof id === 'number' ? id : id.low;\n }\n get typeId() { return enum_1.Type.Dictionary; }\n get children() { return this.dictionary.children; }\n get valueType() { return this.dictionary; }\n get ArrayType() { return this.dictionary.ArrayType; }\n toString() { return `Dictionary<${this.indices}, ${this.dictionary}>`; }\n}\nexports.Dictionary = Dictionary;\nDictionary[Symbol.toStringTag] = ((proto) => {\n proto.id = null;\n proto.indices = null;\n proto.isOrdered = null;\n proto.dictionary = null;\n return proto[Symbol.toStringTag] = 'Dictionary';\n})(Dictionary.prototype);\n/** @ignore */\nfunction strideForType(type) {\n const t = type;\n switch (type.typeId) {\n case enum_1.Type.Decimal: return 4;\n case enum_1.Type.Timestamp: return 2;\n case enum_1.Type.Date: return 1 + t.unit;\n case enum_1.Type.Interval: return 1 + t.unit;\n case enum_1.Type.Int: return 1 + +(t.bitWidth > 32);\n case enum_1.Type.Time: return 1 + +(t.bitWidth > 32);\n case enum_1.Type.FixedSizeList: return t.listSize;\n case enum_1.Type.FixedSizeBinary: return t.byteWidth;\n default: return 1;\n }\n}\nexports.strideForType = strideForType;\n\n//# sourceMappingURL=type.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BufferType = exports.Type = exports.MessageHeader = exports.MetadataVersion = exports.IntervalUnit = exports.UnionMode = exports.Precision = exports.TimeUnit = exports.DateUnit = void 0;\nvar Schema_1 = require(\"./fb/Schema\");\nObject.defineProperty(exports, \"DateUnit\", { enumerable: true, get: function () { return Schema_1.DateUnit; } });\nObject.defineProperty(exports, \"TimeUnit\", { enumerable: true, get: function () { return Schema_1.TimeUnit; } });\nObject.defineProperty(exports, \"Precision\", { enumerable: true, get: function () { return Schema_1.Precision; } });\nObject.defineProperty(exports, \"UnionMode\", { enumerable: true, get: function () { return Schema_1.UnionMode; } });\nObject.defineProperty(exports, \"IntervalUnit\", { enumerable: true, get: function () { return Schema_1.IntervalUnit; } });\nObject.defineProperty(exports, \"MetadataVersion\", { enumerable: true, get: function () { return Schema_1.MetadataVersion; } });\nvar Message_1 = require(\"./fb/Message\");\nObject.defineProperty(exports, \"MessageHeader\", { enumerable: true, get: function () { return Message_1.MessageHeader; } });\n/**\n * Main data type enumeration.\n *\n * Data types in this library are all *logical*. They can be expressed as\n * either a primitive physical type (bytes or bits of some fixed size), a\n * nested type consisting of other data types, or another data type (e.g. a\n * timestamp encoded as an int64).\n *\n * **Note**: Only enum values 0-17 (NONE through Map) are written to an Arrow\n * IPC payload.\n *\n * The rest of the values are specified here so TypeScript can narrow the type\n * signatures further beyond the base Arrow Types. The Arrow DataTypes include\n * metadata like `bitWidth` that impact the type signatures of the values we\n * accept and return.\n *\n * For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an\n * `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`\n * reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the\n * underlying `Int32Array`.\n *\n * Library consumers benefit by knowing the narrowest type, since we can ensure\n * the types across all public methods are propagated, and never bail to `any`.\n * These values are _never_ used at runtime, and they will _never_ be written\n * to the flatbuffers metadata of serialized Arrow IPC payloads.\n */\nvar Type;\n(function (Type) {\n /** The default placeholder type */\n Type[Type[\"NONE\"] = 0] = \"NONE\";\n /** A NULL type having no physical storage */\n Type[Type[\"Null\"] = 1] = \"Null\";\n /** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */\n Type[Type[\"Int\"] = 2] = \"Int\";\n /** 2, 4, or 8-byte floating point value */\n Type[Type[\"Float\"] = 3] = \"Float\";\n /** Variable-length bytes (no guarantee of UTF8-ness) */\n Type[Type[\"Binary\"] = 4] = \"Binary\";\n /** UTF8 variable-length string as List<Char> */\n Type[Type[\"Utf8\"] = 5] = \"Utf8\";\n /** Boolean as 1 bit, LSB bit-packed ordering */\n Type[Type[\"Bool\"] = 6] = \"Bool\";\n /** Precision-and-scale-based decimal type. Storage type depends on the parameters. */\n Type[Type[\"Decimal\"] = 7] = \"Decimal\";\n /** int32_t days or int64_t milliseconds since the UNIX epoch */\n Type[Type[\"Date\"] = 8] = \"Date\";\n /** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */\n Type[Type[\"Time\"] = 9] = \"Time\";\n /** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */\n Type[Type[\"Timestamp\"] = 10] = \"Timestamp\";\n /** YEAR_MONTH or DAY_TIME interval in SQL style */\n Type[Type[\"Interval\"] = 11] = \"Interval\";\n /** A list of some logical data type */\n Type[Type[\"List\"] = 12] = \"List\";\n /** Struct of logical types */\n Type[Type[\"Struct\"] = 13] = \"Struct\";\n /** Union of logical types */\n Type[Type[\"Union\"] = 14] = \"Union\";\n /** Fixed-size binary. Each value occupies the same number of bytes */\n Type[Type[\"FixedSizeBinary\"] = 15] = \"FixedSizeBinary\";\n /** Fixed-size list. Each value occupies the same number of bytes */\n Type[Type[\"FixedSizeList\"] = 16] = \"FixedSizeList\";\n /** Map of named logical types */\n Type[Type[\"Map\"] = 17] = \"Map\";\n /** Dictionary aka Category type */\n Type[Type[\"Dictionary\"] = -1] = \"Dictionary\";\n Type[Type[\"Int8\"] = -2] = \"Int8\";\n Type[Type[\"Int16\"] = -3] = \"Int16\";\n Type[Type[\"Int32\"] = -4] = \"Int32\";\n Type[Type[\"Int64\"] = -5] = \"Int64\";\n Type[Type[\"Uint8\"] = -6] = \"Uint8\";\n Type[Type[\"Uint16\"] = -7] = \"Uint16\";\n Type[Type[\"Uint32\"] = -8] = \"Uint32\";\n Type[Type[\"Uint64\"] = -9] = \"Uint64\";\n Type[Type[\"Float16\"] = -10] = \"Float16\";\n Type[Type[\"Float32\"] = -11] = \"Float32\";\n Type[Type[\"Float64\"] = -12] = \"Float64\";\n Type[Type[\"DateDay\"] = -13] = \"DateDay\";\n Type[Type[\"DateMillisecond\"] = -14] = \"DateMillisecond\";\n Type[Type[\"TimestampSecond\"] = -15] = \"TimestampSecond\";\n Type[Type[\"TimestampMillisecond\"] = -16] = \"TimestampMillisecond\";\n Type[Type[\"TimestampMicrosecond\"] = -17] = \"TimestampMicrosecond\";\n Type[Type[\"TimestampNanosecond\"] = -18] = \"TimestampNanosecond\";\n Type[Type[\"TimeSecond\"] = -19] = \"TimeSecond\";\n Type[Type[\"TimeMillisecond\"] = -20] = \"TimeMillisecond\";\n Type[Type[\"TimeMicrosecond\"] = -21] = \"TimeMicrosecond\";\n Type[Type[\"TimeNanosecond\"] = -22] = \"TimeNanosecond\";\n Type[Type[\"DenseUnion\"] = -23] = \"DenseUnion\";\n Type[Type[\"SparseUnion\"] = -24] = \"SparseUnion\";\n Type[Type[\"IntervalDayTime\"] = -25] = \"IntervalDayTime\";\n Type[Type[\"IntervalYearMonth\"] = -26] = \"IntervalYearMonth\";\n})(Type = exports.Type || (exports.Type = {}));\nvar BufferType;\n(function (BufferType) {\n /**\n * used in List type, Dense Union and variable length primitive types (String, Binary)\n */\n BufferType[BufferType[\"OFFSET\"] = 0] = \"OFFSET\";\n /**\n * actual data, either wixed width primitive types in slots or variable width delimited by an OFFSET vector\n */\n BufferType[BufferType[\"DATA\"] = 1] = \"DATA\";\n /**\n * Bit vector indicating if each value is null\n */\n BufferType[BufferType[\"VALIDITY\"] = 2] = \"VALIDITY\";\n /**\n * Type vector used in Union type\n */\n BufferType[BufferType[\"TYPE\"] = 3] = \"TYPE\";\n})(BufferType = exports.BufferType || (exports.BufferType = {}));\n\n//# sourceMappingURL=enum.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VariableWidthBuilder = exports.FixedWidthBuilder = exports.Builder = void 0;\nconst vector_1 = require(\"./vector\");\nconst enum_1 = require(\"./enum\");\nconst data_1 = require(\"./data\");\nconst valid_1 = require(\"./builder/valid\");\nconst buffer_1 = require(\"./builder/buffer\");\nconst type_1 = require(\"./type\");\n/**\n * An abstract base class for types that construct Arrow Vectors from arbitrary JavaScript values.\n *\n * A `Builder` is responsible for writing arbitrary JavaScript values\n * to ArrayBuffers and/or child Builders according to the Arrow specification\n * for each DataType, creating or resizing the underlying ArrayBuffers as necessary.\n *\n * The `Builder` for each Arrow `DataType` handles converting and appending\n * values for a given `DataType`. The high-level {@link Builder.new `Builder.new()`} convenience\n * method creates the specific `Builder` subclass for the supplied `DataType`.\n *\n * Once created, `Builder` instances support both appending values to the end\n * of the `Builder`, and random-access writes to specific indices\n * (`Builder.prototype.append(value)` is a convenience method for\n * `builder.set(builder.length, value)`). Appending or setting values beyond the\n * Builder's current length may cause the builder to grow its underlying buffers\n * or child Builders (if applicable) to accommodate the new values.\n *\n * After enough values have been written to a `Builder`, `Builder.prototype.flush()`\n * will commit the values to the underlying ArrayBuffers (or child Builders). The\n * internal Builder state will be reset, and an instance of `Data<T>` is returned.\n * Alternatively, `Builder.prototype.toVector()` will flush the `Builder` and return\n * an instance of `Vector<T>` instead.\n *\n * When there are no more values to write, use `Builder.prototype.finish()` to\n * finalize the `Builder`. This does not reset the internal state, so it is\n * necessary to call `Builder.prototype.flush()` or `toVector()` one last time\n * if there are still values queued to be flushed.\n *\n * Note: calling `Builder.prototype.finish()` is required when using a `DictionaryBuilder`,\n * because this is when it flushes the values that have been enqueued in its internal\n * dictionary's `Builder`, and creates the `dictionaryVector` for the `Dictionary` `DataType`.\n *\n * ```ts\n * import { Builder, Utf8 } from 'apache-arrow';\n *\n * const utf8Builder = Builder.new({\n * type: new Utf8(),\n * nullValues: [null, 'n/a']\n * });\n *\n * utf8Builder\n * .append('hello')\n * .append('n/a')\n * .append('world')\n * .append(null);\n *\n * const utf8Vector = utf8Builder.finish().toVector();\n *\n * console.log(utf8Vector.toJSON());\n * // > [\"hello\", null, \"world\", null]\n * ```\n *\n * @typeparam T The `DataType` of this `Builder`.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n */\nclass Builder {\n /**\n * Construct a builder with the given Arrow DataType with optional null values,\n * which will be interpreted as \"null\" when set or appended to the `Builder`.\n * @param {{ type: T, nullValues?: any[] }} options A `BuilderOptions` object used to create this `Builder`.\n */\n constructor({ 'type': type, 'nullValues': nulls }) {\n /**\n * The number of values written to the `Builder` that haven't been flushed yet.\n * @readonly\n */\n this.length = 0;\n /**\n * A boolean indicating whether `Builder.prototype.finish()` has been called on this `Builder`.\n * @readonly\n */\n this.finished = false;\n this.type = type;\n this.children = [];\n this.nullValues = nulls;\n this.stride = type_1.strideForType(type);\n this._nulls = new buffer_1.BitmapBufferBuilder();\n if (nulls && nulls.length > 0) {\n this._isValid = valid_1.createIsValidFunction(nulls);\n }\n }\n /**\n * Create a `Builder` instance based on the `type` property of the supplied `options` object.\n * @param {BuilderOptions<T, TNull>} options An object with a required `DataType` instance\n * and other optional parameters to be passed to the `Builder` subclass for the given `type`.\n *\n * @typeparam T The `DataType` of the `Builder` to create.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n * @nocollapse\n */\n // @ts-ignore\n static new(options) { }\n /** @nocollapse */\n // @ts-ignore\n static throughNode(options) {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n // @ts-ignore\n static throughDOM(options) {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n /**\n * Transform a synchronous `Iterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector<T> following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `Iterable` of values to\n * transform. When called, this function returns an Iterator of `Vector<T>`.\n *\n * The resulting `Iterator<Vector<T>>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `Iterator<Vector<T>>`\n * will flush the underlying `Builder` (and yield a new `Vector<T>`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `Iterator<Vector<T>>` will flush\n * the underlying `Builder` (and yield a new `Vector<T>`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions<T, TNull>} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `Iterable` of values to\n * write, and returns an `Iterator` that yields Vectors according\n * to the chunking semantics defined in the `options` argument.\n * @nocollapse\n */\n static throughIterable(options) {\n return throughIterable(options);\n }\n /**\n * Transform an `AsyncIterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector<T> following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `AsyncIterable` of values to\n * transform. When called, this function returns an AsyncIterator of `Vector<T>`.\n *\n * The resulting `AsyncIterator<Vector<T>>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `AsyncIterator<Vector<T>>`\n * will flush the underlying `Builder` (and yield a new `Vector<T>`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `AsyncIterator<Vector<T>>` will flush\n * the underlying `Builder` (and yield a new `Vector<T>`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions<T, TNull>} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `AsyncIterable` of values\n * to write, and returns an `AsyncIterator` that yields Vectors\n * according to the chunking semantics defined in the `options`\n * argument.\n * @nocollapse\n */\n static throughAsyncIterable(options) {\n return throughAsyncIterable(options);\n }\n /**\n * Flush the `Builder` and return a `Vector<T>`.\n * @returns {Vector<T>} A `Vector<T>` of the flushed values.\n */\n toVector() { return vector_1.Vector.new(this.flush()); }\n get ArrayType() { return this.type.ArrayType; }\n get nullCount() { return this._nulls.numInvalid; }\n get numChildren() { return this.children.length; }\n /**\n * @returns The aggregate length (in bytes) of the values that have been written.\n */\n get byteLength() {\n let size = 0;\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n this._typeIds && (size += this._typeIds.byteLength);\n return this.children.reduce((size, child) => size + child.byteLength, size);\n }\n /**\n * @returns The aggregate number of rows that have been reserved to write new values.\n */\n get reservedLength() {\n return this._nulls.reservedLength;\n }\n /**\n * @returns The aggregate length (in bytes) that has been reserved to write new values.\n */\n get reservedByteLength() {\n let size = 0;\n this._offsets && (size += this._offsets.reservedByteLength);\n this._values && (size += this._values.reservedByteLength);\n this._nulls && (size += this._nulls.reservedByteLength);\n this._typeIds && (size += this._typeIds.reservedByteLength);\n return this.children.reduce((size, child) => size + child.reservedByteLength, size);\n }\n get valueOffsets() { return this._offsets ? this._offsets.buffer : null; }\n get values() { return this._values ? this._values.buffer : null; }\n get nullBitmap() { return this._nulls ? this._nulls.buffer : null; }\n get typeIds() { return this._typeIds ? this._typeIds.buffer : null; }\n /**\n * Appends a value (or null) to this `Builder`.\n * This is equivalent to `builder.set(builder.length, value)`.\n * @param {T['TValue'] | TNull } value The value to append.\n */\n append(value) { return this.set(this.length, value); }\n /**\n * Validates whether a value is valid (true), or null (false)\n * @param {T['TValue'] | TNull } value The value to compare against null the value representations\n */\n isValid(value) { return this._isValid(value); }\n /**\n * Write a value (or null-value sentinel) at the supplied index.\n * If the value matches one of the null-value representations, a 1-bit is\n * written to the null `BitmapBufferBuilder`. Otherwise, a 0 is written to\n * the null `BitmapBufferBuilder`, and the value is passed to\n * `Builder.prototype.setValue()`.\n * @param {number} index The index of the value to write.\n * @param {T['TValue'] | TNull } value The value to write at the supplied index.\n * @returns {this} The updated `Builder` instance.\n */\n set(index, value) {\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value);\n }\n return this;\n }\n /**\n * Write a value to the underlying buffers at the supplied index, bypassing\n * the null-value check. This is a low-level method that\n * @param {number} index\n * @param {T['TValue'] | TNull } value\n */\n setValue(index, value) { this._setValue(this, index, value); }\n setValid(index, valid) {\n this.length = this._nulls.set(index, +valid).length;\n return valid;\n }\n // @ts-ignore\n addChild(child, name = `${this.numChildren}`) {\n throw new Error(`Cannot append children to non-nested type \"${this.type}\"`);\n }\n /**\n * Retrieve the child `Builder` at the supplied `index`, or null if no child\n * exists at that index.\n * @param {number} index The index of the child `Builder` to retrieve.\n * @returns {Builder | null} The child Builder at the supplied index or null.\n */\n getChildAt(index) {\n return this.children[index] || null;\n }\n /**\n * Commit all the values that have been written to their underlying\n * ArrayBuffers, including any child Builders if applicable, and reset\n * the internal `Builder` state.\n * @returns A `Data<T>` of the buffers and childData representing the values written.\n */\n flush() {\n const buffers = [];\n const values = this._values;\n const offsets = this._offsets;\n const typeIds = this._typeIds;\n const { length, nullCount } = this;\n if (typeIds) { /* Unions */\n buffers[enum_1.BufferType.TYPE] = typeIds.flush(length);\n // DenseUnions\n offsets && (buffers[enum_1.BufferType.OFFSET] = offsets.flush(length));\n }\n else if (offsets) { /* Variable-width primitives (Binary, Utf8) and Lists */\n // Binary, Utf8\n values && (buffers[enum_1.BufferType.DATA] = values.flush(offsets.last()));\n buffers[enum_1.BufferType.OFFSET] = offsets.flush(length);\n }\n else if (values) { /* Fixed-width primitives (Int, Float, Decimal, Time, Timestamp, and Interval) */\n buffers[enum_1.BufferType.DATA] = values.flush(length);\n }\n nullCount > 0 && (buffers[enum_1.BufferType.VALIDITY] = this._nulls.flush(length));\n const data = data_1.Data.new(this.type, 0, length, nullCount, buffers, this.children.map((child) => child.flush()));\n this.clear();\n return data;\n }\n /**\n * Finalize this `Builder`, and child builders if applicable.\n * @returns {this} The finalized `Builder` instance.\n */\n finish() {\n this.finished = true;\n this.children.forEach((child) => child.finish());\n return this;\n }\n /**\n * Clear this Builder's internal state, including child Builders if applicable, and reset the length to 0.\n * @returns {this} The cleared `Builder` instance.\n */\n clear() {\n this.length = 0;\n this._offsets && (this._offsets.clear());\n this._values && (this._values.clear());\n this._nulls && (this._nulls.clear());\n this._typeIds && (this._typeIds.clear());\n this.children.forEach((child) => child.clear());\n return this;\n }\n}\nexports.Builder = Builder;\nBuilder.prototype.length = 1;\nBuilder.prototype.stride = 1;\nBuilder.prototype.children = null;\nBuilder.prototype.finished = false;\nBuilder.prototype.nullValues = null;\nBuilder.prototype._isValid = () => true;\n/** @ignore */\nclass FixedWidthBuilder extends Builder {\n constructor(opts) {\n super(opts);\n this._values = new buffer_1.DataBufferBuilder(new this.ArrayType(0), this.stride);\n }\n setValue(index, value) {\n const values = this._values;\n values.reserve(index - values.length + 1);\n return super.setValue(index, value);\n }\n}\nexports.FixedWidthBuilder = FixedWidthBuilder;\n/** @ignore */\nclass VariableWidthBuilder extends Builder {\n constructor(opts) {\n super(opts);\n this._pendingLength = 0;\n this._offsets = new buffer_1.OffsetsBufferBuilder();\n }\n setValue(index, value) {\n const pending = this._pending || (this._pending = new Map());\n const current = pending.get(index);\n current && (this._pendingLength -= current.length);\n this._pendingLength += value.length;\n pending.set(index, value);\n }\n setValid(index, isValid) {\n if (!super.setValid(index, isValid)) {\n (this._pending || (this._pending = new Map())).set(index, undefined);\n return false;\n }\n return true;\n }\n clear() {\n this._pendingLength = 0;\n this._pending = undefined;\n return super.clear();\n }\n flush() {\n this._flush();\n return super.flush();\n }\n finish() {\n this._flush();\n return super.finish();\n }\n _flush() {\n const pending = this._pending;\n const pendingLength = this._pendingLength;\n this._pendingLength = 0;\n this._pending = undefined;\n if (pending && pending.size > 0) {\n this._flushPending(pending, pendingLength);\n }\n return this;\n }\n}\nexports.VariableWidthBuilder = VariableWidthBuilder;\n/** @ignore */\nfunction throughIterable(options) {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return function* (source) {\n let numChunks = 0;\n const builder = Builder.new(options);\n for (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n };\n}\n/** @ignore */\nfunction throughAsyncIterable(options) {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return async function* (source) {\n let numChunks = 0;\n const builder = Builder.new(options);\n for await (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n };\n}\n\n//# sourceMappingURL=builder.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Vector = exports.AbstractVector = void 0;\nclass AbstractVector {\n}\nexports.AbstractVector = AbstractVector;\nexports.Vector = AbstractVector;\nAbstractVector.prototype.data = null;\n\n//# sourceMappingURL=vector.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseVector = void 0;\nconst enum_1 = require(\"../enum\");\nconst chunked_1 = require(\"./chunked\");\nconst vector_1 = require(\"../util/vector\");\nconst vector_2 = require(\"../vector\");\n/** @ignore */\nclass BaseVector extends vector_2.AbstractVector {\n constructor(data, children) {\n super();\n this._children = children;\n this.numChildren = data.childData.length;\n this._bindDataAccessors(this.data = data);\n }\n get type() { return this.data.type; }\n get typeId() { return this.data.typeId; }\n get length() { return this.data.length; }\n get offset() { return this.data.offset; }\n get stride() { return this.data.stride; }\n get nullCount() { return this.data.nullCount; }\n get byteLength() { return this.data.byteLength; }\n get VectorName() { return `${enum_1.Type[this.typeId]}Vector`; }\n get ArrayType() { return this.type.ArrayType; }\n get values() { return this.data.values; }\n get typeIds() { return this.data.typeIds; }\n get nullBitmap() { return this.data.nullBitmap; }\n get valueOffsets() { return this.data.valueOffsets; }\n get [Symbol.toStringTag]() { return `${this.VectorName}<${this.type[Symbol.toStringTag]}>`; }\n clone(data, children = this._children) {\n return vector_2.Vector.new(data, children);\n }\n concat(...others) {\n return chunked_1.Chunked.concat(this, ...others);\n }\n slice(begin, end) {\n // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n // clamp between 0 and length, and wrap around on negative indices, e.g.\n // slice(-1, 5) or slice(5, -1)\n return vector_1.clampRange(this, begin, end, this._sliceInternal);\n }\n isValid(index) {\n if (this.nullCount > 0) {\n const idx = this.offset + index;\n const val = this.nullBitmap[idx >> 3];\n const mask = (val & (1 << (idx % 8)));\n return mask !== 0;\n }\n return true;\n }\n getChildAt(index) {\n return index < 0 || index >= this.numChildren ? null : ((this._children || (this._children = []))[index] ||\n (this._children[index] = vector_2.Vector.new(this.data.childData[index])));\n }\n toJSON() { return [...this]; }\n _sliceInternal(self, begin, end) {\n return self.clone(self.data.slice(begin, end - begin), null);\n }\n // @ts-ignore\n _bindDataAccessors(data) {\n // Implementation in src/vectors/index.ts due to circular dependency/packaging shenanigans\n }\n}\nexports.BaseVector = BaseVector;\nBaseVector.prototype[Symbol.isConcatSpreadable] = true;\n\n//# sourceMappingURL=base.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compareArrayLike = exports.rebaseValueOffsets = exports.toUint8ClampedArrayAsyncIterator = exports.toFloat64ArrayAsyncIterator = exports.toFloat32ArrayAsyncIterator = exports.toUint32ArrayAsyncIterator = exports.toUint16ArrayAsyncIterator = exports.toUint8ArrayAsyncIterator = exports.toInt32ArrayAsyncIterator = exports.toInt16ArrayAsyncIterator = exports.toInt8ArrayAsyncIterator = exports.toArrayBufferViewAsyncIterator = exports.toUint8ClampedArrayIterator = exports.toFloat64ArrayIterator = exports.toFloat32ArrayIterator = exports.toUint32ArrayIterator = exports.toUint16ArrayIterator = exports.toUint8ArrayIterator = exports.toInt32ArrayIterator = exports.toInt16ArrayIterator = exports.toInt8ArrayIterator = exports.toArrayBufferViewIterator = exports.toUint8ClampedArray = exports.toFloat64Array = exports.toFloat32Array = exports.toBigUint64Array = exports.toUint32Array = exports.toUint16Array = exports.toUint8Array = exports.toBigInt64Array = exports.toInt32Array = exports.toInt16Array = exports.toInt8Array = exports.toArrayBufferView = exports.joinUint8Arrays = exports.memcpy = void 0;\nconst flatbuffers_1 = require(\"flatbuffers\");\nconst utf8_1 = require(\"../util/utf8\");\nvar ByteBuffer = flatbuffers_1.flatbuffers.ByteBuffer;\nconst compat_1 = require(\"./compat\");\n/** @ignore */\nconst SharedArrayBuf = (typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : ArrayBuffer);\n/** @ignore */\nfunction collapseContiguousByteRanges(chunks) {\n const result = chunks[0] ? [chunks[0]] : [];\n let xOffset, yOffset, xLen, yLen;\n for (let x, y, i = 0, j = 0, n = chunks.length; ++i < n;) {\n x = result[j];\n y = chunks[i];\n // continue if x and y don't share the same underlying ArrayBuffer, or if x isn't before y\n if (!x || !y || x.buffer !== y.buffer || y.byteOffset < x.byteOffset) {\n y && (result[++j] = y);\n continue;\n }\n ({ byteOffset: xOffset, byteLength: xLen } = x);\n ({ byteOffset: yOffset, byteLength: yLen } = y);\n // continue if the byte ranges of x and y aren't contiguous\n if ((xOffset + xLen) < yOffset || (yOffset + yLen) < xOffset) {\n y && (result[++j] = y);\n continue;\n }\n result[j] = new Uint8Array(x.buffer, xOffset, yOffset - xOffset + yLen);\n }\n return result;\n}\n/** @ignore */\nfunction memcpy(target, source, targetByteOffset = 0, sourceByteLength = source.byteLength) {\n const targetByteLength = target.byteLength;\n const dst = new Uint8Array(target.buffer, target.byteOffset, targetByteLength);\n const src = new Uint8Array(source.buffer, source.byteOffset, Math.min(sourceByteLength, targetByteLength));\n dst.set(src, targetByteOffset);\n return target;\n}\nexports.memcpy = memcpy;\n/** @ignore */\nfunction joinUint8Arrays(chunks, size) {\n // collapse chunks that share the same underlying ArrayBuffer and whose byte ranges overlap,\n // to avoid unnecessarily copying the bytes to do this buffer join. This is a common case during\n // streaming, where we may be reading partial byte ranges out of the same underlying ArrayBuffer\n const result = collapseContiguousByteRanges(chunks);\n const byteLength = result.reduce((x, b) => x + b.byteLength, 0);\n let source, sliced, buffer;\n let offset = 0, index = -1;\n const length = Math.min(size || Infinity, byteLength);\n for (let n = result.length; ++index < n;) {\n source = result[index];\n sliced = source.subarray(0, Math.min(source.length, length - offset));\n if (length <= (offset + sliced.length)) {\n if (sliced.length < source.length) {\n result[index] = source.subarray(sliced.length);\n }\n else if (sliced.length === source.length) {\n index++;\n }\n buffer ? memcpy(buffer, sliced, offset) : (buffer = sliced);\n break;\n }\n memcpy(buffer || (buffer = new Uint8Array(length)), sliced, offset);\n offset += sliced.length;\n }\n return [buffer || new Uint8Array(0), result.slice(index), byteLength - (buffer ? buffer.byteLength : 0)];\n}\nexports.joinUint8Arrays = joinUint8Arrays;\nfunction toArrayBufferView(ArrayBufferViewCtor, input) {\n let value = compat_1.isIteratorResult(input) ? input.value : input;\n if (value instanceof ArrayBufferViewCtor) {\n if (ArrayBufferViewCtor === Uint8Array) {\n // Node's `Buffer` class passes the `instanceof Uint8Array` check, but we need\n // a real Uint8Array, since Buffer#slice isn't the same as Uint8Array#slice :/\n return new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength);\n }\n return value;\n }\n if (!value) {\n return new ArrayBufferViewCtor(0);\n }\n if (typeof value === 'string') {\n value = utf8_1.encodeUtf8(value);\n }\n if (value instanceof ArrayBuffer) {\n return new ArrayBufferViewCtor(value);\n }\n if (value instanceof SharedArrayBuf) {\n return new ArrayBufferViewCtor(value);\n }\n if (value instanceof ByteBuffer) {\n return toArrayBufferView(ArrayBufferViewCtor, value.bytes());\n }\n return !ArrayBuffer.isView(value) ? ArrayBufferViewCtor.from(value) : value.byteLength <= 0 ? new ArrayBufferViewCtor(0)\n : new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength / ArrayBufferViewCtor.BYTES_PER_ELEMENT);\n}\nexports.toArrayBufferView = toArrayBufferView;\n/** @ignore */ exports.toInt8Array = (input) => toArrayBufferView(Int8Array, input);\n/** @ignore */ exports.toInt16Array = (input) => toArrayBufferView(Int16Array, input);\n/** @ignore */ exports.toInt32Array = (input) => toArrayBufferView(Int32Array, input);\n/** @ignore */ exports.toBigInt64Array = (input) => toArrayBufferView(compat_1.BigInt64Array, input);\n/** @ignore */ exports.toUint8Array = (input) => toArrayBufferView(Uint8Array, input);\n/** @ignore */ exports.toUint16Array = (input) => toArrayBufferView(Uint16Array, input);\n/** @ignore */ exports.toUint32Array = (input) => toArrayBufferView(Uint32Array, input);\n/** @ignore */ exports.toBigUint64Array = (input) => toArrayBufferView(compat_1.BigUint64Array, input);\n/** @ignore */ exports.toFloat32Array = (input) => toArrayBufferView(Float32Array, input);\n/** @ignore */ exports.toFloat64Array = (input) => toArrayBufferView(Float64Array, input);\n/** @ignore */ exports.toUint8ClampedArray = (input) => toArrayBufferView(Uint8ClampedArray, input);\n/** @ignore */\nconst pump = (iterator) => { iterator.next(); return iterator; };\n/** @ignore */\nfunction* toArrayBufferViewIterator(ArrayCtor, source) {\n const wrap = function* (x) { yield x; };\n const buffers = (typeof source === 'string') ? wrap(source)\n : (ArrayBuffer.isView(source)) ? wrap(source)\n : (source instanceof ArrayBuffer) ? wrap(source)\n : (source instanceof SharedArrayBuf) ? wrap(source)\n : !compat_1.isIterable(source) ? wrap(source) : source;\n yield* pump((function* (it) {\n let r = null;\n do {\n r = it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.iterator]()));\n return new ArrayCtor();\n}\nexports.toArrayBufferViewIterator = toArrayBufferViewIterator;\n/** @ignore */ exports.toInt8ArrayIterator = (input) => toArrayBufferViewIterator(Int8Array, input);\n/** @ignore */ exports.toInt16ArrayIterator = (input) => toArrayBufferViewIterator(Int16Array, input);\n/** @ignore */ exports.toInt32ArrayIterator = (input) => toArrayBufferViewIterator(Int32Array, input);\n/** @ignore */ exports.toUint8ArrayIterator = (input) => toArrayBufferViewIterator(Uint8Array, input);\n/** @ignore */ exports.toUint16ArrayIterator = (input) => toArrayBufferViewIterator(Uint16Array, input);\n/** @ignore */ exports.toUint32ArrayIterator = (input) => toArrayBufferViewIterator(Uint32Array, input);\n/** @ignore */ exports.toFloat32ArrayIterator = (input) => toArrayBufferViewIterator(Float32Array, input);\n/** @ignore */ exports.toFloat64ArrayIterator = (input) => toArrayBufferViewIterator(Float64Array, input);\n/** @ignore */ exports.toUint8ClampedArrayIterator = (input) => toArrayBufferViewIterator(Uint8ClampedArray, input);\n/** @ignore */\nasync function* toArrayBufferViewAsyncIterator(ArrayCtor, source) {\n // if a Promise, unwrap the Promise and iterate the resolved value\n if (compat_1.isPromise(source)) {\n return yield* toArrayBufferViewAsyncIterator(ArrayCtor, await source);\n }\n const wrap = async function* (x) { yield await x; };\n const emit = async function* (source) {\n yield* pump((function* (it) {\n let r = null;\n do {\n r = it.next(yield r && r.value);\n } while (!r.done);\n })(source[Symbol.iterator]()));\n };\n const buffers = (typeof source === 'string') ? wrap(source) // if string, wrap in an AsyncIterableIterator\n : (ArrayBuffer.isView(source)) ? wrap(source) // if TypedArray, wrap in an AsyncIterableIterator\n : (source instanceof ArrayBuffer) ? wrap(source) // if ArrayBuffer, wrap in an AsyncIterableIterator\n : (source instanceof SharedArrayBuf) ? wrap(source) // if SharedArrayBuffer, wrap in an AsyncIterableIterator\n : compat_1.isIterable(source) ? emit(source) // If Iterable, wrap in an AsyncIterableIterator and compose the `next` values\n : !compat_1.isAsyncIterable(source) ? wrap(source) // If not an AsyncIterable, treat as a sentinel and wrap in an AsyncIterableIterator\n : source; // otherwise if AsyncIterable, use it\n yield* pump((async function* (it) {\n let r = null;\n do {\n r = await it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.asyncIterator]()));\n return new ArrayCtor();\n}\nexports.toArrayBufferViewAsyncIterator = toArrayBufferViewAsyncIterator;\n/** @ignore */ exports.toInt8ArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Int8Array, input);\n/** @ignore */ exports.toInt16ArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Int16Array, input);\n/** @ignore */ exports.toInt32ArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Int32Array, input);\n/** @ignore */ exports.toUint8ArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Uint8Array, input);\n/** @ignore */ exports.toUint16ArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Uint16Array, input);\n/** @ignore */ exports.toUint32ArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Uint32Array, input);\n/** @ignore */ exports.toFloat32ArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Float32Array, input);\n/** @ignore */ exports.toFloat64ArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Float64Array, input);\n/** @ignore */ exports.toUint8ClampedArrayAsyncIterator = (input) => toArrayBufferViewAsyncIterator(Uint8ClampedArray, input);\n/** @ignore */\nfunction rebaseValueOffsets(offset, length, valueOffsets) {\n // If we have a non-zero offset, create a new offsets array with the values\n // shifted by the start offset, such that the new start offset is 0\n if (offset !== 0) {\n valueOffsets = valueOffsets.slice(0, length + 1);\n for (let i = -1; ++i <= length;) {\n valueOffsets[i] += offset;\n }\n }\n return valueOffsets;\n}\nexports.rebaseValueOffsets = rebaseValueOffsets;\n/** @ignore */\nfunction compareArrayLike(a, b) {\n let i = 0;\n const n = a.length;\n if (n !== b.length) {\n return false;\n }\n if (n > 0) {\n do {\n if (a[i] !== b[i]) {\n return false;\n }\n } while (++i < n);\n }\n return true;\n}\nexports.compareArrayLike = compareArrayLike;\n\n//# sourceMappingURL=buffer.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Field = exports.Schema = void 0;\nconst type_1 = require(\"./type\");\nclass Schema {\n constructor(fields = [], metadata, dictionaries) {\n this.fields = (fields || []);\n this.metadata = metadata || new Map();\n if (!dictionaries) {\n dictionaries = generateDictionaryMap(fields);\n }\n this.dictionaries = dictionaries;\n }\n get [Symbol.toStringTag]() { return 'Schema'; }\n toString() {\n return `Schema<{ ${this.fields.map((f, i) => `${i}: ${f}`).join(', ')} }>`;\n }\n select(...columnNames) {\n const names = columnNames.reduce((xs, x) => (xs[x] = true) && xs, Object.create(null));\n return new Schema(this.fields.filter((f) => names[f.name]), this.metadata);\n }\n selectAt(...columnIndices) {\n return new Schema(columnIndices.map((i) => this.fields[i]).filter(Boolean), this.metadata);\n }\n assign(...args) {\n const other = (args[0] instanceof Schema\n ? args[0]\n : Array.isArray(args[0])\n ? new Schema(args[0])\n : new Schema(args));\n const curFields = [...this.fields];\n const metadata = mergeMaps(mergeMaps(new Map(), this.metadata), other.metadata);\n const newFields = other.fields.filter((f2) => {\n const i = curFields.findIndex((f) => f.name === f2.name);\n return ~i ? (curFields[i] = f2.clone({\n metadata: mergeMaps(mergeMaps(new Map(), curFields[i].metadata), f2.metadata)\n })) && false : true;\n });\n const newDictionaries = generateDictionaryMap(newFields, new Map());\n return new Schema([...curFields, ...newFields], metadata, new Map([...this.dictionaries, ...newDictionaries]));\n }\n}\nexports.Schema = Schema;\nclass Field {\n constructor(name, type, nullable = false, metadata) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata || new Map();\n }\n /** @nocollapse */\n static new(...args) {\n let [name, type, nullable, metadata] = args;\n if (args[0] && typeof args[0] === 'object') {\n ({ name } = args[0]);\n (type === undefined) && (type = args[0].type);\n (nullable === undefined) && (nullable = args[0].nullable);\n (metadata === undefined) && (metadata = args[0].metadata);\n }\n return new Field(`${name}`, type, nullable, metadata);\n }\n get typeId() { return this.type.typeId; }\n get [Symbol.toStringTag]() { return 'Field'; }\n toString() { return `${this.name}: ${this.type}`; }\n clone(...args) {\n let [name, type, nullable, metadata] = args;\n (!args[0] || typeof args[0] !== 'object')\n ? ([name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata] = args)\n : ({ name = this.name, type = this.type, nullable = this.nullable, metadata = this.metadata } = args[0]);\n return Field.new(name, type, nullable, metadata);\n }\n}\nexports.Field = Field;\n/** @ignore */\nfunction mergeMaps(m1, m2) {\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n/** @ignore */\nfunction generateDictionaryMap(fields, dictionaries = new Map()) {\n for (let i = -1, n = fields.length; ++i < n;) {\n const field = fields[i];\n const type = field.type;\n if (type_1.DataType.isDictionary(type)) {\n if (!dictionaries.has(type.id)) {\n dictionaries.set(type.id, type.dictionary);\n }\n else if (dictionaries.get(type.id) !== type.dictionary) {\n throw new Error(`Cannot create Schema containing two different dictionaries with the same Id`);\n }\n }\n if (type.children && type.children.length > 0) {\n generateDictionaryMap(type.children, dictionaries);\n }\n }\n return dictionaries;\n}\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\nSchema.prototype.fields = null;\nSchema.prototype.metadata = null;\nSchema.prototype.dictionaries = null;\nField.prototype.type = null;\nField.prototype.name = null;\nField.prototype.nullable = null;\nField.prototype.metadata = null;\n\n//# sourceMappingURL=schema.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Utf8Builder = exports.SparseUnionBuilder = exports.DenseUnionBuilder = exports.UnionBuilder = exports.TimeNanosecondBuilder = exports.TimeMicrosecondBuilder = exports.TimeMillisecondBuilder = exports.TimeSecondBuilder = exports.TimeBuilder = exports.TimestampNanosecondBuilder = exports.TimestampMicrosecondBuilder = exports.TimestampMillisecondBuilder = exports.TimestampSecondBuilder = exports.TimestampBuilder = exports.StructBuilder = exports.NullBuilder = exports.MapBuilder = exports.ListBuilder = exports.Uint64Builder = exports.Uint32Builder = exports.Uint16Builder = exports.Uint8Builder = exports.Int64Builder = exports.Int32Builder = exports.Int16Builder = exports.Int8Builder = exports.IntBuilder = exports.IntervalYearMonthBuilder = exports.IntervalDayTimeBuilder = exports.IntervalBuilder = exports.Float64Builder = exports.Float32Builder = exports.Float16Builder = exports.FloatBuilder = exports.FixedSizeListBuilder = exports.FixedSizeBinaryBuilder = exports.DictionaryBuilder = exports.DecimalBuilder = exports.DateMillisecondBuilder = exports.DateDayBuilder = exports.DateBuilder = exports.BoolBuilder = exports.BinaryBuilder = exports.Builder = exports.util = exports.predicate = exports.CountByResult = exports.FilteredDataFrame = exports.DataFrame = exports.RecordBatch = exports.Message = exports.JSONMessageReader = exports.AsyncMessageReader = exports.MessageReader = exports.RecordBatchJSONWriter = exports.RecordBatchStreamWriter = exports.RecordBatchFileWriter = exports.RecordBatchWriter = exports.AsyncRecordBatchStreamReader = exports.AsyncRecordBatchFileReader = exports.RecordBatchStreamReader = exports.RecordBatchFileReader = exports.RecordBatchReader = exports.AsyncByteQueue = exports.AsyncByteStream = exports.ByteStream = exports.Utf8Vector = exports.SparseUnionVector = exports.DenseUnionVector = exports.UnionVector = exports.TimeNanosecondVector = exports.TimeMicrosecondVector = exports.TimeMillisecondVector = exports.TimeSecondVector = exports.TimeVector = exports.TimestampNanosecondVector = exports.TimestampMicrosecondVector = exports.TimestampMillisecondVector = exports.TimestampSecondVector = exports.TimestampVector = exports.StructVector = exports.NullVector = exports.MapVector = exports.ListVector = exports.Uint64Vector = exports.Uint32Vector = exports.Uint16Vector = exports.Uint8Vector = exports.Int64Vector = exports.Int32Vector = exports.Int16Vector = exports.Int8Vector = exports.IntVector = exports.IntervalYearMonthVector = exports.IntervalDayTimeVector = exports.IntervalVector = exports.Float64Vector = exports.Float32Vector = exports.Float16Vector = exports.FloatVector = exports.FixedSizeListVector = exports.FixedSizeBinaryVector = exports.DictionaryVector = exports.DecimalVector = exports.DateMillisecondVector = exports.DateDayVector = exports.DateVector = exports.Chunked = exports.BoolVector = exports.BinaryVector = exports.BaseVector = exports.Vector = exports.Visitor = exports.Field = exports.Schema = exports.Column = exports.Table = exports.Map_ = exports.FixedSizeList = exports.IntervalYearMonth = exports.IntervalDayTime = exports.Interval = exports.Dictionary = exports.SparseUnion = exports.DenseUnion = exports.Union = exports.Struct = exports.List = exports.Decimal = exports.TimeNanosecond = exports.TimeMicrosecond = exports.TimeMillisecond = exports.TimeSecond = exports.Time = exports.TimestampNanosecond = exports.TimestampMicrosecond = exports.TimestampMillisecond = exports.TimestampSecond = exports.Timestamp = exports.DateMillisecond = exports.DateDay = exports.Date_ = exports.FixedSizeBinary = exports.Binary = exports.Utf8 = exports.Float64 = exports.Float32 = exports.Float16 = exports.Float = exports.Uint64 = exports.Uint32 = exports.Uint16 = exports.Uint8 = exports.Int64 = exports.Int32 = exports.Int16 = exports.Int8 = exports.Int = exports.Bool = exports.Null = exports.DataType = exports.Data = exports.BufferType = exports.UnionMode = exports.Type = exports.TimeUnit = exports.Precision = exports.MetadataVersion = exports.MessageHeader = exports.IntervalUnit = exports.DateUnit = void 0;\nconst adapters_1 = require(\"./io/adapters\");\nconst index_1 = require(\"./builder/index\");\nconst reader_1 = require(\"./ipc/reader\");\nconst writer_1 = require(\"./ipc/writer\");\nconst iterable_1 = require(\"./io/whatwg/iterable\");\nconst builder_1 = require(\"./io/whatwg/builder\");\nconst reader_2 = require(\"./io/whatwg/reader\");\nconst writer_2 = require(\"./io/whatwg/writer\");\nadapters_1.default.toDOMStream = iterable_1.toDOMStream;\nindex_1.Builder['throughDOM'] = builder_1.builderThroughDOMStream;\nreader_1.RecordBatchReader['throughDOM'] = reader_2.recordBatchReaderThroughDOMStream;\nreader_1.RecordBatchFileReader['throughDOM'] = reader_2.recordBatchReaderThroughDOMStream;\nreader_1.RecordBatchStreamReader['throughDOM'] = reader_2.recordBatchReaderThroughDOMStream;\nwriter_1.RecordBatchWriter['throughDOM'] = writer_2.recordBatchWriterThroughDOMStream;\nwriter_1.RecordBatchFileWriter['throughDOM'] = writer_2.recordBatchWriterThroughDOMStream;\nwriter_1.RecordBatchStreamWriter['throughDOM'] = writer_2.recordBatchWriterThroughDOMStream;\nvar Arrow_1 = require(\"./Arrow\");\nObject.defineProperty(exports, \"DateUnit\", { enumerable: true, get: function () { return Arrow_1.DateUnit; } });\nObject.defineProperty(exports, \"IntervalUnit\", { enumerable: true, get: function () { return Arrow_1.IntervalUnit; } });\nObject.defineProperty(exports, \"MessageHeader\", { enumerable: true, get: function () { return Arrow_1.MessageHeader; } });\nObject.defineProperty(exports, \"MetadataVersion\", { enumerable: true, get: function () { return Arrow_1.MetadataVersion; } });\nObject.defineProperty(exports, \"Precision\", { enumerable: true, get: function () { return Arrow_1.Precision; } });\nObject.defineProperty(exports, \"TimeUnit\", { enumerable: true, get: function () { return Arrow_1.TimeUnit; } });\nObject.defineProperty(exports, \"Type\", { enumerable: true, get: function () { return Arrow_1.Type; } });\nObject.defineProperty(exports, \"UnionMode\", { enumerable: true, get: function () { return Arrow_1.UnionMode; } });\nObject.defineProperty(exports, \"BufferType\", { enumerable: true, get: function () { return Arrow_1.BufferType; } });\nObject.defineProperty(exports, \"Data\", { enumerable: true, get: function () { return Arrow_1.Data; } });\nObject.defineProperty(exports, \"DataType\", { enumerable: true, get: function () { return Arrow_1.DataType; } });\nObject.defineProperty(exports, \"Null\", { enumerable: true, get: function () { return Arrow_1.Null; } });\nObject.defineProperty(exports, \"Bool\", { enumerable: true, get: function () { return Arrow_1.Bool; } });\nObject.defineProperty(exports, \"Int\", { enumerable: true, get: function () { return Arrow_1.Int; } });\nObject.defineProperty(exports, \"Int8\", { enumerable: true, get: function () { return Arrow_1.Int8; } });\nObject.defineProperty(exports, \"Int16\", { enumerable: true, get: function () { return Arrow_1.Int16; } });\nObject.defineProperty(exports, \"Int32\", { enumerable: true, get: function () { return Arrow_1.Int32; } });\nObject.defineProperty(exports, \"Int64\", { enumerable: true, get: function () { return Arrow_1.Int64; } });\nObject.defineProperty(exports, \"Uint8\", { enumerable: true, get: function () { return Arrow_1.Uint8; } });\nObject.defineProperty(exports, \"Uint16\", { enumerable: true, get: function () { return Arrow_1.Uint16; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return Arrow_1.Uint32; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return Arrow_1.Uint64; } });\nObject.defineProperty(exports, \"Float\", { enumerable: true, get: function () { return Arrow_1.Float; } });\nObject.defineProperty(exports, \"Float16\", { enumerable: true, get: function () { return Arrow_1.Float16; } });\nObject.defineProperty(exports, \"Float32\", { enumerable: true, get: function () { return Arrow_1.Float32; } });\nObject.defineProperty(exports, \"Float64\", { enumerable: true, get: function () { return Arrow_1.Float64; } });\nObject.defineProperty(exports, \"Utf8\", { enumerable: true, get: function () { return Arrow_1.Utf8; } });\nObject.defineProperty(exports, \"Binary\", { enumerable: true, get: function () { return Arrow_1.Binary; } });\nObject.defineProperty(exports, \"FixedSizeBinary\", { enumerable: true, get: function () { return Arrow_1.FixedSizeBinary; } });\nObject.defineProperty(exports, \"Date_\", { enumerable: true, get: function () { return Arrow_1.Date_; } });\nObject.defineProperty(exports, \"DateDay\", { enumerable: true, get: function () { return Arrow_1.DateDay; } });\nObject.defineProperty(exports, \"DateMillisecond\", { enumerable: true, get: function () { return Arrow_1.DateMillisecond; } });\nObject.defineProperty(exports, \"Timestamp\", { enumerable: true, get: function () { return Arrow_1.Timestamp; } });\nObject.defineProperty(exports, \"TimestampSecond\", { enumerable: true, get: function () { return Arrow_1.TimestampSecond; } });\nObject.defineProperty(exports, \"TimestampMillisecond\", { enumerable: true, get: function () { return Arrow_1.TimestampMillisecond; } });\nObject.defineProperty(exports, \"TimestampMicrosecond\", { enumerable: true, get: function () { return Arrow_1.TimestampMicrosecond; } });\nObject.defineProperty(exports, \"TimestampNanosecond\", { enumerable: true, get: function () { return Arrow_1.TimestampNanosecond; } });\nObject.defineProperty(exports, \"Time\", { enumerable: true, get: function () { return Arrow_1.Time; } });\nObject.defineProperty(exports, \"TimeSecond\", { enumerable: true, get: function () { return Arrow_1.TimeSecond; } });\nObject.defineProperty(exports, \"TimeMillisecond\", { enumerable: true, get: function () { return Arrow_1.TimeMillisecond; } });\nObject.defineProperty(exports, \"TimeMicrosecond\", { enumerable: true, get: function () { return Arrow_1.TimeMicrosecond; } });\nObject.defineProperty(exports, \"TimeNanosecond\", { enumerable: true, get: function () { return Arrow_1.TimeNanosecond; } });\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return Arrow_1.Decimal; } });\nObject.defineProperty(exports, \"List\", { enumerable: true, get: function () { return Arrow_1.List; } });\nObject.defineProperty(exports, \"Struct\", { enumerable: true, get: function () { return Arrow_1.Struct; } });\nObject.defineProperty(exports, \"Union\", { enumerable: true, get: function () { return Arrow_1.Union; } });\nObject.defineProperty(exports, \"DenseUnion\", { enumerable: true, get: function () { return Arrow_1.DenseUnion; } });\nObject.defineProperty(exports, \"SparseUnion\", { enumerable: true, get: function () { return Arrow_1.SparseUnion; } });\nObject.defineProperty(exports, \"Dictionary\", { enumerable: true, get: function () { return Arrow_1.Dictionary; } });\nObject.defineProperty(exports, \"Interval\", { enumerable: true, get: function () { return Arrow_1.Interval; } });\nObject.defineProperty(exports, \"IntervalDayTime\", { enumerable: true, get: function () { return Arrow_1.IntervalDayTime; } });\nObject.defineProperty(exports, \"IntervalYearMonth\", { enumerable: true, get: function () { return Arrow_1.IntervalYearMonth; } });\nObject.defineProperty(exports, \"FixedSizeList\", { enumerable: true, get: function () { return Arrow_1.FixedSizeList; } });\nObject.defineProperty(exports, \"Map_\", { enumerable: true, get: function () { return Arrow_1.Map_; } });\nObject.defineProperty(exports, \"Table\", { enumerable: true, get: function () { return Arrow_1.Table; } });\nObject.defineProperty(exports, \"Column\", { enumerable: true, get: function () { return Arrow_1.Column; } });\nObject.defineProperty(exports, \"Schema\", { enumerable: true, get: function () { return Arrow_1.Schema; } });\nObject.defineProperty(exports, \"Field\", { enumerable: true, get: function () { return Arrow_1.Field; } });\nObject.defineProperty(exports, \"Visitor\", { enumerable: true, get: function () { return Arrow_1.Visitor; } });\nObject.defineProperty(exports, \"Vector\", { enumerable: true, get: function () { return Arrow_1.Vector; } });\nObject.defineProperty(exports, \"BaseVector\", { enumerable: true, get: function () { return Arrow_1.BaseVector; } });\nObject.defineProperty(exports, \"BinaryVector\", { enumerable: true, get: function () { return Arrow_1.BinaryVector; } });\nObject.defineProperty(exports, \"BoolVector\", { enumerable: true, get: function () { return Arrow_1.BoolVector; } });\nObject.defineProperty(exports, \"Chunked\", { enumerable: true, get: function () { return Arrow_1.Chunked; } });\nObject.defineProperty(exports, \"DateVector\", { enumerable: true, get: function () { return Arrow_1.DateVector; } });\nObject.defineProperty(exports, \"DateDayVector\", { enumerable: true, get: function () { return Arrow_1.DateDayVector; } });\nObject.defineProperty(exports, \"DateMillisecondVector\", { enumerable: true, get: function () { return Arrow_1.DateMillisecondVector; } });\nObject.defineProperty(exports, \"DecimalVector\", { enumerable: true, get: function () { return Arrow_1.DecimalVector; } });\nObject.defineProperty(exports, \"DictionaryVector\", { enumerable: true, get: function () { return Arrow_1.DictionaryVector; } });\nObject.defineProperty(exports, \"FixedSizeBinaryVector\", { enumerable: true, get: function () { return Arrow_1.FixedSizeBinaryVector; } });\nObject.defineProperty(exports, \"FixedSizeListVector\", { enumerable: true, get: function () { return Arrow_1.FixedSizeListVector; } });\nObject.defineProperty(exports, \"FloatVector\", { enumerable: true, get: function () { return Arrow_1.FloatVector; } });\nObject.defineProperty(exports, \"Float16Vector\", { enumerable: true, get: function () { return Arrow_1.Float16Vector; } });\nObject.defineProperty(exports, \"Float32Vector\", { enumerable: true, get: function () { return Arrow_1.Float32Vector; } });\nObject.defineProperty(exports, \"Float64Vector\", { enumerable: true, get: function () { return Arrow_1.Float64Vector; } });\nObject.defineProperty(exports, \"IntervalVector\", { enumerable: true, get: function () { return Arrow_1.IntervalVector; } });\nObject.defineProperty(exports, \"IntervalDayTimeVector\", { enumerable: true, get: function () { return Arrow_1.IntervalDayTimeVector; } });\nObject.defineProperty(exports, \"IntervalYearMonthVector\", { enumerable: true, get: function () { return Arrow_1.IntervalYearMonthVector; } });\nObject.defineProperty(exports, \"IntVector\", { enumerable: true, get: function () { return Arrow_1.IntVector; } });\nObject.defineProperty(exports, \"Int8Vector\", { enumerable: true, get: function () { return Arrow_1.Int8Vector; } });\nObject.defineProperty(exports, \"Int16Vector\", { enumerable: true, get: function () { return Arrow_1.Int16Vector; } });\nObject.defineProperty(exports, \"Int32Vector\", { enumerable: true, get: function () { return Arrow_1.Int32Vector; } });\nObject.defineProperty(exports, \"Int64Vector\", { enumerable: true, get: function () { return Arrow_1.Int64Vector; } });\nObject.defineProperty(exports, \"Uint8Vector\", { enumerable: true, get: function () { return Arrow_1.Uint8Vector; } });\nObject.defineProperty(exports, \"Uint16Vector\", { enumerable: true, get: function () { return Arrow_1.Uint16Vector; } });\nObject.defineProperty(exports, \"Uint32Vector\", { enumerable: true, get: function () { return Arrow_1.Uint32Vector; } });\nObject.defineProperty(exports, \"Uint64Vector\", { enumerable: true, get: function () { return Arrow_1.Uint64Vector; } });\nObject.defineProperty(exports, \"ListVector\", { enumerable: true, get: function () { return Arrow_1.ListVector; } });\nObject.defineProperty(exports, \"MapVector\", { enumerable: true, get: function () { return Arrow_1.MapVector; } });\nObject.defineProperty(exports, \"NullVector\", { enumerable: true, get: function () { return Arrow_1.NullVector; } });\nObject.defineProperty(exports, \"StructVector\", { enumerable: true, get: function () { return Arrow_1.StructVector; } });\nObject.defineProperty(exports, \"TimestampVector\", { enumerable: true, get: function () { return Arrow_1.TimestampVector; } });\nObject.defineProperty(exports, \"TimestampSecondVector\", { enumerable: true, get: function () { return Arrow_1.TimestampSecondVector; } });\nObject.defineProperty(exports, \"TimestampMillisecondVector\", { enumerable: true, get: function () { return Arrow_1.TimestampMillisecondVector; } });\nObject.defineProperty(exports, \"TimestampMicrosecondVector\", { enumerable: true, get: function () { return Arrow_1.TimestampMicrosecondVector; } });\nObject.defineProperty(exports, \"TimestampNanosecondVector\", { enumerable: true, get: function () { return Arrow_1.TimestampNanosecondVector; } });\nObject.defineProperty(exports, \"TimeVector\", { enumerable: true, get: function () { return Arrow_1.TimeVector; } });\nObject.defineProperty(exports, \"TimeSecondVector\", { enumerable: true, get: function () { return Arrow_1.TimeSecondVector; } });\nObject.defineProperty(exports, \"TimeMillisecondVector\", { enumerable: true, get: function () { return Arrow_1.TimeMillisecondVector; } });\nObject.defineProperty(exports, \"TimeMicrosecondVector\", { enumerable: true, get: function () { return Arrow_1.TimeMicrosecondVector; } });\nObject.defineProperty(exports, \"TimeNanosecondVector\", { enumerable: true, get: function () { return Arrow_1.TimeNanosecondVector; } });\nObject.defineProperty(exports, \"UnionVector\", { enumerable: true, get: function () { return Arrow_1.UnionVector; } });\nObject.defineProperty(exports, \"DenseUnionVector\", { enumerable: true, get: function () { return Arrow_1.DenseUnionVector; } });\nObject.defineProperty(exports, \"SparseUnionVector\", { enumerable: true, get: function () { return Arrow_1.SparseUnionVector; } });\nObject.defineProperty(exports, \"Utf8Vector\", { enumerable: true, get: function () { return Arrow_1.Utf8Vector; } });\nObject.defineProperty(exports, \"ByteStream\", { enumerable: true, get: function () { return Arrow_1.ByteStream; } });\nObject.defineProperty(exports, \"AsyncByteStream\", { enumerable: true, get: function () { return Arrow_1.AsyncByteStream; } });\nObject.defineProperty(exports, \"AsyncByteQueue\", { enumerable: true, get: function () { return Arrow_1.AsyncByteQueue; } });\nObject.defineProperty(exports, \"RecordBatchReader\", { enumerable: true, get: function () { return Arrow_1.RecordBatchReader; } });\nObject.defineProperty(exports, \"RecordBatchFileReader\", { enumerable: true, get: function () { return Arrow_1.RecordBatchFileReader; } });\nObject.defineProperty(exports, \"RecordBatchStreamReader\", { enumerable: true, get: function () { return Arrow_1.RecordBatchStreamReader; } });\nObject.defineProperty(exports, \"AsyncRecordBatchFileReader\", { enumerable: true, get: function () { return Arrow_1.AsyncRecordBatchFileReader; } });\nObject.defineProperty(exports, \"AsyncRecordBatchStreamReader\", { enumerable: true, get: function () { return Arrow_1.AsyncRecordBatchStreamReader; } });\nObject.defineProperty(exports, \"RecordBatchWriter\", { enumerable: true, get: function () { return Arrow_1.RecordBatchWriter; } });\nObject.defineProperty(exports, \"RecordBatchFileWriter\", { enumerable: true, get: function () { return Arrow_1.RecordBatchFileWriter; } });\nObject.defineProperty(exports, \"RecordBatchStreamWriter\", { enumerable: true, get: function () { return Arrow_1.RecordBatchStreamWriter; } });\nObject.defineProperty(exports, \"RecordBatchJSONWriter\", { enumerable: true, get: function () { return Arrow_1.RecordBatchJSONWriter; } });\nObject.defineProperty(exports, \"MessageReader\", { enumerable: true, get: function () { return Arrow_1.MessageReader; } });\nObject.defineProperty(exports, \"AsyncMessageReader\", { enumerable: true, get: function () { return Arrow_1.AsyncMessageReader; } });\nObject.defineProperty(exports, \"JSONMessageReader\", { enumerable: true, get: function () { return Arrow_1.JSONMessageReader; } });\nObject.defineProperty(exports, \"Message\", { enumerable: true, get: function () { return Arrow_1.Message; } });\nObject.defineProperty(exports, \"RecordBatch\", { enumerable: true, get: function () { return Arrow_1.RecordBatch; } });\nObject.defineProperty(exports, \"DataFrame\", { enumerable: true, get: function () { return Arrow_1.DataFrame; } });\nObject.defineProperty(exports, \"FilteredDataFrame\", { enumerable: true, get: function () { return Arrow_1.FilteredDataFrame; } });\nObject.defineProperty(exports, \"CountByResult\", { enumerable: true, get: function () { return Arrow_1.CountByResult; } });\nObject.defineProperty(exports, \"predicate\", { enumerable: true, get: function () { return Arrow_1.predicate; } });\nObject.defineProperty(exports, \"util\", { enumerable: true, get: function () { return Arrow_1.util; } });\nObject.defineProperty(exports, \"Builder\", { enumerable: true, get: function () { return Arrow_1.Builder; } });\nObject.defineProperty(exports, \"BinaryBuilder\", { enumerable: true, get: function () { return Arrow_1.BinaryBuilder; } });\nObject.defineProperty(exports, \"BoolBuilder\", { enumerable: true, get: function () { return Arrow_1.BoolBuilder; } });\nObject.defineProperty(exports, \"DateBuilder\", { enumerable: true, get: function () { return Arrow_1.DateBuilder; } });\nObject.defineProperty(exports, \"DateDayBuilder\", { enumerable: true, get: function () { return Arrow_1.DateDayBuilder; } });\nObject.defineProperty(exports, \"DateMillisecondBuilder\", { enumerable: true, get: function () { return Arrow_1.DateMillisecondBuilder; } });\nObject.defineProperty(exports, \"DecimalBuilder\", { enumerable: true, get: function () { return Arrow_1.DecimalBuilder; } });\nObject.defineProperty(exports, \"DictionaryBuilder\", { enumerable: true, get: function () { return Arrow_1.DictionaryBuilder; } });\nObject.defineProperty(exports, \"FixedSizeBinaryBuilder\", { enumerable: true, get: function () { return Arrow_1.FixedSizeBinaryBuilder; } });\nObject.defineProperty(exports, \"FixedSizeListBuilder\", { enumerable: true, get: function () { return Arrow_1.FixedSizeListBuilder; } });\nObject.defineProperty(exports, \"FloatBuilder\", { enumerable: true, get: function () { return Arrow_1.FloatBuilder; } });\nObject.defineProperty(exports, \"Float16Builder\", { enumerable: true, get: function () { return Arrow_1.Float16Builder; } });\nObject.defineProperty(exports, \"Float32Builder\", { enumerable: true, get: function () { return Arrow_1.Float32Builder; } });\nObject.defineProperty(exports, \"Float64Builder\", { enumerable: true, get: function () { return Arrow_1.Float64Builder; } });\nObject.defineProperty(exports, \"IntervalBuilder\", { enumerable: true, get: function () { return Arrow_1.IntervalBuilder; } });\nObject.defineProperty(exports, \"IntervalDayTimeBuilder\", { enumerable: true, get: function () { return Arrow_1.IntervalDayTimeBuilder; } });\nObject.defineProperty(exports, \"IntervalYearMonthBuilder\", { enumerable: true, get: function () { return Arrow_1.IntervalYearMonthBuilder; } });\nObject.defineProperty(exports, \"IntBuilder\", { enumerable: true, get: function () { return Arrow_1.IntBuilder; } });\nObject.defineProperty(exports, \"Int8Builder\", { enumerable: true, get: function () { return Arrow_1.Int8Builder; } });\nObject.defineProperty(exports, \"Int16Builder\", { enumerable: true, get: function () { return Arrow_1.Int16Builder; } });\nObject.defineProperty(exports, \"Int32Builder\", { enumerable: true, get: function () { return Arrow_1.Int32Builder; } });\nObject.defineProperty(exports, \"Int64Builder\", { enumerable: true, get: function () { return Arrow_1.Int64Builder; } });\nObject.defineProperty(exports, \"Uint8Builder\", { enumerable: true, get: function () { return Arrow_1.Uint8Builder; } });\nObject.defineProperty(exports, \"Uint16Builder\", { enumerable: true, get: function () { return Arrow_1.Uint16Builder; } });\nObject.defineProperty(exports, \"Uint32Builder\", { enumerable: true, get: function () { return Arrow_1.Uint32Builder; } });\nObject.defineProperty(exports, \"Uint64Builder\", { enumerable: true, get: function () { return Arrow_1.Uint64Builder; } });\nObject.defineProperty(exports, \"ListBuilder\", { enumerable: true, get: function () { return Arrow_1.ListBuilder; } });\nObject.defineProperty(exports, \"MapBuilder\", { enumerable: true, get: function () { return Arrow_1.MapBuilder; } });\nObject.defineProperty(exports, \"NullBuilder\", { enumerable: true, get: function () { return Arrow_1.NullBuilder; } });\nObject.defineProperty(exports, \"StructBuilder\", { enumerable: true, get: function () { return Arrow_1.StructBuilder; } });\nObject.defineProperty(exports, \"TimestampBuilder\", { enumerable: true, get: function () { return Arrow_1.TimestampBuilder; } });\nObject.defineProperty(exports, \"TimestampSecondBuilder\", { enumerable: true, get: function () { return Arrow_1.TimestampSecondBuilder; } });\nObject.defineProperty(exports, \"TimestampMillisecondBuilder\", { enumerable: true, get: function () { return Arrow_1.TimestampMillisecondBuilder; } });\nObject.defineProperty(exports, \"TimestampMicrosecondBuilder\", { enumerable: true, get: function () { return Arrow_1.TimestampMicrosecondBuilder; } });\nObject.defineProperty(exports, \"TimestampNanosecondBuilder\", { enumerable: true, get: function () { return Arrow_1.TimestampNanosecondBuilder; } });\nObject.defineProperty(exports, \"TimeBuilder\", { enumerable: true, get: function () { return Arrow_1.TimeBuilder; } });\nObject.defineProperty(exports, \"TimeSecondBuilder\", { enumerable: true, get: function () { return Arrow_1.TimeSecondBuilder; } });\nObject.defineProperty(exports, \"TimeMillisecondBuilder\", { enumerable: true, get: function () { return Arrow_1.TimeMillisecondBuilder; } });\nObject.defineProperty(exports, \"TimeMicrosecondBuilder\", { enumerable: true, get: function () { return Arrow_1.TimeMicrosecondBuilder; } });\nObject.defineProperty(exports, \"TimeNanosecondBuilder\", { enumerable: true, get: function () { return Arrow_1.TimeNanosecondBuilder; } });\nObject.defineProperty(exports, \"UnionBuilder\", { enumerable: true, get: function () { return Arrow_1.UnionBuilder; } });\nObject.defineProperty(exports, \"DenseUnionBuilder\", { enumerable: true, get: function () { return Arrow_1.DenseUnionBuilder; } });\nObject.defineProperty(exports, \"SparseUnionBuilder\", { enumerable: true, get: function () { return Arrow_1.SparseUnionBuilder; } });\nObject.defineProperty(exports, \"Utf8Builder\", { enumerable: true, get: function () { return Arrow_1.Utf8Builder; } });\n\n//# sourceMappingURL=Arrow.dom.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Visitor = void 0;\nconst data_1 = require(\"./data\");\nconst vector_1 = require(\"./vector\");\nconst enum_1 = require(\"./enum\");\nconst type_1 = require(\"./type\");\nclass Visitor {\n visitMany(nodes, ...args) {\n return nodes.map((node, i) => this.visit(node, ...args.map((x) => x[i])));\n }\n visit(...args) {\n return this.getVisitFn(args[0], false).apply(this, args);\n }\n getVisitFn(node, throwIfNotFound = true) {\n return getVisitFn(this, node, throwIfNotFound);\n }\n visitNull(_node, ..._args) { return null; }\n visitBool(_node, ..._args) { return null; }\n visitInt(_node, ..._args) { return null; }\n visitFloat(_node, ..._args) { return null; }\n visitUtf8(_node, ..._args) { return null; }\n visitBinary(_node, ..._args) { return null; }\n visitFixedSizeBinary(_node, ..._args) { return null; }\n visitDate(_node, ..._args) { return null; }\n visitTimestamp(_node, ..._args) { return null; }\n visitTime(_node, ..._args) { return null; }\n visitDecimal(_node, ..._args) { return null; }\n visitList(_node, ..._args) { return null; }\n visitStruct(_node, ..._args) { return null; }\n visitUnion(_node, ..._args) { return null; }\n visitDictionary(_node, ..._args) { return null; }\n visitInterval(_node, ..._args) { return null; }\n visitFixedSizeList(_node, ..._args) { return null; }\n visitMap(_node, ..._args) { return null; }\n}\nexports.Visitor = Visitor;\n/** @ignore */\nfunction getVisitFn(visitor, node, throwIfNotFound = true) {\n let fn = null;\n let dtype = enum_1.Type.NONE;\n if (node instanceof data_1.Data)\n dtype = inferDType(node.type);\n else if (node instanceof vector_1.Vector)\n dtype = inferDType(node.type);\n else if (node instanceof type_1.DataType)\n dtype = inferDType(node);\n else if (typeof (dtype = node) !== 'number')\n dtype = enum_1.Type[node];\n switch (dtype) {\n case enum_1.Type.Null:\n fn = visitor.visitNull;\n break;\n case enum_1.Type.Bool:\n fn = visitor.visitBool;\n break;\n case enum_1.Type.Int:\n fn = visitor.visitInt;\n break;\n case enum_1.Type.Int8:\n fn = visitor.visitInt8 || visitor.visitInt;\n break;\n case enum_1.Type.Int16:\n fn = visitor.visitInt16 || visitor.visitInt;\n break;\n case enum_1.Type.Int32:\n fn = visitor.visitInt32 || visitor.visitInt;\n break;\n case enum_1.Type.Int64:\n fn = visitor.visitInt64 || visitor.visitInt;\n break;\n case enum_1.Type.Uint8:\n fn = visitor.visitUint8 || visitor.visitInt;\n break;\n case enum_1.Type.Uint16:\n fn = visitor.visitUint16 || visitor.visitInt;\n break;\n case enum_1.Type.Uint32:\n fn = visitor.visitUint32 || visitor.visitInt;\n break;\n case enum_1.Type.Uint64:\n fn = visitor.visitUint64 || visitor.visitInt;\n break;\n case enum_1.Type.Float:\n fn = visitor.visitFloat;\n break;\n case enum_1.Type.Float16:\n fn = visitor.visitFloat16 || visitor.visitFloat;\n break;\n case enum_1.Type.Float32:\n fn = visitor.visitFloat32 || visitor.visitFloat;\n break;\n case enum_1.Type.Float64:\n fn = visitor.visitFloat64 || visitor.visitFloat;\n break;\n case enum_1.Type.Utf8:\n fn = visitor.visitUtf8;\n break;\n case enum_1.Type.Binary:\n fn = visitor.visitBinary;\n break;\n case enum_1.Type.FixedSizeBinary:\n fn = visitor.visitFixedSizeBinary;\n break;\n case enum_1.Type.Date:\n fn = visitor.visitDate;\n break;\n case enum_1.Type.DateDay:\n fn = visitor.visitDateDay || visitor.visitDate;\n break;\n case enum_1.Type.DateMillisecond:\n fn = visitor.visitDateMillisecond || visitor.visitDate;\n break;\n case enum_1.Type.Timestamp:\n fn = visitor.visitTimestamp;\n break;\n case enum_1.Type.TimestampSecond:\n fn = visitor.visitTimestampSecond || visitor.visitTimestamp;\n break;\n case enum_1.Type.TimestampMillisecond:\n fn = visitor.visitTimestampMillisecond || visitor.visitTimestamp;\n break;\n case enum_1.Type.TimestampMicrosecond:\n fn = visitor.visitTimestampMicrosecond || visitor.visitTimestamp;\n break;\n case enum_1.Type.TimestampNanosecond:\n fn = visitor.visitTimestampNanosecond || visitor.visitTimestamp;\n break;\n case enum_1.Type.Time:\n fn = visitor.visitTime;\n break;\n case enum_1.Type.TimeSecond:\n fn = visitor.visitTimeSecond || visitor.visitTime;\n break;\n case enum_1.Type.TimeMillisecond:\n fn = visitor.visitTimeMillisecond || visitor.visitTime;\n break;\n case enum_1.Type.TimeMicrosecond:\n fn = visitor.visitTimeMicrosecond || visitor.visitTime;\n break;\n case enum_1.Type.TimeNanosecond:\n fn = visitor.visitTimeNanosecond || visitor.visitTime;\n break;\n case enum_1.Type.Decimal:\n fn = visitor.visitDecimal;\n break;\n case enum_1.Type.List:\n fn = visitor.visitList;\n break;\n case enum_1.Type.Struct:\n fn = visitor.visitStruct;\n break;\n case enum_1.Type.Union:\n fn = visitor.visitUnion;\n break;\n case enum_1.Type.DenseUnion:\n fn = visitor.visitDenseUnion || visitor.visitUnion;\n break;\n case enum_1.Type.SparseUnion:\n fn = visitor.visitSparseUnion || visitor.visitUnion;\n break;\n case enum_1.Type.Dictionary:\n fn = visitor.visitDictionary;\n break;\n case enum_1.Type.Interval:\n fn = visitor.visitInterval;\n break;\n case enum_1.Type.IntervalDayTime:\n fn = visitor.visitIntervalDayTime || visitor.visitInterval;\n break;\n case enum_1.Type.IntervalYearMonth:\n fn = visitor.visitIntervalYearMonth || visitor.visitInterval;\n break;\n case enum_1.Type.FixedSizeList:\n fn = visitor.visitFixedSizeList;\n break;\n case enum_1.Type.Map:\n fn = visitor.visitMap;\n break;\n }\n if (typeof fn === 'function')\n return fn;\n if (!throwIfNotFound)\n return () => null;\n throw new Error(`Unrecognized type '${enum_1.Type[dtype]}'`);\n}\n/** @ignore */\nfunction inferDType(type) {\n switch (type.typeId) {\n case enum_1.Type.Null: return enum_1.Type.Null;\n case enum_1.Type.Int: {\n const { bitWidth, isSigned } = type;\n switch (bitWidth) {\n case 8: return isSigned ? enum_1.Type.Int8 : enum_1.Type.Uint8;\n case 16: return isSigned ? enum_1.Type.Int16 : enum_1.Type.Uint16;\n case 32: return isSigned ? enum_1.Type.Int32 : enum_1.Type.Uint32;\n case 64: return isSigned ? enum_1.Type.Int64 : enum_1.Type.Uint64;\n }\n // @ts-ignore\n return enum_1.Type.Int;\n }\n case enum_1.Type.Float:\n switch (type.precision) {\n case enum_1.Precision.HALF: return enum_1.Type.Float16;\n case enum_1.Precision.SINGLE: return enum_1.Type.Float32;\n case enum_1.Precision.DOUBLE: return enum_1.Type.Float64;\n }\n // @ts-ignore\n return enum_1.Type.Float;\n case enum_1.Type.Binary: return enum_1.Type.Binary;\n case enum_1.Type.Utf8: return enum_1.Type.Utf8;\n case enum_1.Type.Bool: return enum_1.Type.Bool;\n case enum_1.Type.Decimal: return enum_1.Type.Decimal;\n case enum_1.Type.Time:\n switch (type.unit) {\n case enum_1.TimeUnit.SECOND: return enum_1.Type.TimeSecond;\n case enum_1.TimeUnit.MILLISECOND: return enum_1.Type.TimeMillisecond;\n case enum_1.TimeUnit.MICROSECOND: return enum_1.Type.TimeMicrosecond;\n case enum_1.TimeUnit.NANOSECOND: return enum_1.Type.TimeNanosecond;\n }\n // @ts-ignore\n return enum_1.Type.Time;\n case enum_1.Type.Timestamp:\n switch (type.unit) {\n case enum_1.TimeUnit.SECOND: return enum_1.Type.TimestampSecond;\n case enum_1.TimeUnit.MILLISECOND: return enum_1.Type.TimestampMillisecond;\n case enum_1.TimeUnit.MICROSECOND: return enum_1.Type.TimestampMicrosecond;\n case enum_1.TimeUnit.NANOSECOND: return enum_1.Type.TimestampNanosecond;\n }\n // @ts-ignore\n return enum_1.Type.Timestamp;\n case enum_1.Type.Date:\n switch (type.unit) {\n case enum_1.DateUnit.DAY: return enum_1.Type.DateDay;\n case enum_1.DateUnit.MILLISECOND: return enum_1.Type.DateMillisecond;\n }\n // @ts-ignore\n return enum_1.Type.Date;\n case enum_1.Type.Interval:\n switch (type.unit) {\n case enum_1.IntervalUnit.DAY_TIME: return enum_1.Type.IntervalDayTime;\n case enum_1.IntervalUnit.YEAR_MONTH: return enum_1.Type.IntervalYearMonth;\n }\n // @ts-ignore\n return enum_1.Type.Interval;\n case enum_1.Type.Map: return enum_1.Type.Map;\n case enum_1.Type.List: return enum_1.Type.List;\n case enum_1.Type.Struct: return enum_1.Type.Struct;\n case enum_1.Type.Union:\n switch (type.mode) {\n case enum_1.UnionMode.Dense: return enum_1.Type.DenseUnion;\n case enum_1.UnionMode.Sparse: return enum_1.Type.SparseUnion;\n }\n // @ts-ignore\n return enum_1.Type.Union;\n case enum_1.Type.FixedSizeBinary: return enum_1.Type.FixedSizeBinary;\n case enum_1.Type.FixedSizeList: return enum_1.Type.FixedSizeList;\n case enum_1.Type.Dictionary: return enum_1.Type.Dictionary;\n }\n throw new Error(`Unrecognized type '${enum_1.Type[type.typeId]}'`);\n}\n// Add these here so they're picked up by the externs creator\n// in the build, and closure-compiler doesn't minify them away\nVisitor.prototype.visitInt8 = null;\nVisitor.prototype.visitInt16 = null;\nVisitor.prototype.visitInt32 = null;\nVisitor.prototype.visitInt64 = null;\nVisitor.prototype.visitUint8 = null;\nVisitor.prototype.visitUint16 = null;\nVisitor.prototype.visitUint32 = null;\nVisitor.prototype.visitUint64 = null;\nVisitor.prototype.visitFloat16 = null;\nVisitor.prototype.visitFloat32 = null;\nVisitor.prototype.visitFloat64 = null;\nVisitor.prototype.visitDateDay = null;\nVisitor.prototype.visitDateMillisecond = null;\nVisitor.prototype.visitTimestampSecond = null;\nVisitor.prototype.visitTimestampMillisecond = null;\nVisitor.prototype.visitTimestampMicrosecond = null;\nVisitor.prototype.visitTimestampNanosecond = null;\nVisitor.prototype.visitTimeSecond = null;\nVisitor.prototype.visitTimeMillisecond = null;\nVisitor.prototype.visitTimeMicrosecond = null;\nVisitor.prototype.visitTimeNanosecond = null;\nVisitor.prototype.visitDenseUnion = null;\nVisitor.prototype.visitSparseUnion = null;\nVisitor.prototype.visitIntervalDayTime = null;\nVisitor.prototype.visitIntervalYearMonth = null;\n\n//# sourceMappingURL=visitor.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isReadableNodeStream = exports.isWritableNodeStream = exports.isReadableDOMStream = exports.isWritableDOMStream = exports.isFetchResponse = exports.isFSReadStream = exports.isFileHandle = exports.isUnderlyingSink = exports.isIteratorResult = exports.isArrayLike = exports.isArrowJSON = exports.isAsyncIterable = exports.isIterable = exports.isObservable = exports.isPromise = exports.isObject = exports.BigUint64ArrayAvailable = exports.BigUint64Array = exports.BigInt64ArrayAvailable = exports.BigInt64Array = exports.BigIntAvailable = exports.BigInt = void 0;\nconst interfaces_1 = require(\"../io/interfaces\");\n/** @ignore */\nconst [BigIntCtor, BigIntAvailable] = (() => {\n const BigIntUnavailableError = () => { throw new Error('BigInt is not available in this environment'); };\n function BigIntUnavailable() { throw BigIntUnavailableError(); }\n BigIntUnavailable.asIntN = () => { throw BigIntUnavailableError(); };\n BigIntUnavailable.asUintN = () => { throw BigIntUnavailableError(); };\n return typeof BigInt !== 'undefined' ? [BigInt, true] : [BigIntUnavailable, false];\n})();\nexports.BigInt = BigIntCtor;\nexports.BigIntAvailable = BigIntAvailable;\n/** @ignore */\nconst [BigInt64ArrayCtor, BigInt64ArrayAvailable] = (() => {\n const BigInt64ArrayUnavailableError = () => { throw new Error('BigInt64Array is not available in this environment'); };\n class BigInt64ArrayUnavailable {\n static get BYTES_PER_ELEMENT() { return 8; }\n static of() { throw BigInt64ArrayUnavailableError(); }\n static from() { throw BigInt64ArrayUnavailableError(); }\n constructor() { throw BigInt64ArrayUnavailableError(); }\n }\n return typeof BigInt64Array !== 'undefined' ? [BigInt64Array, true] : [BigInt64ArrayUnavailable, false];\n})();\nexports.BigInt64Array = BigInt64ArrayCtor;\nexports.BigInt64ArrayAvailable = BigInt64ArrayAvailable;\n/** @ignore */\nconst [BigUint64ArrayCtor, BigUint64ArrayAvailable] = (() => {\n const BigUint64ArrayUnavailableError = () => { throw new Error('BigUint64Array is not available in this environment'); };\n class BigUint64ArrayUnavailable {\n static get BYTES_PER_ELEMENT() { return 8; }\n static of() { throw BigUint64ArrayUnavailableError(); }\n static from() { throw BigUint64ArrayUnavailableError(); }\n constructor() { throw BigUint64ArrayUnavailableError(); }\n }\n return typeof BigUint64Array !== 'undefined' ? [BigUint64Array, true] : [BigUint64ArrayUnavailable, false];\n})();\nexports.BigUint64Array = BigUint64ArrayCtor;\nexports.BigUint64ArrayAvailable = BigUint64ArrayAvailable;\n/** @ignore */ const isNumber = (x) => typeof x === 'number';\n/** @ignore */ const isBoolean = (x) => typeof x === 'boolean';\n/** @ignore */ const isFunction = (x) => typeof x === 'function';\n/** @ignore */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexports.isObject = (x) => x != null && Object(x) === x;\n/** @ignore */\nexports.isPromise = (x) => {\n return exports.isObject(x) && isFunction(x.then);\n};\n/** @ignore */\nexports.isObservable = (x) => {\n return exports.isObject(x) && isFunction(x.subscribe);\n};\n/** @ignore */\nexports.isIterable = (x) => {\n return exports.isObject(x) && isFunction(x[Symbol.iterator]);\n};\n/** @ignore */\nexports.isAsyncIterable = (x) => {\n return exports.isObject(x) && isFunction(x[Symbol.asyncIterator]);\n};\n/** @ignore */\nexports.isArrowJSON = (x) => {\n return exports.isObject(x) && exports.isObject(x['schema']);\n};\n/** @ignore */\nexports.isArrayLike = (x) => {\n return exports.isObject(x) && isNumber(x['length']);\n};\n/** @ignore */\nexports.isIteratorResult = (x) => {\n return exports.isObject(x) && ('done' in x) && ('value' in x);\n};\n/** @ignore */\nexports.isUnderlyingSink = (x) => {\n return exports.isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['close']) &&\n isFunction(x['start']) &&\n isFunction(x['write']);\n};\n/** @ignore */\nexports.isFileHandle = (x) => {\n return exports.isObject(x) && isFunction(x['stat']) && isNumber(x['fd']);\n};\n/** @ignore */\nexports.isFSReadStream = (x) => {\n return exports.isReadableNodeStream(x) && isNumber(x['bytesRead']);\n};\n/** @ignore */\nexports.isFetchResponse = (x) => {\n return exports.isObject(x) && exports.isReadableDOMStream(x['body']);\n};\n/** @ignore */\nexports.isWritableDOMStream = (x) => {\n return exports.isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['getWriter']) &&\n !(x instanceof interfaces_1.ReadableInterop);\n};\n/** @ignore */\nexports.isReadableDOMStream = (x) => {\n return exports.isObject(x) &&\n isFunction(x['cancel']) &&\n isFunction(x['getReader']) &&\n !(x instanceof interfaces_1.ReadableInterop);\n};\n/** @ignore */\nexports.isWritableNodeStream = (x) => {\n return exports.isObject(x) &&\n isFunction(x['end']) &&\n isFunction(x['write']) &&\n isBoolean(x['writable']) &&\n !(x instanceof interfaces_1.ReadableInterop);\n};\n/** @ignore */\nexports.isReadableNodeStream = (x) => {\n return exports.isObject(x) &&\n isFunction(x['read']) &&\n isFunction(x['pipe']) &&\n isBoolean(x['readable']) &&\n !(x instanceof interfaces_1.ReadableInterop);\n};\n\n//# sourceMappingURL=compat.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Data = exports.kUnknownNullCount = void 0;\nconst bit_1 = require(\"./util/bit\");\nconst bit_2 = require(\"./util/bit\");\nconst enum_1 = require(\"./enum\");\nconst type_1 = require(\"./type\");\nconst buffer_1 = require(\"./util/buffer\");\n/** @ignore */ exports.kUnknownNullCount = -1;\n/** @ignore */\nclass Data {\n constructor(type, offset, length, nullCount, buffers, childData, dictionary) {\n this.type = type;\n this.dictionary = dictionary;\n this.offset = Math.floor(Math.max(offset || 0, 0));\n this.length = Math.floor(Math.max(length || 0, 0));\n this._nullCount = Math.floor(Math.max(nullCount || 0, -1));\n this.childData = (childData || []).map((x) => x instanceof Data ? x : x.data);\n let buffer;\n if (buffers instanceof Data) {\n this.stride = buffers.stride;\n this.values = buffers.values;\n this.typeIds = buffers.typeIds;\n this.nullBitmap = buffers.nullBitmap;\n this.valueOffsets = buffers.valueOffsets;\n }\n else {\n this.stride = type_1.strideForType(type);\n if (buffers) {\n (buffer = buffers[0]) && (this.valueOffsets = buffer);\n (buffer = buffers[1]) && (this.values = buffer);\n (buffer = buffers[2]) && (this.nullBitmap = buffer);\n (buffer = buffers[3]) && (this.typeIds = buffer);\n }\n }\n }\n get typeId() { return this.type.typeId; }\n get ArrayType() { return this.type.ArrayType; }\n get buffers() {\n return [this.valueOffsets, this.values, this.nullBitmap, this.typeIds];\n }\n get byteLength() {\n let byteLength = 0;\n const { valueOffsets, values, nullBitmap, typeIds } = this;\n valueOffsets && (byteLength += valueOffsets.byteLength);\n values && (byteLength += values.byteLength);\n nullBitmap && (byteLength += nullBitmap.byteLength);\n typeIds && (byteLength += typeIds.byteLength);\n return this.childData.reduce((byteLength, child) => byteLength + child.byteLength, byteLength);\n }\n get nullCount() {\n let nullCount = this._nullCount;\n let nullBitmap;\n if (nullCount <= exports.kUnknownNullCount && (nullBitmap = this.nullBitmap)) {\n this._nullCount = nullCount = this.length - bit_2.popcnt_bit_range(nullBitmap, this.offset, this.offset + this.length);\n }\n return nullCount;\n }\n clone(type, offset = this.offset, length = this.length, nullCount = this._nullCount, buffers = this, childData = this.childData) {\n return new Data(type, offset, length, nullCount, buffers, childData, this.dictionary);\n }\n slice(offset, length) {\n const { stride, typeId, childData } = this;\n // +true === 1, +false === 0, so this means\n // we keep nullCount at 0 if it's already 0,\n // otherwise set to the invalidated flag -1\n const nullCount = +(this._nullCount === 0) - 1;\n const childStride = typeId === 16 /* FixedSizeList */ ? stride : 1;\n const buffers = this._sliceBuffers(offset, length, stride, typeId);\n return this.clone(this.type, this.offset + offset, length, nullCount, buffers, \n // Don't slice children if we have value offsets (the variable-width types)\n (!childData.length || this.valueOffsets) ? childData : this._sliceChildren(childData, childStride * offset, childStride * length));\n }\n _changeLengthAndBackfillNullBitmap(newLength) {\n if (this.typeId === enum_1.Type.Null) {\n return this.clone(this.type, 0, newLength, 0);\n }\n const { length, nullCount } = this;\n // start initialized with 0s (nulls), then fill from 0 to length with 1s (not null)\n const bitmap = new Uint8Array(((newLength + 63) & ~63) >> 3).fill(255, 0, length >> 3);\n // set all the bits in the last byte (up to bit `length - length % 8`) to 1 (not null)\n bitmap[length >> 3] = (1 << (length - (length & ~7))) - 1;\n // if we have a nullBitmap, truncate + slice and set it over the pre-filled 1s\n if (nullCount > 0) {\n bitmap.set(bit_1.truncateBitmap(this.offset, length, this.nullBitmap), 0);\n }\n const buffers = this.buffers;\n buffers[enum_1.BufferType.VALIDITY] = bitmap;\n return this.clone(this.type, 0, newLength, nullCount + (newLength - length), buffers);\n }\n _sliceBuffers(offset, length, stride, typeId) {\n let arr;\n const { buffers } = this;\n // If typeIds exist, slice the typeIds buffer\n (arr = buffers[enum_1.BufferType.TYPE]) && (buffers[enum_1.BufferType.TYPE] = arr.subarray(offset, offset + length));\n // If offsets exist, only slice the offsets buffer\n (arr = buffers[enum_1.BufferType.OFFSET]) && (buffers[enum_1.BufferType.OFFSET] = arr.subarray(offset, offset + length + 1)) ||\n // Otherwise if no offsets, slice the data buffer. Don't slice the data vector for Booleans, since the offset goes by bits not bytes\n (arr = buffers[enum_1.BufferType.DATA]) && (buffers[enum_1.BufferType.DATA] = typeId === 6 ? arr : arr.subarray(stride * offset, stride * (offset + length)));\n return buffers;\n }\n _sliceChildren(childData, offset, length) {\n return childData.map((child) => child.slice(offset, length));\n }\n //\n // Convenience methods for creating Data instances for each of the Arrow Vector types\n //\n /** @nocollapse */\n static new(type, offset, length, nullCount, buffers, childData, dictionary) {\n if (buffers instanceof Data) {\n buffers = buffers.buffers;\n }\n else if (!buffers) {\n buffers = [];\n }\n switch (type.typeId) {\n case enum_1.Type.Null: return Data.Null(type, offset, length);\n case enum_1.Type.Int: return Data.Int(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Dictionary: return Data.Dictionary(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || [], dictionary);\n case enum_1.Type.Float: return Data.Float(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Bool: return Data.Bool(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Decimal: return Data.Decimal(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Date: return Data.Date(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Time: return Data.Time(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Timestamp: return Data.Timestamp(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Interval: return Data.Interval(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.FixedSizeBinary: return Data.FixedSizeBinary(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Binary: return Data.Binary(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.OFFSET] || [], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.Utf8: return Data.Utf8(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.OFFSET] || [], buffers[enum_1.BufferType.DATA] || []);\n case enum_1.Type.List: return Data.List(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.OFFSET] || [], (childData || [])[0]);\n case enum_1.Type.FixedSizeList: return Data.FixedSizeList(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], (childData || [])[0]);\n case enum_1.Type.Struct: return Data.Struct(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], childData || []);\n case enum_1.Type.Map: return Data.Map(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.OFFSET] || [], (childData || [])[0]);\n case enum_1.Type.Union: return Data.Union(type, offset, length, nullCount || 0, buffers[enum_1.BufferType.VALIDITY], buffers[enum_1.BufferType.TYPE] || [], buffers[enum_1.BufferType.OFFSET] || childData, childData);\n }\n throw new Error(`Unrecognized typeId ${type.typeId}`);\n }\n /** @nocollapse */\n static Null(type, offset, length) {\n return new Data(type, offset, length, 0);\n }\n /** @nocollapse */\n static Int(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Dictionary(type, offset, length, nullCount, nullBitmap, data, dictionary) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.indices.ArrayType, data), buffer_1.toUint8Array(nullBitmap)], [], dictionary);\n }\n /** @nocollapse */\n static Float(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Bool(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Decimal(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Date(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Time(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Timestamp(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Interval(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static FixedSizeBinary(type, offset, length, nullCount, nullBitmap, data) {\n return new Data(type, offset, length, nullCount, [undefined, buffer_1.toArrayBufferView(type.ArrayType, data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Binary(type, offset, length, nullCount, nullBitmap, valueOffsets, data) {\n return new Data(type, offset, length, nullCount, [buffer_1.toInt32Array(valueOffsets), buffer_1.toUint8Array(data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static Utf8(type, offset, length, nullCount, nullBitmap, valueOffsets, data) {\n return new Data(type, offset, length, nullCount, [buffer_1.toInt32Array(valueOffsets), buffer_1.toUint8Array(data), buffer_1.toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n static List(type, offset, length, nullCount, nullBitmap, valueOffsets, child) {\n return new Data(type, offset, length, nullCount, [buffer_1.toInt32Array(valueOffsets), undefined, buffer_1.toUint8Array(nullBitmap)], child ? [child] : []);\n }\n /** @nocollapse */\n static FixedSizeList(type, offset, length, nullCount, nullBitmap, child) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, buffer_1.toUint8Array(nullBitmap)], child ? [child] : []);\n }\n /** @nocollapse */\n static Struct(type, offset, length, nullCount, nullBitmap, children) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, buffer_1.toUint8Array(nullBitmap)], children);\n }\n /** @nocollapse */\n static Map(type, offset, length, nullCount, nullBitmap, valueOffsets, child) {\n return new Data(type, offset, length, nullCount, [buffer_1.toInt32Array(valueOffsets), undefined, buffer_1.toUint8Array(nullBitmap)], child ? [child] : []);\n }\n /** @nocollapse */\n static Union(type, offset, length, nullCount, nullBitmap, typeIds, valueOffsetsOrChildren, children) {\n const buffers = [\n undefined, undefined,\n buffer_1.toUint8Array(nullBitmap),\n buffer_1.toArrayBufferView(type.ArrayType, typeIds)\n ];\n if (type.mode === enum_1.UnionMode.Sparse) {\n return new Data(type, offset, length, nullCount, buffers, valueOffsetsOrChildren);\n }\n buffers[enum_1.BufferType.OFFSET] = buffer_1.toInt32Array(valueOffsetsOrChildren);\n return new Data(type, offset, length, nullCount, buffers, children);\n }\n}\nexports.Data = Data;\nData.prototype.childData = Object.freeze([]);\n\n//# sourceMappingURL=data.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.util = exports.predicate = exports.CountByResult = exports.FilteredDataFrame = exports.DataFrame = exports.RecordBatch = exports.Message = exports.JSONMessageReader = exports.AsyncMessageReader = exports.MessageReader = exports.RecordBatchJSONWriter = exports.RecordBatchStreamWriter = exports.RecordBatchFileWriter = exports.RecordBatchWriter = exports.AsyncRecordBatchStreamReader = exports.AsyncRecordBatchFileReader = exports.RecordBatchStreamReader = exports.RecordBatchFileReader = exports.RecordBatchReader = exports.AsyncByteQueue = exports.AsyncByteStream = exports.ByteStream = exports.Utf8Builder = exports.SparseUnionBuilder = exports.DenseUnionBuilder = exports.UnionBuilder = exports.TimeNanosecondBuilder = exports.TimeMicrosecondBuilder = exports.TimeMillisecondBuilder = exports.TimeSecondBuilder = exports.TimeBuilder = exports.TimestampNanosecondBuilder = exports.TimestampMicrosecondBuilder = exports.TimestampMillisecondBuilder = exports.TimestampSecondBuilder = exports.TimestampBuilder = exports.StructBuilder = exports.NullBuilder = exports.MapBuilder = exports.ListBuilder = exports.Uint64Builder = exports.Uint32Builder = exports.Uint16Builder = exports.Uint8Builder = exports.Int64Builder = exports.Int32Builder = exports.Int16Builder = exports.Int8Builder = exports.IntBuilder = exports.IntervalYearMonthBuilder = exports.IntervalDayTimeBuilder = exports.IntervalBuilder = exports.Float64Builder = exports.Float32Builder = exports.Float16Builder = exports.FloatBuilder = exports.FixedSizeListBuilder = exports.FixedSizeBinaryBuilder = exports.DictionaryBuilder = exports.DecimalBuilder = exports.DateMillisecondBuilder = exports.DateDayBuilder = exports.DateBuilder = exports.BoolBuilder = exports.BinaryBuilder = exports.Builder = exports.Utf8Vector = exports.SparseUnionVector = exports.DenseUnionVector = exports.UnionVector = exports.TimeNanosecondVector = exports.TimeMicrosecondVector = exports.TimeMillisecondVector = exports.TimeSecondVector = exports.TimeVector = exports.TimestampNanosecondVector = exports.TimestampMicrosecondVector = exports.TimestampMillisecondVector = exports.TimestampSecondVector = exports.TimestampVector = exports.StructVector = exports.NullVector = exports.MapVector = exports.ListVector = exports.Uint64Vector = exports.Uint32Vector = exports.Uint16Vector = exports.Uint8Vector = exports.Int64Vector = exports.Int32Vector = exports.Int16Vector = exports.Int8Vector = exports.IntVector = exports.IntervalYearMonthVector = exports.IntervalDayTimeVector = exports.IntervalVector = exports.Float64Vector = exports.Float32Vector = exports.Float16Vector = exports.FloatVector = exports.FixedSizeListVector = exports.FixedSizeBinaryVector = exports.DictionaryVector = exports.DecimalVector = exports.DateMillisecondVector = exports.DateDayVector = exports.DateVector = exports.Chunked = exports.BoolVector = exports.BinaryVector = exports.BaseVector = exports.Vector = exports.Field = exports.Schema = exports.Visitor = exports.Column = exports.Table = exports.Map_ = exports.FixedSizeList = exports.IntervalYearMonth = exports.IntervalDayTime = exports.Interval = exports.Dictionary = exports.SparseUnion = exports.DenseUnion = exports.Union = exports.Struct = exports.List = exports.Decimal = exports.TimeNanosecond = exports.TimeMicrosecond = exports.TimeMillisecond = exports.TimeSecond = exports.Time = exports.TimestampNanosecond = exports.TimestampMicrosecond = exports.TimestampMillisecond = exports.TimestampSecond = exports.Timestamp = exports.DateMillisecond = exports.DateDay = exports.Date_ = exports.FixedSizeBinary = exports.Binary = exports.Utf8 = exports.Float64 = exports.Float32 = exports.Float16 = exports.Float = exports.Uint64 = exports.Uint32 = exports.Uint16 = exports.Uint8 = exports.Int64 = exports.Int32 = exports.Int16 = exports.Int8 = exports.Int = exports.Bool = exports.Null = exports.DataType = exports.Data = exports.BufferType = exports.Type = exports.MessageHeader = exports.MetadataVersion = exports.IntervalUnit = exports.UnionMode = exports.Precision = exports.TimeUnit = exports.DateUnit = void 0;\nvar Schema_1 = require(\"./fb/Schema\");\nObject.defineProperty(exports, \"DateUnit\", { enumerable: true, get: function () { return Schema_1.DateUnit; } });\nObject.defineProperty(exports, \"TimeUnit\", { enumerable: true, get: function () { return Schema_1.TimeUnit; } });\nObject.defineProperty(exports, \"Precision\", { enumerable: true, get: function () { return Schema_1.Precision; } });\nObject.defineProperty(exports, \"UnionMode\", { enumerable: true, get: function () { return Schema_1.UnionMode; } });\nObject.defineProperty(exports, \"IntervalUnit\", { enumerable: true, get: function () { return Schema_1.IntervalUnit; } });\nObject.defineProperty(exports, \"MetadataVersion\", { enumerable: true, get: function () { return Schema_1.MetadataVersion; } });\nvar Message_1 = require(\"./fb/Message\");\nObject.defineProperty(exports, \"MessageHeader\", { enumerable: true, get: function () { return Message_1.MessageHeader; } });\nvar enum_1 = require(\"./enum\");\nObject.defineProperty(exports, \"Type\", { enumerable: true, get: function () { return enum_1.Type; } });\nObject.defineProperty(exports, \"BufferType\", { enumerable: true, get: function () { return enum_1.BufferType; } });\nvar data_1 = require(\"./data\");\nObject.defineProperty(exports, \"Data\", { enumerable: true, get: function () { return data_1.Data; } });\nvar type_1 = require(\"./type\");\nObject.defineProperty(exports, \"DataType\", { enumerable: true, get: function () { return type_1.DataType; } });\nObject.defineProperty(exports, \"Null\", { enumerable: true, get: function () { return type_1.Null; } });\nObject.defineProperty(exports, \"Bool\", { enumerable: true, get: function () { return type_1.Bool; } });\nObject.defineProperty(exports, \"Int\", { enumerable: true, get: function () { return type_1.Int; } });\nObject.defineProperty(exports, \"Int8\", { enumerable: true, get: function () { return type_1.Int8; } });\nObject.defineProperty(exports, \"Int16\", { enumerable: true, get: function () { return type_1.Int16; } });\nObject.defineProperty(exports, \"Int32\", { enumerable: true, get: function () { return type_1.Int32; } });\nObject.defineProperty(exports, \"Int64\", { enumerable: true, get: function () { return type_1.Int64; } });\nObject.defineProperty(exports, \"Uint8\", { enumerable: true, get: function () { return type_1.Uint8; } });\nObject.defineProperty(exports, \"Uint16\", { enumerable: true, get: function () { return type_1.Uint16; } });\nObject.defineProperty(exports, \"Uint32\", { enumerable: true, get: function () { return type_1.Uint32; } });\nObject.defineProperty(exports, \"Uint64\", { enumerable: true, get: function () { return type_1.Uint64; } });\nObject.defineProperty(exports, \"Float\", { enumerable: true, get: function () { return type_1.Float; } });\nObject.defineProperty(exports, \"Float16\", { enumerable: true, get: function () { return type_1.Float16; } });\nObject.defineProperty(exports, \"Float32\", { enumerable: true, get: function () { return type_1.Float32; } });\nObject.defineProperty(exports, \"Float64\", { enumerable: true, get: function () { return type_1.Float64; } });\nObject.defineProperty(exports, \"Utf8\", { enumerable: true, get: function () { return type_1.Utf8; } });\nObject.defineProperty(exports, \"Binary\", { enumerable: true, get: function () { return type_1.Binary; } });\nObject.defineProperty(exports, \"FixedSizeBinary\", { enumerable: true, get: function () { return type_1.FixedSizeBinary; } });\nObject.defineProperty(exports, \"Date_\", { enumerable: true, get: function () { return type_1.Date_; } });\nObject.defineProperty(exports, \"DateDay\", { enumerable: true, get: function () { return type_1.DateDay; } });\nObject.defineProperty(exports, \"DateMillisecond\", { enumerable: true, get: function () { return type_1.DateMillisecond; } });\nObject.defineProperty(exports, \"Timestamp\", { enumerable: true, get: function () { return type_1.Timestamp; } });\nObject.defineProperty(exports, \"TimestampSecond\", { enumerable: true, get: function () { return type_1.TimestampSecond; } });\nObject.defineProperty(exports, \"TimestampMillisecond\", { enumerable: true, get: function () { return type_1.TimestampMillisecond; } });\nObject.defineProperty(exports, \"TimestampMicrosecond\", { enumerable: true, get: function () { return type_1.TimestampMicrosecond; } });\nObject.defineProperty(exports, \"TimestampNanosecond\", { enumerable: true, get: function () { return type_1.TimestampNanosecond; } });\nObject.defineProperty(exports, \"Time\", { enumerable: true, get: function () { return type_1.Time; } });\nObject.defineProperty(exports, \"TimeSecond\", { enumerable: true, get: function () { return type_1.TimeSecond; } });\nObject.defineProperty(exports, \"TimeMillisecond\", { enumerable: true, get: function () { return type_1.TimeMillisecond; } });\nObject.defineProperty(exports, \"TimeMicrosecond\", { enumerable: true, get: function () { return type_1.TimeMicrosecond; } });\nObject.defineProperty(exports, \"TimeNanosecond\", { enumerable: true, get: function () { return type_1.TimeNanosecond; } });\nObject.defineProperty(exports, \"Decimal\", { enumerable: true, get: function () { return type_1.Decimal; } });\nObject.defineProperty(exports, \"List\", { enumerable: true, get: function () { return type_1.List; } });\nObject.defineProperty(exports, \"Struct\", { enumerable: true, get: function () { return type_1.Struct; } });\nObject.defineProperty(exports, \"Union\", { enumerable: true, get: function () { return type_1.Union; } });\nObject.defineProperty(exports, \"DenseUnion\", { enumerable: true, get: function () { return type_1.DenseUnion; } });\nObject.defineProperty(exports, \"SparseUnion\", { enumerable: true, get: function () { return type_1.SparseUnion; } });\nObject.defineProperty(exports, \"Dictionary\", { enumerable: true, get: function () { return type_1.Dictionary; } });\nObject.defineProperty(exports, \"Interval\", { enumerable: true, get: function () { return type_1.Interval; } });\nObject.defineProperty(exports, \"IntervalDayTime\", { enumerable: true, get: function () { return type_1.IntervalDayTime; } });\nObject.defineProperty(exports, \"IntervalYearMonth\", { enumerable: true, get: function () { return type_1.IntervalYearMonth; } });\nObject.defineProperty(exports, \"FixedSizeList\", { enumerable: true, get: function () { return type_1.FixedSizeList; } });\nObject.defineProperty(exports, \"Map_\", { enumerable: true, get: function () { return type_1.Map_; } });\nvar table_1 = require(\"./table\");\nObject.defineProperty(exports, \"Table\", { enumerable: true, get: function () { return table_1.Table; } });\nvar column_1 = require(\"./column\");\nObject.defineProperty(exports, \"Column\", { enumerable: true, get: function () { return column_1.Column; } });\nvar visitor_1 = require(\"./visitor\");\nObject.defineProperty(exports, \"Visitor\", { enumerable: true, get: function () { return visitor_1.Visitor; } });\nvar schema_1 = require(\"./schema\");\nObject.defineProperty(exports, \"Schema\", { enumerable: true, get: function () { return schema_1.Schema; } });\nObject.defineProperty(exports, \"Field\", { enumerable: true, get: function () { return schema_1.Field; } });\nvar index_1 = require(\"./vector/index\");\nObject.defineProperty(exports, \"Vector\", { enumerable: true, get: function () { return index_1.Vector; } });\nObject.defineProperty(exports, \"BaseVector\", { enumerable: true, get: function () { return index_1.BaseVector; } });\nObject.defineProperty(exports, \"BinaryVector\", { enumerable: true, get: function () { return index_1.BinaryVector; } });\nObject.defineProperty(exports, \"BoolVector\", { enumerable: true, get: function () { return index_1.BoolVector; } });\nObject.defineProperty(exports, \"Chunked\", { enumerable: true, get: function () { return index_1.Chunked; } });\nObject.defineProperty(exports, \"DateVector\", { enumerable: true, get: function () { return index_1.DateVector; } });\nObject.defineProperty(exports, \"DateDayVector\", { enumerable: true, get: function () { return index_1.DateDayVector; } });\nObject.defineProperty(exports, \"DateMillisecondVector\", { enumerable: true, get: function () { return index_1.DateMillisecondVector; } });\nObject.defineProperty(exports, \"DecimalVector\", { enumerable: true, get: function () { return index_1.DecimalVector; } });\nObject.defineProperty(exports, \"DictionaryVector\", { enumerable: true, get: function () { return index_1.DictionaryVector; } });\nObject.defineProperty(exports, \"FixedSizeBinaryVector\", { enumerable: true, get: function () { return index_1.FixedSizeBinaryVector; } });\nObject.defineProperty(exports, \"FixedSizeListVector\", { enumerable: true, get: function () { return index_1.FixedSizeListVector; } });\nObject.defineProperty(exports, \"FloatVector\", { enumerable: true, get: function () { return index_1.FloatVector; } });\nObject.defineProperty(exports, \"Float16Vector\", { enumerable: true, get: function () { return index_1.Float16Vector; } });\nObject.defineProperty(exports, \"Float32Vector\", { enumerable: true, get: function () { return index_1.Float32Vector; } });\nObject.defineProperty(exports, \"Float64Vector\", { enumerable: true, get: function () { return index_1.Float64Vector; } });\nObject.defineProperty(exports, \"IntervalVector\", { enumerable: true, get: function () { return index_1.IntervalVector; } });\nObject.defineProperty(exports, \"IntervalDayTimeVector\", { enumerable: true, get: function () { return index_1.IntervalDayTimeVector; } });\nObject.defineProperty(exports, \"IntervalYearMonthVector\", { enumerable: true, get: function () { return index_1.IntervalYearMonthVector; } });\nObject.defineProperty(exports, \"IntVector\", { enumerable: true, get: function () { return index_1.IntVector; } });\nObject.defineProperty(exports, \"Int8Vector\", { enumerable: true, get: function () { return index_1.Int8Vector; } });\nObject.defineProperty(exports, \"Int16Vector\", { enumerable: true, get: function () { return index_1.Int16Vector; } });\nObject.defineProperty(exports, \"Int32Vector\", { enumerable: true, get: function () { return index_1.Int32Vector; } });\nObject.defineProperty(exports, \"Int64Vector\", { enumerable: true, get: function () { return index_1.Int64Vector; } });\nObject.defineProperty(exports, \"Uint8Vector\", { enumerable: true, get: function () { return index_1.Uint8Vector; } });\nObject.defineProperty(exports, \"Uint16Vector\", { enumerable: true, get: function () { return index_1.Uint16Vector; } });\nObject.defineProperty(exports, \"Uint32Vector\", { enumerable: true, get: function () { return index_1.Uint32Vector; } });\nObject.defineProperty(exports, \"Uint64Vector\", { enumerable: true, get: function () { return index_1.Uint64Vector; } });\nObject.defineProperty(exports, \"ListVector\", { enumerable: true, get: function () { return index_1.ListVector; } });\nObject.defineProperty(exports, \"MapVector\", { enumerable: true, get: function () { return index_1.MapVector; } });\nObject.defineProperty(exports, \"NullVector\", { enumerable: true, get: function () { return index_1.NullVector; } });\nObject.defineProperty(exports, \"StructVector\", { enumerable: true, get: function () { return index_1.StructVector; } });\nObject.defineProperty(exports, \"TimestampVector\", { enumerable: true, get: function () { return index_1.TimestampVector; } });\nObject.defineProperty(exports, \"TimestampSecondVector\", { enumerable: true, get: function () { return index_1.TimestampSecondVector; } });\nObject.defineProperty(exports, \"TimestampMillisecondVector\", { enumerable: true, get: function () { return index_1.TimestampMillisecondVector; } });\nObject.defineProperty(exports, \"TimestampMicrosecondVector\", { enumerable: true, get: function () { return index_1.TimestampMicrosecondVector; } });\nObject.defineProperty(exports, \"TimestampNanosecondVector\", { enumerable: true, get: function () { return index_1.TimestampNanosecondVector; } });\nObject.defineProperty(exports, \"TimeVector\", { enumerable: true, get: function () { return index_1.TimeVector; } });\nObject.defineProperty(exports, \"TimeSecondVector\", { enumerable: true, get: function () { return index_1.TimeSecondVector; } });\nObject.defineProperty(exports, \"TimeMillisecondVector\", { enumerable: true, get: function () { return index_1.TimeMillisecondVector; } });\nObject.defineProperty(exports, \"TimeMicrosecondVector\", { enumerable: true, get: function () { return index_1.TimeMicrosecondVector; } });\nObject.defineProperty(exports, \"TimeNanosecondVector\", { enumerable: true, get: function () { return index_1.TimeNanosecondVector; } });\nObject.defineProperty(exports, \"UnionVector\", { enumerable: true, get: function () { return index_1.UnionVector; } });\nObject.defineProperty(exports, \"DenseUnionVector\", { enumerable: true, get: function () { return index_1.DenseUnionVector; } });\nObject.defineProperty(exports, \"SparseUnionVector\", { enumerable: true, get: function () { return index_1.SparseUnionVector; } });\nObject.defineProperty(exports, \"Utf8Vector\", { enumerable: true, get: function () { return index_1.Utf8Vector; } });\nvar index_2 = require(\"./builder/index\");\nObject.defineProperty(exports, \"Builder\", { enumerable: true, get: function () { return index_2.Builder; } });\nObject.defineProperty(exports, \"BinaryBuilder\", { enumerable: true, get: function () { return index_2.BinaryBuilder; } });\nObject.defineProperty(exports, \"BoolBuilder\", { enumerable: true, get: function () { return index_2.BoolBuilder; } });\nObject.defineProperty(exports, \"DateBuilder\", { enumerable: true, get: function () { return index_2.DateBuilder; } });\nObject.defineProperty(exports, \"DateDayBuilder\", { enumerable: true, get: function () { return index_2.DateDayBuilder; } });\nObject.defineProperty(exports, \"DateMillisecondBuilder\", { enumerable: true, get: function () { return index_2.DateMillisecondBuilder; } });\nObject.defineProperty(exports, \"DecimalBuilder\", { enumerable: true, get: function () { return index_2.DecimalBuilder; } });\nObject.defineProperty(exports, \"DictionaryBuilder\", { enumerable: true, get: function () { return index_2.DictionaryBuilder; } });\nObject.defineProperty(exports, \"FixedSizeBinaryBuilder\", { enumerable: true, get: function () { return index_2.FixedSizeBinaryBuilder; } });\nObject.defineProperty(exports, \"FixedSizeListBuilder\", { enumerable: true, get: function () { return index_2.FixedSizeListBuilder; } });\nObject.defineProperty(exports, \"FloatBuilder\", { enumerable: true, get: function () { return index_2.FloatBuilder; } });\nObject.defineProperty(exports, \"Float16Builder\", { enumerable: true, get: function () { return index_2.Float16Builder; } });\nObject.defineProperty(exports, \"Float32Builder\", { enumerable: true, get: function () { return index_2.Float32Builder; } });\nObject.defineProperty(exports, \"Float64Builder\", { enumerable: true, get: function () { return index_2.Float64Builder; } });\nObject.defineProperty(exports, \"IntervalBuilder\", { enumerable: true, get: function () { return index_2.IntervalBuilder; } });\nObject.defineProperty(exports, \"IntervalDayTimeBuilder\", { enumerable: true, get: function () { return index_2.IntervalDayTimeBuilder; } });\nObject.defineProperty(exports, \"IntervalYearMonthBuilder\", { enumerable: true, get: function () { return index_2.IntervalYearMonthBuilder; } });\nObject.defineProperty(exports, \"IntBuilder\", { enumerable: true, get: function () { return index_2.IntBuilder; } });\nObject.defineProperty(exports, \"Int8Builder\", { enumerable: true, get: function () { return index_2.Int8Builder; } });\nObject.defineProperty(exports, \"Int16Builder\", { enumerable: true, get: function () { return index_2.Int16Builder; } });\nObject.defineProperty(exports, \"Int32Builder\", { enumerable: true, get: function () { return index_2.Int32Builder; } });\nObject.defineProperty(exports, \"Int64Builder\", { enumerable: true, get: function () { return index_2.Int64Builder; } });\nObject.defineProperty(exports, \"Uint8Builder\", { enumerable: true, get: function () { return index_2.Uint8Builder; } });\nObject.defineProperty(exports, \"Uint16Builder\", { enumerable: true, get: function () { return index_2.Uint16Builder; } });\nObject.defineProperty(exports, \"Uint32Builder\", { enumerable: true, get: function () { return index_2.Uint32Builder; } });\nObject.defineProperty(exports, \"Uint64Builder\", { enumerable: true, get: function () { return index_2.Uint64Builder; } });\nObject.defineProperty(exports, \"ListBuilder\", { enumerable: true, get: function () { return index_2.ListBuilder; } });\nObject.defineProperty(exports, \"MapBuilder\", { enumerable: true, get: function () { return index_2.MapBuilder; } });\nObject.defineProperty(exports, \"NullBuilder\", { enumerable: true, get: function () { return index_2.NullBuilder; } });\nObject.defineProperty(exports, \"StructBuilder\", { enumerable: true, get: function () { return index_2.StructBuilder; } });\nObject.defineProperty(exports, \"TimestampBuilder\", { enumerable: true, get: function () { return index_2.TimestampBuilder; } });\nObject.defineProperty(exports, \"TimestampSecondBuilder\", { enumerable: true, get: function () { return index_2.TimestampSecondBuilder; } });\nObject.defineProperty(exports, \"TimestampMillisecondBuilder\", { enumerable: true, get: function () { return index_2.TimestampMillisecondBuilder; } });\nObject.defineProperty(exports, \"TimestampMicrosecondBuilder\", { enumerable: true, get: function () { return index_2.TimestampMicrosecondBuilder; } });\nObject.defineProperty(exports, \"TimestampNanosecondBuilder\", { enumerable: true, get: function () { return index_2.TimestampNanosecondBuilder; } });\nObject.defineProperty(exports, \"TimeBuilder\", { enumerable: true, get: function () { return index_2.TimeBuilder; } });\nObject.defineProperty(exports, \"TimeSecondBuilder\", { enumerable: true, get: function () { return index_2.TimeSecondBuilder; } });\nObject.defineProperty(exports, \"TimeMillisecondBuilder\", { enumerable: true, get: function () { return index_2.TimeMillisecondBuilder; } });\nObject.defineProperty(exports, \"TimeMicrosecondBuilder\", { enumerable: true, get: function () { return index_2.TimeMicrosecondBuilder; } });\nObject.defineProperty(exports, \"TimeNanosecondBuilder\", { enumerable: true, get: function () { return index_2.TimeNanosecondBuilder; } });\nObject.defineProperty(exports, \"UnionBuilder\", { enumerable: true, get: function () { return index_2.UnionBuilder; } });\nObject.defineProperty(exports, \"DenseUnionBuilder\", { enumerable: true, get: function () { return index_2.DenseUnionBuilder; } });\nObject.defineProperty(exports, \"SparseUnionBuilder\", { enumerable: true, get: function () { return index_2.SparseUnionBuilder; } });\nObject.defineProperty(exports, \"Utf8Builder\", { enumerable: true, get: function () { return index_2.Utf8Builder; } });\nvar stream_1 = require(\"./io/stream\");\nObject.defineProperty(exports, \"ByteStream\", { enumerable: true, get: function () { return stream_1.ByteStream; } });\nObject.defineProperty(exports, \"AsyncByteStream\", { enumerable: true, get: function () { return stream_1.AsyncByteStream; } });\nObject.defineProperty(exports, \"AsyncByteQueue\", { enumerable: true, get: function () { return stream_1.AsyncByteQueue; } });\nvar reader_1 = require(\"./ipc/reader\");\nObject.defineProperty(exports, \"RecordBatchReader\", { enumerable: true, get: function () { return reader_1.RecordBatchReader; } });\nObject.defineProperty(exports, \"RecordBatchFileReader\", { enumerable: true, get: function () { return reader_1.RecordBatchFileReader; } });\nObject.defineProperty(exports, \"RecordBatchStreamReader\", { enumerable: true, get: function () { return reader_1.RecordBatchStreamReader; } });\nObject.defineProperty(exports, \"AsyncRecordBatchFileReader\", { enumerable: true, get: function () { return reader_1.AsyncRecordBatchFileReader; } });\nObject.defineProperty(exports, \"AsyncRecordBatchStreamReader\", { enumerable: true, get: function () { return reader_1.AsyncRecordBatchStreamReader; } });\nvar writer_1 = require(\"./ipc/writer\");\nObject.defineProperty(exports, \"RecordBatchWriter\", { enumerable: true, get: function () { return writer_1.RecordBatchWriter; } });\nObject.defineProperty(exports, \"RecordBatchFileWriter\", { enumerable: true, get: function () { return writer_1.RecordBatchFileWriter; } });\nObject.defineProperty(exports, \"RecordBatchStreamWriter\", { enumerable: true, get: function () { return writer_1.RecordBatchStreamWriter; } });\nObject.defineProperty(exports, \"RecordBatchJSONWriter\", { enumerable: true, get: function () { return writer_1.RecordBatchJSONWriter; } });\nvar message_1 = require(\"./ipc/message\");\nObject.defineProperty(exports, \"MessageReader\", { enumerable: true, get: function () { return message_1.MessageReader; } });\nObject.defineProperty(exports, \"AsyncMessageReader\", { enumerable: true, get: function () { return message_1.AsyncMessageReader; } });\nObject.defineProperty(exports, \"JSONMessageReader\", { enumerable: true, get: function () { return message_1.JSONMessageReader; } });\nvar message_2 = require(\"./ipc/metadata/message\");\nObject.defineProperty(exports, \"Message\", { enumerable: true, get: function () { return message_2.Message; } });\nvar recordbatch_1 = require(\"./recordbatch\");\nObject.defineProperty(exports, \"RecordBatch\", { enumerable: true, get: function () { return recordbatch_1.RecordBatch; } });\nvar dataframe_1 = require(\"./compute/dataframe\");\nObject.defineProperty(exports, \"DataFrame\", { enumerable: true, get: function () { return dataframe_1.DataFrame; } });\nObject.defineProperty(exports, \"FilteredDataFrame\", { enumerable: true, get: function () { return dataframe_1.FilteredDataFrame; } });\nObject.defineProperty(exports, \"CountByResult\", { enumerable: true, get: function () { return dataframe_1.CountByResult; } });\nconst util_bn_ = require(\"./util/bn\");\nconst util_int_ = require(\"./util/int\");\nconst util_bit_ = require(\"./util/bit\");\nconst util_math_ = require(\"./util/math\");\nconst util_buffer_ = require(\"./util/buffer\");\nconst util_vector_ = require(\"./util/vector\");\nconst predicate = require(\"./compute/predicate\");\nexports.predicate = predicate;\nconst typecomparator_1 = require(\"./visitor/typecomparator\");\n/** @ignore */\nexports.util = {\n ...util_bn_,\n ...util_int_,\n ...util_bit_,\n ...util_math_,\n ...util_buffer_,\n ...util_vector_,\n compareSchemas: typecomparator_1.compareSchemas,\n compareFields: typecomparator_1.compareFields,\n compareTypes: typecomparator_1.compareTypes,\n};\n\n//# sourceMappingURL=Arrow.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.popcnt_uint32 = exports.popcnt_array = exports.popcnt_bit_range = exports.BitIterator = exports.packBools = exports.truncateBitmap = exports.setBool = exports.getBit = exports.getBool = void 0;\n/** @ignore */\nfunction getBool(_data, _index, byte, bit) {\n return (byte & 1 << bit) !== 0;\n}\nexports.getBool = getBool;\n/** @ignore */\nfunction getBit(_data, _index, byte, bit) {\n return (byte & 1 << bit) >> bit;\n}\nexports.getBit = getBit;\n/** @ignore */\nfunction setBool(bytes, index, value) {\n return value ?\n !!(bytes[index >> 3] |= (1 << (index % 8))) || true :\n !(bytes[index >> 3] &= ~(1 << (index % 8))) && false;\n}\nexports.setBool = setBool;\n/** @ignore */\nfunction truncateBitmap(offset, length, bitmap) {\n const alignedSize = (bitmap.byteLength + 7) & ~7;\n if (offset > 0 || bitmap.byteLength < alignedSize) {\n const bytes = new Uint8Array(alignedSize);\n // If the offset is a multiple of 8 bits, it's safe to slice the bitmap\n bytes.set(offset % 8 === 0 ? bitmap.subarray(offset >> 3) :\n // Otherwise iterate each bit from the offset and return a new one\n packBools(new BitIterator(bitmap, offset, length, null, getBool)).subarray(0, alignedSize));\n return bytes;\n }\n return bitmap;\n}\nexports.truncateBitmap = truncateBitmap;\n/** @ignore */\nfunction packBools(values) {\n const xs = [];\n let i = 0, bit = 0, byte = 0;\n for (const value of values) {\n value && (byte |= 1 << bit);\n if (++bit === 8) {\n xs[i++] = byte;\n byte = bit = 0;\n }\n }\n if (i === 0 || bit > 0) {\n xs[i++] = byte;\n }\n const b = new Uint8Array((xs.length + 7) & ~7);\n b.set(xs);\n return b;\n}\nexports.packBools = packBools;\n/** @ignore */\nclass BitIterator {\n constructor(bytes, begin, length, context, get) {\n this.bytes = bytes;\n this.length = length;\n this.context = context;\n this.get = get;\n this.bit = begin % 8;\n this.byteIndex = begin >> 3;\n this.byte = bytes[this.byteIndex++];\n this.index = 0;\n }\n next() {\n if (this.index < this.length) {\n if (this.bit === 8) {\n this.bit = 0;\n this.byte = this.bytes[this.byteIndex++];\n }\n return {\n value: this.get(this.context, this.index++, this.byte, this.bit++)\n };\n }\n return { done: true, value: null };\n }\n [Symbol.iterator]() {\n return this;\n }\n}\nexports.BitIterator = BitIterator;\n/**\n * Compute the population count (the number of bits set to 1) for a range of bits in a Uint8Array.\n * @param vector The Uint8Array of bits for which to compute the population count.\n * @param lhs The range's left-hand side (or start) bit\n * @param rhs The range's right-hand side (or end) bit\n */\n/** @ignore */\nfunction popcnt_bit_range(data, lhs, rhs) {\n if (rhs - lhs <= 0) {\n return 0;\n }\n // If the bit range is less than one byte, sum the 1 bits in the bit range\n if (rhs - lhs < 8) {\n let sum = 0;\n for (const bit of new BitIterator(data, lhs, rhs - lhs, data, getBit)) {\n sum += bit;\n }\n return sum;\n }\n // Get the next lowest multiple of 8 from the right hand side\n const rhsInside = rhs >> 3 << 3;\n // Get the next highest multiple of 8 from the left hand side\n const lhsInside = lhs + (lhs % 8 === 0 ? 0 : 8 - lhs % 8);\n return (\n // Get the popcnt of bits between the left hand side, and the next highest multiple of 8\n popcnt_bit_range(data, lhs, lhsInside) +\n // Get the popcnt of bits between the right hand side, and the next lowest multiple of 8\n popcnt_bit_range(data, rhsInside, rhs) +\n // Get the popcnt of all bits between the left and right hand sides' multiples of 8\n popcnt_array(data, lhsInside >> 3, (rhsInside - lhsInside) >> 3));\n}\nexports.popcnt_bit_range = popcnt_bit_range;\n/** @ignore */\nfunction popcnt_array(arr, byteOffset, byteLength) {\n let cnt = 0, pos = byteOffset | 0;\n const view = new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n const len = byteLength === void 0 ? arr.byteLength : pos + byteLength;\n while (len - pos >= 4) {\n cnt += popcnt_uint32(view.getUint32(pos));\n pos += 4;\n }\n while (len - pos >= 2) {\n cnt += popcnt_uint32(view.getUint16(pos));\n pos += 2;\n }\n while (len - pos >= 1) {\n cnt += popcnt_uint32(view.getUint8(pos));\n pos += 1;\n }\n return cnt;\n}\nexports.popcnt_array = popcnt_array;\n/** @ignore */\nfunction popcnt_uint32(uint32) {\n let i = uint32 | 0;\n i = i - ((i >>> 1) & 0x55555555);\n i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\n return (((i + (i >>> 4)) & 0x0F0F0F0F) * 0x01010101) >>> 24;\n}\nexports.popcnt_uint32 = popcnt_uint32;\n\n//# sourceMappingURL=bit.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.vectorFromValuesWithType = exports.StructRow = exports.MapRow = exports.Utf8Vector = exports.SparseUnionVector = exports.DenseUnionVector = exports.UnionVector = exports.TimeNanosecondVector = exports.TimeMicrosecondVector = exports.TimeMillisecondVector = exports.TimeSecondVector = exports.TimeVector = exports.TimestampNanosecondVector = exports.TimestampMicrosecondVector = exports.TimestampMillisecondVector = exports.TimestampSecondVector = exports.TimestampVector = exports.StructVector = exports.NullVector = exports.MapVector = exports.ListVector = exports.Uint64Vector = exports.Uint32Vector = exports.Uint16Vector = exports.Uint8Vector = exports.Int64Vector = exports.Int32Vector = exports.Int16Vector = exports.Int8Vector = exports.IntVector = exports.IntervalYearMonthVector = exports.IntervalDayTimeVector = exports.IntervalVector = exports.Float64Vector = exports.Float32Vector = exports.Float16Vector = exports.FloatVector = exports.FixedSizeListVector = exports.FixedSizeBinaryVector = exports.DictionaryVector = exports.DecimalVector = exports.DateMillisecondVector = exports.DateDayVector = exports.DateVector = exports.Chunked = exports.BoolVector = exports.BinaryVector = exports.BaseVector = exports.Vector = void 0;\nvar vector_1 = require(\"../vector\");\nObject.defineProperty(exports, \"Vector\", { enumerable: true, get: function () { return vector_1.Vector; } });\nvar base_1 = require(\"./base\");\nObject.defineProperty(exports, \"BaseVector\", { enumerable: true, get: function () { return base_1.BaseVector; } });\nvar binary_1 = require(\"./binary\");\nObject.defineProperty(exports, \"BinaryVector\", { enumerable: true, get: function () { return binary_1.BinaryVector; } });\nvar bool_1 = require(\"./bool\");\nObject.defineProperty(exports, \"BoolVector\", { enumerable: true, get: function () { return bool_1.BoolVector; } });\nvar chunked_1 = require(\"./chunked\");\nObject.defineProperty(exports, \"Chunked\", { enumerable: true, get: function () { return chunked_1.Chunked; } });\nvar date_1 = require(\"./date\");\nObject.defineProperty(exports, \"DateVector\", { enumerable: true, get: function () { return date_1.DateVector; } });\nObject.defineProperty(exports, \"DateDayVector\", { enumerable: true, get: function () { return date_1.DateDayVector; } });\nObject.defineProperty(exports, \"DateMillisecondVector\", { enumerable: true, get: function () { return date_1.DateMillisecondVector; } });\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"DecimalVector\", { enumerable: true, get: function () { return decimal_1.DecimalVector; } });\nvar dictionary_1 = require(\"./dictionary\");\nObject.defineProperty(exports, \"DictionaryVector\", { enumerable: true, get: function () { return dictionary_1.DictionaryVector; } });\nvar fixedsizebinary_1 = require(\"./fixedsizebinary\");\nObject.defineProperty(exports, \"FixedSizeBinaryVector\", { enumerable: true, get: function () { return fixedsizebinary_1.FixedSizeBinaryVector; } });\nvar fixedsizelist_1 = require(\"./fixedsizelist\");\nObject.defineProperty(exports, \"FixedSizeListVector\", { enumerable: true, get: function () { return fixedsizelist_1.FixedSizeListVector; } });\nvar float_1 = require(\"./float\");\nObject.defineProperty(exports, \"FloatVector\", { enumerable: true, get: function () { return float_1.FloatVector; } });\nObject.defineProperty(exports, \"Float16Vector\", { enumerable: true, get: function () { return float_1.Float16Vector; } });\nObject.defineProperty(exports, \"Float32Vector\", { enumerable: true, get: function () { return float_1.Float32Vector; } });\nObject.defineProperty(exports, \"Float64Vector\", { enumerable: true, get: function () { return float_1.Float64Vector; } });\nvar interval_1 = require(\"./interval\");\nObject.defineProperty(exports, \"IntervalVector\", { enumerable: true, get: function () { return interval_1.IntervalVector; } });\nObject.defineProperty(exports, \"IntervalDayTimeVector\", { enumerable: true, get: function () { return interval_1.IntervalDayTimeVector; } });\nObject.defineProperty(exports, \"IntervalYearMonthVector\", { enumerable: true, get: function () { return interval_1.IntervalYearMonthVector; } });\nvar int_1 = require(\"./int\");\nObject.defineProperty(exports, \"IntVector\", { enumerable: true, get: function () { return int_1.IntVector; } });\nObject.defineProperty(exports, \"Int8Vector\", { enumerable: true, get: function () { return int_1.Int8Vector; } });\nObject.defineProperty(exports, \"Int16Vector\", { enumerable: true, get: function () { return int_1.Int16Vector; } });\nObject.defineProperty(exports, \"Int32Vector\", { enumerable: true, get: function () { return int_1.Int32Vector; } });\nObject.defineProperty(exports, \"Int64Vector\", { enumerable: true, get: function () { return int_1.Int64Vector; } });\nObject.defineProperty(exports, \"Uint8Vector\", { enumerable: true, get: function () { return int_1.Uint8Vector; } });\nObject.defineProperty(exports, \"Uint16Vector\", { enumerable: true, get: function () { return int_1.Uint16Vector; } });\nObject.defineProperty(exports, \"Uint32Vector\", { enumerable: true, get: function () { return int_1.Uint32Vector; } });\nObject.defineProperty(exports, \"Uint64Vector\", { enumerable: true, get: function () { return int_1.Uint64Vector; } });\nvar list_1 = require(\"./list\");\nObject.defineProperty(exports, \"ListVector\", { enumerable: true, get: function () { return list_1.ListVector; } });\nvar map_1 = require(\"./map\");\nObject.defineProperty(exports, \"MapVector\", { enumerable: true, get: function () { return map_1.MapVector; } });\nvar null_1 = require(\"./null\");\nObject.defineProperty(exports, \"NullVector\", { enumerable: true, get: function () { return null_1.NullVector; } });\nvar struct_1 = require(\"./struct\");\nObject.defineProperty(exports, \"StructVector\", { enumerable: true, get: function () { return struct_1.StructVector; } });\nvar timestamp_1 = require(\"./timestamp\");\nObject.defineProperty(exports, \"TimestampVector\", { enumerable: true, get: function () { return timestamp_1.TimestampVector; } });\nObject.defineProperty(exports, \"TimestampSecondVector\", { enumerable: true, get: function () { return timestamp_1.TimestampSecondVector; } });\nObject.defineProperty(exports, \"TimestampMillisecondVector\", { enumerable: true, get: function () { return timestamp_1.TimestampMillisecondVector; } });\nObject.defineProperty(exports, \"TimestampMicrosecondVector\", { enumerable: true, get: function () { return timestamp_1.TimestampMicrosecondVector; } });\nObject.defineProperty(exports, \"TimestampNanosecondVector\", { enumerable: true, get: function () { return timestamp_1.TimestampNanosecondVector; } });\nvar time_1 = require(\"./time\");\nObject.defineProperty(exports, \"TimeVector\", { enumerable: true, get: function () { return time_1.TimeVector; } });\nObject.defineProperty(exports, \"TimeSecondVector\", { enumerable: true, get: function () { return time_1.TimeSecondVector; } });\nObject.defineProperty(exports, \"TimeMillisecondVector\", { enumerable: true, get: function () { return time_1.TimeMillisecondVector; } });\nObject.defineProperty(exports, \"TimeMicrosecondVector\", { enumerable: true, get: function () { return time_1.TimeMicrosecondVector; } });\nObject.defineProperty(exports, \"TimeNanosecondVector\", { enumerable: true, get: function () { return time_1.TimeNanosecondVector; } });\nvar union_1 = require(\"./union\");\nObject.defineProperty(exports, \"UnionVector\", { enumerable: true, get: function () { return union_1.UnionVector; } });\nObject.defineProperty(exports, \"DenseUnionVector\", { enumerable: true, get: function () { return union_1.DenseUnionVector; } });\nObject.defineProperty(exports, \"SparseUnionVector\", { enumerable: true, get: function () { return union_1.SparseUnionVector; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"Utf8Vector\", { enumerable: true, get: function () { return utf8_1.Utf8Vector; } });\nvar row_1 = require(\"./row\");\nObject.defineProperty(exports, \"MapRow\", { enumerable: true, get: function () { return row_1.MapRow; } });\nObject.defineProperty(exports, \"StructRow\", { enumerable: true, get: function () { return row_1.StructRow; } });\nconst fn = require(\"../util/fn\");\nconst enum_1 = require(\"../enum\");\nconst vector_2 = require(\"../vector\");\nconst chunked_2 = require(\"./chunked\");\nconst base_2 = require(\"./base\");\nconst bit_1 = require(\"../util/bit\");\nconst compat_1 = require(\"../util/compat\");\nconst builder_1 = require(\"../builder\");\nconst get_1 = require(\"../visitor/get\");\nconst set_1 = require(\"../visitor/set\");\nconst indexof_1 = require(\"../visitor/indexof\");\nconst toarray_1 = require(\"../visitor/toarray\");\nconst iterator_1 = require(\"../visitor/iterator\");\nconst bytewidth_1 = require(\"../visitor/bytewidth\");\nconst vectorctor_1 = require(\"../visitor/vectorctor\");\n/** @nocollapse */\nvector_2.Vector.new = newVector;\n/** @nocollapse */\nvector_2.Vector.from = vectorFrom;\n/** @ignore */\nfunction newVector(data, ...args) {\n return new (vectorctor_1.instance.getVisitFn(data)())(data, ...args);\n}\n/** @ignore */\nfunction vectorFromValuesWithType(newDataType, input) {\n if (compat_1.isIterable(input)) {\n return vector_2.Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input });\n }\n else if (compat_1.isAsyncIterable(input)) {\n return vector_2.Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input });\n }\n const { 'values': values = [], 'type': type = newDataType(), 'nullValues': nullValues = [null, undefined], } = { ...input };\n return compat_1.isIterable(values)\n ? vector_2.Vector.from({ nullValues, ...input, type })\n : vector_2.Vector.from({ nullValues, ...input, type });\n}\nexports.vectorFromValuesWithType = vectorFromValuesWithType;\nfunction vectorFrom(input) {\n const { 'values': values = [], ...options } = { 'nullValues': [null, undefined], ...input };\n if (compat_1.isIterable(values)) {\n const chunks = [...builder_1.Builder.throughIterable(options)(values)];\n return (chunks.length === 1 ? chunks[0] : chunked_2.Chunked.concat(chunks));\n }\n return (async (chunks) => {\n const transform = builder_1.Builder.throughAsyncIterable(options);\n for await (const chunk of transform(values)) {\n chunks.push(chunk);\n }\n return (chunks.length === 1 ? chunks[0] : chunked_2.Chunked.concat(chunks));\n })([]);\n}\n//\n// We provide the following method implementations for code navigability purposes only.\n// They're overridden at runtime below with the specific Visitor implementation for each type,\n// short-circuiting the usual Visitor traversal and reducing intermediate lookups and calls.\n// This comment is here to remind you to not set breakpoints in these function bodies, or to inform\n// you why the breakpoints you have already set are not being triggered. Have a great day!\n//\nbase_2.BaseVector.prototype.get = function baseVectorGet(index) {\n return get_1.instance.visit(this, index);\n};\nbase_2.BaseVector.prototype.set = function baseVectorSet(index, value) {\n return set_1.instance.visit(this, index, value);\n};\nbase_2.BaseVector.prototype.indexOf = function baseVectorIndexOf(value, fromIndex) {\n return indexof_1.instance.visit(this, value, fromIndex);\n};\nbase_2.BaseVector.prototype.toArray = function baseVectorToArray() {\n return toarray_1.instance.visit(this);\n};\nbase_2.BaseVector.prototype.getByteWidth = function baseVectorGetByteWidth() {\n return bytewidth_1.instance.visit(this.type);\n};\nbase_2.BaseVector.prototype[Symbol.iterator] = function baseVectorSymbolIterator() {\n return iterator_1.instance.visit(this);\n};\nbase_2.BaseVector.prototype._bindDataAccessors = bindBaseVectorDataAccessors;\n// Perf: bind and assign the operator Visitor methods to each of the Vector subclasses for each Type\nObject.keys(enum_1.Type)\n .map((T) => enum_1.Type[T])\n .filter((T) => typeof T === 'number')\n .filter((typeId) => typeId !== enum_1.Type.NONE)\n .forEach((typeId) => {\n const VectorCtor = vectorctor_1.instance.visit(typeId);\n VectorCtor.prototype['get'] = fn.partial1(get_1.instance.getVisitFn(typeId));\n VectorCtor.prototype['set'] = fn.partial2(set_1.instance.getVisitFn(typeId));\n VectorCtor.prototype['indexOf'] = fn.partial2(indexof_1.instance.getVisitFn(typeId));\n VectorCtor.prototype['toArray'] = fn.partial0(toarray_1.instance.getVisitFn(typeId));\n VectorCtor.prototype['getByteWidth'] = partialType0(bytewidth_1.instance.getVisitFn(typeId));\n VectorCtor.prototype[Symbol.iterator] = fn.partial0(iterator_1.instance.getVisitFn(typeId));\n});\n/** @ignore */\nfunction partialType0(visit) {\n return function () { return visit(this.type); };\n}\n/** @ignore */\nfunction wrapNullableGet(fn) {\n return function (i) { return this.isValid(i) ? fn.call(this, i) : null; };\n}\n/** @ignore */\nfunction wrapNullableSet(fn) {\n return function (i, a) {\n if (bit_1.setBool(this.nullBitmap, this.offset + i, !(a === null || a === undefined))) {\n fn.call(this, i, a);\n }\n };\n}\n/** @ignore */\nfunction bindBaseVectorDataAccessors() {\n const nullBitmap = this.nullBitmap;\n if (nullBitmap && nullBitmap.byteLength > 0) {\n this.get = wrapNullableGet(this.get);\n this.set = wrapNullableSet(this.set);\n }\n}\n\n//# sourceMappingURL=index.js.map\n","/// @file\n/// @addtogroup flatbuffers_javascript_api\n/// @{\n/// @cond FLATBUFFERS_INTERNAL\n\n/**\n * @fileoverview\n *\n * Need to suppress 'global this' error so the Node.js export line doesn't cause\n * closure compile to error out.\n * @suppress {globalThis}\n */\n\n/**\n * @const\n * @namespace\n */\nvar flatbuffers = {};\n\n/**\n * @typedef {number}\n */\nflatbuffers.Offset;\n\n/**\n * @typedef {{\n * bb: flatbuffers.ByteBuffer,\n * bb_pos: number\n * }}\n */\nflatbuffers.Table;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_SHORT = 2;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_INT = 4;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.FILE_IDENTIFIER_LENGTH = 4;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZE_PREFIX_LENGTH = 4;\n\n/**\n * @enum {number}\n */\nflatbuffers.Encoding = {\n UTF8_BYTES: 1,\n UTF16_STRING: 2\n};\n\n/**\n * @type {Int32Array}\n * @const\n */\nflatbuffers.int32 = new Int32Array(2);\n\n/**\n * @type {Float32Array}\n * @const\n */\nflatbuffers.float32 = new Float32Array(flatbuffers.int32.buffer);\n\n/**\n * @type {Float64Array}\n * @const\n */\nflatbuffers.float64 = new Float64Array(flatbuffers.int32.buffer);\n\n/**\n * @type {boolean}\n * @const\n */\nflatbuffers.isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @constructor\n * @param {number} low\n * @param {number} high\n */\nflatbuffers.Long = function(low, high) {\n /**\n * @type {number}\n * @const\n */\n this.low = low | 0;\n\n /**\n * @type {number}\n * @const\n */\n this.high = high | 0;\n};\n\n/**\n * @param {number} low\n * @param {number} high\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.Long.create = function(low, high) {\n // Special-case zero to avoid GC overhead for default values\n return low == 0 && high == 0 ? flatbuffers.Long.ZERO : new flatbuffers.Long(low, high);\n};\n\n/**\n * @returns {number}\n */\nflatbuffers.Long.prototype.toFloat64 = function() {\n return (this.low >>> 0) + this.high * 0x100000000;\n};\n\n/**\n * @param {flatbuffers.Long} other\n * @returns {boolean}\n */\nflatbuffers.Long.prototype.equals = function(other) {\n return this.low == other.low && this.high == other.high;\n};\n\n/**\n * @type {!flatbuffers.Long}\n * @const\n */\nflatbuffers.Long.ZERO = new flatbuffers.Long(0, 0);\n\n/// @endcond\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a FlatBufferBuilder.\n *\n * @constructor\n * @param {number=} opt_initial_size\n */\nflatbuffers.Builder = function(opt_initial_size) {\n if (!opt_initial_size) {\n var initial_size = 1024;\n } else {\n var initial_size = opt_initial_size;\n }\n\n /**\n * @type {flatbuffers.ByteBuffer}\n * @private\n */\n this.bb = flatbuffers.ByteBuffer.allocate(initial_size);\n\n /**\n * Remaining space in the ByteBuffer.\n *\n * @type {number}\n * @private\n */\n this.space = initial_size;\n\n /**\n * Minimum alignment encountered so far.\n *\n * @type {number}\n * @private\n */\n this.minalign = 1;\n\n /**\n * The vtable for the current table.\n *\n * @type {Array.<number>}\n * @private\n */\n this.vtable = null;\n\n /**\n * The amount of fields we're actually using.\n *\n * @type {number}\n * @private\n */\n this.vtable_in_use = 0;\n\n /**\n * Whether we are currently serializing a table.\n *\n * @type {boolean}\n * @private\n */\n this.isNested = false;\n\n /**\n * Starting offset of the current struct/table.\n *\n * @type {number}\n * @private\n */\n this.object_start = 0;\n\n /**\n * List of offsets of all vtables.\n *\n * @type {Array.<number>}\n * @private\n */\n this.vtables = [];\n\n /**\n * For the current vector being built.\n *\n * @type {number}\n * @private\n */\n this.vector_num_elems = 0;\n\n /**\n * False omits default values from the serialized data\n *\n * @type {boolean}\n * @private\n */\n this.force_defaults = false;\n};\n\nflatbuffers.Builder.prototype.clear = function() {\n this.bb.clear();\n this.space = this.bb.capacity();\n this.minalign = 1;\n this.vtable = null;\n this.vtable_in_use = 0;\n this.isNested = false;\n this.object_start = 0;\n this.vtables = [];\n this.vector_num_elems = 0;\n this.force_defaults = false;\n};\n\n/**\n * In order to save space, fields that are set to their default value\n * don't get serialized into the buffer. Forcing defaults provides a\n * way to manually disable this optimization.\n *\n * @param {boolean} forceDefaults true always serializes default values\n */\nflatbuffers.Builder.prototype.forceDefaults = function(forceDefaults) {\n this.force_defaults = forceDefaults;\n};\n\n/**\n * Get the ByteBuffer representing the FlatBuffer. Only call this after you've\n * called finish(). The actual data starts at the ByteBuffer's current position,\n * not necessarily at 0.\n *\n * @returns {flatbuffers.ByteBuffer}\n */\nflatbuffers.Builder.prototype.dataBuffer = function() {\n return this.bb;\n};\n\n/**\n * Get the bytes representing the FlatBuffer. Only call this after you've\n * called finish().\n *\n * @returns {!Uint8Array}\n */\nflatbuffers.Builder.prototype.asUint8Array = function() {\n return this.bb.bytes().subarray(this.bb.position(), this.bb.position() + this.offset());\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Prepare to write an element of `size` after `additional_bytes` have been\n * written, e.g. if you write a string, you need to align such the int length\n * field is aligned to 4 bytes, and the string data follows it directly. If all\n * you need to do is alignment, `additional_bytes` will be 0.\n *\n * @param {number} size This is the of the new element to write\n * @param {number} additional_bytes The padding size\n */\nflatbuffers.Builder.prototype.prep = function(size, additional_bytes) {\n // Track the biggest thing we've ever aligned to.\n if (size > this.minalign) {\n this.minalign = size;\n }\n\n // Find the amount of alignment needed such that `size` is properly\n // aligned after `additional_bytes`\n var align_size = ((~(this.bb.capacity() - this.space + additional_bytes)) + 1) & (size - 1);\n\n // Reallocate the buffer if needed.\n while (this.space < align_size + size + additional_bytes) {\n var old_buf_size = this.bb.capacity();\n this.bb = flatbuffers.Builder.growByteBuffer(this.bb);\n this.space += this.bb.capacity() - old_buf_size;\n }\n\n this.pad(align_size);\n};\n\n/**\n * @param {number} byte_size\n */\nflatbuffers.Builder.prototype.pad = function(byte_size) {\n for (var i = 0; i < byte_size; i++) {\n this.bb.writeInt8(--this.space, 0);\n }\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt8 = function(value) {\n this.bb.writeInt8(this.space -= 1, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt16 = function(value) {\n this.bb.writeInt16(this.space -= 2, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt32 = function(value) {\n this.bb.writeInt32(this.space -= 4, value);\n};\n\n/**\n * @param {flatbuffers.Long} value\n */\nflatbuffers.Builder.prototype.writeInt64 = function(value) {\n this.bb.writeInt64(this.space -= 8, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat32 = function(value) {\n this.bb.writeFloat32(this.space -= 4, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat64 = function(value) {\n this.bb.writeFloat64(this.space -= 8, value);\n};\n/// @endcond\n\n/**\n * Add an `int8` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int8` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt8 = function(value) {\n this.prep(1, 0);\n this.writeInt8(value);\n};\n\n/**\n * Add an `int16` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int16` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt16 = function(value) {\n this.prep(2, 0);\n this.writeInt16(value);\n};\n\n/**\n * Add an `int32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt32 = function(value) {\n this.prep(4, 0);\n this.writeInt32(value);\n};\n\n/**\n * Add an `int64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {flatbuffers.Long} value The `int64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt64 = function(value) {\n this.prep(8, 0);\n this.writeInt64(value);\n};\n\n/**\n * Add a `float32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat32 = function(value) {\n this.prep(4, 0);\n this.writeFloat32(value);\n};\n\n/**\n * Add a `float64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat64 = function(value) {\n this.prep(8, 0);\n this.writeFloat64(value);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt8 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt8(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt16 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt16(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Long} value\n * @param {flatbuffers.Long} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || !value.equals(defaultValue)) {\n this.addInt64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldOffset = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addOffset(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structs are stored inline, so nothing additional is being added. `d` is always 0.\n *\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldStruct = function(voffset, value, defaultValue) {\n if (value != defaultValue) {\n this.nested(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structures are always stored inline, they need to be created right\n * where they're used. You'll get this assertion failure if you\n * created it elsewhere.\n *\n * @param {flatbuffers.Offset} obj The offset of the created object\n */\nflatbuffers.Builder.prototype.nested = function(obj) {\n if (obj != this.offset()) {\n throw new Error('FlatBuffers: struct must be serialized inline.');\n }\n};\n\n/**\n * Should not be creating any other object, string or vector\n * while an object is being constructed\n */\nflatbuffers.Builder.prototype.notNested = function() {\n if (this.isNested) {\n throw new Error('FlatBuffers: object serialization must not be nested.');\n }\n};\n\n/**\n * Set the current vtable at `voffset` to the current location in the buffer.\n *\n * @param {number} voffset\n */\nflatbuffers.Builder.prototype.slot = function(voffset) {\n this.vtable[voffset] = this.offset();\n};\n\n/**\n * @returns {flatbuffers.Offset} Offset relative to the end of the buffer.\n */\nflatbuffers.Builder.prototype.offset = function() {\n return this.bb.capacity() - this.space;\n};\n\n/**\n * Doubles the size of the backing ByteBuffer and copies the old data towards\n * the end of the new buffer (since we build the buffer backwards).\n *\n * @param {flatbuffers.ByteBuffer} bb The current buffer with the existing data\n * @returns {!flatbuffers.ByteBuffer} A new byte buffer with the old data copied\n * to it. The data is located at the end of the buffer.\n *\n * uint8Array.set() formally takes {Array<number>|ArrayBufferView}, so to pass\n * it a uint8Array we need to suppress the type check:\n * @suppress {checkTypes}\n */\nflatbuffers.Builder.growByteBuffer = function(bb) {\n var old_buf_size = bb.capacity();\n\n // Ensure we don't grow beyond what fits in an int.\n if (old_buf_size & 0xC0000000) {\n throw new Error('FlatBuffers: cannot grow buffer beyond 2 gigabytes.');\n }\n\n var new_buf_size = old_buf_size << 1;\n var nbb = flatbuffers.ByteBuffer.allocate(new_buf_size);\n nbb.setPosition(new_buf_size - old_buf_size);\n nbb.bytes().set(bb.bytes(), new_buf_size - old_buf_size);\n return nbb;\n};\n/// @endcond\n\n/**\n * Adds on offset, relative to where it will be written.\n *\n * @param {flatbuffers.Offset} offset The offset to add.\n */\nflatbuffers.Builder.prototype.addOffset = function(offset) {\n this.prep(flatbuffers.SIZEOF_INT, 0); // Ensure alignment is already done.\n this.writeInt32(this.offset() - offset + flatbuffers.SIZEOF_INT);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Start encoding a new object in the buffer. Users will not usually need to\n * call this directly. The FlatBuffers compiler will generate helper methods\n * that call this method internally.\n *\n * @param {number} numfields\n */\nflatbuffers.Builder.prototype.startObject = function(numfields) {\n this.notNested();\n if (this.vtable == null) {\n this.vtable = [];\n }\n this.vtable_in_use = numfields;\n for (var i = 0; i < numfields; i++) {\n this.vtable[i] = 0; // This will push additional elements as needed\n }\n this.isNested = true;\n this.object_start = this.offset();\n};\n\n/**\n * Finish off writing the object that is under construction.\n *\n * @returns {flatbuffers.Offset} The offset to the object inside `dataBuffer`\n */\nflatbuffers.Builder.prototype.endObject = function() {\n if (this.vtable == null || !this.isNested) {\n throw new Error('FlatBuffers: endObject called without startObject');\n }\n\n this.addInt32(0);\n var vtableloc = this.offset();\n\n // Trim trailing zeroes.\n var i = this.vtable_in_use - 1;\n for (; i >= 0 && this.vtable[i] == 0; i--) {}\n var trimmed_size = i + 1;\n\n // Write out the current vtable.\n for (; i >= 0; i--) {\n // Offset relative to the start of the table.\n this.addInt16(this.vtable[i] != 0 ? vtableloc - this.vtable[i] : 0);\n }\n\n var standard_fields = 2; // The fields below:\n this.addInt16(vtableloc - this.object_start);\n var len = (trimmed_size + standard_fields) * flatbuffers.SIZEOF_SHORT;\n this.addInt16(len);\n\n // Search for an existing vtable that matches the current one.\n var existing_vtable = 0;\n var vt1 = this.space;\nouter_loop:\n for (i = 0; i < this.vtables.length; i++) {\n var vt2 = this.bb.capacity() - this.vtables[i];\n if (len == this.bb.readInt16(vt2)) {\n for (var j = flatbuffers.SIZEOF_SHORT; j < len; j += flatbuffers.SIZEOF_SHORT) {\n if (this.bb.readInt16(vt1 + j) != this.bb.readInt16(vt2 + j)) {\n continue outer_loop;\n }\n }\n existing_vtable = this.vtables[i];\n break;\n }\n }\n\n if (existing_vtable) {\n // Found a match:\n // Remove the current vtable.\n this.space = this.bb.capacity() - vtableloc;\n\n // Point table to existing vtable.\n this.bb.writeInt32(this.space, existing_vtable - vtableloc);\n } else {\n // No match:\n // Add the location of the current vtable to the list of vtables.\n this.vtables.push(this.offset());\n\n // Point table to current vtable.\n this.bb.writeInt32(this.bb.capacity() - vtableloc, this.offset() - vtableloc);\n }\n\n this.isNested = false;\n return vtableloc;\n};\n/// @endcond\n\n/**\n * Finalize a buffer, poiting to the given `root_table`.\n *\n * @param {flatbuffers.Offset} root_table\n * @param {string=} opt_file_identifier\n * @param {boolean=} opt_size_prefix\n */\nflatbuffers.Builder.prototype.finish = function(root_table, opt_file_identifier, opt_size_prefix) {\n var size_prefix = opt_size_prefix ? flatbuffers.SIZE_PREFIX_LENGTH : 0;\n if (opt_file_identifier) {\n var file_identifier = opt_file_identifier;\n this.prep(this.minalign, flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH + size_prefix);\n if (file_identifier.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = flatbuffers.FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) {\n this.writeInt8(file_identifier.charCodeAt(i));\n }\n }\n this.prep(this.minalign, flatbuffers.SIZEOF_INT + size_prefix);\n this.addOffset(root_table);\n if (size_prefix) {\n this.addInt32(this.bb.capacity() - this.space);\n }\n this.bb.setPosition(this.space);\n};\n\n/**\n * Finalize a size prefixed buffer, pointing to the given `root_table`.\n *\n * @param {flatbuffers.Offset} root_table\n * @param {string=} opt_file_identifier\n */\nflatbuffers.Builder.prototype.finishSizePrefixed = function (root_table, opt_file_identifier) {\n this.finish(root_table, opt_file_identifier, true);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * This checks a required field has been set in a given table that has\n * just been constructed.\n *\n * @param {flatbuffers.Offset} table\n * @param {number} field\n */\nflatbuffers.Builder.prototype.requiredField = function(table, field) {\n var table_start = this.bb.capacity() - table;\n var vtable_start = table_start - this.bb.readInt32(table_start);\n var ok = this.bb.readInt16(vtable_start + field) != 0;\n\n // If this fails, the caller will show what field needs to be set.\n if (!ok) {\n throw new Error('FlatBuffers: field ' + field + ' must be set');\n }\n};\n\n/**\n * Start a new array/vector of objects. Users usually will not call\n * this directly. The FlatBuffers compiler will create a start/end\n * method for vector types in generated code.\n *\n * @param {number} elem_size The size of each element in the array\n * @param {number} num_elems The number of elements in the array\n * @param {number} alignment The alignment of the array\n */\nflatbuffers.Builder.prototype.startVector = function(elem_size, num_elems, alignment) {\n this.notNested();\n this.vector_num_elems = num_elems;\n this.prep(flatbuffers.SIZEOF_INT, elem_size * num_elems);\n this.prep(alignment, elem_size * num_elems); // Just in case alignment > int.\n};\n\n/**\n * Finish off the creation of an array and all its elements. The array must be\n * created with `startVector`.\n *\n * @returns {flatbuffers.Offset} The offset at which the newly created array\n * starts.\n */\nflatbuffers.Builder.prototype.endVector = function() {\n this.writeInt32(this.vector_num_elems);\n return this.offset();\n};\n/// @endcond\n\n/**\n * Encode the string `s` in the buffer using UTF-8. If a Uint8Array is passed\n * instead of a string, it is assumed to contain valid UTF-8 encoded data.\n *\n * @param {string|Uint8Array} s The string to encode\n * @return {flatbuffers.Offset} The offset in the buffer where the encoded string starts\n */\nflatbuffers.Builder.prototype.createString = function(s) {\n if (s instanceof Uint8Array) {\n var utf8 = s;\n } else {\n var utf8 = [];\n var i = 0;\n\n while (i < s.length) {\n var codePoint;\n\n // Decode UTF-16\n var a = s.charCodeAt(i++);\n if (a < 0xD800 || a >= 0xDC00) {\n codePoint = a;\n } else {\n var b = s.charCodeAt(i++);\n codePoint = (a << 10) + b + (0x10000 - (0xD800 << 10) - 0xDC00);\n }\n\n // Encode UTF-8\n if (codePoint < 0x80) {\n utf8.push(codePoint);\n } else {\n if (codePoint < 0x800) {\n utf8.push(((codePoint >> 6) & 0x1F) | 0xC0);\n } else {\n if (codePoint < 0x10000) {\n utf8.push(((codePoint >> 12) & 0x0F) | 0xE0);\n } else {\n utf8.push(\n ((codePoint >> 18) & 0x07) | 0xF0,\n ((codePoint >> 12) & 0x3F) | 0x80);\n }\n utf8.push(((codePoint >> 6) & 0x3F) | 0x80);\n }\n utf8.push((codePoint & 0x3F) | 0x80);\n }\n }\n }\n\n this.addInt8(0);\n this.startVector(1, utf8.length, 1);\n this.bb.setPosition(this.space -= utf8.length);\n for (var i = 0, offset = this.space, bytes = this.bb.bytes(); i < utf8.length; i++) {\n bytes[offset++] = utf8[i];\n }\n return this.endVector();\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.Builder.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n////////////////////////////////////////////////////////////////////////////////\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Create a new ByteBuffer with a given array of bytes (`Uint8Array`).\n *\n * @constructor\n * @param {Uint8Array} bytes\n */\nflatbuffers.ByteBuffer = function(bytes) {\n /**\n * @type {Uint8Array}\n * @private\n */\n this.bytes_ = bytes;\n\n /**\n * @type {number}\n * @private\n */\n this.position_ = 0;\n};\n\n/**\n * Create and allocate a new ByteBuffer with a given size.\n *\n * @param {number} byte_size\n * @returns {!flatbuffers.ByteBuffer}\n */\nflatbuffers.ByteBuffer.allocate = function(byte_size) {\n return new flatbuffers.ByteBuffer(new Uint8Array(byte_size));\n};\n\nflatbuffers.ByteBuffer.prototype.clear = function() {\n this.position_ = 0;\n};\n\n/**\n * Get the underlying `Uint8Array`.\n *\n * @returns {Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.bytes = function() {\n return this.bytes_;\n};\n\n/**\n * Get the buffer's position.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.position = function() {\n return this.position_;\n};\n\n/**\n * Set the buffer's position.\n *\n * @param {number} position\n */\nflatbuffers.ByteBuffer.prototype.setPosition = function(position) {\n this.position_ = position;\n};\n\n/**\n * Get the buffer's capacity.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.capacity = function() {\n return this.bytes_.length;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt8 = function(offset) {\n return this.readUint8(offset) << 24 >> 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint8 = function(offset) {\n return this.bytes_[offset];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt16 = function(offset) {\n return this.readUint16(offset) << 16 >> 16;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint16 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt32 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint32 = function(offset) {\n return this.readInt32(offset) >>> 0;\n};\n\n/**\n * @param {number} offset\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readInt64 = function(offset) {\n return new flatbuffers.Long(this.readInt32(offset), this.readInt32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readUint64 = function(offset) {\n return new flatbuffers.Long(this.readUint32(offset), this.readUint32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat32 = function(offset) {\n flatbuffers.int32[0] = this.readInt32(offset);\n return flatbuffers.float32[0];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat64 = function(offset) {\n flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1] = this.readInt32(offset);\n flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0] = this.readInt32(offset + 4);\n return flatbuffers.float64[0];\n};\n\n/**\n * @param {number} offset\n * @param {number|boolean} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt8 = function(offset, value) {\n this.bytes_[offset] = /** @type {number} */(value);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint8 = function(offset, value) {\n this.bytes_[offset] = value;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt64 = function(offset, value) {\n this.writeInt32(offset, value.low);\n this.writeInt32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint64 = function(offset, value) {\n this.writeUint32(offset, value.low);\n this.writeUint32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat32 = function(offset, value) {\n flatbuffers.float32[0] = value;\n this.writeInt32(offset, flatbuffers.int32[0]);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat64 = function(offset, value) {\n flatbuffers.float64[0] = value;\n this.writeInt32(offset, flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1]);\n this.writeInt32(offset + 4, flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0]);\n};\n\n/**\n * Return the file identifier. Behavior is undefined for FlatBuffers whose\n * schema does not include a file_identifier (likely points at padding or the\n * start of a the root vtable).\n * @returns {string}\n */\nflatbuffers.ByteBuffer.prototype.getBufferIdentifier = function() {\n if (this.bytes_.length < this.position_ + flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error(\n 'FlatBuffers: ByteBuffer is too short to contain an identifier.');\n }\n var result = \"\";\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n result += String.fromCharCode(\n this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i));\n }\n return result;\n};\n\n/**\n * Look up a field in the vtable, return an offset into the object, or 0 if the\n * field is not present.\n *\n * @param {number} bb_pos\n * @param {number} vtable_offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__offset = function(bb_pos, vtable_offset) {\n var vtable = bb_pos - this.readInt32(bb_pos);\n return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0;\n};\n\n/**\n * Initialize any Table-derived type to point to the union at the given offset.\n *\n * @param {flatbuffers.Table} t\n * @param {number} offset\n * @returns {flatbuffers.Table}\n */\nflatbuffers.ByteBuffer.prototype.__union = function(t, offset) {\n t.bb_pos = offset + this.readInt32(offset);\n t.bb = this;\n return t;\n};\n\n/**\n * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer.\n * This allocates a new string and converts to wide chars upon each access.\n *\n * To avoid the conversion to UTF-16, pass flatbuffers.Encoding.UTF8_BYTES as\n * the \"optionalEncoding\" argument. This is useful for avoiding conversion to\n * and from UTF-16 when the data will just be packaged back up in another\n * FlatBuffer later on.\n *\n * @param {number} offset\n * @param {flatbuffers.Encoding=} opt_encoding Defaults to UTF16_STRING\n * @returns {string|!Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.__string = function(offset, opt_encoding) {\n offset += this.readInt32(offset);\n\n var length = this.readInt32(offset);\n var result = '';\n var i = 0;\n\n offset += flatbuffers.SIZEOF_INT;\n\n if (opt_encoding === flatbuffers.Encoding.UTF8_BYTES) {\n return this.bytes_.subarray(offset, offset + length);\n }\n\n while (i < length) {\n var codePoint;\n\n // Decode UTF-8\n var a = this.readUint8(offset + i++);\n if (a < 0xC0) {\n codePoint = a;\n } else {\n var b = this.readUint8(offset + i++);\n if (a < 0xE0) {\n codePoint =\n ((a & 0x1F) << 6) |\n (b & 0x3F);\n } else {\n var c = this.readUint8(offset + i++);\n if (a < 0xF0) {\n codePoint =\n ((a & 0x0F) << 12) |\n ((b & 0x3F) << 6) |\n (c & 0x3F);\n } else {\n var d = this.readUint8(offset + i++);\n codePoint =\n ((a & 0x07) << 18) |\n ((b & 0x3F) << 12) |\n ((c & 0x3F) << 6) |\n (d & 0x3F);\n }\n }\n }\n\n // Encode UTF-16\n if (codePoint < 0x10000) {\n result += String.fromCharCode(codePoint);\n } else {\n codePoint -= 0x10000;\n result += String.fromCharCode(\n (codePoint >> 10) + 0xD800,\n (codePoint & ((1 << 10) - 1)) + 0xDC00);\n }\n }\n\n return result;\n};\n\n/**\n * Retrieve the relative offset stored at \"offset\"\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__indirect = function(offset) {\n return offset + this.readInt32(offset);\n};\n\n/**\n * Get the start of data of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector = function(offset) {\n return offset + this.readInt32(offset) + flatbuffers.SIZEOF_INT; // data starts after the length\n};\n\n/**\n * Get the length of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector_len = function(offset) {\n return this.readInt32(offset + this.readInt32(offset));\n};\n\n/**\n * @param {string} ident\n * @returns {boolean}\n */\nflatbuffers.ByteBuffer.prototype.__has_identifier = function(ident) {\n if (ident.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n if (ident.charCodeAt(i) != this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n\n// Exports for Node.js and RequireJS\nexport { flatbuffers };\n\n/// @endcond\n/// @}\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._InternalEmptyPlaceholderRecordBatch = exports.RecordBatch = void 0;\nconst data_1 = require(\"./data\");\nconst table_1 = require(\"./table\");\nconst vector_1 = require(\"./vector\");\nconst visitor_1 = require(\"./visitor\");\nconst schema_1 = require(\"./schema\");\nconst compat_1 = require(\"./util/compat\");\nconst chunked_1 = require(\"./vector/chunked\");\nconst args_1 = require(\"./util/args\");\nconst type_1 = require(\"./type\");\nconst recordbatch_1 = require(\"./util/recordbatch\");\nconst index_1 = require(\"./vector/index\");\nclass RecordBatch extends index_1.StructVector {\n constructor(...args) {\n let data;\n const schema = args[0];\n let children;\n if (args[1] instanceof data_1.Data) {\n [, data, children] = args;\n }\n else {\n const fields = schema.fields;\n const [, length, childData] = args;\n data = data_1.Data.Struct(new type_1.Struct(fields), 0, length, 0, null, childData);\n }\n super(data, children);\n this._schema = schema;\n }\n /** @nocollapse */\n static from(options) {\n if (compat_1.isIterable(options['values'])) {\n return table_1.Table.from(options);\n }\n return table_1.Table.from(options);\n }\n /** @nocollapse */\n static new(...args) {\n const [fs, xs] = args_1.selectFieldArgs(args);\n const vs = xs.filter((x) => x instanceof vector_1.Vector);\n return new RecordBatch(...recordbatch_1.ensureSameLengthData(new schema_1.Schema(fs), vs.map((x) => x.data)));\n }\n clone(data, children = this._children) {\n return new RecordBatch(this._schema, data, children);\n }\n concat(...others) {\n const schema = this._schema, chunks = chunked_1.Chunked.flatten(this, ...others);\n return new table_1.Table(schema, chunks.map(({ data }) => new RecordBatch(schema, data)));\n }\n get schema() { return this._schema; }\n get numCols() { return this._schema.fields.length; }\n get dictionaries() {\n return this._dictionaries || (this._dictionaries = DictionaryCollector.collect(this));\n }\n select(...columnNames) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)).filter((x) => x > -1));\n }\n selectAt(...columnIndices) {\n const schema = this._schema.selectAt(...columnIndices);\n const childData = columnIndices.map((i) => this.data.childData[i]).filter(Boolean);\n return new RecordBatch(schema, this.length, childData);\n }\n}\nexports.RecordBatch = RecordBatch;\n/**\n * An internal class used by the `RecordBatchReader` and `RecordBatchWriter`\n * implementations to differentiate between a stream with valid zero-length\n * RecordBatches, and a stream with a Schema message, but no RecordBatches.\n * @see https://github.com/apache/arrow/pull/4373\n * @ignore\n * @private\n */\n/* eslint-disable @typescript-eslint/naming-convention */\nclass _InternalEmptyPlaceholderRecordBatch extends RecordBatch {\n constructor(schema) {\n super(schema, 0, schema.fields.map((f) => data_1.Data.new(f.type, 0, 0, 0)));\n }\n}\nexports._InternalEmptyPlaceholderRecordBatch = _InternalEmptyPlaceholderRecordBatch;\n/** @ignore */\nclass DictionaryCollector extends visitor_1.Visitor {\n constructor() {\n super(...arguments);\n this.dictionaries = new Map();\n }\n static collect(batch) {\n return new DictionaryCollector().visit(batch.data, new type_1.Struct(batch.schema.fields)).dictionaries;\n }\n visit(data, type) {\n if (type_1.DataType.isDictionary(type)) {\n return this.visitDictionary(data, type);\n }\n else {\n data.childData.forEach((child, i) => this.visit(child, type.children[i].type));\n }\n return this;\n }\n visitDictionary(data, type) {\n const dictionary = data.dictionary;\n if (dictionary && dictionary.length > 0) {\n this.dictionaries.set(type.id, dictionary);\n }\n return this;\n }\n}\n\n//# sourceMappingURL=recordbatch.js.map\n","\"use strict\";\n// automatically generated by the FlatBuffers compiler, do not modify\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Schema = exports.Buffer = exports.Field = exports.DictionaryEncoding = exports.KeyValue = exports.Duration = exports.Interval = exports.Timestamp = exports.Time = exports.Date = exports.Decimal = exports.Bool = exports.FixedSizeBinary = exports.LargeBinary = exports.LargeUtf8 = exports.Binary = exports.Utf8 = exports.FloatingPoint = exports.Int = exports.Union = exports.Map = exports.FixedSizeList = exports.LargeList = exports.List = exports.Struct_ = exports.Null = exports.Endianness = exports.DictionaryKind = exports.Type = exports.IntervalUnit = exports.TimeUnit = exports.DateUnit = exports.Precision = exports.UnionMode = exports.Feature = exports.MetadataVersion = void 0;\nconst flatbuffers_1 = require(\"flatbuffers\");\n/**\n * Logical types, vector layouts, and schemas\n *\n * @enum {number}\n */\nvar MetadataVersion;\n(function (MetadataVersion) {\n /**\n * 0.1.0 (October 2016).\n */\n MetadataVersion[MetadataVersion[\"V1\"] = 0] = \"V1\";\n /**\n * 0.2.0 (February 2017). Non-backwards compatible with V1.\n */\n MetadataVersion[MetadataVersion[\"V2\"] = 1] = \"V2\";\n /**\n * 0.3.0 -> 0.7.1 (May - December 2017). Non-backwards compatible with V2.\n */\n MetadataVersion[MetadataVersion[\"V3\"] = 2] = \"V3\";\n /**\n * >= 0.8.0 (December 2017). Non-backwards compatible with V3.\n */\n MetadataVersion[MetadataVersion[\"V4\"] = 3] = \"V4\";\n /**\n * >= 1.0.0 (July 2020. Backwards compatible with V4 (V5 readers can read V4\n * metadata and IPC messages). Implementations are recommended to provide a\n * V4 compatibility mode with V5 format changes disabled.\n *\n * Incompatible changes between V4 and V5:\n * - Union buffer layout has changed. In V5, Unions don't have a validity\n * bitmap buffer.\n */\n MetadataVersion[MetadataVersion[\"V5\"] = 4] = \"V5\";\n})(MetadataVersion = exports.MetadataVersion || (exports.MetadataVersion = {}));\n/**\n * Represents Arrow Features that might not have full support\n * within implementations. This is intended to be used in\n * two scenarios:\n * 1. A mechanism for readers of Arrow Streams\n * and files to understand that the stream or file makes\n * use of a feature that isn't supported or unknown to\n * the implementation (and therefore can meet the Arrow\n * forward compatibility guarantees).\n * 2. A means of negotiating between a client and server\n * what features a stream is allowed to use. The enums\n * values here are intented to represent higher level\n * features, additional details maybe negotiated\n * with key-value pairs specific to the protocol.\n *\n * Enums added to this list should be assigned power-of-two values\n * to facilitate exchanging and comparing bitmaps for supported\n * features.\n *\n * @enum {number}\n */\nvar Feature;\n(function (Feature) {\n /**\n * Needed to make flatbuffers happy.\n */\n Feature[Feature[\"UNUSED\"] = 0] = \"UNUSED\";\n /**\n * The stream makes use of multiple full dictionaries with the\n * same ID and assumes clients implement dictionary replacement\n * correctly.\n */\n Feature[Feature[\"DICTIONARY_REPLACEMENT\"] = 1] = \"DICTIONARY_REPLACEMENT\";\n /**\n * The stream makes use of compressed bodies as described\n * in Message.fbs.\n */\n Feature[Feature[\"COMPRESSED_BODY\"] = 2] = \"COMPRESSED_BODY\";\n})(Feature = exports.Feature || (exports.Feature = {}));\n/**\n * @enum {number}\n */\nvar UnionMode;\n(function (UnionMode) {\n UnionMode[UnionMode[\"Sparse\"] = 0] = \"Sparse\";\n UnionMode[UnionMode[\"Dense\"] = 1] = \"Dense\";\n})(UnionMode = exports.UnionMode || (exports.UnionMode = {}));\n/**\n * @enum {number}\n */\nvar Precision;\n(function (Precision) {\n Precision[Precision[\"HALF\"] = 0] = \"HALF\";\n Precision[Precision[\"SINGLE\"] = 1] = \"SINGLE\";\n Precision[Precision[\"DOUBLE\"] = 2] = \"DOUBLE\";\n})(Precision = exports.Precision || (exports.Precision = {}));\n/**\n * @enum {number}\n */\nvar DateUnit;\n(function (DateUnit) {\n DateUnit[DateUnit[\"DAY\"] = 0] = \"DAY\";\n DateUnit[DateUnit[\"MILLISECOND\"] = 1] = \"MILLISECOND\";\n})(DateUnit = exports.DateUnit || (exports.DateUnit = {}));\n/**\n * @enum {number}\n */\nvar TimeUnit;\n(function (TimeUnit) {\n TimeUnit[TimeUnit[\"SECOND\"] = 0] = \"SECOND\";\n TimeUnit[TimeUnit[\"MILLISECOND\"] = 1] = \"MILLISECOND\";\n TimeUnit[TimeUnit[\"MICROSECOND\"] = 2] = \"MICROSECOND\";\n TimeUnit[TimeUnit[\"NANOSECOND\"] = 3] = \"NANOSECOND\";\n})(TimeUnit = exports.TimeUnit || (exports.TimeUnit = {}));\n/**\n * @enum {number}\n */\nvar IntervalUnit;\n(function (IntervalUnit) {\n IntervalUnit[IntervalUnit[\"YEAR_MONTH\"] = 0] = \"YEAR_MONTH\";\n IntervalUnit[IntervalUnit[\"DAY_TIME\"] = 1] = \"DAY_TIME\";\n})(IntervalUnit = exports.IntervalUnit || (exports.IntervalUnit = {}));\n/**\n * ----------------------------------------------------------------------\n * Top-level Type value, enabling extensible type-specific metadata. We can\n * add new logical types to Type without breaking backwards compatibility\n *\n * @enum {number}\n */\nvar Type;\n(function (Type) {\n Type[Type[\"NONE\"] = 0] = \"NONE\";\n Type[Type[\"Null\"] = 1] = \"Null\";\n Type[Type[\"Int\"] = 2] = \"Int\";\n Type[Type[\"FloatingPoint\"] = 3] = \"FloatingPoint\";\n Type[Type[\"Binary\"] = 4] = \"Binary\";\n Type[Type[\"Utf8\"] = 5] = \"Utf8\";\n Type[Type[\"Bool\"] = 6] = \"Bool\";\n Type[Type[\"Decimal\"] = 7] = \"Decimal\";\n Type[Type[\"Date\"] = 8] = \"Date\";\n Type[Type[\"Time\"] = 9] = \"Time\";\n Type[Type[\"Timestamp\"] = 10] = \"Timestamp\";\n Type[Type[\"Interval\"] = 11] = \"Interval\";\n Type[Type[\"List\"] = 12] = \"List\";\n Type[Type[\"Struct_\"] = 13] = \"Struct_\";\n Type[Type[\"Union\"] = 14] = \"Union\";\n Type[Type[\"FixedSizeBinary\"] = 15] = \"FixedSizeBinary\";\n Type[Type[\"FixedSizeList\"] = 16] = \"FixedSizeList\";\n Type[Type[\"Map\"] = 17] = \"Map\";\n Type[Type[\"Duration\"] = 18] = \"Duration\";\n Type[Type[\"LargeBinary\"] = 19] = \"LargeBinary\";\n Type[Type[\"LargeUtf8\"] = 20] = \"LargeUtf8\";\n Type[Type[\"LargeList\"] = 21] = \"LargeList\";\n})(Type = exports.Type || (exports.Type = {}));\n/**\n * ----------------------------------------------------------------------\n * Dictionary encoding metadata\n * Maintained for forwards compatibility, in the future\n * Dictionaries might be explicit maps between integers and values\n * allowing for non-contiguous index values\n *\n * @enum {number}\n */\nvar DictionaryKind;\n(function (DictionaryKind) {\n DictionaryKind[DictionaryKind[\"DenseArray\"] = 0] = \"DenseArray\";\n})(DictionaryKind = exports.DictionaryKind || (exports.DictionaryKind = {}));\n/**\n * ----------------------------------------------------------------------\n * Endianness of the platform producing the data\n *\n * @enum {number}\n */\nvar Endianness;\n(function (Endianness) {\n Endianness[Endianness[\"Little\"] = 0] = \"Little\";\n Endianness[Endianness[\"Big\"] = 1] = \"Big\";\n})(Endianness = exports.Endianness || (exports.Endianness = {}));\n/**\n * These are stored in the flatbuffer in the Type union below\n *\n * @constructor\n */\nclass Null {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Null\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Null= obj\n * @returns Null\n */\n static getRootAsNull(bb, obj) {\n return (obj || new Null()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Null= obj\n * @returns Null\n */\n static getSizePrefixedRootAsNull(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Null()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startNull(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endNull(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createNull(builder) {\n Null.startNull(builder);\n return Null.endNull(builder);\n }\n}\nexports.Null = Null;\n/**\n * A Struct_ in the flatbuffer metadata is the same as an Arrow Struct\n * (according to the physical memory layout). We used Struct_ here as\n * Struct is a reserved word in Flatbuffers\n *\n * @constructor\n */\nclass Struct_ {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Struct_\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Struct_= obj\n * @returns Struct_\n */\n static getRootAsStruct_(bb, obj) {\n return (obj || new Struct_()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Struct_= obj\n * @returns Struct_\n */\n static getSizePrefixedRootAsStruct_(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Struct_()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startStruct_(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endStruct_(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createStruct_(builder) {\n Struct_.startStruct_(builder);\n return Struct_.endStruct_(builder);\n }\n}\nexports.Struct_ = Struct_;\n/**\n * @constructor\n */\nclass List {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns List\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param List= obj\n * @returns List\n */\n static getRootAsList(bb, obj) {\n return (obj || new List()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param List= obj\n * @returns List\n */\n static getSizePrefixedRootAsList(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new List()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startList(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endList(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createList(builder) {\n List.startList(builder);\n return List.endList(builder);\n }\n}\nexports.List = List;\n/**\n * Same as List, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nclass LargeList {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeList\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeList= obj\n * @returns LargeList\n */\n static getRootAsLargeList(bb, obj) {\n return (obj || new LargeList()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeList= obj\n * @returns LargeList\n */\n static getSizePrefixedRootAsLargeList(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new LargeList()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeList(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeList(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createLargeList(builder) {\n LargeList.startLargeList(builder);\n return LargeList.endLargeList(builder);\n }\n}\nexports.LargeList = LargeList;\n/**\n * @constructor\n */\nclass FixedSizeList {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeList\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeList= obj\n * @returns FixedSizeList\n */\n static getRootAsFixedSizeList(bb, obj) {\n return (obj || new FixedSizeList()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeList= obj\n * @returns FixedSizeList\n */\n static getSizePrefixedRootAsFixedSizeList(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new FixedSizeList()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * Number of list items per value\n *\n * @returns number\n */\n listSize() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeList(builder) {\n builder.startObject(1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number listSize\n */\n static addListSize(builder, listSize) {\n builder.addFieldInt32(0, listSize, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeList(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createFixedSizeList(builder, listSize) {\n FixedSizeList.startFixedSizeList(builder);\n FixedSizeList.addListSize(builder, listSize);\n return FixedSizeList.endFixedSizeList(builder);\n }\n}\nexports.FixedSizeList = FixedSizeList;\n/**\n * A Map is a logical nested type that is represented as\n *\n * List<entries: Struct<key: K, value: V>>\n *\n * In this layout, the keys and values are each respectively contiguous. We do\n * not constrain the key and value types, so the application is responsible\n * for ensuring that the keys are hashable and unique. Whether the keys are sorted\n * may be set in the metadata for this field.\n *\n * In a field with Map type, the field has a child Struct field, which then\n * has two children: key type and the second the value type. The names of the\n * child fields may be respectively \"entries\", \"key\", and \"value\", but this is\n * not enforced.\n *\n * Map\n * - child[0] entries: Struct\n * - child[0] key: K\n * - child[1] value: V\n *\n * Neither the \"entries\" field nor the \"key\" field may be nullable.\n *\n * The metadata is structured so that Arrow systems without special handling\n * for Map can make Map an alias for List. The \"layout\" attribute for the Map\n * field must have the same contents as a List.\n *\n * @constructor\n */\nclass Map {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Map\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Map= obj\n * @returns Map\n */\n static getRootAsMap(bb, obj) {\n return (obj || new Map()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Map= obj\n * @returns Map\n */\n static getSizePrefixedRootAsMap(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Map()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * Set to true if the keys within each value are sorted\n *\n * @returns boolean\n */\n keysSorted() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startMap(builder) {\n builder.startObject(1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param boolean keysSorted\n */\n static addKeysSorted(builder, keysSorted) {\n builder.addFieldInt8(0, +keysSorted, +false);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMap(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createMap(builder, keysSorted) {\n Map.startMap(builder);\n Map.addKeysSorted(builder, keysSorted);\n return Map.endMap(builder);\n }\n}\nexports.Map = Map;\n/**\n * A union is a complex type with children in Field\n * By default ids in the type vector refer to the offsets in the children\n * optionally typeIds provides an indirection between the child offset and the type id\n * for each child typeIds[offset] is the id used in the type vector\n *\n * @constructor\n */\nclass Union {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Union\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Union= obj\n * @returns Union\n */\n static getRootAsUnion(bb, obj) {\n return (obj || new Union()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Union= obj\n * @returns Union\n */\n static getSizePrefixedRootAsUnion(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Union()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns UnionMode\n */\n mode() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : UnionMode.Sparse;\n }\n /**\n * @param number index\n * @returns number\n */\n typeIds(index) {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;\n }\n /**\n * @returns number\n */\n typeIdsLength() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * @returns Int32Array\n */\n typeIdsArray() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startUnion(builder) {\n builder.startObject(2);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param UnionMode mode\n */\n static addMode(builder, mode) {\n builder.addFieldInt16(0, mode, UnionMode.Sparse);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeIdsOffset\n */\n static addTypeIds(builder, typeIdsOffset) {\n builder.addFieldOffset(1, typeIdsOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<number> data\n * @returns flatbuffers.Offset\n */\n static createTypeIdsVector(builder, data) {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt32(data[i]);\n }\n return builder.endVector();\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startTypeIdsVector(builder, numElems) {\n builder.startVector(4, numElems, 4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUnion(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createUnion(builder, mode, typeIdsOffset) {\n Union.startUnion(builder);\n Union.addMode(builder, mode);\n Union.addTypeIds(builder, typeIdsOffset);\n return Union.endUnion(builder);\n }\n}\nexports.Union = Union;\n/**\n * @constructor\n */\nclass Int {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Int\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Int= obj\n * @returns Int\n */\n static getRootAsInt(bb, obj) {\n return (obj || new Int()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Int= obj\n * @returns Int\n */\n static getSizePrefixedRootAsInt(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Int()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns number\n */\n bitWidth() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;\n }\n /**\n * @returns boolean\n */\n isSigned() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startInt(builder) {\n builder.startObject(2);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder, bitWidth) {\n builder.addFieldInt32(0, bitWidth, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isSigned\n */\n static addIsSigned(builder, isSigned) {\n builder.addFieldInt8(1, +isSigned, +false);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInt(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createInt(builder, bitWidth, isSigned) {\n Int.startInt(builder);\n Int.addBitWidth(builder, bitWidth);\n Int.addIsSigned(builder, isSigned);\n return Int.endInt(builder);\n }\n}\nexports.Int = Int;\n/**\n * @constructor\n */\nclass FloatingPoint {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FloatingPoint\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FloatingPoint= obj\n * @returns FloatingPoint\n */\n static getRootAsFloatingPoint(bb, obj) {\n return (obj || new FloatingPoint()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FloatingPoint= obj\n * @returns FloatingPoint\n */\n static getSizePrefixedRootAsFloatingPoint(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new FloatingPoint()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns Precision\n */\n precision() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : Precision.HALF;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startFloatingPoint(builder) {\n builder.startObject(1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Precision precision\n */\n static addPrecision(builder, precision) {\n builder.addFieldInt16(0, precision, Precision.HALF);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFloatingPoint(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createFloatingPoint(builder, precision) {\n FloatingPoint.startFloatingPoint(builder);\n FloatingPoint.addPrecision(builder, precision);\n return FloatingPoint.endFloatingPoint(builder);\n }\n}\nexports.FloatingPoint = FloatingPoint;\n/**\n * Unicode with UTF-8 encoding\n *\n * @constructor\n */\nclass Utf8 {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Utf8\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Utf8= obj\n * @returns Utf8\n */\n static getRootAsUtf8(bb, obj) {\n return (obj || new Utf8()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Utf8= obj\n * @returns Utf8\n */\n static getSizePrefixedRootAsUtf8(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Utf8()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startUtf8(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUtf8(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createUtf8(builder) {\n Utf8.startUtf8(builder);\n return Utf8.endUtf8(builder);\n }\n}\nexports.Utf8 = Utf8;\n/**\n * Opaque binary data\n *\n * @constructor\n */\nclass Binary {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Binary\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Binary= obj\n * @returns Binary\n */\n static getRootAsBinary(bb, obj) {\n return (obj || new Binary()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Binary= obj\n * @returns Binary\n */\n static getSizePrefixedRootAsBinary(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Binary()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startBinary(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBinary(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createBinary(builder) {\n Binary.startBinary(builder);\n return Binary.endBinary(builder);\n }\n}\nexports.Binary = Binary;\n/**\n * Same as Utf8, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nclass LargeUtf8 {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeUtf8\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeUtf8= obj\n * @returns LargeUtf8\n */\n static getRootAsLargeUtf8(bb, obj) {\n return (obj || new LargeUtf8()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeUtf8= obj\n * @returns LargeUtf8\n */\n static getSizePrefixedRootAsLargeUtf8(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new LargeUtf8()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeUtf8(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeUtf8(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createLargeUtf8(builder) {\n LargeUtf8.startLargeUtf8(builder);\n return LargeUtf8.endLargeUtf8(builder);\n }\n}\nexports.LargeUtf8 = LargeUtf8;\n/**\n * Same as Binary, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nclass LargeBinary {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeBinary\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeBinary= obj\n * @returns LargeBinary\n */\n static getRootAsLargeBinary(bb, obj) {\n return (obj || new LargeBinary()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeBinary= obj\n * @returns LargeBinary\n */\n static getSizePrefixedRootAsLargeBinary(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new LargeBinary()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeBinary(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeBinary(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createLargeBinary(builder) {\n LargeBinary.startLargeBinary(builder);\n return LargeBinary.endLargeBinary(builder);\n }\n}\nexports.LargeBinary = LargeBinary;\n/**\n * @constructor\n */\nclass FixedSizeBinary {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeBinary\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeBinary= obj\n * @returns FixedSizeBinary\n */\n static getRootAsFixedSizeBinary(bb, obj) {\n return (obj || new FixedSizeBinary()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeBinary= obj\n * @returns FixedSizeBinary\n */\n static getSizePrefixedRootAsFixedSizeBinary(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new FixedSizeBinary()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * Number of bytes per value\n *\n * @returns number\n */\n byteWidth() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeBinary(builder) {\n builder.startObject(1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number byteWidth\n */\n static addByteWidth(builder, byteWidth) {\n builder.addFieldInt32(0, byteWidth, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeBinary(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createFixedSizeBinary(builder, byteWidth) {\n FixedSizeBinary.startFixedSizeBinary(builder);\n FixedSizeBinary.addByteWidth(builder, byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(builder);\n }\n}\nexports.FixedSizeBinary = FixedSizeBinary;\n/**\n * @constructor\n */\nclass Bool {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Bool\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Bool= obj\n * @returns Bool\n */\n static getRootAsBool(bb, obj) {\n return (obj || new Bool()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Bool= obj\n * @returns Bool\n */\n static getSizePrefixedRootAsBool(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Bool()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startBool(builder) {\n builder.startObject(0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBool(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createBool(builder) {\n Bool.startBool(builder);\n return Bool.endBool(builder);\n }\n}\nexports.Bool = Bool;\n/**\n * Exact decimal value represented as an integer value in two's\n * complement. Currently only 128-bit (16-byte) and 256-bit (32-byte) integers\n * are used. The representation uses the endianness indicated\n * in the Schema.\n *\n * @constructor\n */\nclass Decimal {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Decimal\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Decimal= obj\n * @returns Decimal\n */\n static getRootAsDecimal(bb, obj) {\n return (obj || new Decimal()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Decimal= obj\n * @returns Decimal\n */\n static getSizePrefixedRootAsDecimal(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Decimal()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * Total number of decimal digits\n *\n * @returns number\n */\n precision() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;\n }\n /**\n * Number of digits after the decimal point \".\"\n *\n * @returns number\n */\n scale() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;\n }\n /**\n * Number of bits per value. The only accepted widths are 128 and 256.\n * We use bitWidth for consistency with Int::bitWidth.\n *\n * @returns number\n */\n bitWidth() {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? this.bb.readInt32(this.bb_pos + offset) : 128;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startDecimal(builder) {\n builder.startObject(3);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number precision\n */\n static addPrecision(builder, precision) {\n builder.addFieldInt32(0, precision, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number scale\n */\n static addScale(builder, scale) {\n builder.addFieldInt32(1, scale, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder, bitWidth) {\n builder.addFieldInt32(2, bitWidth, 128);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDecimal(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createDecimal(builder, precision, scale, bitWidth) {\n Decimal.startDecimal(builder);\n Decimal.addPrecision(builder, precision);\n Decimal.addScale(builder, scale);\n Decimal.addBitWidth(builder, bitWidth);\n return Decimal.endDecimal(builder);\n }\n}\nexports.Decimal = Decimal;\n/**\n * Date is either a 32-bit or 64-bit type representing elapsed time since UNIX\n * epoch (1970-01-01), stored in either of two units:\n *\n * * Milliseconds (64 bits) indicating UNIX time elapsed since the epoch (no\n * leap seconds), where the values are evenly divisible by 86400000\n * * Days (32 bits) since the UNIX epoch\n *\n * @constructor\n */\nclass Date {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Date\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Date= obj\n * @returns Date\n */\n static getRootAsDate(bb, obj) {\n return (obj || new Date()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Date= obj\n * @returns Date\n */\n static getSizePrefixedRootAsDate(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Date()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns DateUnit\n */\n unit() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : DateUnit.MILLISECOND;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startDate(builder) {\n builder.startObject(1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param DateUnit unit\n */\n static addUnit(builder, unit) {\n builder.addFieldInt16(0, unit, DateUnit.MILLISECOND);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDate(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createDate(builder, unit) {\n Date.startDate(builder);\n Date.addUnit(builder, unit);\n return Date.endDate(builder);\n }\n}\nexports.Date = Date;\n/**\n * Time type. The physical storage type depends on the unit\n * - SECOND and MILLISECOND: 32 bits\n * - MICROSECOND and NANOSECOND: 64 bits\n *\n * @constructor\n */\nclass Time {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Time\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Time= obj\n * @returns Time\n */\n static getRootAsTime(bb, obj) {\n return (obj || new Time()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Time= obj\n * @returns Time\n */\n static getSizePrefixedRootAsTime(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Time()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns TimeUnit\n */\n unit() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : TimeUnit.MILLISECOND;\n }\n /**\n * @returns number\n */\n bitWidth() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? this.bb.readInt32(this.bb_pos + offset) : 32;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startTime(builder) {\n builder.startObject(2);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param TimeUnit unit\n */\n static addUnit(builder, unit) {\n builder.addFieldInt16(0, unit, TimeUnit.MILLISECOND);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder, bitWidth) {\n builder.addFieldInt32(1, bitWidth, 32);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTime(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createTime(builder, unit, bitWidth) {\n Time.startTime(builder);\n Time.addUnit(builder, unit);\n Time.addBitWidth(builder, bitWidth);\n return Time.endTime(builder);\n }\n}\nexports.Time = Time;\n/**\n * Time elapsed from the Unix epoch, 00:00:00.000 on 1 January 1970, excluding\n * leap seconds, as a 64-bit integer. Note that UNIX time does not include\n * leap seconds.\n *\n * The Timestamp metadata supports both \"time zone naive\" and \"time zone\n * aware\" timestamps. Read about the timezone attribute for more detail\n *\n * @constructor\n */\nclass Timestamp {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Timestamp\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Timestamp= obj\n * @returns Timestamp\n */\n static getRootAsTimestamp(bb, obj) {\n return (obj || new Timestamp()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Timestamp= obj\n * @returns Timestamp\n */\n static getSizePrefixedRootAsTimestamp(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Timestamp()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns TimeUnit\n */\n unit() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : TimeUnit.SECOND;\n }\n timezone(optionalEncoding) {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startTimestamp(builder) {\n builder.startObject(2);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param TimeUnit unit\n */\n static addUnit(builder, unit) {\n builder.addFieldInt16(0, unit, TimeUnit.SECOND);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset timezoneOffset\n */\n static addTimezone(builder, timezoneOffset) {\n builder.addFieldOffset(1, timezoneOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTimestamp(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createTimestamp(builder, unit, timezoneOffset) {\n Timestamp.startTimestamp(builder);\n Timestamp.addUnit(builder, unit);\n Timestamp.addTimezone(builder, timezoneOffset);\n return Timestamp.endTimestamp(builder);\n }\n}\nexports.Timestamp = Timestamp;\n/**\n * @constructor\n */\nclass Interval {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Interval\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Interval= obj\n * @returns Interval\n */\n static getRootAsInterval(bb, obj) {\n return (obj || new Interval()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Interval= obj\n * @returns Interval\n */\n static getSizePrefixedRootAsInterval(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Interval()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns IntervalUnit\n */\n unit() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : IntervalUnit.YEAR_MONTH;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startInterval(builder) {\n builder.startObject(1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param IntervalUnit unit\n */\n static addUnit(builder, unit) {\n builder.addFieldInt16(0, unit, IntervalUnit.YEAR_MONTH);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInterval(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createInterval(builder, unit) {\n Interval.startInterval(builder);\n Interval.addUnit(builder, unit);\n return Interval.endInterval(builder);\n }\n}\nexports.Interval = Interval;\n/**\n * @constructor\n */\nclass Duration {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Duration\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Duration= obj\n * @returns Duration\n */\n static getRootAsDuration(bb, obj) {\n return (obj || new Duration()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Duration= obj\n * @returns Duration\n */\n static getSizePrefixedRootAsDuration(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Duration()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns TimeUnit\n */\n unit() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : TimeUnit.MILLISECOND;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startDuration(builder) {\n builder.startObject(1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param TimeUnit unit\n */\n static addUnit(builder, unit) {\n builder.addFieldInt16(0, unit, TimeUnit.MILLISECOND);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDuration(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createDuration(builder, unit) {\n Duration.startDuration(builder);\n Duration.addUnit(builder, unit);\n return Duration.endDuration(builder);\n }\n}\nexports.Duration = Duration;\n/**\n * ----------------------------------------------------------------------\n * user defined key value pairs to add custom metadata to arrow\n * key namespacing is the responsibility of the user\n *\n * @constructor\n */\nclass KeyValue {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns KeyValue\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param KeyValue= obj\n * @returns KeyValue\n */\n static getRootAsKeyValue(bb, obj) {\n return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param KeyValue= obj\n * @returns KeyValue\n */\n static getSizePrefixedRootAsKeyValue(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n key(optionalEncoding) {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n value(optionalEncoding) {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startKeyValue(builder) {\n builder.startObject(2);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset keyOffset\n */\n static addKey(builder, keyOffset) {\n builder.addFieldOffset(0, keyOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset valueOffset\n */\n static addValue(builder, valueOffset) {\n builder.addFieldOffset(1, valueOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endKeyValue(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createKeyValue(builder, keyOffset, valueOffset) {\n KeyValue.startKeyValue(builder);\n KeyValue.addKey(builder, keyOffset);\n KeyValue.addValue(builder, valueOffset);\n return KeyValue.endKeyValue(builder);\n }\n}\nexports.KeyValue = KeyValue;\n/**\n * @constructor\n */\nclass DictionaryEncoding {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryEncoding\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding\n */\n static getRootAsDictionaryEncoding(bb, obj) {\n return (obj || new DictionaryEncoding()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding\n */\n static getSizePrefixedRootAsDictionaryEncoding(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new DictionaryEncoding()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * The known dictionary id in the application where this data is used. In\n * the file or streaming formats, the dictionary ids are found in the\n * DictionaryBatch messages\n *\n * @returns flatbuffers.Long\n */\n id() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.readInt64(this.bb_pos + offset) : this.bb.createLong(0, 0);\n }\n /**\n * The dictionary indices are constrained to be non-negative integers. If\n * this field is null, the indices must be signed int32. To maximize\n * cross-language compatibility and performance, implementations are\n * recommended to prefer signed integer types over unsigned integer types\n * and to avoid uint64 indices unless they are required by an application.\n *\n * @param Int= obj\n * @returns Int|null\n */\n indexType(obj) {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? (obj || new Int()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;\n }\n /**\n * By default, dictionaries are not ordered, or the order does not have\n * semantic meaning. In some statistical, applications, dictionary-encoding\n * is used to represent ordered categorical data, and we provide a way to\n * preserve that metadata here\n *\n * @returns boolean\n */\n isOrdered() {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;\n }\n /**\n * @returns DictionaryKind\n */\n dictionaryKind() {\n const offset = this.bb.__offset(this.bb_pos, 10);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : DictionaryKind.DenseArray;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryEncoding(builder) {\n builder.startObject(4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder, id) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset indexTypeOffset\n */\n static addIndexType(builder, indexTypeOffset) {\n builder.addFieldOffset(1, indexTypeOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isOrdered\n */\n static addIsOrdered(builder, isOrdered) {\n builder.addFieldInt8(2, +isOrdered, +false);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param DictionaryKind dictionaryKind\n */\n static addDictionaryKind(builder, dictionaryKind) {\n builder.addFieldInt16(3, dictionaryKind, DictionaryKind.DenseArray);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryEncoding(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createDictionaryEncoding(builder, id, indexTypeOffset, isOrdered, dictionaryKind) {\n DictionaryEncoding.startDictionaryEncoding(builder);\n DictionaryEncoding.addId(builder, id);\n DictionaryEncoding.addIndexType(builder, indexTypeOffset);\n DictionaryEncoding.addIsOrdered(builder, isOrdered);\n DictionaryEncoding.addDictionaryKind(builder, dictionaryKind);\n return DictionaryEncoding.endDictionaryEncoding(builder);\n }\n}\nexports.DictionaryEncoding = DictionaryEncoding;\n/**\n * ----------------------------------------------------------------------\n * A field represents a named column in a record / row batch or child of a\n * nested type.\n *\n * @constructor\n */\nclass Field {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Field\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Field= obj\n * @returns Field\n */\n static getRootAsField(bb, obj) {\n return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Field= obj\n * @returns Field\n */\n static getSizePrefixedRootAsField(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n name(optionalEncoding) {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n /**\n * Whether or not this field can contain nulls. Should be true in general.\n *\n * @returns boolean\n */\n nullable() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;\n }\n /**\n * @returns Type\n */\n typeType() {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? /** */ (this.bb.readUint8(this.bb_pos + offset)) : Type.NONE;\n }\n /**\n * This is the type of the decoded value if the field is dictionary encoded.\n *\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n type(obj) {\n const offset = this.bb.__offset(this.bb_pos, 10);\n return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;\n }\n /**\n * Present only if the field is dictionary encoded.\n *\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding|null\n */\n dictionary(obj) {\n const offset = this.bb.__offset(this.bb_pos, 12);\n return offset ? (obj || new DictionaryEncoding()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;\n }\n /**\n * children apply only to nested data types like Struct, List and Union. For\n * primitive types children will have length 0.\n *\n * @param number index\n * @param Field= obj\n * @returns Field\n */\n children(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 14);\n return offset ? (obj || new Field()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;\n }\n /**\n * @returns number\n */\n childrenLength() {\n const offset = this.bb.__offset(this.bb_pos, 14);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * User-defined metadata\n *\n * @param number index\n * @param KeyValue= obj\n * @returns KeyValue\n */\n customMetadata(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 16);\n return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;\n }\n /**\n * @returns number\n */\n customMetadataLength() {\n const offset = this.bb.__offset(this.bb_pos, 16);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startField(builder) {\n builder.startObject(7);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nameOffset\n */\n static addName(builder, nameOffset) {\n builder.addFieldOffset(0, nameOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param boolean nullable\n */\n static addNullable(builder, nullable) {\n builder.addFieldInt8(1, +nullable, +false);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Type typeType\n */\n static addTypeType(builder, typeType) {\n builder.addFieldInt8(2, typeType, Type.NONE);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeOffset\n */\n static addType(builder, typeOffset) {\n builder.addFieldOffset(3, typeOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionaryOffset\n */\n static addDictionary(builder, dictionaryOffset) {\n builder.addFieldOffset(4, dictionaryOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset childrenOffset\n */\n static addChildren(builder, childrenOffset) {\n builder.addFieldOffset(5, childrenOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<flatbuffers.Offset> data\n * @returns flatbuffers.Offset\n */\n static createChildrenVector(builder, data) {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startChildrenVector(builder, numElems) {\n builder.startVector(4, numElems, 4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder, customMetadataOffset) {\n builder.addFieldOffset(6, customMetadataOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<flatbuffers.Offset> data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder, data) {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder, numElems) {\n builder.startVector(4, numElems, 4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endField(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createField(builder, nameOffset, nullable, typeType, typeOffset, dictionaryOffset, childrenOffset, customMetadataOffset) {\n Field.startField(builder);\n Field.addName(builder, nameOffset);\n Field.addNullable(builder, nullable);\n Field.addTypeType(builder, typeType);\n Field.addType(builder, typeOffset);\n Field.addDictionary(builder, dictionaryOffset);\n Field.addChildren(builder, childrenOffset);\n Field.addCustomMetadata(builder, customMetadataOffset);\n return Field.endField(builder);\n }\n}\nexports.Field = Field;\n/**\n * ----------------------------------------------------------------------\n * A Buffer represents a single contiguous memory segment\n *\n * @constructor\n */\nclass Buffer {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Buffer\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * The relative offset into the shared memory page where the bytes for this\n * buffer starts\n *\n * @returns flatbuffers.Long\n */\n offset() {\n return this.bb.readInt64(this.bb_pos);\n }\n /**\n * The absolute length (in bytes) of the memory buffer. The memory is found\n * from offset (inclusive) to offset + length (non-inclusive). When building\n * messages using the encapsulated IPC message, padding bytes may be written\n * after a buffer, but such padding bytes do not need to be accounted for in\n * the size here.\n *\n * @returns flatbuffers.Long\n */\n length() {\n return this.bb.readInt64(this.bb_pos + 8);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long offset\n * @param flatbuffers.Long length\n * @returns flatbuffers.Offset\n */\n static createBuffer(builder, offset, length) {\n builder.prep(8, 16);\n builder.writeInt64(length);\n builder.writeInt64(offset);\n return builder.offset();\n }\n}\nexports.Buffer = Buffer;\n/**\n * ----------------------------------------------------------------------\n * A Schema describes the columns in a row batch\n *\n * @constructor\n */\nclass Schema {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Schema\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Schema= obj\n * @returns Schema\n */\n static getRootAsSchema(bb, obj) {\n return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Schema= obj\n * @returns Schema\n */\n static getSizePrefixedRootAsSchema(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * endianness of the buffer\n * it is Little Endian by default\n * if endianness doesn't match the underlying system then the vectors need to be converted\n *\n * @returns Endianness\n */\n endianness() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : Endianness.Little;\n }\n /**\n * @param number index\n * @param Field= obj\n * @returns Field\n */\n fields(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? (obj || new Field()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;\n }\n /**\n * @returns number\n */\n fieldsLength() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * @param number index\n * @param KeyValue= obj\n * @returns KeyValue\n */\n customMetadata(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;\n }\n /**\n * @returns number\n */\n customMetadataLength() {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * Features used in the stream/file.\n *\n * @param number index\n * @returns flatbuffers.Long\n */\n features(index) {\n const offset = this.bb.__offset(this.bb_pos, 10);\n return offset ? /** */ (this.bb.readInt64(this.bb.__vector(this.bb_pos + offset) + index * 8)) : this.bb.createLong(0, 0);\n }\n /**\n * @returns number\n */\n featuresLength() {\n const offset = this.bb.__offset(this.bb_pos, 10);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startSchema(builder) {\n builder.startObject(4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Endianness endianness\n */\n static addEndianness(builder, endianness) {\n builder.addFieldInt16(0, endianness, Endianness.Little);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset fieldsOffset\n */\n static addFields(builder, fieldsOffset) {\n builder.addFieldOffset(1, fieldsOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<flatbuffers.Offset> data\n * @returns flatbuffers.Offset\n */\n static createFieldsVector(builder, data) {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startFieldsVector(builder, numElems) {\n builder.startVector(4, numElems, 4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder, customMetadataOffset) {\n builder.addFieldOffset(2, customMetadataOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<flatbuffers.Offset> data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder, data) {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder, numElems) {\n builder.startVector(4, numElems, 4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset featuresOffset\n */\n static addFeatures(builder, featuresOffset) {\n builder.addFieldOffset(3, featuresOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<flatbuffers.Long> data\n * @returns flatbuffers.Offset\n */\n static createFeaturesVector(builder, data) {\n builder.startVector(8, data.length, 8);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt64(data[i]);\n }\n return builder.endVector();\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startFeaturesVector(builder, numElems) {\n builder.startVector(8, numElems, 8);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endSchema(builder) {\n const offset = builder.endObject();\n return offset;\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSchemaBuffer(builder, offset) {\n builder.finish(offset);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSizePrefixedSchemaBuffer(builder, offset) {\n builder.finish(offset, undefined, true);\n }\n static createSchema(builder, endianness, fieldsOffset, customMetadataOffset, featuresOffset) {\n Schema.startSchema(builder);\n Schema.addEndianness(builder, endianness);\n Schema.addFields(builder, fieldsOffset);\n Schema.addCustomMetadata(builder, customMetadataOffset);\n Schema.addFeatures(builder, featuresOffset);\n return Schema.endSchema(builder);\n }\n}\nexports.Schema = Schema;\n\n//# sourceMappingURL=Schema.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WideBufferBuilder = exports.OffsetsBufferBuilder = exports.BitmapBufferBuilder = exports.DataBufferBuilder = exports.BufferBuilder = void 0;\nconst buffer_1 = require(\"../util/buffer\");\nconst compat_1 = require(\"../util/compat\");\n/** @ignore */\nconst roundLengthUpToNearest64Bytes = (len, BPE) => ((((len * BPE) + 63) & ~63) || 64) / BPE;\n/** @ignore */\nconst sliceOrExtendArray = (arr, len = 0) => (arr.length >= len ? arr.subarray(0, len) : buffer_1.memcpy(new arr.constructor(len), arr, 0));\n/** @ignore */\nclass BufferBuilder {\n constructor(buffer, stride = 1) {\n this.buffer = buffer;\n this.stride = stride;\n this.BYTES_PER_ELEMENT = buffer.BYTES_PER_ELEMENT;\n this.ArrayType = buffer.constructor;\n this._resize(this.length = buffer.length / stride | 0);\n }\n get byteLength() { return this.length * this.stride * this.BYTES_PER_ELEMENT | 0; }\n get reservedLength() { return this.buffer.length / this.stride; }\n get reservedByteLength() { return this.buffer.byteLength; }\n // @ts-ignore\n set(index, value) { return this; }\n append(value) { return this.set(this.length, value); }\n reserve(extra) {\n if (extra > 0) {\n this.length += extra;\n const stride = this.stride;\n const length = this.length * stride;\n const reserved = this.buffer.length;\n if (length >= reserved) {\n this._resize(reserved === 0\n ? roundLengthUpToNearest64Bytes(length * 1, this.BYTES_PER_ELEMENT)\n : roundLengthUpToNearest64Bytes(length * 2, this.BYTES_PER_ELEMENT));\n }\n }\n return this;\n }\n flush(length = this.length) {\n length = roundLengthUpToNearest64Bytes(length * this.stride, this.BYTES_PER_ELEMENT);\n const array = sliceOrExtendArray(this.buffer, length);\n this.clear();\n return array;\n }\n clear() {\n this.length = 0;\n this._resize(0);\n return this;\n }\n _resize(newLength) {\n return this.buffer = buffer_1.memcpy(new this.ArrayType(newLength), this.buffer);\n }\n}\nexports.BufferBuilder = BufferBuilder;\nBufferBuilder.prototype.offset = 0;\n/** @ignore */\nclass DataBufferBuilder extends BufferBuilder {\n last() { return this.get(this.length - 1); }\n get(index) { return this.buffer[index]; }\n set(index, value) {\n this.reserve(index - this.length + 1);\n this.buffer[index * this.stride] = value;\n return this;\n }\n}\nexports.DataBufferBuilder = DataBufferBuilder;\n/** @ignore */\nclass BitmapBufferBuilder extends DataBufferBuilder {\n constructor(data = new Uint8Array(0)) {\n super(data, 1 / 8);\n this.numValid = 0;\n }\n get numInvalid() { return this.length - this.numValid; }\n get(idx) { return this.buffer[idx >> 3] >> idx % 8 & 1; }\n set(idx, val) {\n const { buffer } = this.reserve(idx - this.length + 1);\n const byte = idx >> 3, bit = idx % 8, cur = buffer[byte] >> bit & 1;\n // If `val` is truthy and the current bit is 0, flip it to 1 and increment `numValid`.\n // If `val` is falsey and the current bit is 1, flip it to 0 and decrement `numValid`.\n val ? cur === 0 && ((buffer[byte] |= (1 << bit)), ++this.numValid)\n : cur === 1 && ((buffer[byte] &= ~(1 << bit)), --this.numValid);\n return this;\n }\n clear() {\n this.numValid = 0;\n return super.clear();\n }\n}\nexports.BitmapBufferBuilder = BitmapBufferBuilder;\n/** @ignore */\nclass OffsetsBufferBuilder extends DataBufferBuilder {\n constructor(data = new Int32Array(1)) { super(data, 1); }\n append(value) {\n return this.set(this.length - 1, value);\n }\n set(index, value) {\n const offset = this.length - 1;\n const buffer = this.reserve(index - offset + 1).buffer;\n if (offset < index++) {\n buffer.fill(buffer[offset], offset, index);\n }\n buffer[index] = buffer[index - 1] + value;\n return this;\n }\n flush(length = this.length - 1) {\n if (length > this.length) {\n this.set(length - 1, 0);\n }\n return super.flush(length + 1);\n }\n}\nexports.OffsetsBufferBuilder = OffsetsBufferBuilder;\n/** @ignore */\nclass WideBufferBuilder extends BufferBuilder {\n get ArrayType64() {\n return this._ArrayType64 || (this._ArrayType64 = (this.buffer instanceof Int32Array ? compat_1.BigInt64Array : compat_1.BigUint64Array));\n }\n set(index, value) {\n this.reserve(index - this.length + 1);\n switch (typeof value) {\n case 'bigint':\n this.buffer64[index] = value;\n break;\n case 'number':\n this.buffer[index * this.stride] = value;\n break;\n default: this.buffer.set(value, index * this.stride);\n }\n return this;\n }\n _resize(newLength) {\n const data = super._resize(newLength);\n const length = data.byteLength / (this.BYTES_PER_ELEMENT * this.stride);\n if (compat_1.BigIntAvailable) {\n this.buffer64 = new this.ArrayType64(data.buffer, data.byteOffset, length);\n }\n return data;\n }\n}\nexports.WideBufferBuilder = WideBufferBuilder;\n\n//# sourceMappingURL=buffer.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncByteStream = exports.ByteStream = exports.AsyncByteQueue = void 0;\nconst adapters_1 = require(\"./adapters\");\nconst utf8_1 = require(\"../util/utf8\");\nconst interfaces_1 = require(\"./interfaces\");\nconst buffer_1 = require(\"../util/buffer\");\nconst compat_1 = require(\"../util/compat\");\n/** @ignore */\nclass AsyncByteQueue extends interfaces_1.AsyncQueue {\n write(value) {\n if ((value = buffer_1.toUint8Array(value)).byteLength > 0) {\n return super.write(value);\n }\n }\n toString(sync = false) {\n return sync\n ? utf8_1.decodeUtf8(this.toUint8Array(true))\n : this.toUint8Array(false).then(utf8_1.decodeUtf8);\n }\n toUint8Array(sync = false) {\n return sync ? buffer_1.joinUint8Arrays(this._values)[0] : (async () => {\n const buffers = [];\n let byteLength = 0;\n for await (const chunk of this) {\n buffers.push(chunk);\n byteLength += chunk.byteLength;\n }\n return buffer_1.joinUint8Arrays(buffers, byteLength)[0];\n })();\n }\n}\nexports.AsyncByteQueue = AsyncByteQueue;\n/** @ignore */\nclass ByteStream {\n constructor(source) {\n if (source) {\n this.source = new ByteStreamSource(adapters_1.default.fromIterable(source));\n }\n }\n [Symbol.iterator]() { return this; }\n next(value) { return this.source.next(value); }\n throw(value) { return this.source.throw(value); }\n return(value) { return this.source.return(value); }\n peek(size) { return this.source.peek(size); }\n read(size) { return this.source.read(size); }\n}\nexports.ByteStream = ByteStream;\n/** @ignore */\nclass AsyncByteStream {\n constructor(source) {\n if (source instanceof AsyncByteStream) {\n this.source = source.source;\n }\n else if (source instanceof AsyncByteQueue) {\n this.source = new AsyncByteStreamSource(adapters_1.default.fromAsyncIterable(source));\n }\n else if (compat_1.isReadableNodeStream(source)) {\n this.source = new AsyncByteStreamSource(adapters_1.default.fromNodeStream(source));\n }\n else if (compat_1.isReadableDOMStream(source)) {\n this.source = new AsyncByteStreamSource(adapters_1.default.fromDOMStream(source));\n }\n else if (compat_1.isFetchResponse(source)) {\n this.source = new AsyncByteStreamSource(adapters_1.default.fromDOMStream(source.body));\n }\n else if (compat_1.isIterable(source)) {\n this.source = new AsyncByteStreamSource(adapters_1.default.fromIterable(source));\n }\n else if (compat_1.isPromise(source)) {\n this.source = new AsyncByteStreamSource(adapters_1.default.fromAsyncIterable(source));\n }\n else if (compat_1.isAsyncIterable(source)) {\n this.source = new AsyncByteStreamSource(adapters_1.default.fromAsyncIterable(source));\n }\n }\n [Symbol.asyncIterator]() { return this; }\n next(value) { return this.source.next(value); }\n throw(value) { return this.source.throw(value); }\n return(value) { return this.source.return(value); }\n get closed() { return this.source.closed; }\n cancel(reason) { return this.source.cancel(reason); }\n peek(size) { return this.source.peek(size); }\n read(size) { return this.source.read(size); }\n}\nexports.AsyncByteStream = AsyncByteStream;\n/** @ignore */\nclass ByteStreamSource {\n constructor(source) {\n this.source = source;\n }\n cancel(reason) { this.return(reason); }\n peek(size) { return this.next(size, 'peek').value; }\n read(size) { return this.next(size, 'read').value; }\n next(size, cmd = 'read') { return this.source.next({ cmd, size }); }\n throw(value) { return Object.create((this.source.throw && this.source.throw(value)) || interfaces_1.ITERATOR_DONE); }\n return(value) { return Object.create((this.source.return && this.source.return(value)) || interfaces_1.ITERATOR_DONE); }\n}\n/** @ignore */\nclass AsyncByteStreamSource {\n constructor(source) {\n this.source = source;\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n async cancel(reason) { await this.return(reason); }\n get closed() { return this._closedPromise; }\n async read(size) { return (await this.next(size, 'read')).value; }\n async peek(size) { return (await this.next(size, 'peek')).value; }\n async next(size, cmd = 'read') { return (await this.source.next({ cmd, size })); }\n async throw(value) {\n const result = (this.source.throw && await this.source.throw(value)) || interfaces_1.ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n async return(value) {\n const result = (this.source.return && await this.source.return(value)) || interfaces_1.ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n}\n\n//# sourceMappingURL=stream.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Chunked = void 0;\nconst vector_1 = require(\"../util/vector\");\nconst type_1 = require(\"../type\");\nconst args_1 = require(\"../util/args\");\nconst vector_2 = require(\"../vector\");\n/** @ignore */\nclass ChunkedIterator {\n constructor(chunks) {\n this.chunks = chunks;\n this.chunkIndex = 0;\n this.chunkIterator = this.getChunkIterator();\n }\n next() {\n while (this.chunkIndex < this.chunks.length) {\n const next = this.chunkIterator.next();\n if (!next.done) {\n return next;\n }\n if (++this.chunkIndex < this.chunks.length) {\n this.chunkIterator = this.getChunkIterator();\n }\n }\n return { done: true, value: null };\n }\n getChunkIterator() {\n return this.chunks[this.chunkIndex][Symbol.iterator]();\n }\n [Symbol.iterator]() {\n return this;\n }\n}\n/** @ignore */\nclass Chunked extends vector_2.AbstractVector {\n constructor(type, chunks = [], offsets = calculateOffsets(chunks)) {\n super();\n this._nullCount = -1;\n this._type = type;\n this._chunks = chunks;\n this._chunkOffsets = offsets;\n this._length = offsets[offsets.length - 1];\n this._numChildren = (this._type.children || []).length;\n }\n /** @nocollapse */\n static flatten(...vectors) {\n return args_1.selectChunkArgs(vector_2.Vector, vectors);\n }\n /** @nocollapse */\n static concat(...vectors) {\n const chunks = Chunked.flatten(...vectors);\n return new Chunked(chunks[0].type, chunks);\n }\n get type() { return this._type; }\n get length() { return this._length; }\n get chunks() { return this._chunks; }\n get typeId() { return this._type.typeId; }\n get VectorName() { return `Chunked<${this._type}>`; }\n get data() {\n return this._chunks[0] ? this._chunks[0].data : null;\n }\n get ArrayType() { return this._type.ArrayType; }\n get numChildren() { return this._numChildren; }\n get stride() { return this._chunks[0] ? this._chunks[0].stride : 1; }\n get byteLength() {\n return this._chunks.reduce((byteLength, chunk) => byteLength + chunk.byteLength, 0);\n }\n get nullCount() {\n let nullCount = this._nullCount;\n if (nullCount < 0) {\n this._nullCount = nullCount = this._chunks.reduce((x, { nullCount }) => x + nullCount, 0);\n }\n return nullCount;\n }\n get indices() {\n if (type_1.DataType.isDictionary(this._type)) {\n if (!this._indices) {\n const chunks = this._chunks;\n this._indices = (chunks.length === 1\n ? chunks[0].indices\n : Chunked.concat(...chunks.map((x) => x.indices)));\n }\n return this._indices;\n }\n return null;\n }\n get dictionary() {\n if (type_1.DataType.isDictionary(this._type)) {\n return this._chunks[this._chunks.length - 1].data.dictionary;\n }\n return null;\n }\n [Symbol.iterator]() {\n return new ChunkedIterator(this._chunks);\n }\n clone(chunks = this._chunks) {\n return new Chunked(this._type, chunks);\n }\n concat(...others) {\n return this.clone(Chunked.flatten(this, ...others));\n }\n slice(begin, end) {\n return vector_1.clampRange(this, begin, end, this._sliceInternal);\n }\n getChildAt(index) {\n if (index < 0 || index >= this._numChildren) {\n return null;\n }\n const columns = this._children || (this._children = []);\n let child, field, chunks;\n if (child = columns[index]) {\n return child;\n }\n if (field = (this._type.children || [])[index]) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec) => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Chunked(field.type, chunks));\n }\n }\n return null;\n }\n search(index, then) {\n const idx = index;\n // binary search to find the child vector and value indices\n const offsets = this._chunkOffsets;\n let rhs = offsets.length - 1;\n // return early if out of bounds, or if there's just one child\n if (idx < 0) {\n return null;\n }\n if (idx >= offsets[rhs]) {\n return null;\n }\n if (rhs <= 1) {\n return then ? then(this, 0, idx) : [0, idx];\n }\n let lhs = 0, pos = 0, mid = 0;\n do {\n if (lhs + 1 === rhs) {\n return then ? then(this, lhs, idx - pos) : [lhs, idx - pos];\n }\n mid = lhs + ((rhs - lhs) / 2) | 0;\n idx >= offsets[mid] ? (lhs = mid) : (rhs = mid);\n } while (idx < offsets[rhs] && idx >= (pos = offsets[lhs]));\n return null;\n }\n isValid(index) {\n return !!this.search(index, this.isValidInternal);\n }\n get(index) {\n return this.search(index, this.getInternal);\n }\n set(index, value) {\n this.search(index, ({ chunks }, i, j) => chunks[i].set(j, value));\n }\n indexOf(element, offset) {\n if (offset && typeof offset === 'number') {\n return this.search(offset, (self, i, j) => this.indexOfInternal(self, i, j, element));\n }\n return this.indexOfInternal(this, 0, Math.max(0, offset || 0), element);\n }\n toArray() {\n const { chunks } = this;\n const n = chunks.length;\n let ArrayType = this._type.ArrayType;\n if (n <= 0) {\n return new ArrayType(0);\n }\n if (n <= 1) {\n return chunks[0].toArray();\n }\n let len = 0;\n const src = new Array(n);\n for (let i = -1; ++i < n;) {\n len += (src[i] = chunks[i].toArray()).length;\n }\n if (ArrayType !== src[0].constructor) {\n ArrayType = src[0].constructor;\n }\n const dst = new ArrayType(len);\n const set = ArrayType === Array ? arraySet : typedSet;\n for (let i = -1, idx = 0; ++i < n;) {\n idx = set(src[i], dst, idx);\n }\n return dst;\n }\n getInternal({ _chunks }, i, j) { return _chunks[i].get(j); }\n isValidInternal({ _chunks }, i, j) { return _chunks[i].isValid(j); }\n indexOfInternal({ _chunks }, chunkIndex, fromIndex, element) {\n let i = chunkIndex - 1;\n const n = _chunks.length;\n let start = fromIndex, offset = 0, found = -1;\n while (++i < n) {\n if (~(found = _chunks[i].indexOf(element, start))) {\n return offset + found;\n }\n start = 0;\n offset += _chunks[i].length;\n }\n return -1;\n }\n _sliceInternal(self, begin, end) {\n const slices = [];\n const { chunks, _chunkOffsets: chunkOffsets } = self;\n for (let i = -1, n = chunks.length; ++i < n;) {\n const chunk = chunks[i];\n const chunkLength = chunk.length;\n const chunkOffset = chunkOffsets[i];\n // If the child is to the right of the slice boundary, we can stop\n if (chunkOffset >= end) {\n break;\n }\n // If the child is to the left of of the slice boundary, exclude\n if (begin >= chunkOffset + chunkLength) {\n continue;\n }\n // If the child is between both left and right boundaries, include w/o slicing\n if (chunkOffset >= begin && (chunkOffset + chunkLength) <= end) {\n slices.push(chunk);\n continue;\n }\n // If the child overlaps one of the slice boundaries, include that slice\n const from = Math.max(0, begin - chunkOffset);\n const to = Math.min(end - chunkOffset, chunkLength);\n slices.push(chunk.slice(from, to));\n }\n return self.clone(slices);\n }\n}\nexports.Chunked = Chunked;\n/** @ignore */\nfunction calculateOffsets(vectors) {\n const offsets = new Uint32Array((vectors || []).length + 1);\n let offset = offsets[0] = 0;\n const length = offsets.length;\n for (let index = 0; ++index < length;) {\n offsets[index] = (offset += vectors[index - 1].length);\n }\n return offsets;\n}\n/** @ignore */\nconst typedSet = (src, dst, offset) => {\n dst.set(src, offset);\n return (offset + src.length);\n};\n/** @ignore */\nconst arraySet = (src, dst, offset) => {\n let idx = offset;\n for (let i = -1, n = src.length; ++i < n;) {\n dst[idx++] = src[i];\n }\n return idx;\n};\n\n//# sourceMappingURL=chunked.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeUtf8 = exports.decodeUtf8 = void 0;\nconst buffer_1 = require(\"./buffer\");\nconst text_encoding_utf_8_1 = require(\"text-encoding-utf-8\");\n/** @ignore @suppress {missingRequire} */\nconst _Buffer = eval(\"typeof Buffer === 'function' ? Buffer : null\");\n/** @ignore */\nconst useNativeEncoders = typeof TextDecoder === 'function' && typeof TextEncoder === 'function';\n/** @ignore */\nexports.decodeUtf8 = ((TextDecoder) => {\n if (useNativeEncoders || !_Buffer) {\n const decoder = new TextDecoder('utf-8');\n return (buffer) => decoder.decode(buffer);\n }\n return (input) => {\n const { buffer, byteOffset, length } = buffer_1.toUint8Array(input);\n return _Buffer.from(buffer, byteOffset, length).toString();\n };\n})(typeof TextDecoder !== 'undefined' ? TextDecoder : text_encoding_utf_8_1.TextDecoder);\n/** @ignore */\nexports.encodeUtf8 = ((TextEncoder) => {\n if (useNativeEncoders || !_Buffer) {\n const encoder = new TextEncoder();\n return (value) => encoder.encode(value);\n }\n return (input = '') => buffer_1.toUint8Array(_Buffer.from(input, 'utf8'));\n})(typeof TextEncoder !== 'undefined' ? TextEncoder : text_encoding_utf_8_1.TextEncoder);\n\n//# sourceMappingURL=utf8.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FieldNode = exports.BufferRegion = exports.DictionaryBatch = exports.RecordBatch = exports.Message = void 0;\n/* eslint-disable brace-style */\nconst flatbuffers_1 = require(\"flatbuffers\");\nconst Schema_1 = require(\"../../fb/Schema\");\nconst Message_1 = require(\"../../fb/Message\");\nconst schema_1 = require(\"../../schema\");\nconst buffer_1 = require(\"../../util/buffer\");\nconst enum_1 = require(\"../../enum\");\nconst typeassembler_1 = require(\"../../visitor/typeassembler\");\nconst json_1 = require(\"./json\");\nvar Long = flatbuffers_1.flatbuffers.Long;\nvar Builder = flatbuffers_1.flatbuffers.Builder;\nvar ByteBuffer = flatbuffers_1.flatbuffers.ByteBuffer;\nconst type_1 = require(\"../../type\");\n/**\n * @ignore\n * @private\n **/\nclass Message {\n constructor(bodyLength, version, headerType, header) {\n this._version = version;\n this._headerType = headerType;\n this.body = new Uint8Array(0);\n header && (this._createHeader = () => header);\n this._bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n /** @nocollapse */\n static fromJSON(msg, headerType) {\n const message = new Message(0, enum_1.MetadataVersion.V4, headerType);\n message._createHeader = messageHeaderFromJSON(msg, headerType);\n return message;\n }\n /** @nocollapse */\n static decode(buf) {\n buf = new ByteBuffer(buffer_1.toUint8Array(buf));\n const _message = Message_1.Message.getRootAsMessage(buf);\n const bodyLength = _message.bodyLength();\n const version = _message.version();\n const headerType = _message.headerType();\n const message = new Message(bodyLength, version, headerType);\n message._createHeader = decodeMessageHeader(_message, headerType);\n return message;\n }\n /** @nocollapse */\n static encode(message) {\n const b = new Builder();\n let headerOffset = -1;\n if (message.isSchema()) {\n headerOffset = schema_1.Schema.encode(b, message.header());\n }\n else if (message.isRecordBatch()) {\n headerOffset = RecordBatch.encode(b, message.header());\n }\n else if (message.isDictionaryBatch()) {\n headerOffset = DictionaryBatch.encode(b, message.header());\n }\n Message_1.Message.startMessage(b);\n Message_1.Message.addVersion(b, enum_1.MetadataVersion.V4);\n Message_1.Message.addHeader(b, headerOffset);\n Message_1.Message.addHeaderType(b, message.headerType);\n Message_1.Message.addBodyLength(b, new Long(message.bodyLength, 0));\n Message_1.Message.finishMessageBuffer(b, Message_1.Message.endMessage(b));\n return b.asUint8Array();\n }\n /** @nocollapse */\n static from(header, bodyLength = 0) {\n if (header instanceof schema_1.Schema) {\n return new Message(0, enum_1.MetadataVersion.V4, enum_1.MessageHeader.Schema, header);\n }\n if (header instanceof RecordBatch) {\n return new Message(bodyLength, enum_1.MetadataVersion.V4, enum_1.MessageHeader.RecordBatch, header);\n }\n if (header instanceof DictionaryBatch) {\n return new Message(bodyLength, enum_1.MetadataVersion.V4, enum_1.MessageHeader.DictionaryBatch, header);\n }\n throw new Error(`Unrecognized Message header: ${header}`);\n }\n get type() { return this.headerType; }\n get version() { return this._version; }\n get headerType() { return this._headerType; }\n get bodyLength() { return this._bodyLength; }\n header() { return this._createHeader(); }\n isSchema() { return this.headerType === enum_1.MessageHeader.Schema; }\n isRecordBatch() { return this.headerType === enum_1.MessageHeader.RecordBatch; }\n isDictionaryBatch() { return this.headerType === enum_1.MessageHeader.DictionaryBatch; }\n}\nexports.Message = Message;\n/**\n * @ignore\n * @private\n **/\nclass RecordBatch {\n constructor(length, nodes, buffers) {\n this._nodes = nodes;\n this._buffers = buffers;\n this._length = typeof length === 'number' ? length : length.low;\n }\n get nodes() { return this._nodes; }\n get length() { return this._length; }\n get buffers() { return this._buffers; }\n}\nexports.RecordBatch = RecordBatch;\n/**\n * @ignore\n * @private\n **/\nclass DictionaryBatch {\n constructor(data, id, isDelta = false) {\n this._data = data;\n this._isDelta = isDelta;\n this._id = typeof id === 'number' ? id : id.low;\n }\n get id() { return this._id; }\n get data() { return this._data; }\n get isDelta() { return this._isDelta; }\n get length() { return this.data.length; }\n get nodes() { return this.data.nodes; }\n get buffers() { return this.data.buffers; }\n}\nexports.DictionaryBatch = DictionaryBatch;\n/**\n * @ignore\n * @private\n **/\nclass BufferRegion {\n constructor(offset, length) {\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.length = typeof length === 'number' ? length : length.low;\n }\n}\nexports.BufferRegion = BufferRegion;\n/**\n * @ignore\n * @private\n **/\nclass FieldNode {\n constructor(length, nullCount) {\n this.length = typeof length === 'number' ? length : length.low;\n this.nullCount = typeof nullCount === 'number' ? nullCount : nullCount.low;\n }\n}\nexports.FieldNode = FieldNode;\n/** @ignore */\nfunction messageHeaderFromJSON(message, type) {\n return (() => {\n switch (type) {\n case enum_1.MessageHeader.Schema: return schema_1.Schema.fromJSON(message);\n case enum_1.MessageHeader.RecordBatch: return RecordBatch.fromJSON(message);\n case enum_1.MessageHeader.DictionaryBatch: return DictionaryBatch.fromJSON(message);\n }\n throw new Error(`Unrecognized Message type: { name: ${enum_1.MessageHeader[type]}, type: ${type} }`);\n });\n}\n/** @ignore */\nfunction decodeMessageHeader(message, type) {\n return (() => {\n switch (type) {\n case enum_1.MessageHeader.Schema: return schema_1.Schema.decode(message.header(new Schema_1.Schema()));\n case enum_1.MessageHeader.RecordBatch: return RecordBatch.decode(message.header(new Message_1.RecordBatch()), message.version());\n case enum_1.MessageHeader.DictionaryBatch: return DictionaryBatch.decode(message.header(new Message_1.DictionaryBatch()), message.version());\n }\n throw new Error(`Unrecognized Message type: { name: ${enum_1.MessageHeader[type]}, type: ${type} }`);\n });\n}\nschema_1.Field['encode'] = encodeField;\nschema_1.Field['decode'] = decodeField;\nschema_1.Field['fromJSON'] = json_1.fieldFromJSON;\nschema_1.Schema['encode'] = encodeSchema;\nschema_1.Schema['decode'] = decodeSchema;\nschema_1.Schema['fromJSON'] = json_1.schemaFromJSON;\nRecordBatch['encode'] = encodeRecordBatch;\nRecordBatch['decode'] = decodeRecordBatch;\nRecordBatch['fromJSON'] = json_1.recordBatchFromJSON;\nDictionaryBatch['encode'] = encodeDictionaryBatch;\nDictionaryBatch['decode'] = decodeDictionaryBatch;\nDictionaryBatch['fromJSON'] = json_1.dictionaryBatchFromJSON;\nFieldNode['encode'] = encodeFieldNode;\nFieldNode['decode'] = decodeFieldNode;\nBufferRegion['encode'] = encodeBufferRegion;\nBufferRegion['decode'] = decodeBufferRegion;\n/** @ignore */\nfunction decodeSchema(_schema, dictionaries = new Map()) {\n const fields = decodeSchemaFields(_schema, dictionaries);\n return new schema_1.Schema(fields, decodeCustomMetadata(_schema), dictionaries);\n}\n/** @ignore */\nfunction decodeRecordBatch(batch, version = enum_1.MetadataVersion.V4) {\n return new RecordBatch(batch.length(), decodeFieldNodes(batch), decodeBuffers(batch, version));\n}\n/** @ignore */\nfunction decodeDictionaryBatch(batch, version = enum_1.MetadataVersion.V4) {\n return new DictionaryBatch(RecordBatch.decode(batch.data(), version), batch.id(), batch.isDelta());\n}\n/** @ignore */\nfunction decodeBufferRegion(b) {\n return new BufferRegion(b.offset(), b.length());\n}\n/** @ignore */\nfunction decodeFieldNode(f) {\n return new FieldNode(f.length(), f.nullCount());\n}\n/** @ignore */\nfunction decodeFieldNodes(batch) {\n const nodes = [];\n for (let f, i = -1, j = -1, n = batch.nodesLength(); ++i < n;) {\n if (f = batch.nodes(i)) {\n nodes[++j] = FieldNode.decode(f);\n }\n }\n return nodes;\n}\n/** @ignore */\nfunction decodeBuffers(batch, version) {\n const bufferRegions = [];\n for (let b, i = -1, j = -1, n = batch.buffersLength(); ++i < n;) {\n if (b = batch.buffers(i)) {\n // If this Arrow buffer was written before version 4,\n // advance the buffer's bb_pos 8 bytes to skip past\n // the now-removed page_id field\n if (version < enum_1.MetadataVersion.V4) {\n b.bb_pos += (8 * (i + 1));\n }\n bufferRegions[++j] = BufferRegion.decode(b);\n }\n }\n return bufferRegions;\n}\n/** @ignore */\nfunction decodeSchemaFields(schema, dictionaries) {\n const fields = [];\n for (let f, i = -1, j = -1, n = schema.fieldsLength(); ++i < n;) {\n if (f = schema.fields(i)) {\n fields[++j] = schema_1.Field.decode(f, dictionaries);\n }\n }\n return fields;\n}\n/** @ignore */\nfunction decodeFieldChildren(field, dictionaries) {\n const children = [];\n for (let f, i = -1, j = -1, n = field.childrenLength(); ++i < n;) {\n if (f = field.children(i)) {\n children[++j] = schema_1.Field.decode(f, dictionaries);\n }\n }\n return children;\n}\n/** @ignore */\nfunction decodeField(f, dictionaries) {\n let id;\n let field;\n let type;\n let keys;\n let dictType;\n let dictMeta;\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = f.dictionary())) {\n type = decodeFieldType(f, decodeFieldChildren(f, dictionaries));\n field = new schema_1.Field(f.name(), type, f.nullable(), decodeCustomMetadata(f));\n }\n // If dictionary encoded and the first time we've seen this dictionary id, decode\n // the data type and child fields, then wrap in a Dictionary type and insert the\n // data type into the dictionary types map.\n else if (!dictionaries.has(id = dictMeta.id().low)) {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta.indexType()) ? decodeIndexType(keys) : new type_1.Int32();\n dictionaries.set(id, type = decodeFieldType(f, decodeFieldChildren(f, dictionaries)));\n dictType = new type_1.Dictionary(type, keys, id, dictMeta.isOrdered());\n field = new schema_1.Field(f.name(), dictType, f.nullable(), decodeCustomMetadata(f));\n }\n // If dictionary encoded, and have already seen this dictionary Id in the schema, then reuse the\n // data type and wrap in a new Dictionary type and field.\n else {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta.indexType()) ? decodeIndexType(keys) : new type_1.Int32();\n dictType = new type_1.Dictionary(dictionaries.get(id), keys, id, dictMeta.isOrdered());\n field = new schema_1.Field(f.name(), dictType, f.nullable(), decodeCustomMetadata(f));\n }\n return field || null;\n}\n/** @ignore */\nfunction decodeCustomMetadata(parent) {\n const data = new Map();\n if (parent) {\n for (let entry, key, i = -1, n = parent.customMetadataLength() | 0; ++i < n;) {\n if ((entry = parent.customMetadata(i)) && (key = entry.key()) != null) {\n data.set(key, entry.value());\n }\n }\n }\n return data;\n}\n/** @ignore */\nfunction decodeIndexType(_type) {\n return new type_1.Int(_type.isSigned(), _type.bitWidth());\n}\n/** @ignore */\nfunction decodeFieldType(f, children) {\n const typeId = f.typeType();\n switch (typeId) {\n case Schema_1.Type['NONE']: return new type_1.Null();\n case Schema_1.Type['Null']: return new type_1.Null();\n case Schema_1.Type['Binary']: return new type_1.Binary();\n case Schema_1.Type['Utf8']: return new type_1.Utf8();\n case Schema_1.Type['Bool']: return new type_1.Bool();\n case Schema_1.Type['List']: return new type_1.List((children || [])[0]);\n case Schema_1.Type['Struct_']: return new type_1.Struct(children || []);\n }\n switch (typeId) {\n case Schema_1.Type['Int']: {\n const t = f.type(new Schema_1.Int());\n return new type_1.Int(t.isSigned(), t.bitWidth());\n }\n case Schema_1.Type['FloatingPoint']: {\n const t = f.type(new Schema_1.FloatingPoint());\n return new type_1.Float(t.precision());\n }\n case Schema_1.Type['Decimal']: {\n const t = f.type(new Schema_1.Decimal());\n return new type_1.Decimal(t.scale(), t.precision());\n }\n case Schema_1.Type['Date']: {\n const t = f.type(new Schema_1.Date());\n return new type_1.Date_(t.unit());\n }\n case Schema_1.Type['Time']: {\n const t = f.type(new Schema_1.Time());\n return new type_1.Time(t.unit(), t.bitWidth());\n }\n case Schema_1.Type['Timestamp']: {\n const t = f.type(new Schema_1.Timestamp());\n return new type_1.Timestamp(t.unit(), t.timezone());\n }\n case Schema_1.Type['Interval']: {\n const t = f.type(new Schema_1.Interval());\n return new type_1.Interval(t.unit());\n }\n case Schema_1.Type['Union']: {\n const t = f.type(new Schema_1.Union());\n return new type_1.Union(t.mode(), t.typeIdsArray() || [], children || []);\n }\n case Schema_1.Type['FixedSizeBinary']: {\n const t = f.type(new Schema_1.FixedSizeBinary());\n return new type_1.FixedSizeBinary(t.byteWidth());\n }\n case Schema_1.Type['FixedSizeList']: {\n const t = f.type(new Schema_1.FixedSizeList());\n return new type_1.FixedSizeList(t.listSize(), (children || [])[0]);\n }\n case Schema_1.Type['Map']: {\n const t = f.type(new Schema_1.Map());\n return new type_1.Map_((children || [])[0], t.keysSorted());\n }\n }\n throw new Error(`Unrecognized type: \"${Schema_1.Type[typeId]}\" (${typeId})`);\n}\n/** @ignore */\nfunction encodeSchema(b, schema) {\n const fieldOffsets = schema.fields.map((f) => schema_1.Field.encode(b, f));\n Schema_1.Schema.startFieldsVector(b, fieldOffsets.length);\n const fieldsVectorOffset = Schema_1.Schema.createFieldsVector(b, fieldOffsets);\n const metadataOffset = !(schema.metadata && schema.metadata.size > 0) ? -1 :\n Schema_1.Schema.createCustomMetadataVector(b, [...schema.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n Schema_1.KeyValue.startKeyValue(b);\n Schema_1.KeyValue.addKey(b, key);\n Schema_1.KeyValue.addValue(b, val);\n return Schema_1.KeyValue.endKeyValue(b);\n }));\n Schema_1.Schema.startSchema(b);\n Schema_1.Schema.addFields(b, fieldsVectorOffset);\n Schema_1.Schema.addEndianness(b, platformIsLittleEndian ? Schema_1.Endianness.Little : Schema_1.Endianness.Big);\n if (metadataOffset !== -1) {\n Schema_1.Schema.addCustomMetadata(b, metadataOffset);\n }\n return Schema_1.Schema.endSchema(b);\n}\n/** @ignore */\nfunction encodeField(b, field) {\n let nameOffset = -1;\n let typeOffset = -1;\n let dictionaryOffset = -1;\n const type = field.type;\n let typeId = field.typeId;\n if (!type_1.DataType.isDictionary(type)) {\n typeOffset = typeassembler_1.instance.visit(type, b);\n }\n else {\n typeId = type.dictionary.typeId;\n dictionaryOffset = typeassembler_1.instance.visit(type, b);\n typeOffset = typeassembler_1.instance.visit(type.dictionary, b);\n }\n const childOffsets = (type.children || []).map((f) => schema_1.Field.encode(b, f));\n const childrenVectorOffset = Schema_1.Field.createChildrenVector(b, childOffsets);\n const metadataOffset = !(field.metadata && field.metadata.size > 0) ? -1 :\n Schema_1.Field.createCustomMetadataVector(b, [...field.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n Schema_1.KeyValue.startKeyValue(b);\n Schema_1.KeyValue.addKey(b, key);\n Schema_1.KeyValue.addValue(b, val);\n return Schema_1.KeyValue.endKeyValue(b);\n }));\n if (field.name) {\n nameOffset = b.createString(field.name);\n }\n Schema_1.Field.startField(b);\n Schema_1.Field.addType(b, typeOffset);\n Schema_1.Field.addTypeType(b, typeId);\n Schema_1.Field.addChildren(b, childrenVectorOffset);\n Schema_1.Field.addNullable(b, !!field.nullable);\n if (nameOffset !== -1) {\n Schema_1.Field.addName(b, nameOffset);\n }\n if (dictionaryOffset !== -1) {\n Schema_1.Field.addDictionary(b, dictionaryOffset);\n }\n if (metadataOffset !== -1) {\n Schema_1.Field.addCustomMetadata(b, metadataOffset);\n }\n return Schema_1.Field.endField(b);\n}\n/** @ignore */\nfunction encodeRecordBatch(b, recordBatch) {\n const nodes = recordBatch.nodes || [];\n const buffers = recordBatch.buffers || [];\n Message_1.RecordBatch.startNodesVector(b, nodes.length);\n nodes.slice().reverse().forEach((n) => FieldNode.encode(b, n));\n const nodesVectorOffset = b.endVector();\n Message_1.RecordBatch.startBuffersVector(b, buffers.length);\n buffers.slice().reverse().forEach((b_) => BufferRegion.encode(b, b_));\n const buffersVectorOffset = b.endVector();\n Message_1.RecordBatch.startRecordBatch(b);\n Message_1.RecordBatch.addLength(b, new Long(recordBatch.length, 0));\n Message_1.RecordBatch.addNodes(b, nodesVectorOffset);\n Message_1.RecordBatch.addBuffers(b, buffersVectorOffset);\n return Message_1.RecordBatch.endRecordBatch(b);\n}\n/** @ignore */\nfunction encodeDictionaryBatch(b, dictionaryBatch) {\n const dataOffset = RecordBatch.encode(b, dictionaryBatch.data);\n Message_1.DictionaryBatch.startDictionaryBatch(b);\n Message_1.DictionaryBatch.addId(b, new Long(dictionaryBatch.id, 0));\n Message_1.DictionaryBatch.addIsDelta(b, dictionaryBatch.isDelta);\n Message_1.DictionaryBatch.addData(b, dataOffset);\n return Message_1.DictionaryBatch.endDictionaryBatch(b);\n}\n/** @ignore */\nfunction encodeFieldNode(b, node) {\n return Message_1.FieldNode.createFieldNode(b, new Long(node.length, 0), new Long(node.nullCount, 0));\n}\n/** @ignore */\nfunction encodeBufferRegion(b, node) {\n return Schema_1.Buffer.createBuffer(b, new Long(node.offset, 0), new Long(node.length, 0));\n}\n/** @ignore */\nconst platformIsLittleEndian = (function () {\n const buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 256, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] === 256;\n})();\n\n//# sourceMappingURL=message.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncQueue = exports.ReadableInterop = exports.ArrowJSON = exports.ITERATOR_DONE = void 0;\nconst adapters_1 = require(\"./adapters\");\n/** @ignore */\nexports.ITERATOR_DONE = Object.freeze({ done: true, value: void (0) });\n/** @ignore */\nclass ArrowJSON {\n constructor(_json) {\n this._json = _json;\n }\n get schema() { return this._json['schema']; }\n get batches() { return (this._json['batches'] || []); }\n get dictionaries() { return (this._json['dictionaries'] || []); }\n}\nexports.ArrowJSON = ArrowJSON;\n/** @ignore */\nclass ReadableInterop {\n tee() {\n return this._getDOMStream().tee();\n }\n pipe(writable, options) {\n return this._getNodeStream().pipe(writable, options);\n }\n pipeTo(writable, options) { return this._getDOMStream().pipeTo(writable, options); }\n pipeThrough(duplex, options) {\n return this._getDOMStream().pipeThrough(duplex, options);\n }\n _getDOMStream() {\n return this._DOMStream || (this._DOMStream = this.toDOMStream());\n }\n _getNodeStream() {\n return this._nodeStream || (this._nodeStream = this.toNodeStream());\n }\n}\nexports.ReadableInterop = ReadableInterop;\n/** @ignore */\nclass AsyncQueue extends ReadableInterop {\n constructor() {\n super();\n this._values = [];\n this.resolvers = [];\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n get closed() { return this._closedPromise; }\n async cancel(reason) { await this.return(reason); }\n write(value) {\n if (this._ensureOpen()) {\n this.resolvers.length <= 0\n ? (this._values.push(value))\n : (this.resolvers.shift().resolve({ done: false, value }));\n }\n }\n abort(value) {\n if (this._closedPromiseResolve) {\n this.resolvers.length <= 0\n ? (this._error = { error: value })\n : (this.resolvers.shift().reject({ done: true, value }));\n }\n }\n close() {\n if (this._closedPromiseResolve) {\n const { resolvers } = this;\n while (resolvers.length > 0) {\n resolvers.shift().resolve(exports.ITERATOR_DONE);\n }\n this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n }\n }\n [Symbol.asyncIterator]() { return this; }\n toDOMStream(options) {\n return adapters_1.default.toDOMStream((this._closedPromiseResolve || this._error)\n ? this\n : this._values, options);\n }\n toNodeStream(options) {\n return adapters_1.default.toNodeStream((this._closedPromiseResolve || this._error)\n ? this\n : this._values, options);\n }\n async throw(_) { await this.abort(_); return exports.ITERATOR_DONE; }\n async return(_) { await this.close(); return exports.ITERATOR_DONE; }\n async read(size) { return (await this.next(size, 'read')).value; }\n async peek(size) { return (await this.next(size, 'peek')).value; }\n next(..._args) {\n if (this._values.length > 0) {\n return Promise.resolve({ done: false, value: this._values.shift() });\n }\n else if (this._error) {\n return Promise.reject({ done: true, value: this._error.error });\n }\n else if (!this._closedPromiseResolve) {\n return Promise.resolve(exports.ITERATOR_DONE);\n }\n else {\n return new Promise((resolve, reject) => {\n this.resolvers.push({ resolve, reject });\n });\n }\n }\n _ensureOpen() {\n if (this._closedPromiseResolve) {\n return true;\n }\n throw new Error(`${this} is closed`);\n }\n}\nexports.AsyncQueue = AsyncQueue;\n\n//# sourceMappingURL=interfaces.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Column = void 0;\nconst schema_1 = require(\"./schema\");\nconst vector_1 = require(\"./vector\");\nconst chunked_1 = require(\"./vector/chunked\");\nclass Column extends chunked_1.Chunked {\n constructor(field, vectors = [], offsets) {\n vectors = chunked_1.Chunked.flatten(...vectors);\n super(field.type, vectors, offsets);\n this._field = field;\n if (vectors.length === 1 && !(this instanceof SingleChunkColumn)) {\n return new SingleChunkColumn(field, vectors[0], this._chunkOffsets);\n }\n }\n /** @nocollapse */\n static new(...args) {\n let [field, data, ...rest] = args;\n if (typeof field !== 'string' && !(field instanceof schema_1.Field)) {\n data = field;\n field = '';\n }\n const chunks = chunked_1.Chunked.flatten(Array.isArray(data) ? [...data, ...rest] :\n data instanceof vector_1.Vector ? [data, ...rest] :\n [vector_1.Vector.new(data, ...rest)]);\n if (typeof field === 'string') {\n const type = chunks[0].data.type;\n field = new schema_1.Field(field, type, true);\n }\n else if (!field.nullable && chunks.some(({ nullCount }) => nullCount > 0)) {\n field = field.clone({ nullable: true });\n }\n return new Column(field, chunks);\n }\n get field() { return this._field; }\n get name() { return this._field.name; }\n get nullable() { return this._field.nullable; }\n get metadata() { return this._field.metadata; }\n clone(chunks = this._chunks) {\n return new Column(this._field, chunks);\n }\n getChildAt(index) {\n if (index < 0 || index >= this.numChildren) {\n return null;\n }\n const columns = this._children || (this._children = []);\n let column, field, chunks;\n if (column = columns[index]) {\n return column;\n }\n if (field = (this.type.children || [])[index]) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec) => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n return null;\n }\n}\nexports.Column = Column;\n/** @ignore */\nclass SingleChunkColumn extends Column {\n constructor(field, vector, offsets) {\n super(field, [vector], offsets);\n this._chunk = vector;\n }\n search(index, then) {\n return then ? then(this, 0, index) : [0, index];\n }\n isValid(index) {\n return this._chunk.isValid(index);\n }\n get(index) {\n return this._chunk.get(index);\n }\n set(index, value) {\n this._chunk.set(index, value);\n }\n indexOf(element, offset) {\n return this._chunk.indexOf(element, offset);\n }\n}\n\n//# sourceMappingURL=column.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectColumnChildrenArgs = exports.selectVectorChildrenArgs = exports.selectChunkArgs = exports.selectFieldArgs = exports.selectColumnArgs = exports.selectArgs = void 0;\nconst data_1 = require(\"../data\");\nconst schema_1 = require(\"../schema\");\nconst column_1 = require(\"../column\");\nconst vector_1 = require(\"../vector\");\nconst type_1 = require(\"../type\");\nconst chunked_1 = require(\"../vector/chunked\");\nconst isArray = Array.isArray;\n/** @ignore */\nexports.selectArgs = (Ctor, vals) => _selectArgs(Ctor, vals, [], 0);\n/** @ignore */\nexports.selectColumnArgs = (args) => {\n const [fields, values] = _selectFieldArgs(args, [[], []]);\n return values.map((x, i) => x instanceof column_1.Column ? column_1.Column.new(x.field.clone(fields[i]), x) :\n x instanceof vector_1.Vector ? column_1.Column.new(fields[i], x) :\n column_1.Column.new(fields[i], []));\n};\n/** @ignore */\nexports.selectFieldArgs = (args) => _selectFieldArgs(args, [[], []]);\n/** @ignore */\nexports.selectChunkArgs = (Ctor, vals) => _selectChunkArgs(Ctor, vals, [], 0);\n/** @ignore */\nexports.selectVectorChildrenArgs = (Ctor, vals) => _selectVectorChildrenArgs(Ctor, vals, [], 0);\n/** @ignore */\nexports.selectColumnChildrenArgs = (Ctor, vals) => _selectColumnChildrenArgs(Ctor, vals, [], 0);\n/** @ignore */\nfunction _selectArgs(Ctor, vals, res, idx) {\n let value, j = idx;\n let i = -1;\n const n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectArgs(Ctor, value, res, j).length;\n }\n else if (value instanceof Ctor) {\n res[j++] = value;\n }\n }\n return res;\n}\n/** @ignore */\nfunction _selectChunkArgs(Ctor, vals, res, idx) {\n let value, j = idx;\n let i = -1;\n const n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectChunkArgs(Ctor, value, res, j).length;\n }\n else if (value instanceof chunked_1.Chunked) {\n j = _selectChunkArgs(Ctor, value.chunks, res, j).length;\n }\n else if (value instanceof Ctor) {\n res[j++] = value;\n }\n }\n return res;\n}\n/** @ignore */\nfunction _selectVectorChildrenArgs(Ctor, vals, res, idx) {\n let value, j = idx;\n let i = -1;\n const n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectVectorChildrenArgs(Ctor, value, res, j).length;\n }\n else if (value instanceof Ctor) {\n j = _selectArgs(vector_1.Vector, value.schema.fields.map((_, i) => value.getChildAt(i)), res, j).length;\n }\n else if (value instanceof vector_1.Vector) {\n res[j++] = value;\n }\n }\n return res;\n}\n/** @ignore */\nfunction _selectColumnChildrenArgs(Ctor, vals, res, idx) {\n let value, j = idx;\n let i = -1;\n const n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectColumnChildrenArgs(Ctor, value, res, j).length;\n }\n else if (value instanceof Ctor) {\n j = _selectArgs(column_1.Column, value.schema.fields.map((f, i) => column_1.Column.new(f, value.getChildAt(i))), res, j).length;\n }\n else if (value instanceof column_1.Column) {\n res[j++] = value;\n }\n }\n return res;\n}\n/** @ignore */\nconst toKeysAndValues = (xs, [k, v], i) => (xs[0][i] = k, xs[1][i] = v, xs);\n/** @ignore */\nfunction _selectFieldArgs(vals, ret) {\n let keys;\n let n;\n switch (n = vals.length) {\n case 0: return ret;\n case 1:\n keys = ret[0];\n if (!(vals[0])) {\n return ret;\n }\n if (isArray(vals[0])) {\n return _selectFieldArgs(vals[0], ret);\n }\n if (!(vals[0] instanceof data_1.Data || vals[0] instanceof vector_1.Vector || vals[0] instanceof type_1.DataType)) {\n [keys, vals] = Object.entries(vals[0]).reduce(toKeysAndValues, ret);\n }\n break;\n default:\n !isArray(keys = vals[n - 1])\n ? (vals = isArray(vals[0]) ? vals[0] : vals, keys = [])\n : (vals = isArray(vals[0]) ? vals[0] : vals.slice(0, n - 1));\n }\n let fieldIndex = -1;\n let valueIndex = -1;\n let idx = -1;\n const len = vals.length;\n let field;\n let val;\n const [fields, values] = ret;\n while (++idx < len) {\n val = vals[idx];\n if (val instanceof column_1.Column && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = val.field.clone(keys[idx], val.type, true);\n }\n else {\n ({ [idx]: field = idx } = keys);\n if (val instanceof type_1.DataType && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = schema_1.Field.new(field, val, true);\n }\n else if (val && val.type && (values[++valueIndex] = val)) {\n val instanceof data_1.Data && (values[valueIndex] = val = vector_1.Vector.new(val));\n fields[++fieldIndex] = schema_1.Field.new(field, val.type, true);\n }\n }\n }\n return ret;\n}\n\n//# sourceMappingURL=args.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst buffer_1 = require(\"../util/buffer\");\n/** @ignore */\nexports.default = {\n fromIterable(source) {\n return pump(fromIterable(source));\n },\n fromAsyncIterable(source) {\n return pump(fromAsyncIterable(source));\n },\n fromDOMStream(source) {\n return pump(fromDOMStream(source));\n },\n fromNodeStream(stream) {\n return pump(fromNodeStream(stream));\n },\n // @ts-ignore\n toDOMStream(source, options) {\n throw new Error(`\"toDOMStream\" not available in this environment`);\n },\n // @ts-ignore\n toNodeStream(source, options) {\n throw new Error(`\"toNodeStream\" not available in this environment`);\n },\n};\n/** @ignore */\nconst pump = (iterator) => { iterator.next(); return iterator; };\n/** @ignore */\nfunction* fromIterable(source) {\n let done, threw = false;\n let buffers = [], buffer;\n let cmd, size, bufferLength = 0;\n function byteRange() {\n if (cmd === 'peek') {\n return buffer_1.joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = buffer_1.joinUint8Arrays(buffers, size);\n return buffer;\n }\n // Yield so the caller can inject the read command before creating the source Iterator\n ({ cmd, size } = yield null);\n // initialize the iterator\n const it = buffer_1.toUint8ArrayIterator(source)[Symbol.iterator]();\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength) ?\n it.next(undefined) : it.next(size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n }\n catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (it.throw(e));\n }\n finally {\n (threw === false) && (typeof it.return === 'function') && (it.return(null));\n }\n return null;\n}\n/** @ignore */\nasync function* fromAsyncIterable(source) {\n let done, threw = false;\n let buffers = [], buffer;\n let cmd, size, bufferLength = 0;\n function byteRange() {\n if (cmd === 'peek') {\n return buffer_1.joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = buffer_1.joinUint8Arrays(buffers, size);\n return buffer;\n }\n // Yield so the caller can inject the read command before creating the source AsyncIterator\n ({ cmd, size } = (yield null));\n // initialize the iterator\n const it = buffer_1.toUint8ArrayAsyncIterator(source)[Symbol.asyncIterator]();\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength)\n ? await it.next(undefined)\n : await it.next(size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n }\n catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (await it.throw(e));\n }\n finally {\n (threw === false) && (typeof it.return === 'function') && (await it.return(new Uint8Array(0)));\n }\n return null;\n}\n// All this manual Uint8Array chunk management can be avoided if/when engines\n// add support for ArrayBuffer.transfer() or ArrayBuffer.prototype.realloc():\n// https://github.com/domenic/proposal-arraybuffer-transfer\n/** @ignore */\nasync function* fromDOMStream(source) {\n let done = false, threw = false;\n let buffers = [], buffer;\n let cmd, size, bufferLength = 0;\n function byteRange() {\n if (cmd === 'peek') {\n return buffer_1.joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = buffer_1.joinUint8Arrays(buffers, size);\n return buffer;\n }\n // Yield so the caller can inject the read command before we establish the ReadableStream lock\n ({ cmd, size } = yield null);\n // initialize the reader and lock the stream\n const it = new AdaptiveByteReader(source);\n try {\n do {\n // read the next value\n ({ done, value: buffer } = isNaN(size - bufferLength)\n ? await it['read'](undefined)\n : await it['read'](size - bufferLength));\n // if chunk is not null or empty, push it onto the queue\n if (!done && buffer.byteLength > 0) {\n buffers.push(buffer_1.toUint8Array(buffer));\n bufferLength += buffer.byteLength;\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n }\n catch (e) {\n (threw = true) && (await it['cancel'](e));\n }\n finally {\n (threw === false) ? (await it['cancel']())\n : source['locked'] && it.releaseLock();\n }\n return null;\n}\n/** @ignore */\nclass AdaptiveByteReader {\n constructor(source) {\n this.source = source;\n this.byobReader = null;\n this.defaultReader = null;\n try {\n this.supportsBYOB = !!(this.reader = this.getBYOBReader());\n }\n catch (e) {\n this.supportsBYOB = !(this.reader = this.getDefaultReader());\n }\n }\n get closed() {\n return this.reader ? this.reader['closed'].catch(() => { }) : Promise.resolve();\n }\n releaseLock() {\n if (this.reader) {\n this.reader.releaseLock();\n }\n this.reader = this.byobReader = this.defaultReader = null;\n }\n async cancel(reason) {\n const { reader, source } = this;\n reader && (await reader['cancel'](reason).catch(() => { }));\n source && (source['locked'] && this.releaseLock());\n }\n async read(size) {\n if (size === 0) {\n return { done: this.reader == null, value: new Uint8Array(0) };\n }\n const result = !this.supportsBYOB || typeof size !== 'number'\n ? await this.getDefaultReader().read()\n : await this.readFromBYOBReader(size);\n !result.done && (result.value = buffer_1.toUint8Array(result));\n return result;\n }\n getDefaultReader() {\n if (this.byobReader) {\n this.releaseLock();\n }\n if (!this.defaultReader) {\n this.defaultReader = this.source['getReader']();\n // We have to catch and swallow errors here to avoid uncaught promise rejection exceptions\n // that seem to be raised when we call `releaseLock()` on this reader. I'm still mystified\n // about why these errors are raised, but I'm sure there's some important spec reason that\n // I haven't considered. I hate to employ such an anti-pattern here, but it seems like the\n // only solution in this case :/\n this.defaultReader['closed'].catch(() => { });\n }\n return (this.reader = this.defaultReader);\n }\n getBYOBReader() {\n if (this.defaultReader) {\n this.releaseLock();\n }\n if (!this.byobReader) {\n this.byobReader = this.source['getReader']({ mode: 'byob' });\n // We have to catch and swallow errors here to avoid uncaught promise rejection exceptions\n // that seem to be raised when we call `releaseLock()` on this reader. I'm still mystified\n // about why these errors are raised, but I'm sure there's some important spec reason that\n // I haven't considered. I hate to employ such an anti-pattern here, but it seems like the\n // only solution in this case :/\n this.byobReader['closed'].catch(() => { });\n }\n return (this.reader = this.byobReader);\n }\n // This strategy plucked from the example in the streams spec:\n // https://streams.spec.whatwg.org/#example-manual-read-bytes\n async readFromBYOBReader(size) {\n return await readInto(this.getBYOBReader(), new ArrayBuffer(size), 0, size);\n }\n}\n/** @ignore */\nasync function readInto(reader, buffer, offset, size) {\n if (offset >= size) {\n return { done: false, value: new Uint8Array(buffer, 0, size) };\n }\n const { done, value } = await reader.read(new Uint8Array(buffer, offset, size - offset));\n if (((offset += value.byteLength) < size) && !done) {\n return await readInto(reader, value.buffer, offset, size);\n }\n return { done, value: new Uint8Array(value.buffer, 0, offset) };\n}\n/** @ignore */\nconst onEvent = (stream, event) => {\n const handler = (_) => resolve([event, _]);\n let resolve;\n return [event, handler, new Promise((r) => (resolve = r) && stream['once'](event, handler))];\n};\n/** @ignore */\nasync function* fromNodeStream(stream) {\n const events = [];\n let event = 'error';\n let done = false, err = null;\n let cmd, size, bufferLength = 0;\n let buffers = [], buffer;\n function byteRange() {\n if (cmd === 'peek') {\n return buffer_1.joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = buffer_1.joinUint8Arrays(buffers, size);\n return buffer;\n }\n // Yield so the caller can inject the read command before we\n // add the listener for the source stream's 'readable' event.\n ({ cmd, size } = yield null);\n // ignore stdin if it's a TTY\n if (stream['isTTY']) {\n yield new Uint8Array(0);\n return null;\n }\n try {\n // initialize the stream event handlers\n events[0] = onEvent(stream, 'end');\n events[1] = onEvent(stream, 'error');\n do {\n events[2] = onEvent(stream, 'readable');\n // wait on the first message event from the stream\n [event, err] = await Promise.race(events.map((x) => x[2]));\n // if the stream emitted an Error, rethrow it\n if (event === 'error') {\n break;\n }\n if (!(done = event === 'end')) {\n // If the size is NaN, request to read everything in the stream's internal buffer\n if (!isFinite(size - bufferLength)) {\n buffer = buffer_1.toUint8Array(stream['read'](undefined));\n }\n else {\n buffer = buffer_1.toUint8Array(stream['read'](size - bufferLength));\n // If the byteLength is 0, then the requested amount is more than the stream has\n // in its internal buffer. In this case the stream needs a \"kick\" to tell it to\n // continue emitting readable events, so request to read everything the stream\n // has in its internal buffer right now.\n if (buffer.byteLength < (size - bufferLength)) {\n buffer = buffer_1.toUint8Array(stream['read'](undefined));\n }\n }\n // if chunk is not null or empty, push it onto the queue\n if (buffer.byteLength > 0) {\n buffers.push(buffer);\n bufferLength += buffer.byteLength;\n }\n }\n // If we have enough bytes in our buffer, yield chunks until we don't\n if (done || size <= bufferLength) {\n do {\n ({ cmd, size } = yield byteRange());\n } while (size < bufferLength);\n }\n } while (!done);\n }\n finally {\n await cleanup(events, event === 'error' ? err : null);\n }\n return null;\n function cleanup(events, err) {\n buffer = buffers = null;\n return new Promise((resolve, reject) => {\n for (const [evt, fn] of events) {\n stream['off'](evt, fn);\n }\n try {\n // Some stream implementations don't call the destroy callback,\n // because it's really a node-internal API. Just calling `destroy`\n // here should be enough to conform to the ReadableStream contract\n const destroy = stream['destroy'];\n destroy && destroy.call(stream, err);\n err = undefined;\n }\n catch (e) {\n err = e || err;\n }\n finally {\n err != null ? reject(err) : resolve();\n }\n });\n }\n}\n\n//# sourceMappingURL=adapters.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.float64ToUint16 = exports.uint16ToFloat64 = void 0;\nconst f64 = new Float64Array(1);\nconst u32 = new Uint32Array(f64.buffer);\n/**\n * Convert uint16 (logically a float16) to a JS float64. Inspired by numpy's `npy_half_to_double`:\n * https://github.com/numpy/numpy/blob/5a5987291dc95376bb098be8d8e5391e89e77a2c/numpy/core/src/npymath/halffloat.c#L29\n * @param h {number} the uint16 to convert\n * @private\n * @ignore\n */\nfunction uint16ToFloat64(h) {\n const expo = (h & 0x7C00) >> 10;\n const sigf = (h & 0x03FF) / 1024;\n const sign = (-1) ** ((h & 0x8000) >> 15);\n switch (expo) {\n case 0x1F: return sign * (sigf ? NaN : 1 / 0);\n case 0x00: return sign * (sigf ? 6.103515625e-5 * sigf : 0);\n }\n return sign * (2 ** (expo - 15)) * (1 + sigf);\n}\nexports.uint16ToFloat64 = uint16ToFloat64;\n/**\n * Convert a float64 to uint16 (assuming the float64 is logically a float16). Inspired by numpy's `npy_double_to_half`:\n * https://github.com/numpy/numpy/blob/5a5987291dc95376bb098be8d8e5391e89e77a2c/numpy/core/src/npymath/halffloat.c#L43\n * @param d {number} The float64 to convert\n * @private\n * @ignore\n */\nfunction float64ToUint16(d) {\n if (d !== d) {\n return 0x7E00;\n } // NaN\n f64[0] = d;\n // Magic numbers:\n // 0x80000000 = 10000000 00000000 00000000 00000000 -- masks the 32nd bit\n // 0x7ff00000 = 01111111 11110000 00000000 00000000 -- masks the 21st-31st bits\n // 0x000fffff = 00000000 00001111 11111111 11111111 -- masks the 1st-20th bit\n const sign = (u32[1] & 0x80000000) >> 16 & 0xFFFF;\n let expo = (u32[1] & 0x7ff00000), sigf = 0x0000;\n if (expo >= 0x40f00000) {\n //\n // If exponent overflowed, the float16 is either NaN or Infinity.\n // Rules to propagate the sign bit: mantissa > 0 ? NaN : +/-Infinity\n //\n // Magic numbers:\n // 0x40F00000 = 01000000 11110000 00000000 00000000 -- 6-bit exponent overflow\n // 0x7C000000 = 01111100 00000000 00000000 00000000 -- masks the 27th-31st bits\n //\n // returns:\n // qNaN, aka 32256 decimal, 0x7E00 hex, or 01111110 00000000 binary\n // sNaN, aka 32000 decimal, 0x7D00 hex, or 01111101 00000000 binary\n // +inf, aka 31744 decimal, 0x7C00 hex, or 01111100 00000000 binary\n // -inf, aka 64512 decimal, 0xFC00 hex, or 11111100 00000000 binary\n //\n // If mantissa is greater than 23 bits, set to +Infinity like numpy\n if (u32[0] > 0) {\n expo = 0x7C00;\n }\n else {\n expo = (expo & 0x7C000000) >> 16;\n sigf = (u32[1] & 0x000fffff) >> 10;\n }\n }\n else if (expo <= 0x3f000000) {\n //\n // If exponent underflowed, the float is either signed zero or subnormal.\n //\n // Magic numbers:\n // 0x3F000000 = 00111111 00000000 00000000 00000000 -- 6-bit exponent underflow\n //\n sigf = 0x100000 + (u32[1] & 0x000fffff);\n sigf = 0x100000 + (sigf << ((expo >> 20) - 998)) >> 21;\n expo = 0;\n }\n else {\n //\n // No overflow or underflow, rebase the exponent and round the mantissa\n // Magic numbers:\n // 0x200 = 00000010 00000000 -- masks off the 10th bit\n //\n // Ensure the first mantissa bit (the 10th one) is 1 and round\n expo = (expo - 0x3f000000) >> 10;\n sigf = ((u32[1] & 0x000fffff) + 0x200) >> 10;\n }\n return sign | expo | sigf & 0xFFFF;\n}\nexports.float64ToUint16 = float64ToUint16;\n\n//# sourceMappingURL=math.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BN = exports.bignumToBigInt = exports.bignumToString = exports.isArrowBigNumSymbol = void 0;\nconst buffer_1 = require(\"./buffer\");\nconst compat_1 = require(\"./compat\");\n/** @ignore */\nexports.isArrowBigNumSymbol = Symbol.for('isArrowBigNum');\n/** @ignore */\nfunction BigNum(x, ...xs) {\n if (xs.length === 0) {\n return Object.setPrototypeOf(buffer_1.toArrayBufferView(this['TypedArray'], x), this.constructor.prototype);\n }\n return Object.setPrototypeOf(new this['TypedArray'](x, ...xs), this.constructor.prototype);\n}\nBigNum.prototype[exports.isArrowBigNumSymbol] = true;\nBigNum.prototype.toJSON = function () { return `\"${exports.bignumToString(this)}\"`; };\nBigNum.prototype.valueOf = function () { return bignumToNumber(this); };\nBigNum.prototype.toString = function () { return exports.bignumToString(this); };\nBigNum.prototype[Symbol.toPrimitive] = function (hint = 'default') {\n switch (hint) {\n case 'number': return bignumToNumber(this);\n case 'string': return exports.bignumToString(this);\n case 'default': return exports.bignumToBigInt(this);\n }\n // @ts-ignore\n return exports.bignumToString(this);\n};\n/** @ignore */\nfunction SignedBigNum(...args) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction UnsignedBigNum(...args) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction DecimalBigNum(...args) { return BigNum.apply(this, args); }\nObject.setPrototypeOf(SignedBigNum.prototype, Object.create(Int32Array.prototype));\nObject.setPrototypeOf(UnsignedBigNum.prototype, Object.create(Uint32Array.prototype));\nObject.setPrototypeOf(DecimalBigNum.prototype, Object.create(Uint32Array.prototype));\nObject.assign(SignedBigNum.prototype, BigNum.prototype, { 'constructor': SignedBigNum, 'signed': true, 'TypedArray': Int32Array, 'BigIntArray': compat_1.BigInt64Array });\nObject.assign(UnsignedBigNum.prototype, BigNum.prototype, { 'constructor': UnsignedBigNum, 'signed': false, 'TypedArray': Uint32Array, 'BigIntArray': compat_1.BigUint64Array });\nObject.assign(DecimalBigNum.prototype, BigNum.prototype, { 'constructor': DecimalBigNum, 'signed': true, 'TypedArray': Uint32Array, 'BigIntArray': compat_1.BigUint64Array });\n/** @ignore */\nfunction bignumToNumber(bn) {\n const { buffer, byteOffset, length, 'signed': signed } = bn;\n const words = new Int32Array(buffer, byteOffset, length);\n let number = 0, i = 0;\n const n = words.length;\n let hi, lo;\n while (i < n) {\n lo = words[i++];\n hi = words[i++];\n signed || (hi = hi >>> 0);\n number += (lo >>> 0) + (hi * (i ** 32));\n }\n return number;\n}\nif (!compat_1.BigIntAvailable) {\n exports.bignumToString = decimalToString;\n exports.bignumToBigInt = exports.bignumToString;\n}\nelse {\n exports.bignumToBigInt = ((a) => a.byteLength === 8 ? new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0] : decimalToString(a));\n exports.bignumToString = ((a) => a.byteLength === 8 ? `${new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0]}` : decimalToString(a));\n}\n/** @ignore */\nfunction decimalToString(a) {\n let digits = '';\n const base64 = new Uint32Array(2);\n let base32 = new Uint16Array(a.buffer, a.byteOffset, a.byteLength / 2);\n const checks = new Uint32Array((base32 = new Uint16Array(base32).reverse()).buffer);\n let i = -1;\n const n = base32.length - 1;\n do {\n for (base64[0] = base32[i = 0]; i < n;) {\n base32[i++] = base64[1] = base64[0] / 10;\n base64[0] = ((base64[0] - base64[1] * 10) << 16) + base32[i];\n }\n base32[i] = base64[1] = base64[0] / 10;\n base64[0] = base64[0] - base64[1] * 10;\n digits = `${base64[0]}${digits}`;\n } while (checks[0] || checks[1] || checks[2] || checks[3]);\n return digits ? digits : `0`;\n}\n/** @ignore */\nclass BN {\n /** @nocollapse */\n static new(num, isSigned) {\n switch (isSigned) {\n case true: return new SignedBigNum(num);\n case false: return new UnsignedBigNum(num);\n }\n switch (num.constructor) {\n case Int8Array:\n case Int16Array:\n case Int32Array:\n case compat_1.BigInt64Array:\n return new SignedBigNum(num);\n }\n if (num.byteLength === 16) {\n return new DecimalBigNum(num);\n }\n return new UnsignedBigNum(num);\n }\n /** @nocollapse */\n static signed(num) {\n return new SignedBigNum(num);\n }\n /** @nocollapse */\n static unsigned(num) {\n return new UnsignedBigNum(num);\n }\n /** @nocollapse */\n static decimal(num) {\n return new DecimalBigNum(num);\n }\n constructor(num, isSigned) {\n return BN.new(num, isSigned);\n }\n}\nexports.BN = BN;\n\n//# sourceMappingURL=bn.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncRecordBatchFileReader = exports.RecordBatchFileReader = exports.AsyncRecordBatchStreamReader = exports.RecordBatchStreamReader = exports.RecordBatchReader = void 0;\nconst vector_1 = require(\"../vector\");\nconst enum_1 = require(\"../enum\");\nconst file_1 = require(\"./metadata/file\");\nconst adapters_1 = require(\"../io/adapters\");\nconst stream_1 = require(\"../io/stream\");\nconst file_2 = require(\"../io/file\");\nconst vectorloader_1 = require(\"../visitor/vectorloader\");\nconst recordbatch_1 = require(\"../recordbatch\");\nconst interfaces_1 = require(\"../io/interfaces\");\nconst message_1 = require(\"./message\");\nconst compat_1 = require(\"../util/compat\");\nclass RecordBatchReader extends interfaces_1.ReadableInterop {\n constructor(impl) {\n super();\n this._impl = impl;\n }\n get closed() { return this._impl.closed; }\n get schema() { return this._impl.schema; }\n get autoDestroy() { return this._impl.autoDestroy; }\n get dictionaries() { return this._impl.dictionaries; }\n get numDictionaries() { return this._impl.numDictionaries; }\n get numRecordBatches() { return this._impl.numRecordBatches; }\n get footer() { return this._impl.isFile() ? this._impl.footer : null; }\n isSync() { return this._impl.isSync(); }\n isAsync() { return this._impl.isAsync(); }\n isFile() { return this._impl.isFile(); }\n isStream() { return this._impl.isStream(); }\n next() {\n return this._impl.next();\n }\n throw(value) {\n return this._impl.throw(value);\n }\n return(value) {\n return this._impl.return(value);\n }\n cancel() {\n return this._impl.cancel();\n }\n reset(schema) {\n this._impl.reset(schema);\n this._DOMStream = undefined;\n this._nodeStream = undefined;\n return this;\n }\n open(options) {\n const opening = this._impl.open(options);\n return compat_1.isPromise(opening) ? opening.then(() => this) : this;\n }\n readRecordBatch(index) {\n return this._impl.isFile() ? this._impl.readRecordBatch(index) : null;\n }\n [Symbol.iterator]() {\n return this._impl[Symbol.iterator]();\n }\n [Symbol.asyncIterator]() {\n return this._impl[Symbol.asyncIterator]();\n }\n toDOMStream() {\n return adapters_1.default.toDOMStream((this.isSync()\n ? { [Symbol.iterator]: () => this }\n : { [Symbol.asyncIterator]: () => this }));\n }\n toNodeStream() {\n return adapters_1.default.toNodeStream((this.isSync()\n ? { [Symbol.iterator]: () => this }\n : { [Symbol.asyncIterator]: () => this }), { objectMode: true });\n }\n /** @nocollapse */\n // @ts-ignore\n static throughNode(options) {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n static throughDOM(\n // @ts-ignore\n writableStrategy, \n // @ts-ignore\n readableStrategy) {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n /** @nocollapse */\n static from(source) {\n if (source instanceof RecordBatchReader) {\n return source;\n }\n else if (compat_1.isArrowJSON(source)) {\n return fromArrowJSON(source);\n }\n else if (compat_1.isFileHandle(source)) {\n return fromFileHandle(source);\n }\n else if (compat_1.isPromise(source)) {\n return (async () => await RecordBatchReader.from(await source))();\n }\n else if (compat_1.isFetchResponse(source) || compat_1.isReadableDOMStream(source) || compat_1.isReadableNodeStream(source) || compat_1.isAsyncIterable(source)) {\n return fromAsyncByteStream(new stream_1.AsyncByteStream(source));\n }\n return fromByteStream(new stream_1.ByteStream(source));\n }\n /** @nocollapse */\n static readAll(source) {\n if (source instanceof RecordBatchReader) {\n return source.isSync() ? readAllSync(source) : readAllAsync(source);\n }\n else if (compat_1.isArrowJSON(source) || ArrayBuffer.isView(source) || compat_1.isIterable(source) || compat_1.isIteratorResult(source)) {\n return readAllSync(source);\n }\n return readAllAsync(source);\n }\n}\nexports.RecordBatchReader = RecordBatchReader;\n//\n// Since TS is a structural type system, we define the following subclass stubs\n// so that concrete types exist to associate with with the interfaces below.\n//\n// The implementation for each RecordBatchReader is hidden away in the set of\n// `RecordBatchReaderImpl` classes in the second half of this file. This allows\n// us to export a single RecordBatchReader class, and swap out the impl based\n// on the io primitives or underlying arrow (JSON, file, or stream) at runtime.\n//\n// Async/await makes our job a bit harder, since it forces everything to be\n// either fully sync or fully async. This is why the logic for the reader impls\n// has been duplicated into both sync and async variants. Since the RBR\n// delegates to its impl, an RBR with an AsyncRecordBatchFileReaderImpl for\n// example will return async/await-friendly Promises, but one with a (sync)\n// RecordBatchStreamReaderImpl will always return values. Nothing should be\n// different about their logic, aside from the async handling. This is also why\n// this code looks highly structured, as it should be nearly identical and easy\n// to follow.\n//\n/** @ignore */\nclass RecordBatchStreamReader extends RecordBatchReader {\n constructor(_impl) {\n super(_impl);\n this._impl = _impl;\n }\n [Symbol.iterator]() { return this._impl[Symbol.iterator](); }\n async *[Symbol.asyncIterator]() { yield* this[Symbol.iterator](); }\n}\nexports.RecordBatchStreamReader = RecordBatchStreamReader;\n/** @ignore */\nclass AsyncRecordBatchStreamReader extends RecordBatchReader {\n constructor(_impl) {\n super(_impl);\n this._impl = _impl;\n }\n [Symbol.iterator]() { throw new Error(`AsyncRecordBatchStreamReader is not Iterable`); }\n [Symbol.asyncIterator]() { return this._impl[Symbol.asyncIterator](); }\n}\nexports.AsyncRecordBatchStreamReader = AsyncRecordBatchStreamReader;\n/** @ignore */\nclass RecordBatchFileReader extends RecordBatchStreamReader {\n constructor(_impl) {\n super(_impl);\n this._impl = _impl;\n }\n}\nexports.RecordBatchFileReader = RecordBatchFileReader;\n/** @ignore */\nclass AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n constructor(_impl) {\n super(_impl);\n this._impl = _impl;\n }\n}\nexports.AsyncRecordBatchFileReader = AsyncRecordBatchFileReader;\n/** @ignore */\nclass RecordBatchReaderImpl {\n constructor(dictionaries = new Map()) {\n this.closed = false;\n this.autoDestroy = true;\n this._dictionaryIndex = 0;\n this._recordBatchIndex = 0;\n this.dictionaries = dictionaries;\n }\n get numDictionaries() { return this._dictionaryIndex; }\n get numRecordBatches() { return this._recordBatchIndex; }\n isSync() { return false; }\n isAsync() { return false; }\n isFile() { return false; }\n isStream() { return false; }\n reset(schema) {\n this._dictionaryIndex = 0;\n this._recordBatchIndex = 0;\n this.schema = schema;\n this.dictionaries = new Map();\n return this;\n }\n _loadRecordBatch(header, body) {\n return new recordbatch_1.RecordBatch(this.schema, header.length, this._loadVectors(header, body, this.schema.fields));\n }\n _loadDictionaryBatch(header, body) {\n const { id, isDelta, data } = header;\n const { dictionaries, schema } = this;\n const dictionary = dictionaries.get(id);\n if (isDelta || !dictionary) {\n const type = schema.dictionaries.get(id);\n return (dictionary && isDelta ? dictionary.concat(vector_1.Vector.new(this._loadVectors(data, body, [type])[0])) :\n vector_1.Vector.new(this._loadVectors(data, body, [type])[0]));\n }\n return dictionary;\n }\n _loadVectors(header, body, types) {\n return new vectorloader_1.VectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n/** @ignore */\nclass RecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n constructor(source, dictionaries) {\n super(dictionaries);\n this._reader = !compat_1.isArrowJSON(source)\n ? new message_1.MessageReader(this._handle = source)\n : new message_1.JSONMessageReader(this._handle = source);\n }\n isSync() { return true; }\n isStream() { return true; }\n [Symbol.iterator]() {\n return this;\n }\n cancel() {\n if (!this.closed && (this.closed = true)) {\n this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n open(options) {\n if (!this.closed) {\n this.autoDestroy = shouldAutoDestroy(this, options);\n if (!(this.schema || (this.schema = this._reader.readSchema()))) {\n this.cancel();\n }\n }\n return this;\n }\n throw(value) {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.throw(value);\n }\n return interfaces_1.ITERATOR_DONE;\n }\n return(value) {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.return(value);\n }\n return interfaces_1.ITERATOR_DONE;\n }\n next() {\n if (this.closed) {\n return interfaces_1.ITERATOR_DONE;\n }\n let message;\n const { _reader: reader } = this;\n while (message = this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n this.reset(message.header());\n }\n else if (message.isRecordBatch()) {\n this._recordBatchIndex++;\n const header = message.header();\n const buffer = reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return { done: false, value: recordBatch };\n }\n else if (message.isDictionaryBatch()) {\n this._dictionaryIndex++;\n const header = message.header();\n const buffer = reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n if (this.schema && this._recordBatchIndex === 0) {\n this._recordBatchIndex++;\n return { done: false, value: new recordbatch_1._InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return this.return();\n }\n _readNextMessageAndValidate(type) {\n return this._reader.readMessage(type);\n }\n}\n/** @ignore */\nclass AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n constructor(source, dictionaries) {\n super(dictionaries);\n this._reader = new message_1.AsyncMessageReader(this._handle = source);\n }\n isAsync() { return true; }\n isStream() { return true; }\n [Symbol.asyncIterator]() {\n return this;\n }\n async cancel() {\n if (!this.closed && (this.closed = true)) {\n await this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n async open(options) {\n if (!this.closed) {\n this.autoDestroy = shouldAutoDestroy(this, options);\n if (!(this.schema || (this.schema = (await this._reader.readSchema())))) {\n await this.cancel();\n }\n }\n return this;\n }\n async throw(value) {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.throw(value);\n }\n return interfaces_1.ITERATOR_DONE;\n }\n async return(value) {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.return(value);\n }\n return interfaces_1.ITERATOR_DONE;\n }\n async next() {\n if (this.closed) {\n return interfaces_1.ITERATOR_DONE;\n }\n let message;\n const { _reader: reader } = this;\n while (message = await this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n await this.reset(message.header());\n }\n else if (message.isRecordBatch()) {\n this._recordBatchIndex++;\n const header = message.header();\n const buffer = await reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return { done: false, value: recordBatch };\n }\n else if (message.isDictionaryBatch()) {\n this._dictionaryIndex++;\n const header = message.header();\n const buffer = await reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n if (this.schema && this._recordBatchIndex === 0) {\n this._recordBatchIndex++;\n return { done: false, value: new recordbatch_1._InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return await this.return();\n }\n async _readNextMessageAndValidate(type) {\n return await this._reader.readMessage(type);\n }\n}\n/** @ignore */\nclass RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n constructor(source, dictionaries) {\n super(source instanceof file_2.RandomAccessFile ? source : new file_2.RandomAccessFile(source), dictionaries);\n }\n get footer() { return this._footer; }\n get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n isSync() { return true; }\n isFile() { return true; }\n open(options) {\n if (!this.closed && !this._footer) {\n this.schema = (this._footer = this._readFooter()).schema;\n for (const block of this._footer.dictionaryBatches()) {\n block && this._readDictionaryBatch(this._dictionaryIndex++);\n }\n }\n return super.open(options);\n }\n readRecordBatch(index) {\n if (this.closed) {\n return null;\n }\n if (!this._footer) {\n this.open();\n }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(enum_1.MessageHeader.RecordBatch);\n if (message && message.isRecordBatch()) {\n const header = message.header();\n const buffer = this._reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return recordBatch;\n }\n }\n return null;\n }\n _readDictionaryBatch(index) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(enum_1.MessageHeader.DictionaryBatch);\n if (message && message.isDictionaryBatch()) {\n const header = message.header();\n const buffer = this._reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n }\n _readFooter() {\n const { _handle } = this;\n const offset = _handle.size - message_1.magicAndPadding;\n const length = _handle.readInt32(offset);\n const buffer = _handle.readAt(offset - length, length);\n return file_1.Footer.decode(buffer);\n }\n _readNextMessageAndValidate(type) {\n if (!this._footer) {\n this.open();\n }\n if (this._footer && this._recordBatchIndex < this.numRecordBatches) {\n const block = this._footer && this._footer.getRecordBatch(this._recordBatchIndex);\n if (block && this._handle.seek(block.offset)) {\n return this._reader.readMessage(type);\n }\n }\n return null;\n }\n}\n/** @ignore */\nclass AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl {\n constructor(source, ...rest) {\n const byteLength = typeof rest[0] !== 'number' ? rest.shift() : undefined;\n const dictionaries = rest[0] instanceof Map ? rest.shift() : undefined;\n super(source instanceof file_2.AsyncRandomAccessFile ? source : new file_2.AsyncRandomAccessFile(source, byteLength), dictionaries);\n }\n get footer() { return this._footer; }\n get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n isFile() { return true; }\n isAsync() { return true; }\n async open(options) {\n if (!this.closed && !this._footer) {\n this.schema = (this._footer = await this._readFooter()).schema;\n for (const block of this._footer.dictionaryBatches()) {\n block && await this._readDictionaryBatch(this._dictionaryIndex++);\n }\n }\n return await super.open(options);\n }\n async readRecordBatch(index) {\n if (this.closed) {\n return null;\n }\n if (!this._footer) {\n await this.open();\n }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && (await this._handle.seek(block.offset))) {\n const message = await this._reader.readMessage(enum_1.MessageHeader.RecordBatch);\n if (message && message.isRecordBatch()) {\n const header = message.header();\n const buffer = await this._reader.readMessageBody(message.bodyLength);\n const recordBatch = this._loadRecordBatch(header, buffer);\n return recordBatch;\n }\n }\n return null;\n }\n async _readDictionaryBatch(index) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && (await this._handle.seek(block.offset))) {\n const message = await this._reader.readMessage(enum_1.MessageHeader.DictionaryBatch);\n if (message && message.isDictionaryBatch()) {\n const header = message.header();\n const buffer = await this._reader.readMessageBody(message.bodyLength);\n const vector = this._loadDictionaryBatch(header, buffer);\n this.dictionaries.set(header.id, vector);\n }\n }\n }\n async _readFooter() {\n const { _handle } = this;\n _handle._pending && await _handle._pending;\n const offset = _handle.size - message_1.magicAndPadding;\n const length = await _handle.readInt32(offset);\n const buffer = await _handle.readAt(offset - length, length);\n return file_1.Footer.decode(buffer);\n }\n async _readNextMessageAndValidate(type) {\n if (!this._footer) {\n await this.open();\n }\n if (this._footer && this._recordBatchIndex < this.numRecordBatches) {\n const block = this._footer.getRecordBatch(this._recordBatchIndex);\n if (block && await this._handle.seek(block.offset)) {\n return await this._reader.readMessage(type);\n }\n }\n return null;\n }\n}\n/** @ignore */\nclass RecordBatchJSONReaderImpl extends RecordBatchStreamReaderImpl {\n constructor(source, dictionaries) {\n super(source, dictionaries);\n }\n _loadVectors(header, body, types) {\n return new vectorloader_1.JSONVectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n//\n// Define some helper functions and static implementations down here. There's\n// a bit of branching in the static methods that can lead to the same routines\n// being executed, so we've broken those out here for readability.\n//\n/** @ignore */\nfunction shouldAutoDestroy(self, options) {\n return options && (typeof options['autoDestroy'] === 'boolean') ? options['autoDestroy'] : self['autoDestroy'];\n}\n/** @ignore */\nfunction* readAllSync(source) {\n const reader = RecordBatchReader.from(source);\n try {\n if (!reader.open({ autoDestroy: false }).closed) {\n do {\n yield reader;\n } while (!(reader.reset().open()).closed);\n }\n }\n finally {\n reader.cancel();\n }\n}\n/** @ignore */\nasync function* readAllAsync(source) {\n const reader = await RecordBatchReader.from(source);\n try {\n if (!(await reader.open({ autoDestroy: false })).closed) {\n do {\n yield reader;\n } while (!(await reader.reset().open()).closed);\n }\n }\n finally {\n await reader.cancel();\n }\n}\n/** @ignore */\nfunction fromArrowJSON(source) {\n return new RecordBatchStreamReader(new RecordBatchJSONReaderImpl(source));\n}\n/** @ignore */\nfunction fromByteStream(source) {\n const bytes = source.peek((message_1.magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !message_1.checkForMagicArrowString(bytes)\n ? new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(source.read()))\n : new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(function* () { }()));\n}\n/** @ignore */\nasync function fromAsyncByteStream(source) {\n const bytes = await source.peek((message_1.magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !message_1.checkForMagicArrowString(bytes)\n ? new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(await source.read()))\n : new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(async function* () { }()));\n}\n/** @ignore */\nasync function fromFileHandle(source) {\n const { size } = await source.stat();\n const file = new file_2.AsyncRandomAccessFile(source, size);\n if (size >= message_1.magicX2AndPadding) {\n if (message_1.checkForMagicArrowString(await file.readAt(0, (message_1.magicLength + 7) & ~7))) {\n return new AsyncRecordBatchFileReader(new AsyncRecordBatchFileReaderImpl(file));\n }\n }\n return new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(file));\n}\n\n//# sourceMappingURL=reader.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Table = void 0;\nconst column_1 = require(\"./column\");\nconst schema_1 = require(\"./schema\");\nconst recordbatch_1 = require(\"./recordbatch\");\nconst reader_1 = require(\"./ipc/reader\");\nconst type_1 = require(\"./type\");\nconst args_1 = require(\"./util/args\");\nconst compat_1 = require(\"./util/compat\");\nconst writer_1 = require(\"./ipc/writer\");\nconst recordbatch_2 = require(\"./util/recordbatch\");\nconst index_1 = require(\"./vector/index\");\nclass Table extends index_1.Chunked {\n constructor(...args) {\n let schema = null;\n if (args[0] instanceof schema_1.Schema) {\n schema = args.shift();\n }\n const chunks = args_1.selectArgs(recordbatch_1.RecordBatch, args);\n if (!schema && !(schema = chunks[0] && chunks[0].schema)) {\n throw new TypeError('Table must be initialized with a Schema or at least one RecordBatch');\n }\n chunks[0] || (chunks[0] = new recordbatch_1._InternalEmptyPlaceholderRecordBatch(schema));\n super(new type_1.Struct(schema.fields), chunks);\n this._schema = schema;\n this._chunks = chunks;\n }\n /** @nocollapse */\n static empty(schema = new schema_1.Schema([])) { return new Table(schema, []); }\n /** @nocollapse */\n static from(input) {\n if (!input) {\n return Table.empty();\n }\n if (typeof input === 'object') {\n const table = compat_1.isIterable(input['values']) ? tableFromIterable(input)\n : compat_1.isAsyncIterable(input['values']) ? tableFromAsyncIterable(input)\n : null;\n if (table !== null) {\n return table;\n }\n }\n let reader = reader_1.RecordBatchReader.from(input);\n if (compat_1.isPromise(reader)) {\n return (async () => await Table.from(await reader))();\n }\n if (reader.isSync() && (reader = reader.open())) {\n return !reader.schema ? Table.empty() : new Table(reader.schema, [...reader]);\n }\n return (async (opening) => {\n const reader = await opening;\n const schema = reader.schema;\n const batches = [];\n if (schema) {\n for await (const batch of reader) {\n batches.push(batch);\n }\n return new Table(schema, batches);\n }\n return Table.empty();\n })(reader.open());\n }\n /** @nocollapse */\n static async fromAsync(source) {\n return await Table.from(source);\n }\n /** @nocollapse */\n static fromStruct(vector) {\n return Table.new(vector.data.childData, vector.type.children);\n }\n /** @nocollapse */\n static new(...cols) {\n return new Table(...recordbatch_2.distributeColumnsIntoRecordBatches(args_1.selectColumnArgs(cols)));\n }\n get schema() { return this._schema; }\n get length() { return this._length; }\n get chunks() { return this._chunks; }\n get numCols() { return this._numChildren; }\n clone(chunks = this._chunks) {\n return new Table(this._schema, chunks);\n }\n getColumn(name) {\n return this.getColumnAt(this.getColumnIndex(name));\n }\n getColumnAt(index) {\n return this.getChildAt(index);\n }\n getColumnIndex(name) {\n return this._schema.fields.findIndex((f) => f.name === name);\n }\n getChildAt(index) {\n if (index < 0 || index >= this.numChildren) {\n return null;\n }\n let field, child;\n const fields = this._schema.fields;\n const columns = this._children || (this._children = []);\n if (child = columns[index]) {\n return child;\n }\n if (field = fields[index]) {\n const chunks = this._chunks\n .map((chunk) => chunk.getChildAt(index))\n .filter((vec) => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new column_1.Column(field, chunks));\n }\n }\n return null;\n }\n // @ts-ignore\n serialize(encoding = 'binary', stream = true) {\n const Writer = !stream\n ? writer_1.RecordBatchFileWriter\n : writer_1.RecordBatchStreamWriter;\n return Writer.writeAll(this).toUint8Array(true);\n }\n count() {\n return this._length;\n }\n select(...columnNames) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)).filter((x) => x > -1));\n }\n selectAt(...columnIndices) {\n const schema = this._schema.selectAt(...columnIndices);\n return new Table(schema, this._chunks.map(({ length, data: { childData } }) => {\n return new recordbatch_1.RecordBatch(schema, length, columnIndices.map((i) => childData[i]).filter(Boolean));\n }));\n }\n assign(other) {\n const fields = this._schema.fields;\n const [indices, oldToNew] = other.schema.fields.reduce((memo, f2, newIdx) => {\n const [indices, oldToNew] = memo;\n const i = fields.findIndex((f) => f.name === f2.name);\n ~i ? (oldToNew[i] = newIdx) : indices.push(newIdx);\n return memo;\n }, [[], []]);\n const schema = this._schema.assign(other.schema);\n const columns = [\n ...fields.map((_f, i, _fs, j = oldToNew[i]) => (j === undefined ? this.getColumnAt(i) : other.getColumnAt(j))),\n ...indices.map((i) => other.getColumnAt(i))\n ].filter(Boolean);\n return new Table(...recordbatch_2.distributeVectorsIntoRecordBatches(schema, columns));\n }\n}\nexports.Table = Table;\nfunction tableFromIterable(input) {\n const { type } = input;\n if (type instanceof type_1.Struct) {\n return Table.fromStruct(index_1.StructVector.from(input));\n }\n return null;\n}\nfunction tableFromAsyncIterable(input) {\n const { type } = input;\n if (type instanceof type_1.Struct) {\n return index_1.StructVector.from(input).then((vector) => Table.fromStruct(vector));\n }\n return null;\n}\n\n//# sourceMappingURL=table.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createElementComparator = exports.clampRange = exports.clampIndex = void 0;\nconst vector_1 = require(\"../vector\");\nconst row_1 = require(\"../vector/row\");\nconst buffer_1 = require(\"../util/buffer\");\nconst compat_1 = require(\"./compat\");\n/** @ignore */\nfunction clampIndex(source, index, then) {\n const length = source.length;\n const adjust = index > -1 ? index : (length + (index % length));\n return then ? then(source, adjust) : adjust;\n}\nexports.clampIndex = clampIndex;\n/** @ignore */\nlet tmp;\n/** @ignore */\nfunction clampRange(source, begin, end, then) {\n // Adjust args similar to Array.prototype.slice. Normalize begin/end to\n // clamp between 0 and length, and wrap around on negative indices, e.g.\n // slice(-1, 5) or slice(5, -1)\n const { length: len = 0 } = source;\n let lhs = typeof begin !== 'number' ? 0 : begin;\n let rhs = typeof end !== 'number' ? len : end;\n // wrap around on negative start/end positions\n (lhs < 0) && (lhs = ((lhs % len) + len) % len);\n (rhs < 0) && (rhs = ((rhs % len) + len) % len);\n // ensure lhs <= rhs\n (rhs < lhs) && (tmp = lhs, lhs = rhs, rhs = tmp);\n // ensure rhs <= length\n (rhs > len) && (rhs = len);\n return then ? then(source, lhs, rhs) : [lhs, rhs];\n}\nexports.clampRange = clampRange;\nconst big0 = compat_1.BigIntAvailable ? compat_1.BigInt(0) : 0;\nconst isNaNFast = (value) => value !== value;\n/** @ignore */\nfunction createElementComparator(search) {\n const typeofSearch = typeof search;\n // Compare primitives\n if (typeofSearch !== 'object' || search === null) {\n // Compare NaN\n if (isNaNFast(search)) {\n return isNaNFast;\n }\n return typeofSearch !== 'bigint'\n ? (value) => value === search\n : (value) => (big0 + value) === search;\n }\n // Compare Dates\n if (search instanceof Date) {\n const valueOfSearch = search.valueOf();\n return (value) => value instanceof Date ? (value.valueOf() === valueOfSearch) : false;\n }\n // Compare TypedArrays\n if (ArrayBuffer.isView(search)) {\n return (value) => value ? buffer_1.compareArrayLike(search, value) : false;\n }\n // Compare Maps and Rows\n if (search instanceof Map) {\n return creatMapComparator(search);\n }\n // Compare Array-likes\n if (Array.isArray(search)) {\n return createArrayLikeComparator(search);\n }\n // Compare Vectors\n if (search instanceof vector_1.Vector) {\n return createVectorComparator(search);\n }\n // Compare non-empty Objects\n return createObjectComparator(search);\n}\nexports.createElementComparator = createElementComparator;\n/** @ignore */\nfunction createArrayLikeComparator(lhs) {\n const comparators = [];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[i]);\n }\n return createSubElementsComparator(comparators);\n}\n/** @ignore */\nfunction creatMapComparator(lhs) {\n let i = -1;\n const comparators = [];\n lhs.forEach((v) => comparators[++i] = createElementComparator(v));\n return createSubElementsComparator(comparators);\n}\n/** @ignore */\nfunction createVectorComparator(lhs) {\n const comparators = [];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs.get(i));\n }\n return createSubElementsComparator(comparators);\n}\n/** @ignore */\nfunction createObjectComparator(lhs) {\n const keys = Object.keys(lhs);\n // Only compare non-empty Objects\n if (keys.length === 0) {\n return () => false;\n }\n const comparators = [];\n for (let i = -1, n = keys.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[keys[i]]);\n }\n return createSubElementsComparator(comparators, keys);\n}\nfunction createSubElementsComparator(comparators, keys) {\n return (rhs) => {\n if (!rhs || typeof rhs !== 'object') {\n return false;\n }\n switch (rhs.constructor) {\n case Array: return compareArray(comparators, rhs);\n case Map:\n case row_1.MapRow:\n case row_1.StructRow:\n return compareObject(comparators, rhs, rhs.keys());\n case Object:\n case undefined: // support `Object.create(null)` objects\n return compareObject(comparators, rhs, keys || Object.keys(rhs));\n }\n return rhs instanceof vector_1.Vector ? compareVector(comparators, rhs) : false;\n };\n}\nfunction compareArray(comparators, arr) {\n const n = comparators.length;\n if (arr.length !== n) {\n return false;\n }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](arr[i]))) {\n return false;\n }\n }\n return true;\n}\nfunction compareVector(comparators, vec) {\n const n = comparators.length;\n if (vec.length !== n) {\n return false;\n }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](vec.get(i)))) {\n return false;\n }\n }\n return true;\n}\nfunction compareObject(comparators, obj, keys) {\n const lKeyItr = keys[Symbol.iterator]();\n const rKeyItr = obj instanceof Map ? obj.keys() : Object.keys(obj)[Symbol.iterator]();\n const rValItr = obj instanceof Map ? obj.values() : Object.values(obj)[Symbol.iterator]();\n let i = 0;\n const n = comparators.length;\n let rVal = rValItr.next();\n let lKey = lKeyItr.next();\n let rKey = rKeyItr.next();\n for (; i < n && !lKey.done && !rKey.done && !rVal.done; ++i, lKey = lKeyItr.next(), rKey = rKeyItr.next(), rVal = rValItr.next()) {\n if (lKey.value !== rKey.value || !comparators[i](rVal.value)) {\n break;\n }\n }\n if (i === n && lKey.done && rKey.done && rVal.done) {\n return true;\n }\n lKeyItr.return && lKeyItr.return();\n rKeyItr.return && rKeyItr.return();\n rValItr.return && rValItr.return();\n return false;\n}\n\n//# sourceMappingURL=vector.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StructRow = exports.MapRow = void 0;\nconst pretty_1 = require(\"../util/pretty\");\n/** @ignore */ const kParent = Symbol.for('parent');\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */ const kKeyToIdx = Symbol.for('keyToIdx');\n/** @ignore */ const kIdxToVal = Symbol.for('idxToVal');\n/** @ignore */ const kCustomInspect = Symbol.for('nodejs.util.inspect.custom');\nclass Row {\n constructor(parent, numKeys) {\n this[kParent] = parent;\n this.size = numKeys;\n }\n entries() { return this[Symbol.iterator](); }\n has(key) { return this.get(key) !== undefined; }\n get(key) {\n let val = undefined;\n if (key !== null && key !== undefined) {\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n let idx = ktoi.get(key);\n if (idx !== undefined) {\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n }\n else if ((idx = this.getIndex(key)) > -1) {\n ktoi.set(key, idx);\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n }\n }\n return val;\n }\n set(key, val) {\n if (key !== null && key !== undefined) {\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n let idx = ktoi.get(key);\n if (idx === undefined) {\n ktoi.set(key, idx = this.getIndex(key));\n }\n if (idx > -1) {\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n itov[idx] = this.setValue(idx, val);\n }\n }\n return this;\n }\n clear() { throw new Error(`Clearing ${this[Symbol.toStringTag]} not supported.`); }\n delete(_) { throw new Error(`Deleting ${this[Symbol.toStringTag]} values not supported.`); }\n *[Symbol.iterator]() {\n const ki = this.keys();\n const vi = this.values();\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n for (let k, v, i = 0, kr, vr; !((kr = ki.next()).done || (vr = vi.next()).done); ++i) {\n k = kr.value;\n v = vr.value;\n itov[i] = v;\n ktoi.has(k) || ktoi.set(k, i);\n yield [k, v];\n }\n }\n forEach(callbackfn, thisArg) {\n const ki = this.keys();\n const vi = this.values();\n const callback = thisArg === undefined ? callbackfn :\n (v, k, m) => callbackfn.call(thisArg, v, k, m);\n const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n for (let k, v, i = 0, kr, vr; !((kr = ki.next()).done || (vr = vi.next()).done); ++i) {\n k = kr.value;\n v = vr.value;\n itov[i] = v;\n ktoi.has(k) || ktoi.set(k, i);\n callback(v, k, this);\n }\n }\n toArray() { return [...this.values()]; }\n toJSON() {\n const obj = {};\n this.forEach((val, key) => obj[key] = val);\n return obj;\n }\n inspect() { return this.toString(); }\n [kCustomInspect]() { return this.toString(); }\n toString() {\n const str = [];\n this.forEach((val, key) => {\n key = pretty_1.valueToString(key);\n val = pretty_1.valueToString(val);\n str.push(`${key}: ${val}`);\n });\n return `{ ${str.join(', ')} }`;\n }\n}\nRow[Symbol.toStringTag] = ((proto) => {\n Object.defineProperties(proto, {\n 'size': { writable: true, enumerable: false, configurable: false, value: 0 },\n [kParent]: { writable: true, enumerable: false, configurable: false, value: null },\n [kRowIndex]: { writable: true, enumerable: false, configurable: false, value: -1 },\n });\n return proto[Symbol.toStringTag] = 'Row';\n})(Row.prototype);\nclass MapRow extends Row {\n constructor(slice) {\n super(slice, slice.length);\n return createRowProxy(this);\n }\n keys() {\n return this[kParent].getChildAt(0)[Symbol.iterator]();\n }\n values() {\n return this[kParent].getChildAt(1)[Symbol.iterator]();\n }\n getKey(idx) {\n return this[kParent].getChildAt(0).get(idx);\n }\n getIndex(key) {\n return this[kParent].getChildAt(0).indexOf(key);\n }\n getValue(index) {\n return this[kParent].getChildAt(1).get(index);\n }\n setValue(index, value) {\n this[kParent].getChildAt(1).set(index, value);\n }\n}\nexports.MapRow = MapRow;\nclass StructRow extends Row {\n constructor(parent) {\n super(parent, parent.type.children.length);\n return defineRowProxyProperties(this);\n }\n *keys() {\n for (const field of this[kParent].type.children) {\n yield field.name;\n }\n }\n *values() {\n for (const field of this[kParent].type.children) {\n yield this[field.name];\n }\n }\n getKey(idx) {\n return this[kParent].type.children[idx].name;\n }\n getIndex(key) {\n return this[kParent].type.children.findIndex((f) => f.name === key);\n }\n getValue(index) {\n return this[kParent].getChildAt(index).get(this[kRowIndex]);\n }\n setValue(index, value) {\n return this[kParent].getChildAt(index).set(this[kRowIndex], value);\n }\n}\nexports.StructRow = StructRow;\nObject.setPrototypeOf(Row.prototype, Map.prototype);\n/** @ignore */\nconst defineRowProxyProperties = (() => {\n const desc = { enumerable: true, configurable: false, get: null, set: null };\n return (row) => {\n let idx = -1;\n const ktoi = row[kKeyToIdx] || (row[kKeyToIdx] = new Map());\n const getter = (key) => function () { return this.get(key); };\n const setter = (key) => function (val) { return this.set(key, val); };\n for (const key of row.keys()) {\n ktoi.set(key, ++idx);\n desc.get = getter(key);\n desc.set = setter(key);\n Object.prototype.hasOwnProperty.call(row, key) || (desc.enumerable = true, Object.defineProperty(row, key, desc));\n Object.prototype.hasOwnProperty.call(row, idx) || (desc.enumerable = false, Object.defineProperty(row, idx, desc));\n }\n desc.get = desc.set = null;\n return row;\n };\n})();\n/** @ignore */\nconst createRowProxy = (() => {\n if (typeof Proxy === 'undefined') {\n return defineRowProxyProperties;\n }\n const has = Row.prototype.has;\n const get = Row.prototype.get;\n const set = Row.prototype.set;\n const getKey = Row.prototype.getKey;\n const RowProxyHandler = {\n isExtensible() { return false; },\n deleteProperty() { return false; },\n preventExtensions() { return true; },\n ownKeys(row) { return [...row.keys()].map((x) => `${x}`); },\n has(row, key) {\n switch (key) {\n case 'getKey':\n case 'getIndex':\n case 'getValue':\n case 'setValue':\n case 'toArray':\n case 'toJSON':\n case 'inspect':\n case 'constructor':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'toLocaleString':\n case 'valueOf':\n case 'size':\n case 'has':\n case 'get':\n case 'set':\n case 'clear':\n case 'delete':\n case 'keys':\n case 'values':\n case 'entries':\n case 'forEach':\n case '__proto__':\n case '__defineGetter__':\n case '__defineSetter__':\n case 'hasOwnProperty':\n case '__lookupGetter__':\n case '__lookupSetter__':\n case Symbol.iterator:\n case Symbol.toStringTag:\n case kParent:\n case kRowIndex:\n case kIdxToVal:\n case kKeyToIdx:\n case kCustomInspect:\n return true;\n }\n if (typeof key === 'number' && !row.has(key)) {\n key = row.getKey(key);\n }\n return row.has(key);\n },\n get(row, key, receiver) {\n switch (key) {\n case 'getKey':\n case 'getIndex':\n case 'getValue':\n case 'setValue':\n case 'toArray':\n case 'toJSON':\n case 'inspect':\n case 'constructor':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'toLocaleString':\n case 'valueOf':\n case 'size':\n case 'has':\n case 'get':\n case 'set':\n case 'clear':\n case 'delete':\n case 'keys':\n case 'values':\n case 'entries':\n case 'forEach':\n case '__proto__':\n case '__defineGetter__':\n case '__defineSetter__':\n case 'hasOwnProperty':\n case '__lookupGetter__':\n case '__lookupSetter__':\n case Symbol.iterator:\n case Symbol.toStringTag:\n case kParent:\n case kRowIndex:\n case kIdxToVal:\n case kKeyToIdx:\n case kCustomInspect:\n return Reflect.get(row, key, receiver);\n }\n if (typeof key === 'number' && !has.call(receiver, key)) {\n key = getKey.call(receiver, key);\n }\n return get.call(receiver, key);\n },\n set(row, key, val, receiver) {\n switch (key) {\n case kParent:\n case kRowIndex:\n case kIdxToVal:\n case kKeyToIdx:\n return Reflect.set(row, key, val, receiver);\n case 'getKey':\n case 'getIndex':\n case 'getValue':\n case 'setValue':\n case 'toArray':\n case 'toJSON':\n case 'inspect':\n case 'constructor':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'toLocaleString':\n case 'valueOf':\n case 'size':\n case 'has':\n case 'get':\n case 'set':\n case 'clear':\n case 'delete':\n case 'keys':\n case 'values':\n case 'entries':\n case 'forEach':\n case '__proto__':\n case '__defineGetter__':\n case '__defineSetter__':\n case 'hasOwnProperty':\n case '__lookupGetter__':\n case '__lookupSetter__':\n case Symbol.iterator:\n case Symbol.toStringTag:\n return false;\n }\n if (typeof key === 'number' && !has.call(receiver, key)) {\n key = getKey.call(receiver, key);\n }\n return has.call(receiver, key) ? !!set.call(receiver, key, val) : false;\n },\n };\n return (row) => new Proxy(row, RowProxyHandler);\n})();\n\n//# sourceMappingURL=row.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DenseUnionBuilder = exports.SparseUnionBuilder = exports.UnionBuilder = exports.StructBuilder = exports.MapBuilder = exports.FixedSizeListBuilder = exports.ListBuilder = exports.BinaryBuilder = exports.Utf8Builder = exports.IntervalYearMonthBuilder = exports.IntervalDayTimeBuilder = exports.IntervalBuilder = exports.TimestampNanosecondBuilder = exports.TimestampMicrosecondBuilder = exports.TimestampMillisecondBuilder = exports.TimestampSecondBuilder = exports.TimestampBuilder = exports.TimeNanosecondBuilder = exports.TimeMicrosecondBuilder = exports.TimeMillisecondBuilder = exports.TimeSecondBuilder = exports.TimeBuilder = exports.Uint64Builder = exports.Uint32Builder = exports.Uint16Builder = exports.Uint8Builder = exports.Int64Builder = exports.Int32Builder = exports.Int16Builder = exports.Int8Builder = exports.IntBuilder = exports.Float64Builder = exports.Float32Builder = exports.Float16Builder = exports.FloatBuilder = exports.FixedSizeBinaryBuilder = exports.DictionaryBuilder = exports.DecimalBuilder = exports.DateMillisecondBuilder = exports.DateDayBuilder = exports.DateBuilder = exports.NullBuilder = exports.BoolBuilder = exports.Builder = void 0;\n/** @ignore */\nvar builder_1 = require(\"../builder\");\nObject.defineProperty(exports, \"Builder\", { enumerable: true, get: function () { return builder_1.Builder; } });\nvar bool_1 = require(\"./bool\");\nObject.defineProperty(exports, \"BoolBuilder\", { enumerable: true, get: function () { return bool_1.BoolBuilder; } });\nvar null_1 = require(\"./null\");\nObject.defineProperty(exports, \"NullBuilder\", { enumerable: true, get: function () { return null_1.NullBuilder; } });\nvar date_1 = require(\"./date\");\nObject.defineProperty(exports, \"DateBuilder\", { enumerable: true, get: function () { return date_1.DateBuilder; } });\nObject.defineProperty(exports, \"DateDayBuilder\", { enumerable: true, get: function () { return date_1.DateDayBuilder; } });\nObject.defineProperty(exports, \"DateMillisecondBuilder\", { enumerable: true, get: function () { return date_1.DateMillisecondBuilder; } });\nvar decimal_1 = require(\"./decimal\");\nObject.defineProperty(exports, \"DecimalBuilder\", { enumerable: true, get: function () { return decimal_1.DecimalBuilder; } });\nvar dictionary_1 = require(\"./dictionary\");\nObject.defineProperty(exports, \"DictionaryBuilder\", { enumerable: true, get: function () { return dictionary_1.DictionaryBuilder; } });\nvar fixedsizebinary_1 = require(\"./fixedsizebinary\");\nObject.defineProperty(exports, \"FixedSizeBinaryBuilder\", { enumerable: true, get: function () { return fixedsizebinary_1.FixedSizeBinaryBuilder; } });\nvar float_1 = require(\"./float\");\nObject.defineProperty(exports, \"FloatBuilder\", { enumerable: true, get: function () { return float_1.FloatBuilder; } });\nObject.defineProperty(exports, \"Float16Builder\", { enumerable: true, get: function () { return float_1.Float16Builder; } });\nObject.defineProperty(exports, \"Float32Builder\", { enumerable: true, get: function () { return float_1.Float32Builder; } });\nObject.defineProperty(exports, \"Float64Builder\", { enumerable: true, get: function () { return float_1.Float64Builder; } });\nvar int_1 = require(\"./int\");\nObject.defineProperty(exports, \"IntBuilder\", { enumerable: true, get: function () { return int_1.IntBuilder; } });\nObject.defineProperty(exports, \"Int8Builder\", { enumerable: true, get: function () { return int_1.Int8Builder; } });\nObject.defineProperty(exports, \"Int16Builder\", { enumerable: true, get: function () { return int_1.Int16Builder; } });\nObject.defineProperty(exports, \"Int32Builder\", { enumerable: true, get: function () { return int_1.Int32Builder; } });\nObject.defineProperty(exports, \"Int64Builder\", { enumerable: true, get: function () { return int_1.Int64Builder; } });\nObject.defineProperty(exports, \"Uint8Builder\", { enumerable: true, get: function () { return int_1.Uint8Builder; } });\nObject.defineProperty(exports, \"Uint16Builder\", { enumerable: true, get: function () { return int_1.Uint16Builder; } });\nObject.defineProperty(exports, \"Uint32Builder\", { enumerable: true, get: function () { return int_1.Uint32Builder; } });\nObject.defineProperty(exports, \"Uint64Builder\", { enumerable: true, get: function () { return int_1.Uint64Builder; } });\nvar time_1 = require(\"./time\");\nObject.defineProperty(exports, \"TimeBuilder\", { enumerable: true, get: function () { return time_1.TimeBuilder; } });\nObject.defineProperty(exports, \"TimeSecondBuilder\", { enumerable: true, get: function () { return time_1.TimeSecondBuilder; } });\nObject.defineProperty(exports, \"TimeMillisecondBuilder\", { enumerable: true, get: function () { return time_1.TimeMillisecondBuilder; } });\nObject.defineProperty(exports, \"TimeMicrosecondBuilder\", { enumerable: true, get: function () { return time_1.TimeMicrosecondBuilder; } });\nObject.defineProperty(exports, \"TimeNanosecondBuilder\", { enumerable: true, get: function () { return time_1.TimeNanosecondBuilder; } });\nvar timestamp_1 = require(\"./timestamp\");\nObject.defineProperty(exports, \"TimestampBuilder\", { enumerable: true, get: function () { return timestamp_1.TimestampBuilder; } });\nObject.defineProperty(exports, \"TimestampSecondBuilder\", { enumerable: true, get: function () { return timestamp_1.TimestampSecondBuilder; } });\nObject.defineProperty(exports, \"TimestampMillisecondBuilder\", { enumerable: true, get: function () { return timestamp_1.TimestampMillisecondBuilder; } });\nObject.defineProperty(exports, \"TimestampMicrosecondBuilder\", { enumerable: true, get: function () { return timestamp_1.TimestampMicrosecondBuilder; } });\nObject.defineProperty(exports, \"TimestampNanosecondBuilder\", { enumerable: true, get: function () { return timestamp_1.TimestampNanosecondBuilder; } });\nvar interval_1 = require(\"./interval\");\nObject.defineProperty(exports, \"IntervalBuilder\", { enumerable: true, get: function () { return interval_1.IntervalBuilder; } });\nObject.defineProperty(exports, \"IntervalDayTimeBuilder\", { enumerable: true, get: function () { return interval_1.IntervalDayTimeBuilder; } });\nObject.defineProperty(exports, \"IntervalYearMonthBuilder\", { enumerable: true, get: function () { return interval_1.IntervalYearMonthBuilder; } });\nvar utf8_1 = require(\"./utf8\");\nObject.defineProperty(exports, \"Utf8Builder\", { enumerable: true, get: function () { return utf8_1.Utf8Builder; } });\nvar binary_1 = require(\"./binary\");\nObject.defineProperty(exports, \"BinaryBuilder\", { enumerable: true, get: function () { return binary_1.BinaryBuilder; } });\nvar list_1 = require(\"./list\");\nObject.defineProperty(exports, \"ListBuilder\", { enumerable: true, get: function () { return list_1.ListBuilder; } });\nvar fixedsizelist_1 = require(\"./fixedsizelist\");\nObject.defineProperty(exports, \"FixedSizeListBuilder\", { enumerable: true, get: function () { return fixedsizelist_1.FixedSizeListBuilder; } });\nvar map_1 = require(\"./map\");\nObject.defineProperty(exports, \"MapBuilder\", { enumerable: true, get: function () { return map_1.MapBuilder; } });\nvar struct_1 = require(\"./struct\");\nObject.defineProperty(exports, \"StructBuilder\", { enumerable: true, get: function () { return struct_1.StructBuilder; } });\nvar union_1 = require(\"./union\");\nObject.defineProperty(exports, \"UnionBuilder\", { enumerable: true, get: function () { return union_1.UnionBuilder; } });\nObject.defineProperty(exports, \"SparseUnionBuilder\", { enumerable: true, get: function () { return union_1.SparseUnionBuilder; } });\nObject.defineProperty(exports, \"DenseUnionBuilder\", { enumerable: true, get: function () { return union_1.DenseUnionBuilder; } });\nconst enum_1 = require(\"../enum\");\nconst utf8_2 = require(\"./utf8\");\nconst builder_2 = require(\"../builder\");\nconst set_1 = require(\"../visitor/set\");\nconst builderctor_1 = require(\"../visitor/builderctor\");\n/** @nocollapse */\nbuilder_2.Builder.new = newBuilder;\nfunction newBuilder(options) {\n const type = options.type;\n const builder = new (builderctor_1.instance.getVisitFn(type)())(options);\n if (type.children && type.children.length > 0) {\n const children = options['children'] || [];\n const defaultOptions = { 'nullValues': options['nullValues'] };\n const getChildOptions = Array.isArray(children)\n ? ((_, i) => children[i] || defaultOptions)\n : (({ name }) => children[name] || defaultOptions);\n type.children.forEach((field, index) => {\n const { type } = field;\n const opts = getChildOptions(field, index);\n builder.children.push(newBuilder({ ...opts, type }));\n });\n }\n return builder;\n}\nObject.keys(enum_1.Type)\n .map((T) => enum_1.Type[T])\n .filter((T) => typeof T === 'number' && T !== enum_1.Type.NONE)\n .forEach((typeId) => {\n const BuilderCtor = builderctor_1.instance.visit(typeId);\n BuilderCtor.prototype._setValue = set_1.instance.getVisitFn(typeId);\n});\nutf8_2.Utf8Builder.prototype._setValue = set_1.instance.visitBinary;\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n// automatically generated by the FlatBuffers compiler, do not modify\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Message = exports.DictionaryBatch = exports.RecordBatch = exports.BodyCompression = exports.FieldNode = exports.MessageHeader = exports.BodyCompressionMethod = exports.CompressionType = void 0;\nconst flatbuffers_1 = require(\"flatbuffers\");\nconst NS13596923344997147894 = require(\"./Schema\");\n/**\n * @enum {number}\n */\nvar CompressionType;\n(function (CompressionType) {\n CompressionType[CompressionType[\"LZ4_FRAME\"] = 0] = \"LZ4_FRAME\";\n CompressionType[CompressionType[\"ZSTD\"] = 1] = \"ZSTD\";\n})(CompressionType = exports.CompressionType || (exports.CompressionType = {}));\n/**\n * Provided for forward compatibility in case we need to support different\n * strategies for compressing the IPC message body (like whole-body\n * compression rather than buffer-level) in the future\n *\n * @enum {number}\n */\nvar BodyCompressionMethod;\n(function (BodyCompressionMethod) {\n /**\n * Each constituent buffer is first compressed with the indicated\n * compressor, and then written with the uncompressed length in the first 8\n * bytes as a 64-bit little-endian signed integer followed by the compressed\n * buffer bytes (and then padding as required by the protocol). The\n * uncompressed length may be set to -1 to indicate that the data that\n * follows is not compressed, which can be useful for cases where\n * compression does not yield appreciable savings.\n */\n BodyCompressionMethod[BodyCompressionMethod[\"BUFFER\"] = 0] = \"BUFFER\";\n})(BodyCompressionMethod = exports.BodyCompressionMethod || (exports.BodyCompressionMethod = {}));\n/**\n * ----------------------------------------------------------------------\n * The root Message type\n * This union enables us to easily send different message types without\n * redundant storage, and in the future we can easily add new message types.\n *\n * Arrow implementations do not need to implement all of the message types,\n * which may include experimental metadata types. For maximum compatibility,\n * it is best to send data using RecordBatch\n *\n * @enum {number}\n */\nvar MessageHeader;\n(function (MessageHeader) {\n MessageHeader[MessageHeader[\"NONE\"] = 0] = \"NONE\";\n MessageHeader[MessageHeader[\"Schema\"] = 1] = \"Schema\";\n MessageHeader[MessageHeader[\"DictionaryBatch\"] = 2] = \"DictionaryBatch\";\n MessageHeader[MessageHeader[\"RecordBatch\"] = 3] = \"RecordBatch\";\n MessageHeader[MessageHeader[\"Tensor\"] = 4] = \"Tensor\";\n MessageHeader[MessageHeader[\"SparseTensor\"] = 5] = \"SparseTensor\";\n})(MessageHeader = exports.MessageHeader || (exports.MessageHeader = {}));\n/**\n * ----------------------------------------------------------------------\n * Data structures for describing a table row batch (a collection of\n * equal-length Arrow arrays)\n * Metadata about a field at some level of a nested type tree (but not\n * its children).\n *\n * For example, a List<Int16> with values [[1, 2, 3], null, [4], [5, 6], null]\n * would have {length: 5, null_count: 2} for its List node, and {length: 6,\n * null_count: 0} for its Int16 node, as separate FieldNode structs\n *\n * @constructor\n */\nclass FieldNode {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FieldNode\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * The number of value slots in the Arrow array at this level of a nested\n * tree\n *\n * @returns flatbuffers.Long\n */\n length() {\n return this.bb.readInt64(this.bb_pos);\n }\n /**\n * The number of observed nulls. Fields with null_count == 0 may choose not\n * to write their physical validity bitmap out as a materialized buffer,\n * instead setting the length of the bitmap buffer to 0.\n *\n * @returns flatbuffers.Long\n */\n nullCount() {\n return this.bb.readInt64(this.bb_pos + 8);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n * @param flatbuffers.Long null_count\n * @returns flatbuffers.Offset\n */\n static createFieldNode(builder, length, null_count) {\n builder.prep(8, 16);\n builder.writeInt64(null_count);\n builder.writeInt64(length);\n return builder.offset();\n }\n}\nexports.FieldNode = FieldNode;\n/**\n * Optional compression for the memory buffers constituting IPC message\n * bodies. Intended for use with RecordBatch but could be used for other\n * message types\n *\n * @constructor\n */\nclass BodyCompression {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns BodyCompression\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param BodyCompression= obj\n * @returns BodyCompression\n */\n static getRootAsBodyCompression(bb, obj) {\n return (obj || new BodyCompression()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param BodyCompression= obj\n * @returns BodyCompression\n */\n static getSizePrefixedRootAsBodyCompression(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new BodyCompression()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * Compressor library\n *\n * @returns CompressionType\n */\n codec() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt8(this.bb_pos + offset)) : CompressionType.LZ4_FRAME;\n }\n /**\n * Indicates the way the record batch body was compressed\n *\n * @returns BodyCompressionMethod\n */\n method() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? /** */ (this.bb.readInt8(this.bb_pos + offset)) : BodyCompressionMethod.BUFFER;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startBodyCompression(builder) {\n builder.startObject(2);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param CompressionType codec\n */\n static addCodec(builder, codec) {\n builder.addFieldInt8(0, codec, CompressionType.LZ4_FRAME);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param BodyCompressionMethod method\n */\n static addMethod(builder, method) {\n builder.addFieldInt8(1, method, BodyCompressionMethod.BUFFER);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBodyCompression(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createBodyCompression(builder, codec, method) {\n BodyCompression.startBodyCompression(builder);\n BodyCompression.addCodec(builder, codec);\n BodyCompression.addMethod(builder, method);\n return BodyCompression.endBodyCompression(builder);\n }\n}\nexports.BodyCompression = BodyCompression;\n/**\n * A data header describing the shared memory layout of a \"record\" or \"row\"\n * batch. Some systems call this a \"row batch\" internally and others a \"record\n * batch\".\n *\n * @constructor\n */\nclass RecordBatch {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns RecordBatch\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param RecordBatch= obj\n * @returns RecordBatch\n */\n static getRootAsRecordBatch(bb, obj) {\n return (obj || new RecordBatch()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param RecordBatch= obj\n * @returns RecordBatch\n */\n static getSizePrefixedRootAsRecordBatch(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new RecordBatch()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * number of records / rows. The arrays in the batch should all have this\n * length\n *\n * @returns flatbuffers.Long\n */\n length() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.readInt64(this.bb_pos + offset) : this.bb.createLong(0, 0);\n }\n /**\n * Nodes correspond to the pre-ordered flattened logical schema\n *\n * @param number index\n * @param FieldNode= obj\n * @returns FieldNode\n */\n nodes(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? (obj || new FieldNode()).__init(this.bb.__vector(this.bb_pos + offset) + index * 16, this.bb) : null;\n }\n /**\n * @returns number\n */\n nodesLength() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * Buffers correspond to the pre-ordered flattened buffer tree\n *\n * The number of buffers appended to this list depends on the schema. For\n * example, most primitive arrays will have 2 buffers, 1 for the validity\n * bitmap and 1 for the values. For struct arrays, there will only be a\n * single buffer for the validity (nulls) bitmap\n *\n * @param number index\n * @param Buffer= obj\n * @returns Buffer\n */\n buffers(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? (obj || new NS13596923344997147894.Buffer()).__init(this.bb.__vector(this.bb_pos + offset) + index * 16, this.bb) : null;\n }\n /**\n * @returns number\n */\n buffersLength() {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * Optional compression of the message body\n *\n * @param BodyCompression= obj\n * @returns BodyCompression|null\n */\n compression(obj) {\n const offset = this.bb.__offset(this.bb_pos, 10);\n return offset ? (obj || new BodyCompression()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startRecordBatch(builder) {\n builder.startObject(4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n */\n static addLength(builder, length) {\n builder.addFieldInt64(0, length, builder.createLong(0, 0));\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nodesOffset\n */\n static addNodes(builder, nodesOffset) {\n builder.addFieldOffset(1, nodesOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startNodesVector(builder, numElems) {\n builder.startVector(16, numElems, 8);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset buffersOffset\n */\n static addBuffers(builder, buffersOffset) {\n builder.addFieldOffset(2, buffersOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startBuffersVector(builder, numElems) {\n builder.startVector(16, numElems, 8);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset compressionOffset\n */\n static addCompression(builder, compressionOffset) {\n builder.addFieldOffset(3, compressionOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endRecordBatch(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createRecordBatch(builder, length, nodesOffset, buffersOffset, compressionOffset) {\n RecordBatch.startRecordBatch(builder);\n RecordBatch.addLength(builder, length);\n RecordBatch.addNodes(builder, nodesOffset);\n RecordBatch.addBuffers(builder, buffersOffset);\n RecordBatch.addCompression(builder, compressionOffset);\n return RecordBatch.endRecordBatch(builder);\n }\n}\nexports.RecordBatch = RecordBatch;\n/**\n * For sending dictionary encoding information. Any Field can be\n * dictionary-encoded, but in this case none of its children may be\n * dictionary-encoded.\n * There is one vector / column per dictionary, but that vector / column\n * may be spread across multiple dictionary batches by using the isDelta\n * flag\n *\n * @constructor\n */\nclass DictionaryBatch {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryBatch\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryBatch= obj\n * @returns DictionaryBatch\n */\n static getRootAsDictionaryBatch(bb, obj) {\n return (obj || new DictionaryBatch()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryBatch= obj\n * @returns DictionaryBatch\n */\n static getSizePrefixedRootAsDictionaryBatch(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new DictionaryBatch()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns flatbuffers.Long\n */\n id() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? this.bb.readInt64(this.bb_pos + offset) : this.bb.createLong(0, 0);\n }\n /**\n * @param RecordBatch= obj\n * @returns RecordBatch|null\n */\n data(obj) {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? (obj || new RecordBatch()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;\n }\n /**\n * If isDelta is true the values in the dictionary are to be appended to a\n * dictionary with the indicated id. If isDelta is false this dictionary\n * should replace the existing dictionary.\n *\n * @returns boolean\n */\n isDelta() {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryBatch(builder) {\n builder.startObject(3);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder, id) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dataOffset\n */\n static addData(builder, dataOffset) {\n builder.addFieldOffset(1, dataOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isDelta\n */\n static addIsDelta(builder, isDelta) {\n builder.addFieldInt8(2, +isDelta, +false);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryBatch(builder) {\n const offset = builder.endObject();\n return offset;\n }\n static createDictionaryBatch(builder, id, dataOffset, isDelta) {\n DictionaryBatch.startDictionaryBatch(builder);\n DictionaryBatch.addId(builder, id);\n DictionaryBatch.addData(builder, dataOffset);\n DictionaryBatch.addIsDelta(builder, isDelta);\n return DictionaryBatch.endDictionaryBatch(builder);\n }\n}\nexports.DictionaryBatch = DictionaryBatch;\n/**\n * @constructor\n */\nclass Message {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Message\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Message= obj\n * @returns Message\n */\n static getRootAsMessage(bb, obj) {\n return (obj || new Message()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Message= obj\n * @returns Message\n */\n static getSizePrefixedRootAsMessage(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Message()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns MetadataVersion\n */\n version() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : NS13596923344997147894.MetadataVersion.V1;\n }\n /**\n * @returns MessageHeader\n */\n headerType() {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? /** */ (this.bb.readUint8(this.bb_pos + offset)) : MessageHeader.NONE;\n }\n /**\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n header(obj) {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;\n }\n /**\n * @returns flatbuffers.Long\n */\n bodyLength() {\n const offset = this.bb.__offset(this.bb_pos, 10);\n return offset ? this.bb.readInt64(this.bb_pos + offset) : this.bb.createLong(0, 0);\n }\n /**\n * @param number index\n * @param KeyValue= obj\n * @returns KeyValue\n */\n customMetadata(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 12);\n return offset ? (obj || new NS13596923344997147894.KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;\n }\n /**\n * @returns number\n */\n customMetadataLength() {\n const offset = this.bb.__offset(this.bb_pos, 12);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startMessage(builder) {\n builder.startObject(5);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param MetadataVersion version\n */\n static addVersion(builder, version) {\n builder.addFieldInt16(0, version, NS13596923344997147894.MetadataVersion.V1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param MessageHeader headerType\n */\n static addHeaderType(builder, headerType) {\n builder.addFieldInt8(1, headerType, MessageHeader.NONE);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset headerOffset\n */\n static addHeader(builder, headerOffset) {\n builder.addFieldOffset(2, headerOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long bodyLength\n */\n static addBodyLength(builder, bodyLength) {\n builder.addFieldInt64(3, bodyLength, builder.createLong(0, 0));\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder, customMetadataOffset) {\n builder.addFieldOffset(4, customMetadataOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<flatbuffers.Offset> data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder, data) {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder, numElems) {\n builder.startVector(4, numElems, 4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMessage(builder) {\n const offset = builder.endObject();\n return offset;\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishMessageBuffer(builder, offset) {\n builder.finish(offset);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSizePrefixedMessageBuffer(builder, offset) {\n builder.finish(offset, undefined, true);\n }\n static createMessage(builder, version, headerType, headerOffset, bodyLength, customMetadataOffset) {\n Message.startMessage(builder);\n Message.addVersion(builder, version);\n Message.addHeaderType(builder, headerType);\n Message.addHeader(builder, headerOffset);\n Message.addBodyLength(builder, bodyLength);\n Message.addCustomMetadata(builder, customMetadataOffset);\n return Message.endMessage(builder);\n }\n}\nexports.Message = Message;\n\n//# sourceMappingURL=Message.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Utf8Builder = void 0;\nconst utf8_1 = require(\"../util/utf8\");\nconst binary_1 = require(\"./binary\");\nconst buffer_1 = require(\"./buffer\");\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass Utf8Builder extends builder_1.VariableWidthBuilder {\n constructor(opts) {\n super(opts);\n this._values = new buffer_1.BufferBuilder(new Uint8Array(0));\n }\n get byteLength() {\n let size = this._pendingLength + (this.length * 4);\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n return size;\n }\n setValue(index, value) {\n return super.setValue(index, utf8_1.encodeUtf8(value));\n }\n // @ts-ignore\n _flushPending(pending, pendingLength) { }\n}\nexports.Utf8Builder = Utf8Builder;\nUtf8Builder.prototype._flushPending = binary_1.BinaryBuilder.prototype._flushPending;\n\n//# sourceMappingURL=utf8.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryBuilder = void 0;\nconst buffer_1 = require(\"../util/buffer\");\nconst buffer_2 = require(\"./buffer\");\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass BinaryBuilder extends builder_1.VariableWidthBuilder {\n constructor(opts) {\n super(opts);\n this._values = new buffer_2.BufferBuilder(new Uint8Array(0));\n }\n get byteLength() {\n let size = this._pendingLength + (this.length * 4);\n this._offsets && (size += this._offsets.byteLength);\n this._values && (size += this._values.byteLength);\n this._nulls && (size += this._nulls.byteLength);\n return size;\n }\n setValue(index, value) {\n return super.setValue(index, buffer_1.toUint8Array(value));\n }\n _flushPending(pending, pendingLength) {\n const offsets = this._offsets;\n const data = this._values.reserve(pendingLength).buffer;\n let index = 0, length = 0, offset = 0, value;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n }\n else {\n length = value.length;\n data.set(value, offset);\n offsets.set(index, length);\n offset += length;\n }\n }\n }\n}\nexports.BinaryBuilder = BinaryBuilder;\n\n//# sourceMappingURL=binary.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RecordBatchJSONWriter = exports.RecordBatchFileWriter = exports.RecordBatchStreamWriter = exports.RecordBatchWriter = void 0;\nconst table_1 = require(\"../table\");\nconst message_1 = require(\"./message\");\nconst column_1 = require(\"../column\");\nconst type_1 = require(\"../type\");\nconst schema_1 = require(\"../schema\");\nconst message_2 = require(\"./metadata/message\");\nconst metadata = require(\"./metadata/message\");\nconst file_1 = require(\"./metadata/file\");\nconst enum_1 = require(\"../enum\");\nconst typecomparator_1 = require(\"../visitor/typecomparator\");\nconst stream_1 = require(\"../io/stream\");\nconst vectorassembler_1 = require(\"../visitor/vectorassembler\");\nconst jsontypeassembler_1 = require(\"../visitor/jsontypeassembler\");\nconst jsonvectorassembler_1 = require(\"../visitor/jsonvectorassembler\");\nconst buffer_1 = require(\"../util/buffer\");\nconst recordbatch_1 = require(\"../recordbatch\");\nconst interfaces_1 = require(\"../io/interfaces\");\nconst compat_1 = require(\"../util/compat\");\nclass RecordBatchWriter extends interfaces_1.ReadableInterop {\n constructor(options) {\n super();\n this._position = 0;\n this._started = false;\n // @ts-ignore\n this._sink = new stream_1.AsyncByteQueue();\n this._schema = null;\n this._dictionaryBlocks = [];\n this._recordBatchBlocks = [];\n this._dictionaryDeltaOffsets = new Map();\n compat_1.isObject(options) || (options = { autoDestroy: true, writeLegacyIpcFormat: false });\n this._autoDestroy = (typeof options.autoDestroy === 'boolean') ? options.autoDestroy : true;\n this._writeLegacyIpcFormat = (typeof options.writeLegacyIpcFormat === 'boolean') ? options.writeLegacyIpcFormat : false;\n }\n /** @nocollapse */\n // @ts-ignore\n static throughNode(options) {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n static throughDOM(\n // @ts-ignore\n writableStrategy, \n // @ts-ignore\n readableStrategy) {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n toString(sync = false) {\n return this._sink.toString(sync);\n }\n toUint8Array(sync = false) {\n return this._sink.toUint8Array(sync);\n }\n writeAll(input) {\n if (compat_1.isPromise(input)) {\n return input.then((x) => this.writeAll(x));\n }\n else if (compat_1.isAsyncIterable(input)) {\n return writeAllAsync(this, input);\n }\n return writeAll(this, input);\n }\n get closed() { return this._sink.closed; }\n [Symbol.asyncIterator]() { return this._sink[Symbol.asyncIterator](); }\n toDOMStream(options) { return this._sink.toDOMStream(options); }\n toNodeStream(options) { return this._sink.toNodeStream(options); }\n close() {\n return this.reset()._sink.close();\n }\n abort(reason) {\n return this.reset()._sink.abort(reason);\n }\n finish() {\n this._autoDestroy ? this.close() : this.reset(this._sink, this._schema);\n return this;\n }\n reset(sink = this._sink, schema = null) {\n if ((sink === this._sink) || (sink instanceof stream_1.AsyncByteQueue)) {\n this._sink = sink;\n }\n else {\n this._sink = new stream_1.AsyncByteQueue();\n if (sink && compat_1.isWritableDOMStream(sink)) {\n this.toDOMStream({ type: 'bytes' }).pipeTo(sink);\n }\n else if (sink && compat_1.isWritableNodeStream(sink)) {\n this.toNodeStream({ objectMode: false }).pipe(sink);\n }\n }\n if (this._started && this._schema) {\n this._writeFooter(this._schema);\n }\n this._started = false;\n this._dictionaryBlocks = [];\n this._recordBatchBlocks = [];\n this._dictionaryDeltaOffsets = new Map();\n if (!schema || !(typecomparator_1.compareSchemas(schema, this._schema))) {\n if (schema === null) {\n this._position = 0;\n this._schema = null;\n }\n else {\n this._started = true;\n this._schema = schema;\n this._writeSchema(schema);\n }\n }\n return this;\n }\n write(payload) {\n let schema = null;\n if (!this._sink) {\n throw new Error(`RecordBatchWriter is closed`);\n }\n else if (payload === null || payload === undefined) {\n return this.finish() && undefined;\n }\n else if (payload instanceof table_1.Table && !(schema = payload.schema)) {\n return this.finish() && undefined;\n }\n else if (payload instanceof recordbatch_1.RecordBatch && !(schema = payload.schema)) {\n return this.finish() && undefined;\n }\n if (schema && !typecomparator_1.compareSchemas(schema, this._schema)) {\n if (this._started && this._autoDestroy) {\n return this.close();\n }\n this.reset(this._sink, schema);\n }\n if (payload instanceof recordbatch_1.RecordBatch) {\n if (!(payload instanceof recordbatch_1._InternalEmptyPlaceholderRecordBatch)) {\n this._writeRecordBatch(payload);\n }\n }\n else if (payload instanceof table_1.Table) {\n this.writeAll(payload.chunks);\n }\n else if (compat_1.isIterable(payload)) {\n this.writeAll(payload);\n }\n }\n _writeMessage(message, alignment = 8) {\n const a = alignment - 1;\n const buffer = message_2.Message.encode(message);\n const flatbufferSize = buffer.byteLength;\n const prefixSize = !this._writeLegacyIpcFormat ? 8 : 4;\n const alignedSize = (flatbufferSize + prefixSize + a) & ~a;\n const nPaddingBytes = alignedSize - flatbufferSize - prefixSize;\n if (message.headerType === enum_1.MessageHeader.RecordBatch) {\n this._recordBatchBlocks.push(new file_1.FileBlock(alignedSize, message.bodyLength, this._position));\n }\n else if (message.headerType === enum_1.MessageHeader.DictionaryBatch) {\n this._dictionaryBlocks.push(new file_1.FileBlock(alignedSize, message.bodyLength, this._position));\n }\n // If not in legacy pre-0.15.0 mode, write the stream continuation indicator\n if (!this._writeLegacyIpcFormat) {\n this._write(Int32Array.of(-1));\n }\n // Write the flatbuffer size prefix including padding\n this._write(Int32Array.of(alignedSize - prefixSize));\n // Write the flatbuffer\n if (flatbufferSize > 0) {\n this._write(buffer);\n }\n // Write any padding\n return this._writePadding(nPaddingBytes);\n }\n _write(chunk) {\n if (this._started) {\n const buffer = buffer_1.toUint8Array(chunk);\n if (buffer && buffer.byteLength > 0) {\n this._sink.write(buffer);\n this._position += buffer.byteLength;\n }\n }\n return this;\n }\n _writeSchema(schema) {\n return this._writeMessage(message_2.Message.from(schema));\n }\n // @ts-ignore\n _writeFooter(schema) {\n // eos bytes\n return this._writeLegacyIpcFormat\n ? this._write(Int32Array.of(0))\n : this._write(Int32Array.of(-1, 0));\n }\n _writeMagic() {\n return this._write(message_1.MAGIC);\n }\n _writePadding(nBytes) {\n return nBytes > 0 ? this._write(new Uint8Array(nBytes)) : this;\n }\n _writeRecordBatch(batch) {\n const { byteLength, nodes, bufferRegions, buffers } = vectorassembler_1.VectorAssembler.assemble(batch);\n const recordBatch = new metadata.RecordBatch(batch.length, nodes, bufferRegions);\n const message = message_2.Message.from(recordBatch, byteLength);\n return this\n ._writeDictionaries(batch)\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n _writeDictionaryBatch(dictionary, id, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n const { byteLength, nodes, bufferRegions, buffers } = vectorassembler_1.VectorAssembler.assemble(dictionary);\n const recordBatch = new metadata.RecordBatch(dictionary.length, nodes, bufferRegions);\n const dictionaryBatch = new metadata.DictionaryBatch(recordBatch, id, isDelta);\n const message = message_2.Message.from(dictionaryBatch, byteLength);\n return this\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n _writeBodyBuffers(buffers) {\n let buffer;\n let size, padding;\n for (let i = -1, n = buffers.length; ++i < n;) {\n if ((buffer = buffers[i]) && (size = buffer.byteLength) > 0) {\n this._write(buffer);\n if ((padding = ((size + 7) & ~7) - size) > 0) {\n this._writePadding(padding);\n }\n }\n }\n return this;\n }\n _writeDictionaries(batch) {\n for (let [id, dictionary] of batch.dictionaries) {\n let offset = this._dictionaryDeltaOffsets.get(id) || 0;\n if (offset === 0 || (dictionary = dictionary.slice(offset)).length > 0) {\n const chunks = 'chunks' in dictionary ? dictionary.chunks : [dictionary];\n for (const chunk of chunks) {\n this._writeDictionaryBatch(chunk, id, offset > 0);\n offset += chunk.length;\n }\n }\n }\n return this;\n }\n}\nexports.RecordBatchWriter = RecordBatchWriter;\n/** @ignore */\nclass RecordBatchStreamWriter extends RecordBatchWriter {\n /** @nocollapse */\n static writeAll(input, options) {\n const writer = new RecordBatchStreamWriter(options);\n if (compat_1.isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n }\n else if (compat_1.isAsyncIterable(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n}\nexports.RecordBatchStreamWriter = RecordBatchStreamWriter;\n/** @ignore */\nclass RecordBatchFileWriter extends RecordBatchWriter {\n /** @nocollapse */\n static writeAll(input) {\n const writer = new RecordBatchFileWriter();\n if (compat_1.isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n }\n else if (compat_1.isAsyncIterable(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n constructor() {\n super();\n this._autoDestroy = true;\n }\n // @ts-ignore\n _writeSchema(schema) {\n return this._writeMagic()._writePadding(2);\n }\n _writeFooter(schema) {\n const buffer = file_1.Footer.encode(new file_1.Footer(schema, enum_1.MetadataVersion.V4, this._recordBatchBlocks, this._dictionaryBlocks));\n return super\n ._writeFooter(schema) // EOS bytes for sequential readers\n ._write(buffer) // Write the flatbuffer\n ._write(Int32Array.of(buffer.byteLength)) // then the footer size suffix\n ._writeMagic(); // then the magic suffix\n }\n}\nexports.RecordBatchFileWriter = RecordBatchFileWriter;\n/** @ignore */\nclass RecordBatchJSONWriter extends RecordBatchWriter {\n constructor() {\n super();\n this._autoDestroy = true;\n this._recordBatches = [];\n this._dictionaries = [];\n }\n /** @nocollapse */\n static writeAll(input) {\n return new RecordBatchJSONWriter().writeAll(input);\n }\n _writeMessage() { return this; }\n // @ts-ignore\n _writeFooter(schema) { return this; }\n _writeSchema(schema) {\n return this._write(`{\\n \"schema\": ${JSON.stringify({ fields: schema.fields.map(fieldToJSON) }, null, 2)}`);\n }\n _writeDictionaries(batch) {\n if (batch.dictionaries.size > 0) {\n this._dictionaries.push(batch);\n }\n return this;\n }\n _writeDictionaryBatch(dictionary, id, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n this._write(this._dictionaryBlocks.length === 0 ? ` ` : `,\\n `);\n this._write(`${dictionaryBatchToJSON(dictionary, id, isDelta)}`);\n this._dictionaryBlocks.push(new file_1.FileBlock(0, 0, 0));\n return this;\n }\n _writeRecordBatch(batch) {\n this._writeDictionaries(batch);\n this._recordBatches.push(batch);\n return this;\n }\n close() {\n if (this._dictionaries.length > 0) {\n this._write(`,\\n \"dictionaries\": [\\n`);\n for (const batch of this._dictionaries) {\n super._writeDictionaries(batch);\n }\n this._write(`\\n ]`);\n }\n if (this._recordBatches.length > 0) {\n for (let i = -1, n = this._recordBatches.length; ++i < n;) {\n this._write(i === 0 ? `,\\n \"batches\": [\\n ` : `,\\n `);\n this._write(`${recordBatchToJSON(this._recordBatches[i])}`);\n this._recordBatchBlocks.push(new file_1.FileBlock(0, 0, 0));\n }\n this._write(`\\n ]`);\n }\n if (this._schema) {\n this._write(`\\n}`);\n }\n this._dictionaries = [];\n this._recordBatches = [];\n return super.close();\n }\n}\nexports.RecordBatchJSONWriter = RecordBatchJSONWriter;\n/** @ignore */\nfunction writeAll(writer, input) {\n let chunks = input;\n if (input instanceof table_1.Table) {\n chunks = input.chunks;\n writer.reset(undefined, input.schema);\n }\n for (const batch of chunks) {\n writer.write(batch);\n }\n return writer.finish();\n}\n/** @ignore */\nasync function writeAllAsync(writer, batches) {\n for await (const batch of batches) {\n writer.write(batch);\n }\n return writer.finish();\n}\n/** @ignore */\nfunction fieldToJSON({ name, type, nullable }) {\n const assembler = new jsontypeassembler_1.JSONTypeAssembler();\n return {\n 'name': name, 'nullable': nullable,\n 'type': assembler.visit(type),\n 'children': (type.children || []).map(fieldToJSON),\n 'dictionary': !type_1.DataType.isDictionary(type) ? undefined : {\n 'id': type.id,\n 'isOrdered': type.isOrdered,\n 'indexType': assembler.visit(type.indices)\n }\n };\n}\n/** @ignore */\nfunction dictionaryBatchToJSON(dictionary, id, isDelta = false) {\n const field = new schema_1.Field(`${id}`, dictionary.type, dictionary.nullCount > 0);\n const columns = jsonvectorassembler_1.JSONVectorAssembler.assemble(new column_1.Column(field, [dictionary]));\n return JSON.stringify({\n 'id': id,\n 'isDelta': isDelta,\n 'data': {\n 'count': dictionary.length,\n 'columns': columns\n }\n }, null, 2);\n}\n/** @ignore */\nfunction recordBatchToJSON(records) {\n return JSON.stringify({\n 'count': records.length,\n 'columns': jsonvectorassembler_1.JSONVectorAssembler.assemble(records)\n }, null, 2);\n}\n\n//# sourceMappingURL=writer.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.magicX2AndPadding = exports.magicAndPadding = exports.magicLength = exports.checkForMagicArrowString = exports.MAGIC = exports.MAGIC_STR = exports.PADDING = exports.JSONMessageReader = exports.AsyncMessageReader = exports.MessageReader = void 0;\nconst enum_1 = require(\"../enum\");\nconst flatbuffers_1 = require(\"flatbuffers\");\nvar ByteBuffer = flatbuffers_1.flatbuffers.ByteBuffer;\nconst message_1 = require(\"./metadata/message\");\nconst compat_1 = require(\"../util/compat\");\nconst file_1 = require(\"../io/file\");\nconst buffer_1 = require(\"../util/buffer\");\nconst stream_1 = require(\"../io/stream\");\nconst interfaces_1 = require(\"../io/interfaces\");\n/** @ignore */ const invalidMessageType = (type) => `Expected ${enum_1.MessageHeader[type]} Message in stream, but was null or length 0.`;\n/** @ignore */ const nullMessage = (type) => `Header pointer of flatbuffer-encoded ${enum_1.MessageHeader[type]} Message is null or length 0.`;\n/** @ignore */ const invalidMessageMetadata = (expected, actual) => `Expected to read ${expected} metadata bytes, but only read ${actual}.`;\n/** @ignore */ const invalidMessageBodyLength = (expected, actual) => `Expected to read ${expected} bytes for message body, but only read ${actual}.`;\n/** @ignore */\nclass MessageReader {\n constructor(source) {\n this.source = source instanceof stream_1.ByteStream ? source : new stream_1.ByteStream(source);\n }\n [Symbol.iterator]() { return this; }\n next() {\n let r;\n if ((r = this.readMetadataLength()).done) {\n return interfaces_1.ITERATOR_DONE;\n }\n // ARROW-6313: If the first 4 bytes are continuation indicator (-1), read\n // the next 4 for the 32-bit metadata length. Otherwise, assume this is a\n // pre-v0.15 message, where the first 4 bytes are the metadata length.\n if ((r.value === -1) &&\n (r = this.readMetadataLength()).done) {\n return interfaces_1.ITERATOR_DONE;\n }\n if ((r = this.readMetadata(r.value)).done) {\n return interfaces_1.ITERATOR_DONE;\n }\n return r;\n }\n throw(value) { return this.source.throw(value); }\n return(value) { return this.source.return(value); }\n readMessage(type) {\n let r;\n if ((r = this.next()).done) {\n return null;\n }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n readMessageBody(bodyLength) {\n if (bodyLength <= 0) {\n return new Uint8Array(0);\n }\n const buf = buffer_1.toUint8Array(this.source.read(bodyLength));\n if (buf.byteLength < bodyLength) {\n throw new Error(invalidMessageBodyLength(bodyLength, buf.byteLength));\n }\n // 1. Work around bugs in fs.ReadStream's internal Buffer pooling, see: https://github.com/nodejs/node/issues/24817\n // 2. Work around https://github.com/whatwg/streams/blob/0ebe4b042e467d9876d80ae045de3843092ad797/reference-implementation/lib/helpers.js#L126\n return /* 1. */ (buf.byteOffset % 8 === 0) &&\n /* 2. */ (buf.byteOffset + buf.byteLength) <= buf.buffer.byteLength ? buf : buf.slice();\n }\n readSchema(throwIfNull = false) {\n const type = enum_1.MessageHeader.Schema;\n const message = this.readMessage(type);\n const schema = message && message.header();\n if (throwIfNull && !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n readMetadataLength() {\n const buf = this.source.read(exports.PADDING);\n const bb = buf && new ByteBuffer(buf);\n const len = bb && bb.readInt32(0) || 0;\n return { done: len === 0, value: len };\n }\n readMetadata(metadataLength) {\n const buf = this.source.read(metadataLength);\n if (!buf) {\n return interfaces_1.ITERATOR_DONE;\n }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: message_1.Message.decode(buf) };\n }\n}\nexports.MessageReader = MessageReader;\n/** @ignore */\nclass AsyncMessageReader {\n constructor(source, byteLength) {\n this.source = source instanceof stream_1.AsyncByteStream ? source\n : compat_1.isFileHandle(source)\n ? new file_1.AsyncRandomAccessFile(source, byteLength)\n : new stream_1.AsyncByteStream(source);\n }\n [Symbol.asyncIterator]() { return this; }\n async next() {\n let r;\n if ((r = await this.readMetadataLength()).done) {\n return interfaces_1.ITERATOR_DONE;\n }\n // ARROW-6313: If the first 4 bytes are continuation indicator (-1), read\n // the next 4 for the 32-bit metadata length. Otherwise, assume this is a\n // pre-v0.15 message, where the first 4 bytes are the metadata length.\n if ((r.value === -1) &&\n (r = await this.readMetadataLength()).done) {\n return interfaces_1.ITERATOR_DONE;\n }\n if ((r = await this.readMetadata(r.value)).done) {\n return interfaces_1.ITERATOR_DONE;\n }\n return r;\n }\n async throw(value) { return await this.source.throw(value); }\n async return(value) { return await this.source.return(value); }\n async readMessage(type) {\n let r;\n if ((r = await this.next()).done) {\n return null;\n }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n async readMessageBody(bodyLength) {\n if (bodyLength <= 0) {\n return new Uint8Array(0);\n }\n const buf = buffer_1.toUint8Array(await this.source.read(bodyLength));\n if (buf.byteLength < bodyLength) {\n throw new Error(invalidMessageBodyLength(bodyLength, buf.byteLength));\n }\n // 1. Work around bugs in fs.ReadStream's internal Buffer pooling, see: https://github.com/nodejs/node/issues/24817\n // 2. Work around https://github.com/whatwg/streams/blob/0ebe4b042e467d9876d80ae045de3843092ad797/reference-implementation/lib/helpers.js#L126\n return /* 1. */ (buf.byteOffset % 8 === 0) &&\n /* 2. */ (buf.byteOffset + buf.byteLength) <= buf.buffer.byteLength ? buf : buf.slice();\n }\n async readSchema(throwIfNull = false) {\n const type = enum_1.MessageHeader.Schema;\n const message = await this.readMessage(type);\n const schema = message && message.header();\n if (throwIfNull && !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n async readMetadataLength() {\n const buf = await this.source.read(exports.PADDING);\n const bb = buf && new ByteBuffer(buf);\n const len = bb && bb.readInt32(0) || 0;\n return { done: len === 0, value: len };\n }\n async readMetadata(metadataLength) {\n const buf = await this.source.read(metadataLength);\n if (!buf) {\n return interfaces_1.ITERATOR_DONE;\n }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: message_1.Message.decode(buf) };\n }\n}\nexports.AsyncMessageReader = AsyncMessageReader;\n/** @ignore */\nclass JSONMessageReader extends MessageReader {\n constructor(source) {\n super(new Uint8Array(0));\n this._schema = false;\n this._body = [];\n this._batchIndex = 0;\n this._dictionaryIndex = 0;\n this._json = source instanceof interfaces_1.ArrowJSON ? source : new interfaces_1.ArrowJSON(source);\n }\n next() {\n const { _json } = this;\n if (!this._schema) {\n this._schema = true;\n const message = message_1.Message.fromJSON(_json.schema, enum_1.MessageHeader.Schema);\n return { done: false, value: message };\n }\n if (this._dictionaryIndex < _json.dictionaries.length) {\n const batch = _json.dictionaries[this._dictionaryIndex++];\n this._body = batch['data']['columns'];\n const message = message_1.Message.fromJSON(batch, enum_1.MessageHeader.DictionaryBatch);\n return { done: false, value: message };\n }\n if (this._batchIndex < _json.batches.length) {\n const batch = _json.batches[this._batchIndex++];\n this._body = batch['columns'];\n const message = message_1.Message.fromJSON(batch, enum_1.MessageHeader.RecordBatch);\n return { done: false, value: message };\n }\n this._body = [];\n return interfaces_1.ITERATOR_DONE;\n }\n readMessageBody(_bodyLength) {\n return flattenDataSources(this._body);\n function flattenDataSources(xs) {\n return (xs || []).reduce((buffers, column) => [\n ...buffers,\n ...(column['VALIDITY'] && [column['VALIDITY']] || []),\n ...(column['TYPE'] && [column['TYPE']] || []),\n ...(column['OFFSET'] && [column['OFFSET']] || []),\n ...(column['DATA'] && [column['DATA']] || []),\n ...flattenDataSources(column['children'])\n ], []);\n }\n }\n readMessage(type) {\n let r;\n if ((r = this.next()).done) {\n return null;\n }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n readSchema() {\n const type = enum_1.MessageHeader.Schema;\n const message = this.readMessage(type);\n const schema = message && message.header();\n if (!message || !schema) {\n throw new Error(nullMessage(type));\n }\n return schema;\n }\n}\nexports.JSONMessageReader = JSONMessageReader;\n/** @ignore */\nexports.PADDING = 4;\n/** @ignore */\nexports.MAGIC_STR = 'ARROW1';\n/** @ignore */\nexports.MAGIC = new Uint8Array(exports.MAGIC_STR.length);\nfor (let i = 0; i < exports.MAGIC_STR.length; i += 1 | 0) {\n exports.MAGIC[i] = exports.MAGIC_STR.charCodeAt(i);\n}\n/** @ignore */\nfunction checkForMagicArrowString(buffer, index = 0) {\n for (let i = -1, n = exports.MAGIC.length; ++i < n;) {\n if (exports.MAGIC[i] !== buffer[index + i]) {\n return false;\n }\n }\n return true;\n}\nexports.checkForMagicArrowString = checkForMagicArrowString;\n/** @ignore */\nexports.magicLength = exports.MAGIC.length;\n/** @ignore */\nexports.magicAndPadding = exports.magicLength + exports.PADDING;\n/** @ignore */\nexports.magicX2AndPadding = exports.magicLength * 2 + exports.PADDING;\n\n//# sourceMappingURL=message.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DictionaryVector = void 0;\nconst data_1 = require(\"../data\");\nconst vector_1 = require(\"../vector\");\nconst base_1 = require(\"./base\");\nconst index_1 = require(\"./index\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass DictionaryVector extends base_1.BaseVector {\n constructor(data) {\n super(data);\n this.indices = vector_1.Vector.new(data.clone(this.type.indices));\n }\n /** @nocollapse */\n static from(...args) {\n if (args.length === 3) {\n const [values, indices, keys] = args;\n const type = new type_1.Dictionary(values.type, indices, null, null);\n return vector_1.Vector.new(data_1.Data.Dictionary(type, 0, keys.length, 0, null, keys, values));\n }\n return index_1.vectorFromValuesWithType(() => args[0].type, args[0]);\n }\n get dictionary() { return this.data.dictionary; }\n reverseLookup(value) { return this.dictionary.indexOf(value); }\n getKey(idx) { return this.indices.get(idx); }\n getValue(key) { return this.dictionary.get(key); }\n setKey(idx, key) { return this.indices.set(idx, key); }\n setValue(key, value) { return this.dictionary.set(key, value); }\n}\nexports.DictionaryVector = DictionaryVector;\nDictionaryVector.prototype.indices = null;\n\n//# sourceMappingURL=dictionary.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64Vector = exports.Uint32Vector = exports.Uint16Vector = exports.Uint8Vector = exports.Int64Vector = exports.Int32Vector = exports.Int16Vector = exports.Int8Vector = exports.IntVector = void 0;\nconst data_1 = require(\"../data\");\nconst vector_1 = require(\"../vector\");\nconst base_1 = require(\"./base\");\nconst index_1 = require(\"./index\");\nconst compat_1 = require(\"../util/compat\");\nconst buffer_1 = require(\"../util/buffer\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass IntVector extends base_1.BaseVector {\n /** @nocollapse */\n static from(...args) {\n const [input, is64bit = false] = args;\n let ArrowType = vectorTypeToDataType(this, is64bit);\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n const InputType = arrayTypeToDataType(input.constructor, is64bit) || ArrowType;\n // Special case, infer the Arrow DataType from the input if calling the base\n // IntVector.from with a TypedArray, e.g. `IntVector.from(new Int32Array())`\n if (ArrowType === null) {\n ArrowType = InputType;\n }\n // If the DataType inferred from the Vector constructor matches the\n // DataType inferred from the input arguments, return zero-copy view\n if (ArrowType && ArrowType === InputType) {\n const type = new ArrowType();\n let length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is 64bit but the input type is 32bit pairs, update the logical length\n if (convert32To64Bit(ArrowType, input.constructor)) {\n length *= 0.5;\n }\n return vector_1.Vector.new(data_1.Data.Int(type, 0, length, 0, null, input));\n }\n }\n if (ArrowType) {\n // If the DataType inferred from the Vector constructor is different than\n // the DataType inferred from the input TypedArray, or if input isn't a\n // TypedArray, use the Builders to construct the result Vector\n return index_1.vectorFromValuesWithType(() => new ArrowType(), input);\n }\n if ((input instanceof DataView) || (input instanceof ArrayBuffer)) {\n throw new TypeError(`Cannot infer integer type from instance of ${input.constructor.name}`);\n }\n throw new TypeError('Unrecognized IntVector input');\n }\n}\nexports.IntVector = IntVector;\n/** @ignore */\nclass Int8Vector extends IntVector {\n}\nexports.Int8Vector = Int8Vector;\n/** @ignore */\nclass Int16Vector extends IntVector {\n}\nexports.Int16Vector = Int16Vector;\n/** @ignore */\nclass Int32Vector extends IntVector {\n}\nexports.Int32Vector = Int32Vector;\n/** @ignore */\nclass Int64Vector extends IntVector {\n toBigInt64Array() {\n return buffer_1.toBigInt64Array(this.values);\n }\n get values64() {\n return this._values64 || (this._values64 = this.toBigInt64Array());\n }\n}\nexports.Int64Vector = Int64Vector;\n/** @ignore */\nclass Uint8Vector extends IntVector {\n}\nexports.Uint8Vector = Uint8Vector;\n/** @ignore */\nclass Uint16Vector extends IntVector {\n}\nexports.Uint16Vector = Uint16Vector;\n/** @ignore */\nclass Uint32Vector extends IntVector {\n}\nexports.Uint32Vector = Uint32Vector;\n/** @ignore */\nclass Uint64Vector extends IntVector {\n toBigUint64Array() {\n return buffer_1.toBigUint64Array(this.values);\n }\n get values64() {\n return this._values64 || (this._values64 = this.toBigUint64Array());\n }\n}\nexports.Uint64Vector = Uint64Vector;\nconst convert32To64Bit = (typeCtor, dataCtor) => {\n return (typeCtor === type_1.Int64 || typeCtor === type_1.Uint64) &&\n (dataCtor === Int32Array || dataCtor === Uint32Array);\n};\n/** @ignore */\nconst arrayTypeToDataType = (ctor, is64bit) => {\n switch (ctor) {\n case Int8Array: return type_1.Int8;\n case Int16Array: return type_1.Int16;\n case Int32Array: return is64bit ? type_1.Int64 : type_1.Int32;\n case compat_1.BigInt64Array: return type_1.Int64;\n case Uint8Array: return type_1.Uint8;\n case Uint16Array: return type_1.Uint16;\n case Uint32Array: return is64bit ? type_1.Uint64 : type_1.Uint32;\n case compat_1.BigUint64Array: return type_1.Uint64;\n default: return null;\n }\n};\n/** @ignore */\nconst vectorTypeToDataType = (ctor, is64bit) => {\n switch (ctor) {\n case Int8Vector: return type_1.Int8;\n case Int16Vector: return type_1.Int16;\n case Int32Vector: return is64bit ? type_1.Int64 : type_1.Int32;\n case Int64Vector: return type_1.Int64;\n case Uint8Vector: return type_1.Uint8;\n case Uint16Vector: return type_1.Uint16;\n case Uint32Vector: return is64bit ? type_1.Uint64 : type_1.Uint32;\n case Uint64Vector: return type_1.Uint64;\n default: return null;\n }\n};\n\n//# sourceMappingURL=int.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.valueToString = void 0;\n/** @ignore */ const undf = void (0);\n/** @ignore */\nfunction valueToString(x) {\n if (x === null) {\n return 'null';\n }\n if (x === undf) {\n return 'undefined';\n }\n switch (typeof x) {\n case 'number': return `${x}`;\n case 'bigint': return `${x}`;\n case 'string': return `\"${x}\"`;\n }\n // If [Symbol.toPrimitive] is implemented (like in BN)\n // use it instead of JSON.stringify(). This ensures we\n // print BigInts, Decimals, and Binary in their native\n // representation\n if (typeof x[Symbol.toPrimitive] === 'function') {\n return x[Symbol.toPrimitive]('string');\n }\n return ArrayBuffer.isView(x) ? `[${x}]` : JSON.stringify(x);\n}\nexports.valueToString = valueToString;\n\n//# sourceMappingURL=pretty.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BoolBuilder = void 0;\nconst buffer_1 = require(\"./buffer\");\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass BoolBuilder extends builder_1.Builder {\n constructor(options) {\n super(options);\n this._values = new buffer_1.BitmapBufferBuilder();\n }\n setValue(index, value) {\n this._values.set(index, +value);\n }\n}\nexports.BoolBuilder = BoolBuilder;\n\n//# sourceMappingURL=bool.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NullBuilder = void 0;\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass NullBuilder extends builder_1.Builder {\n // @ts-ignore\n setValue(index, value) { }\n setValid(index, valid) {\n this.length = Math.max(index + 1, this.length);\n return valid;\n }\n}\nexports.NullBuilder = NullBuilder;\n\n//# sourceMappingURL=null.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateMillisecondBuilder = exports.DateDayBuilder = exports.DateBuilder = void 0;\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass DateBuilder extends builder_1.FixedWidthBuilder {\n}\nexports.DateBuilder = DateBuilder;\n/** @ignore */\nclass DateDayBuilder extends DateBuilder {\n}\nexports.DateDayBuilder = DateDayBuilder;\n/** @ignore */\nclass DateMillisecondBuilder extends DateBuilder {\n}\nexports.DateMillisecondBuilder = DateMillisecondBuilder;\n\n//# sourceMappingURL=date.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecimalBuilder = void 0;\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass DecimalBuilder extends builder_1.FixedWidthBuilder {\n}\nexports.DecimalBuilder = DecimalBuilder;\n\n//# sourceMappingURL=decimal.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DictionaryBuilder = void 0;\nconst type_1 = require(\"../type\");\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass DictionaryBuilder extends builder_1.Builder {\n constructor({ 'type': type, 'nullValues': nulls, 'dictionaryHashFunction': hashFn }) {\n super({ type: new type_1.Dictionary(type.dictionary, type.indices, type.id, type.isOrdered) });\n this._nulls = null;\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n this.indices = builder_1.Builder.new({ 'type': this.type.indices, 'nullValues': nulls });\n this.dictionary = builder_1.Builder.new({ 'type': this.type.dictionary, 'nullValues': null });\n if (typeof hashFn === 'function') {\n this.valueToKey = hashFn;\n }\n }\n get values() { return this.indices.values; }\n get nullCount() { return this.indices.nullCount; }\n get nullBitmap() { return this.indices.nullBitmap; }\n get byteLength() { return this.indices.byteLength + this.dictionary.byteLength; }\n get reservedLength() { return this.indices.reservedLength + this.dictionary.reservedLength; }\n get reservedByteLength() { return this.indices.reservedByteLength + this.dictionary.reservedByteLength; }\n isValid(value) { return this.indices.isValid(value); }\n setValid(index, valid) {\n const indices = this.indices;\n valid = indices.setValid(index, valid);\n this.length = indices.length;\n return valid;\n }\n setValue(index, value) {\n const keysToIndices = this._keysToIndices;\n const key = this.valueToKey(value);\n let idx = keysToIndices[key];\n if (idx === undefined) {\n keysToIndices[key] = idx = this._dictionaryOffset + this.dictionary.append(value).length - 1;\n }\n return this.indices.setValue(index, idx);\n }\n flush() {\n const type = this.type;\n const prev = this._dictionary;\n const curr = this.dictionary.toVector();\n const data = this.indices.flush().clone(type);\n data.dictionary = prev ? prev.concat(curr) : curr;\n this.finished || (this._dictionaryOffset += curr.length);\n this._dictionary = data.dictionary;\n this.clear();\n return data;\n }\n finish() {\n this.indices.finish();\n this.dictionary.finish();\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n return super.finish();\n }\n clear() {\n this.indices.clear();\n this.dictionary.clear();\n return super.clear();\n }\n valueToKey(val) {\n return typeof val === 'string' ? val : `${val}`;\n }\n}\nexports.DictionaryBuilder = DictionaryBuilder;\n\n//# sourceMappingURL=dictionary.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FixedSizeBinaryBuilder = void 0;\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass FixedSizeBinaryBuilder extends builder_1.FixedWidthBuilder {\n}\nexports.FixedSizeBinaryBuilder = FixedSizeBinaryBuilder;\n\n//# sourceMappingURL=fixedsizebinary.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Float64Builder = exports.Float32Builder = exports.Float16Builder = exports.FloatBuilder = void 0;\nconst math_1 = require(\"../util/math\");\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass FloatBuilder extends builder_1.FixedWidthBuilder {\n}\nexports.FloatBuilder = FloatBuilder;\n/** @ignore */\nclass Float16Builder extends FloatBuilder {\n setValue(index, value) {\n // convert JS float64 to a uint16\n this._values.set(index, math_1.float64ToUint16(value));\n }\n}\nexports.Float16Builder = Float16Builder;\n/** @ignore */\nclass Float32Builder extends FloatBuilder {\n setValue(index, value) {\n this._values.set(index, value);\n }\n}\nexports.Float32Builder = Float32Builder;\n/** @ignore */\nclass Float64Builder extends FloatBuilder {\n setValue(index, value) {\n this._values.set(index, value);\n }\n}\nexports.Float64Builder = Float64Builder;\n\n//# sourceMappingURL=float.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Uint64Builder = exports.Uint32Builder = exports.Uint16Builder = exports.Uint8Builder = exports.Int64Builder = exports.Int32Builder = exports.Int16Builder = exports.Int8Builder = exports.IntBuilder = void 0;\nconst bn_1 = require(\"../util/bn\");\nconst buffer_1 = require(\"./buffer\");\nconst compat_1 = require(\"../util/compat\");\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass IntBuilder extends builder_1.FixedWidthBuilder {\n setValue(index, value) {\n this._values.set(index, value);\n }\n}\nexports.IntBuilder = IntBuilder;\n/** @ignore */\nclass Int8Builder extends IntBuilder {\n}\nexports.Int8Builder = Int8Builder;\n/** @ignore */\nclass Int16Builder extends IntBuilder {\n}\nexports.Int16Builder = Int16Builder;\n/** @ignore */\nclass Int32Builder extends IntBuilder {\n}\nexports.Int32Builder = Int32Builder;\n/** @ignore */\nclass Int64Builder extends IntBuilder {\n constructor(options) {\n if (options['nullValues']) {\n options['nullValues'] = options['nullValues'].map(toBigInt);\n }\n super(options);\n this._values = new buffer_1.WideBufferBuilder(new Int32Array(0), 2);\n }\n get values64() { return this._values.buffer64; }\n isValid(value) { return super.isValid(toBigInt(value)); }\n}\nexports.Int64Builder = Int64Builder;\n/** @ignore */\nclass Uint8Builder extends IntBuilder {\n}\nexports.Uint8Builder = Uint8Builder;\n/** @ignore */\nclass Uint16Builder extends IntBuilder {\n}\nexports.Uint16Builder = Uint16Builder;\n/** @ignore */\nclass Uint32Builder extends IntBuilder {\n}\nexports.Uint32Builder = Uint32Builder;\n/** @ignore */\nclass Uint64Builder extends IntBuilder {\n constructor(options) {\n if (options['nullValues']) {\n options['nullValues'] = options['nullValues'].map(toBigInt);\n }\n super(options);\n this._values = new buffer_1.WideBufferBuilder(new Uint32Array(0), 2);\n }\n get values64() { return this._values.buffer64; }\n isValid(value) { return super.isValid(toBigInt(value)); }\n}\nexports.Uint64Builder = Uint64Builder;\nconst toBigInt = ((memo) => (value) => {\n if (ArrayBuffer.isView(value)) {\n memo.buffer = value.buffer;\n memo.byteOffset = value.byteOffset;\n memo.byteLength = value.byteLength;\n value = bn_1.bignumToBigInt(memo);\n memo.buffer = null;\n }\n return value;\n})({ 'BigIntArray': compat_1.BigInt64Array });\n\n//# sourceMappingURL=int.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeNanosecondBuilder = exports.TimeMicrosecondBuilder = exports.TimeMillisecondBuilder = exports.TimeSecondBuilder = exports.TimeBuilder = void 0;\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass TimeBuilder extends builder_1.FixedWidthBuilder {\n}\nexports.TimeBuilder = TimeBuilder;\n/** @ignore */\nclass TimeSecondBuilder extends TimeBuilder {\n}\nexports.TimeSecondBuilder = TimeSecondBuilder;\n/** @ignore */\nclass TimeMillisecondBuilder extends TimeBuilder {\n}\nexports.TimeMillisecondBuilder = TimeMillisecondBuilder;\n/** @ignore */\nclass TimeMicrosecondBuilder extends TimeBuilder {\n}\nexports.TimeMicrosecondBuilder = TimeMicrosecondBuilder;\n/** @ignore */\nclass TimeNanosecondBuilder extends TimeBuilder {\n}\nexports.TimeNanosecondBuilder = TimeNanosecondBuilder;\n\n//# sourceMappingURL=time.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimestampNanosecondBuilder = exports.TimestampMicrosecondBuilder = exports.TimestampMillisecondBuilder = exports.TimestampSecondBuilder = exports.TimestampBuilder = void 0;\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass TimestampBuilder extends builder_1.FixedWidthBuilder {\n}\nexports.TimestampBuilder = TimestampBuilder;\n/** @ignore */\nclass TimestampSecondBuilder extends TimestampBuilder {\n}\nexports.TimestampSecondBuilder = TimestampSecondBuilder;\n/** @ignore */\nclass TimestampMillisecondBuilder extends TimestampBuilder {\n}\nexports.TimestampMillisecondBuilder = TimestampMillisecondBuilder;\n/** @ignore */\nclass TimestampMicrosecondBuilder extends TimestampBuilder {\n}\nexports.TimestampMicrosecondBuilder = TimestampMicrosecondBuilder;\n/** @ignore */\nclass TimestampNanosecondBuilder extends TimestampBuilder {\n}\nexports.TimestampNanosecondBuilder = TimestampNanosecondBuilder;\n\n//# sourceMappingURL=timestamp.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IntervalYearMonthBuilder = exports.IntervalDayTimeBuilder = exports.IntervalBuilder = void 0;\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass IntervalBuilder extends builder_1.FixedWidthBuilder {\n}\nexports.IntervalBuilder = IntervalBuilder;\n/** @ignore */\nclass IntervalDayTimeBuilder extends IntervalBuilder {\n}\nexports.IntervalDayTimeBuilder = IntervalDayTimeBuilder;\n/** @ignore */\nclass IntervalYearMonthBuilder extends IntervalBuilder {\n}\nexports.IntervalYearMonthBuilder = IntervalYearMonthBuilder;\n\n//# sourceMappingURL=interval.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListBuilder = void 0;\nconst run_1 = require(\"./run\");\nconst schema_1 = require(\"../schema\");\nconst type_1 = require(\"../type\");\nconst buffer_1 = require(\"./buffer\");\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass ListBuilder extends builder_1.VariableWidthBuilder {\n constructor(opts) {\n super(opts);\n this._run = new run_1.Run();\n this._offsets = new buffer_1.OffsetsBufferBuilder();\n }\n addChild(child, name = '0') {\n if (this.numChildren > 0) {\n throw new Error('ListBuilder can only have one child.');\n }\n this.children[this.numChildren] = child;\n this.type = new type_1.List(new schema_1.Field(name, child.type, true));\n return this.numChildren - 1;\n }\n clear() {\n this._run.clear();\n return super.clear();\n }\n _flushPending(pending) {\n const run = this._run;\n const offsets = this._offsets;\n const setValue = this._setValue;\n let index = 0, value;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n }\n else {\n offsets.set(index, value.length);\n setValue(this, index, run.bind(value));\n }\n }\n }\n}\nexports.ListBuilder = ListBuilder;\n\n//# sourceMappingURL=list.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Run = void 0;\nconst vector_1 = require(\"../vector\");\n/** @ignore */\nclass Run {\n get length() { return this._values.length; }\n get(index) { return this._values[index]; }\n clear() { this._values = null; return this; }\n bind(values) {\n if (values instanceof vector_1.Vector) {\n return values;\n }\n this._values = values;\n return this;\n }\n}\nexports.Run = Run;\n\n//# sourceMappingURL=run.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FixedSizeListBuilder = void 0;\nconst run_1 = require(\"./run\");\nconst schema_1 = require(\"../schema\");\nconst builder_1 = require(\"../builder\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass FixedSizeListBuilder extends builder_1.Builder {\n constructor() {\n super(...arguments);\n this._run = new run_1.Run();\n }\n setValue(index, value) {\n super.setValue(index, this._run.bind(value));\n }\n addChild(child, name = '0') {\n if (this.numChildren > 0) {\n throw new Error('FixedSizeListBuilder can only have one child.');\n }\n const childIndex = this.children.push(child);\n this.type = new type_1.FixedSizeList(this.type.listSize, new schema_1.Field(name, child.type, true));\n return childIndex;\n }\n clear() {\n this._run.clear();\n return super.clear();\n }\n}\nexports.FixedSizeListBuilder = FixedSizeListBuilder;\n\n//# sourceMappingURL=fixedsizelist.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapBuilder = void 0;\nconst schema_1 = require(\"../schema\");\nconst type_1 = require(\"../type\");\nconst builder_1 = require(\"../builder\");\n/** @ignore */\nclass MapBuilder extends builder_1.VariableWidthBuilder {\n set(index, value) {\n return super.set(index, value);\n }\n setValue(index, value) {\n value = value instanceof Map ? value : new Map(Object.entries(value));\n const pending = this._pending || (this._pending = new Map());\n const current = pending.get(index);\n current && (this._pendingLength -= current.size);\n this._pendingLength += value.size;\n pending.set(index, value);\n }\n addChild(child, name = `${this.numChildren}`) {\n if (this.numChildren > 0) {\n throw new Error('ListBuilder can only have one child.');\n }\n this.children[this.numChildren] = child;\n this.type = new type_1.Map_(new schema_1.Field(name, child.type, true), this.type.keysSorted);\n return this.numChildren - 1;\n }\n _flushPending(pending) {\n const offsets = this._offsets;\n const setValue = this._setValue;\n pending.forEach((value, index) => {\n if (value === undefined) {\n offsets.set(index, 0);\n }\n else {\n offsets.set(index, value.size);\n setValue(this, index, value);\n }\n });\n }\n}\nexports.MapBuilder = MapBuilder;\n\n//# sourceMappingURL=map.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StructBuilder = void 0;\nconst schema_1 = require(\"../schema\");\nconst builder_1 = require(\"../builder\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass StructBuilder extends builder_1.Builder {\n addChild(child, name = `${this.numChildren}`) {\n const childIndex = this.children.push(child);\n this.type = new type_1.Struct([...this.type.children, new schema_1.Field(name, child.type, true)]);\n return childIndex;\n }\n}\nexports.StructBuilder = StructBuilder;\n\n//# sourceMappingURL=struct.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DenseUnionBuilder = exports.SparseUnionBuilder = exports.UnionBuilder = void 0;\nconst schema_1 = require(\"../schema\");\nconst buffer_1 = require(\"./buffer\");\nconst builder_1 = require(\"../builder\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass UnionBuilder extends builder_1.Builder {\n constructor(options) {\n super(options);\n this._typeIds = new buffer_1.DataBufferBuilder(new Int8Array(0), 1);\n if (typeof options['valueToChildTypeId'] === 'function') {\n this._valueToChildTypeId = options['valueToChildTypeId'];\n }\n }\n get typeIdToChildIndex() { return this.type.typeIdToChildIndex; }\n append(value, childTypeId) {\n return this.set(this.length, value, childTypeId);\n }\n set(index, value, childTypeId) {\n if (childTypeId === undefined) {\n childTypeId = this._valueToChildTypeId(this, value, index);\n }\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value, childTypeId);\n }\n return this;\n }\n setValue(index, value, childTypeId) {\n this._typeIds.set(index, childTypeId);\n super.setValue(index, value);\n }\n addChild(child, name = `${this.children.length}`) {\n const childTypeId = this.children.push(child);\n const { type: { children, mode, typeIds } } = this;\n const fields = [...children, new schema_1.Field(name, child.type)];\n this.type = new type_1.Union(mode, [...typeIds, childTypeId], fields);\n return childTypeId;\n }\n /** @ignore */\n // @ts-ignore\n _valueToChildTypeId(builder, value, offset) {\n throw new Error(`Cannot map UnionBuilder value to child typeId. \\\nPass the \\`childTypeId\\` as the second argument to unionBuilder.append(), \\\nor supply a \\`valueToChildTypeId\\` function as part of the UnionBuilder constructor options.`);\n }\n}\nexports.UnionBuilder = UnionBuilder;\n/** @ignore */\nclass SparseUnionBuilder extends UnionBuilder {\n}\nexports.SparseUnionBuilder = SparseUnionBuilder;\n/** @ignore */\nclass DenseUnionBuilder extends UnionBuilder {\n constructor(options) {\n super(options);\n this._offsets = new buffer_1.DataBufferBuilder(new Int32Array(0));\n }\n /** @ignore */\n setValue(index, value, childTypeId) {\n const childIndex = this.type.typeIdToChildIndex[childTypeId];\n this._offsets.set(index, this.getChildAt(childIndex).length);\n return super.setValue(index, value, childTypeId);\n }\n}\nexports.DenseUnionBuilder = DenseUnionBuilder;\n\n//# sourceMappingURL=union.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.SetVisitor = void 0;\nconst vector_1 = require(\"../vector\");\nconst visitor_1 = require(\"../visitor\");\nconst utf8_1 = require(\"../util/utf8\");\nconst math_1 = require(\"../util/math\");\nconst buffer_1 = require(\"../util/buffer\");\nconst enum_1 = require(\"../enum\");\n/** @ignore */\nclass SetVisitor extends visitor_1.Visitor {\n}\nexports.SetVisitor = SetVisitor;\n/** @ignore */\nconst setEpochMsToDays = (data, index, epochMs) => { data[index] = (epochMs / 86400000) | 0; };\n/** @ignore */\nconst setEpochMsToMillisecondsLong = (data, index, epochMs) => {\n data[index] = (epochMs % 4294967296) | 0;\n data[index + 1] = (epochMs / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToMicrosecondsLong = (data, index, epochMs) => {\n data[index] = ((epochMs * 1000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000) / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToNanosecondsLong = (data, index, epochMs) => {\n data[index] = ((epochMs * 1000000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000000) / 4294967296) | 0;\n};\n/** @ignore */\nconst setVariableWidthBytes = (values, valueOffsets, index, value) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n if (x != null && y != null) {\n values.set(value.subarray(0, y - x), x);\n }\n};\n/** @ignore */\nconst setBool = ({ offset, values }, index, val) => {\n const idx = offset + index;\n val ? (values[idx >> 3] |= (1 << (idx % 8))) // true\n : (values[idx >> 3] &= ~(1 << (idx % 8))); // false\n};\n/** @ignore */\nconst setDateDay = ({ values }, index, value) => { setEpochMsToDays(values, index, value.valueOf()); };\n/** @ignore */\nconst setDateMillisecond = ({ values }, index, value) => { setEpochMsToMillisecondsLong(values, index * 2, value.valueOf()); };\n/** @ignore */\nconst setNumeric = ({ stride, values }, index, value) => { values[stride * index] = value; };\n/** @ignore */\nconst setFloat16 = ({ stride, values }, index, value) => { values[stride * index] = math_1.float64ToUint16(value); };\n/** @ignore */\nconst setNumericX2 = (vector, index, value) => {\n switch (typeof value) {\n case 'bigint':\n vector.values64[index] = value;\n break;\n case 'number':\n vector.values[index * vector.stride] = value;\n break;\n default: {\n const val = value;\n const { stride, ArrayType } = vector;\n const long = buffer_1.toArrayBufferView(ArrayType, val);\n vector.values.set(long.subarray(0, stride), stride * index);\n }\n }\n};\n/** @ignore */\nconst setFixedSizeBinary = ({ stride, values }, index, value) => { values.set(value.subarray(0, stride), stride * index); };\n/** @ignore */\nconst setBinary = ({ values, valueOffsets }, index, value) => setVariableWidthBytes(values, valueOffsets, index, value);\n/** @ignore */\nconst setUtf8 = ({ values, valueOffsets }, index, value) => {\n setVariableWidthBytes(values, valueOffsets, index, utf8_1.encodeUtf8(value));\n};\n/* istanbul ignore next */\n/** @ignore */\nconst setInt = (vector, index, value) => {\n vector.type.bitWidth < 64\n ? setNumeric(vector, index, value)\n : setNumericX2(vector, index, value);\n};\n/* istanbul ignore next */\n/** @ignore */\nconst setFloat = (vector, index, value) => {\n vector.type.precision !== enum_1.Precision.HALF\n ? setNumeric(vector, index, value)\n : setFloat16(vector, index, value);\n};\n/* istanbul ignore next */\nconst setDate = (vector, index, value) => {\n vector.type.unit === enum_1.DateUnit.DAY\n ? setDateDay(vector, index, value)\n : setDateMillisecond(vector, index, value);\n};\n/** @ignore */\nconst setTimestampSecond = ({ values }, index, value) => setEpochMsToMillisecondsLong(values, index * 2, value / 1000);\n/** @ignore */\nconst setTimestampMillisecond = ({ values }, index, value) => setEpochMsToMillisecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampMicrosecond = ({ values }, index, value) => setEpochMsToMicrosecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampNanosecond = ({ values }, index, value) => setEpochMsToNanosecondsLong(values, index * 2, value);\n/* istanbul ignore next */\n/** @ignore */\nconst setTimestamp = (vector, index, value) => {\n switch (vector.type.unit) {\n case enum_1.TimeUnit.SECOND: return setTimestampSecond(vector, index, value);\n case enum_1.TimeUnit.MILLISECOND: return setTimestampMillisecond(vector, index, value);\n case enum_1.TimeUnit.MICROSECOND: return setTimestampMicrosecond(vector, index, value);\n case enum_1.TimeUnit.NANOSECOND: return setTimestampNanosecond(vector, index, value);\n }\n};\n/** @ignore */\nconst setTimeSecond = ({ values, stride }, index, value) => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMillisecond = ({ values, stride }, index, value) => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMicrosecond = ({ values }, index, value) => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setTimeNanosecond = ({ values }, index, value) => { values.set(value.subarray(0, 2), 2 * index); };\n/* istanbul ignore next */\n/** @ignore */\nconst setTime = (vector, index, value) => {\n switch (vector.type.unit) {\n case enum_1.TimeUnit.SECOND: return setTimeSecond(vector, index, value);\n case enum_1.TimeUnit.MILLISECOND: return setTimeMillisecond(vector, index, value);\n case enum_1.TimeUnit.MICROSECOND: return setTimeMicrosecond(vector, index, value);\n case enum_1.TimeUnit.NANOSECOND: return setTimeNanosecond(vector, index, value);\n }\n};\n/** @ignore */\nconst setDecimal = ({ values }, index, value) => { values.set(value.subarray(0, 4), 4 * index); };\n/** @ignore */\nconst setList = (vector, index, value) => {\n const values = vector.getChildAt(0), valueOffsets = vector.valueOffsets;\n for (let idx = -1, itr = valueOffsets[index], end = valueOffsets[index + 1]; itr < end;) {\n values.set(itr++, value.get(++idx));\n }\n};\n/** @ignore */\nconst setMap = (vector, index, value) => {\n const values = vector.getChildAt(0), valueOffsets = vector.valueOffsets;\n const entries = value instanceof Map ? [...value] : Object.entries(value);\n for (let idx = -1, itr = valueOffsets[index], end = valueOffsets[index + 1]; itr < end;) {\n values.set(itr++, entries[++idx]);\n }\n};\n/** @ignore */ const _setStructArrayValue = (o, v) => (c, _, i) => c && c.set(o, v[i]);\n/** @ignore */ const _setStructVectorValue = (o, v) => (c, _, i) => c && c.set(o, v.get(i));\n/** @ignore */ const _setStructMapValue = (o, v) => (c, f, _) => c && c.set(o, v.get(f.name));\n/** @ignore */ const _setStructObjectValue = (o, v) => (c, f, _) => c && c.set(o, v[f.name]);\n/** @ignore */\nconst setStruct = (vector, index, value) => {\n const setValue = value instanceof Map ? _setStructMapValue(index, value) :\n value instanceof vector_1.Vector ? _setStructVectorValue(index, value) :\n Array.isArray(value) ? _setStructArrayValue(index, value) :\n _setStructObjectValue(index, value);\n vector.type.children.forEach((f, i) => setValue(vector.getChildAt(i), f, i));\n};\n/* istanbul ignore next */\n/** @ignore */\nconst setUnion = (vector, index, value) => {\n vector.type.mode === enum_1.UnionMode.Dense ?\n setDenseUnion(vector, index, value) :\n setSparseUnion(vector, index, value);\n};\n/** @ignore */\nconst setDenseUnion = (vector, index, value) => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(vector.valueOffsets[index], value);\n};\n/** @ignore */\nconst setSparseUnion = (vector, index, value) => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(index, value);\n};\n/** @ignore */\nconst setDictionary = (vector, index, value) => {\n const key = vector.getKey(index);\n if (key !== null) {\n vector.setValue(key, value);\n }\n};\n/* istanbul ignore next */\n/** @ignore */\nconst setIntervalValue = (vector, index, value) => {\n (vector.type.unit === enum_1.IntervalUnit.DAY_TIME)\n ? setIntervalDayTime(vector, index, value)\n : setIntervalYearMonth(vector, index, value);\n};\n/** @ignore */\nconst setIntervalDayTime = ({ values }, index, value) => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setIntervalYearMonth = ({ values }, index, value) => { values[index] = (value[0] * 12) + (value[1] % 12); };\n/** @ignore */\nconst setFixedSizeList = (vector, index, value) => {\n const child = vector.getChildAt(0), { stride } = vector;\n for (let idx = -1, offset = index * stride; ++idx < stride;) {\n child.set(offset + idx, value.get(idx));\n }\n};\nSetVisitor.prototype.visitBool = setBool;\nSetVisitor.prototype.visitInt = setInt;\nSetVisitor.prototype.visitInt8 = setNumeric;\nSetVisitor.prototype.visitInt16 = setNumeric;\nSetVisitor.prototype.visitInt32 = setNumeric;\nSetVisitor.prototype.visitInt64 = setNumericX2;\nSetVisitor.prototype.visitUint8 = setNumeric;\nSetVisitor.prototype.visitUint16 = setNumeric;\nSetVisitor.prototype.visitUint32 = setNumeric;\nSetVisitor.prototype.visitUint64 = setNumericX2;\nSetVisitor.prototype.visitFloat = setFloat;\nSetVisitor.prototype.visitFloat16 = setFloat16;\nSetVisitor.prototype.visitFloat32 = setNumeric;\nSetVisitor.prototype.visitFloat64 = setNumeric;\nSetVisitor.prototype.visitUtf8 = setUtf8;\nSetVisitor.prototype.visitBinary = setBinary;\nSetVisitor.prototype.visitFixedSizeBinary = setFixedSizeBinary;\nSetVisitor.prototype.visitDate = setDate;\nSetVisitor.prototype.visitDateDay = setDateDay;\nSetVisitor.prototype.visitDateMillisecond = setDateMillisecond;\nSetVisitor.prototype.visitTimestamp = setTimestamp;\nSetVisitor.prototype.visitTimestampSecond = setTimestampSecond;\nSetVisitor.prototype.visitTimestampMillisecond = setTimestampMillisecond;\nSetVisitor.prototype.visitTimestampMicrosecond = setTimestampMicrosecond;\nSetVisitor.prototype.visitTimestampNanosecond = setTimestampNanosecond;\nSetVisitor.prototype.visitTime = setTime;\nSetVisitor.prototype.visitTimeSecond = setTimeSecond;\nSetVisitor.prototype.visitTimeMillisecond = setTimeMillisecond;\nSetVisitor.prototype.visitTimeMicrosecond = setTimeMicrosecond;\nSetVisitor.prototype.visitTimeNanosecond = setTimeNanosecond;\nSetVisitor.prototype.visitDecimal = setDecimal;\nSetVisitor.prototype.visitList = setList;\nSetVisitor.prototype.visitStruct = setStruct;\nSetVisitor.prototype.visitUnion = setUnion;\nSetVisitor.prototype.visitDenseUnion = setDenseUnion;\nSetVisitor.prototype.visitSparseUnion = setSparseUnion;\nSetVisitor.prototype.visitDictionary = setDictionary;\nSetVisitor.prototype.visitInterval = setIntervalValue;\nSetVisitor.prototype.visitIntervalDayTime = setIntervalDayTime;\nSetVisitor.prototype.visitIntervalYearMonth = setIntervalYearMonth;\nSetVisitor.prototype.visitFixedSizeList = setFixedSizeList;\nSetVisitor.prototype.visitMap = setMap;\n/** @ignore */\nexports.instance = new SetVisitor();\n\n//# sourceMappingURL=set.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileBlock = exports.Footer = void 0;\n/* eslint-disable @typescript-eslint/naming-convention */\nconst File_1 = require(\"../../fb/File\");\nconst flatbuffers_1 = require(\"flatbuffers\");\nvar Long = flatbuffers_1.flatbuffers.Long;\nvar Builder = flatbuffers_1.flatbuffers.Builder;\nvar ByteBuffer = flatbuffers_1.flatbuffers.ByteBuffer;\nconst schema_1 = require(\"../../schema\");\nconst enum_1 = require(\"../../enum\");\nconst buffer_1 = require(\"../../util/buffer\");\n/** @ignore */\nclass Footer_ {\n constructor(schema, version = enum_1.MetadataVersion.V4, recordBatches, dictionaryBatches) {\n this.schema = schema;\n this.version = version;\n recordBatches && (this._recordBatches = recordBatches);\n dictionaryBatches && (this._dictionaryBatches = dictionaryBatches);\n }\n /** @nocollapse */\n static decode(buf) {\n buf = new ByteBuffer(buffer_1.toUint8Array(buf));\n const footer = File_1.Footer.getRootAsFooter(buf);\n const schema = schema_1.Schema.decode(footer.schema());\n return new OffHeapFooter(schema, footer);\n }\n /** @nocollapse */\n static encode(footer) {\n const b = new Builder();\n const schemaOffset = schema_1.Schema.encode(b, footer.schema);\n File_1.Footer.startRecordBatchesVector(b, footer.numRecordBatches);\n [...footer.recordBatches()].slice().reverse().forEach((rb) => FileBlock.encode(b, rb));\n const recordBatchesOffset = b.endVector();\n File_1.Footer.startDictionariesVector(b, footer.numDictionaries);\n [...footer.dictionaryBatches()].slice().reverse().forEach((db) => FileBlock.encode(b, db));\n const dictionaryBatchesOffset = b.endVector();\n File_1.Footer.startFooter(b);\n File_1.Footer.addSchema(b, schemaOffset);\n File_1.Footer.addVersion(b, enum_1.MetadataVersion.V4);\n File_1.Footer.addRecordBatches(b, recordBatchesOffset);\n File_1.Footer.addDictionaries(b, dictionaryBatchesOffset);\n File_1.Footer.finishFooterBuffer(b, File_1.Footer.endFooter(b));\n return b.asUint8Array();\n }\n get numRecordBatches() { return this._recordBatches.length; }\n get numDictionaries() { return this._dictionaryBatches.length; }\n *recordBatches() {\n for (let block, i = -1, n = this.numRecordBatches; ++i < n;) {\n if (block = this.getRecordBatch(i)) {\n yield block;\n }\n }\n }\n *dictionaryBatches() {\n for (let block, i = -1, n = this.numDictionaries; ++i < n;) {\n if (block = this.getDictionaryBatch(i)) {\n yield block;\n }\n }\n }\n getRecordBatch(index) {\n return index >= 0\n && index < this.numRecordBatches\n && this._recordBatches[index] || null;\n }\n getDictionaryBatch(index) {\n return index >= 0\n && index < this.numDictionaries\n && this._dictionaryBatches[index] || null;\n }\n}\nexports.Footer = Footer_;\n/** @ignore */\nclass OffHeapFooter extends Footer_ {\n constructor(schema, _footer) {\n super(schema, _footer.version());\n this._footer = _footer;\n }\n get numRecordBatches() { return this._footer.recordBatchesLength(); }\n get numDictionaries() { return this._footer.dictionariesLength(); }\n getRecordBatch(index) {\n if (index >= 0 && index < this.numRecordBatches) {\n const fileBlock = this._footer.recordBatches(index);\n if (fileBlock) {\n return FileBlock.decode(fileBlock);\n }\n }\n return null;\n }\n getDictionaryBatch(index) {\n if (index >= 0 && index < this.numDictionaries) {\n const fileBlock = this._footer.dictionaries(index);\n if (fileBlock) {\n return FileBlock.decode(fileBlock);\n }\n }\n return null;\n }\n}\n/** @ignore */\nclass FileBlock {\n constructor(metaDataLength, bodyLength, offset) {\n this.metaDataLength = metaDataLength;\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n /** @nocollapse */\n static decode(block) {\n return new FileBlock(block.metaDataLength(), block.bodyLength(), block.offset());\n }\n /** @nocollapse */\n static encode(b, fileBlock) {\n const { metaDataLength } = fileBlock;\n const offset = new Long(fileBlock.offset, 0);\n const bodyLength = new Long(fileBlock.bodyLength, 0);\n return File_1.Block.createBlock(b, offset, metaDataLength, bodyLength);\n }\n}\nexports.FileBlock = FileBlock;\n\n//# sourceMappingURL=file.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncRandomAccessFile = exports.RandomAccessFile = void 0;\nconst stream_1 = require(\"./stream\");\nconst buffer_1 = require(\"../util/buffer\");\n/** @ignore */\nclass RandomAccessFile extends stream_1.ByteStream {\n constructor(buffer, byteLength) {\n super();\n this.position = 0;\n this.buffer = buffer_1.toUint8Array(buffer);\n this.size = typeof byteLength === 'undefined' ? this.buffer.byteLength : byteLength;\n }\n readInt32(position) {\n const { buffer, byteOffset } = this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n seek(position) {\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n read(nBytes) {\n const { buffer, size, position } = this;\n if (buffer && position < size) {\n if (typeof nBytes !== 'number') {\n nBytes = Infinity;\n }\n this.position = Math.min(size, position + Math.min(size - position, nBytes));\n return buffer.subarray(position, this.position);\n }\n return null;\n }\n readAt(position, nBytes) {\n const buf = this.buffer;\n const end = Math.min(this.size, position + nBytes);\n return buf ? buf.subarray(position, end) : new Uint8Array(nBytes);\n }\n close() { this.buffer && (this.buffer = null); }\n throw(value) { this.close(); return { done: true, value }; }\n return(value) { this.close(); return { done: true, value }; }\n}\nexports.RandomAccessFile = RandomAccessFile;\n/** @ignore */\nclass AsyncRandomAccessFile extends stream_1.AsyncByteStream {\n constructor(file, byteLength) {\n super();\n this.position = 0;\n this._handle = file;\n if (typeof byteLength === 'number') {\n this.size = byteLength;\n }\n else {\n this._pending = (async () => {\n this.size = (await file.stat()).size;\n delete this._pending;\n })();\n }\n }\n async readInt32(position) {\n const { buffer, byteOffset } = await this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n async seek(position) {\n this._pending && await this._pending;\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n async read(nBytes) {\n this._pending && await this._pending;\n const { _handle: file, size, position } = this;\n if (file && position < size) {\n if (typeof nBytes !== 'number') {\n nBytes = Infinity;\n }\n let pos = position, offset = 0, bytesRead = 0;\n const end = Math.min(size, pos + Math.min(size - pos, nBytes));\n const buffer = new Uint8Array(Math.max(0, (this.position = end) - pos));\n while ((pos += bytesRead) < end && (offset += bytesRead) < buffer.byteLength) {\n ({ bytesRead } = await file.read(buffer, offset, buffer.byteLength - offset, pos));\n }\n return buffer;\n }\n return null;\n }\n async readAt(position, nBytes) {\n this._pending && await this._pending;\n const { _handle: file, size } = this;\n if (file && (position + nBytes) < size) {\n const end = Math.min(size, position + nBytes);\n const buffer = new Uint8Array(end - position);\n return (await file.read(buffer, 0, nBytes, position)).buffer;\n }\n return new Uint8Array(nBytes);\n }\n async close() { const f = this._handle; this._handle = null; f && await f.close(); }\n async throw(value) { await this.close(); return { done: true, value }; }\n async return(value) { await this.close(); return { done: true, value }; }\n}\nexports.AsyncRandomAccessFile = AsyncRandomAccessFile;\n\n//# sourceMappingURL=file.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Int128 = exports.Int64 = exports.Uint64 = exports.BaseInt64 = void 0;\n/** @ignore */\nconst carryBit16 = 1 << 16;\n/** @ignore */\nfunction intAsHex(value) {\n if (value < 0) {\n value = 0xFFFFFFFF + value + 1;\n }\n return `0x${value.toString(16)}`;\n}\n/** @ignore */\nconst kInt32DecimalDigits = 8;\n/** @ignore */\nconst kPowersOfTen = [1,\n 10,\n 100,\n 1000,\n 10000,\n 100000,\n 1000000,\n 10000000,\n 100000000];\n/** @ignore */\nclass BaseInt64 {\n constructor(buffer) {\n this.buffer = buffer;\n }\n high() { return this.buffer[1]; }\n low() { return this.buffer[0]; }\n _times(other) {\n // Break the left and right numbers into 16 bit chunks\n // so that we can multiply them without overflow.\n const L = new Uint32Array([\n this.buffer[1] >>> 16,\n this.buffer[1] & 0xFFFF,\n this.buffer[0] >>> 16,\n this.buffer[0] & 0xFFFF\n ]);\n const R = new Uint32Array([\n other.buffer[1] >>> 16,\n other.buffer[1] & 0xFFFF,\n other.buffer[0] >>> 16,\n other.buffer[0] & 0xFFFF\n ]);\n let product = L[3] * R[3];\n this.buffer[0] = product & 0xFFFF;\n let sum = product >>> 16;\n product = L[2] * R[3];\n sum += product;\n product = (L[3] * R[2]) >>> 0;\n sum += product;\n this.buffer[0] += sum << 16;\n this.buffer[1] = (sum >>> 0 < product ? carryBit16 : 0);\n this.buffer[1] += sum >>> 16;\n this.buffer[1] += L[1] * R[3] + L[2] * R[2] + L[3] * R[1];\n this.buffer[1] += (L[0] * R[3] + L[1] * R[2] + L[2] * R[1] + L[3] * R[0]) << 16;\n return this;\n }\n _plus(other) {\n const sum = (this.buffer[0] + other.buffer[0]) >>> 0;\n this.buffer[1] += other.buffer[1];\n if (sum < (this.buffer[0] >>> 0)) {\n ++this.buffer[1];\n }\n this.buffer[0] = sum;\n }\n lessThan(other) {\n return this.buffer[1] < other.buffer[1] ||\n (this.buffer[1] === other.buffer[1] && this.buffer[0] < other.buffer[0]);\n }\n equals(other) {\n return this.buffer[1] === other.buffer[1] && this.buffer[0] == other.buffer[0];\n }\n greaterThan(other) {\n return other.lessThan(this);\n }\n hex() {\n return `${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n}\nexports.BaseInt64 = BaseInt64;\n/** @ignore */\nclass Uint64 extends BaseInt64 {\n times(other) {\n this._times(other);\n return this;\n }\n plus(other) {\n this._plus(other);\n return this;\n }\n /** @nocollapse */\n static from(val, out_buffer = new Uint32Array(2)) {\n return Uint64.fromString(typeof (val) === 'string' ? val : val.toString(), out_buffer);\n }\n /** @nocollapse */\n static fromNumber(num, out_buffer = new Uint32Array(2)) {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Uint64.fromString(num.toString(), out_buffer);\n }\n /** @nocollapse */\n static fromString(str, out_buffer = new Uint32Array(2)) {\n const length = str.length;\n const out = new Uint64(out_buffer);\n for (let posn = 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Uint64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Uint64(new Uint32Array([kPowersOfTen[group], 0]));\n out.times(multiple);\n out.plus(chunk);\n posn += group;\n }\n return out;\n }\n /** @nocollapse */\n static convertArray(values) {\n const data = new Uint32Array(values.length * 2);\n for (let i = -1, n = values.length; ++i < n;) {\n Uint64.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 2 * i * 4, 2));\n }\n return data;\n }\n /** @nocollapse */\n static multiply(left, right) {\n const rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n /** @nocollapse */\n static add(left, right) {\n const rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\nexports.Uint64 = Uint64;\n/** @ignore */\nclass Int64 extends BaseInt64 {\n negate() {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n if (this.buffer[0] == 0) {\n ++this.buffer[1];\n }\n return this;\n }\n times(other) {\n this._times(other);\n return this;\n }\n plus(other) {\n this._plus(other);\n return this;\n }\n lessThan(other) {\n // force high bytes to be signed\n const this_high = this.buffer[1] << 0;\n const other_high = other.buffer[1] << 0;\n return this_high < other_high ||\n (this_high === other_high && this.buffer[0] < other.buffer[0]);\n }\n /** @nocollapse */\n static from(val, out_buffer = new Uint32Array(2)) {\n return Int64.fromString(typeof (val) === 'string' ? val : val.toString(), out_buffer);\n }\n /** @nocollapse */\n static fromNumber(num, out_buffer = new Uint32Array(2)) {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Int64.fromString(num.toString(), out_buffer);\n }\n /** @nocollapse */\n static fromString(str, out_buffer = new Uint32Array(2)) {\n // TODO: Assert that out_buffer is 0 and length = 2\n const negate = str.startsWith('-');\n const length = str.length;\n const out = new Int64(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Int64(new Uint32Array([kPowersOfTen[group], 0]));\n out.times(multiple);\n out.plus(chunk);\n posn += group;\n }\n return negate ? out.negate() : out;\n }\n /** @nocollapse */\n static convertArray(values) {\n const data = new Uint32Array(values.length * 2);\n for (let i = -1, n = values.length; ++i < n;) {\n Int64.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 2 * i * 4, 2));\n }\n return data;\n }\n /** @nocollapse */\n static multiply(left, right) {\n const rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n /** @nocollapse */\n static add(left, right) {\n const rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\nexports.Int64 = Int64;\n/** @ignore */\nclass Int128 {\n constructor(buffer) {\n this.buffer = buffer;\n // buffer[3] MSB (high)\n // buffer[2]\n // buffer[1]\n // buffer[0] LSB (low)\n }\n high() {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n }\n low() {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset, 2));\n }\n negate() {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n this.buffer[2] = ~this.buffer[2];\n this.buffer[3] = ~this.buffer[3];\n if (this.buffer[0] == 0) {\n ++this.buffer[1];\n }\n if (this.buffer[1] == 0) {\n ++this.buffer[2];\n }\n if (this.buffer[2] == 0) {\n ++this.buffer[3];\n }\n return this;\n }\n times(other) {\n // Break the left and right numbers into 32 bit chunks\n // so that we can multiply them without overflow.\n const L0 = new Uint64(new Uint32Array([this.buffer[3], 0]));\n const L1 = new Uint64(new Uint32Array([this.buffer[2], 0]));\n const L2 = new Uint64(new Uint32Array([this.buffer[1], 0]));\n const L3 = new Uint64(new Uint32Array([this.buffer[0], 0]));\n const R0 = new Uint64(new Uint32Array([other.buffer[3], 0]));\n const R1 = new Uint64(new Uint32Array([other.buffer[2], 0]));\n const R2 = new Uint64(new Uint32Array([other.buffer[1], 0]));\n const R3 = new Uint64(new Uint32Array([other.buffer[0], 0]));\n let product = Uint64.multiply(L3, R3);\n this.buffer[0] = product.low();\n const sum = new Uint64(new Uint32Array([product.high(), 0]));\n product = Uint64.multiply(L2, R3);\n sum.plus(product);\n product = Uint64.multiply(L3, R2);\n sum.plus(product);\n this.buffer[1] = sum.low();\n this.buffer[3] = (sum.lessThan(product) ? 1 : 0);\n this.buffer[2] = sum.high();\n const high = new Uint64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n high.plus(Uint64.multiply(L1, R3))\n .plus(Uint64.multiply(L2, R2))\n .plus(Uint64.multiply(L3, R1));\n this.buffer[3] += Uint64.multiply(L0, R3)\n .plus(Uint64.multiply(L1, R2))\n .plus(Uint64.multiply(L2, R1))\n .plus(Uint64.multiply(L3, R0)).low();\n return this;\n }\n plus(other) {\n const sums = new Uint32Array(4);\n sums[3] = (this.buffer[3] + other.buffer[3]) >>> 0;\n sums[2] = (this.buffer[2] + other.buffer[2]) >>> 0;\n sums[1] = (this.buffer[1] + other.buffer[1]) >>> 0;\n sums[0] = (this.buffer[0] + other.buffer[0]) >>> 0;\n if (sums[0] < (this.buffer[0] >>> 0)) {\n ++sums[1];\n }\n if (sums[1] < (this.buffer[1] >>> 0)) {\n ++sums[2];\n }\n if (sums[2] < (this.buffer[2] >>> 0)) {\n ++sums[3];\n }\n this.buffer[3] = sums[3];\n this.buffer[2] = sums[2];\n this.buffer[1] = sums[1];\n this.buffer[0] = sums[0];\n return this;\n }\n hex() {\n return `${intAsHex(this.buffer[3])} ${intAsHex(this.buffer[2])} ${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n /** @nocollapse */\n static multiply(left, right) {\n const rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n /** @nocollapse */\n static add(left, right) {\n const rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n /** @nocollapse */\n static from(val, out_buffer = new Uint32Array(4)) {\n return Int128.fromString(typeof (val) === 'string' ? val : val.toString(), out_buffer);\n }\n /** @nocollapse */\n static fromNumber(num, out_buffer = new Uint32Array(4)) {\n // Always parse numbers as strings - pulling out high and low bits\n // directly seems to lose precision sometimes\n // For example:\n // > -4613034156400212000 >>> 0\n // 721782784\n // The correct lower 32-bits are 721782752\n return Int128.fromString(num.toString(), out_buffer);\n }\n /** @nocollapse */\n static fromString(str, out_buffer = new Uint32Array(4)) {\n // TODO: Assert that out_buffer is 0 and length = 4\n const negate = str.startsWith('-');\n const length = str.length;\n const out = new Int128(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int128(new Uint32Array([parseInt(str.substr(posn, group), 10), 0, 0, 0]));\n const multiple = new Int128(new Uint32Array([kPowersOfTen[group], 0, 0, 0]));\n out.times(multiple);\n out.plus(chunk);\n posn += group;\n }\n return negate ? out.negate() : out;\n }\n /** @nocollapse */\n static convertArray(values) {\n // TODO: Distinguish between string and number at compile-time\n const data = new Uint32Array(values.length * 4);\n for (let i = -1, n = values.length; ++i < n;) {\n Int128.from(values[i], new Uint32Array(data.buffer, data.byteOffset + 4 * 4 * i, 4));\n }\n return data;\n }\n}\nexports.Int128 = Int128;\n\n//# sourceMappingURL=int.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compareTypes = exports.compareFields = exports.compareSchemas = exports.instance = exports.TypeComparator = void 0;\nconst visitor_1 = require(\"../visitor\");\n/** @ignore */\nclass TypeComparator extends visitor_1.Visitor {\n compareSchemas(schema, other) {\n return (schema === other) || (other instanceof schema.constructor &&\n this.compareManyFields(schema.fields, other.fields));\n }\n compareManyFields(fields, others) {\n return (fields === others) || (Array.isArray(fields) &&\n Array.isArray(others) &&\n fields.length === others.length &&\n fields.every((f, i) => this.compareFields(f, others[i])));\n }\n compareFields(field, other) {\n return (field === other) || (other instanceof field.constructor &&\n field.name === other.name &&\n field.nullable === other.nullable &&\n this.visit(field.type, other.type));\n }\n}\nexports.TypeComparator = TypeComparator;\nfunction compareConstructor(type, other) {\n return other instanceof type.constructor;\n}\nfunction compareAny(type, other) {\n return (type === other) || compareConstructor(type, other);\n}\nfunction compareInt(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.bitWidth === other.bitWidth &&\n type.isSigned === other.isSigned);\n}\nfunction compareFloat(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.precision === other.precision);\n}\nfunction compareFixedSizeBinary(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.byteWidth === other.byteWidth);\n}\nfunction compareDate(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.unit === other.unit);\n}\nfunction compareTimestamp(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.timezone === other.timezone);\n}\nfunction compareTime(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.bitWidth === other.bitWidth);\n}\nfunction compareList(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n exports.instance.compareManyFields(type.children, other.children));\n}\nfunction compareStruct(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n exports.instance.compareManyFields(type.children, other.children));\n}\nfunction compareUnion(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.mode === other.mode &&\n type.typeIds.every((x, i) => x === other.typeIds[i]) &&\n exports.instance.compareManyFields(type.children, other.children));\n}\nfunction compareDictionary(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.id === other.id &&\n type.isOrdered === other.isOrdered &&\n exports.instance.visit(type.indices, other.indices) &&\n exports.instance.visit(type.dictionary, other.dictionary));\n}\nfunction compareInterval(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.unit === other.unit);\n}\nfunction compareFixedSizeList(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.listSize === other.listSize &&\n type.children.length === other.children.length &&\n exports.instance.compareManyFields(type.children, other.children));\n}\nfunction compareMap(type, other) {\n return (type === other) || (compareConstructor(type, other) &&\n type.keysSorted === other.keysSorted &&\n type.children.length === other.children.length &&\n exports.instance.compareManyFields(type.children, other.children));\n}\nTypeComparator.prototype.visitNull = compareAny;\nTypeComparator.prototype.visitBool = compareAny;\nTypeComparator.prototype.visitInt = compareInt;\nTypeComparator.prototype.visitInt8 = compareInt;\nTypeComparator.prototype.visitInt16 = compareInt;\nTypeComparator.prototype.visitInt32 = compareInt;\nTypeComparator.prototype.visitInt64 = compareInt;\nTypeComparator.prototype.visitUint8 = compareInt;\nTypeComparator.prototype.visitUint16 = compareInt;\nTypeComparator.prototype.visitUint32 = compareInt;\nTypeComparator.prototype.visitUint64 = compareInt;\nTypeComparator.prototype.visitFloat = compareFloat;\nTypeComparator.prototype.visitFloat16 = compareFloat;\nTypeComparator.prototype.visitFloat32 = compareFloat;\nTypeComparator.prototype.visitFloat64 = compareFloat;\nTypeComparator.prototype.visitUtf8 = compareAny;\nTypeComparator.prototype.visitBinary = compareAny;\nTypeComparator.prototype.visitFixedSizeBinary = compareFixedSizeBinary;\nTypeComparator.prototype.visitDate = compareDate;\nTypeComparator.prototype.visitDateDay = compareDate;\nTypeComparator.prototype.visitDateMillisecond = compareDate;\nTypeComparator.prototype.visitTimestamp = compareTimestamp;\nTypeComparator.prototype.visitTimestampSecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampMillisecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampMicrosecond = compareTimestamp;\nTypeComparator.prototype.visitTimestampNanosecond = compareTimestamp;\nTypeComparator.prototype.visitTime = compareTime;\nTypeComparator.prototype.visitTimeSecond = compareTime;\nTypeComparator.prototype.visitTimeMillisecond = compareTime;\nTypeComparator.prototype.visitTimeMicrosecond = compareTime;\nTypeComparator.prototype.visitTimeNanosecond = compareTime;\nTypeComparator.prototype.visitDecimal = compareAny;\nTypeComparator.prototype.visitList = compareList;\nTypeComparator.prototype.visitStruct = compareStruct;\nTypeComparator.prototype.visitUnion = compareUnion;\nTypeComparator.prototype.visitDenseUnion = compareUnion;\nTypeComparator.prototype.visitSparseUnion = compareUnion;\nTypeComparator.prototype.visitDictionary = compareDictionary;\nTypeComparator.prototype.visitInterval = compareInterval;\nTypeComparator.prototype.visitIntervalDayTime = compareInterval;\nTypeComparator.prototype.visitIntervalYearMonth = compareInterval;\nTypeComparator.prototype.visitFixedSizeList = compareFixedSizeList;\nTypeComparator.prototype.visitMap = compareMap;\n/** @ignore */\nexports.instance = new TypeComparator();\nfunction compareSchemas(schema, other) {\n return exports.instance.compareSchemas(schema, other);\n}\nexports.compareSchemas = compareSchemas;\nfunction compareFields(field, other) {\n return exports.instance.compareFields(field, other);\n}\nexports.compareFields = compareFields;\nfunction compareTypes(type, other) {\n return exports.instance.visit(type, other);\n}\nexports.compareTypes = compareTypes;\n\n//# sourceMappingURL=typecomparator.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.distributeVectorsIntoRecordBatches = exports.distributeColumnsIntoRecordBatches = exports.ensureSameLengthData = void 0;\nconst data_1 = require(\"../data\");\nconst schema_1 = require(\"../schema\");\nconst chunked_1 = require(\"../vector/chunked\");\nconst recordbatch_1 = require(\"../recordbatch\");\nconst noopBuf = new Uint8Array(0);\nconst nullBufs = (bitmapLength) => [\n noopBuf, noopBuf, new Uint8Array(bitmapLength), noopBuf\n];\n/** @ignore */\nfunction ensureSameLengthData(schema, chunks, batchLength = chunks.reduce((l, c) => Math.max(l, c.length), 0)) {\n let data;\n let field;\n let i = -1;\n const n = chunks.length;\n const fields = [...schema.fields];\n const batchData = [];\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = chunks[i]) && data.length === batchLength) {\n batchData[i] = data;\n }\n else {\n (field = fields[i]).nullable || (fields[i] = fields[i].clone({ nullable: true }));\n batchData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : data_1.Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength));\n }\n }\n return [new schema_1.Schema(fields), batchLength, batchData];\n}\nexports.ensureSameLengthData = ensureSameLengthData;\n/** @ignore */\nfunction distributeColumnsIntoRecordBatches(columns) {\n return distributeVectorsIntoRecordBatches(new schema_1.Schema(columns.map(({ field }) => field)), columns);\n}\nexports.distributeColumnsIntoRecordBatches = distributeColumnsIntoRecordBatches;\n/** @ignore */\nfunction distributeVectorsIntoRecordBatches(schema, vecs) {\n return uniformlyDistributeChunksAcrossRecordBatches(schema, vecs.map((v) => v instanceof chunked_1.Chunked ? v.chunks.map((c) => c.data) : [v.data]));\n}\nexports.distributeVectorsIntoRecordBatches = distributeVectorsIntoRecordBatches;\n/** @ignore */\nfunction uniformlyDistributeChunksAcrossRecordBatches(schema, columns) {\n const fields = [...schema.fields];\n const batchArgs = [];\n const memo = { numBatches: columns.reduce((n, c) => Math.max(n, c.length), 0) };\n let numBatches = 0, batchLength = 0;\n let i = -1;\n const numColumns = columns.length;\n let child, childData = [];\n while (memo.numBatches-- > 0) {\n for (batchLength = Number.POSITIVE_INFINITY, i = -1; ++i < numColumns;) {\n childData[i] = child = columns[i].shift();\n batchLength = Math.min(batchLength, child ? child.length : batchLength);\n }\n if (isFinite(batchLength)) {\n childData = distributeChildData(fields, batchLength, childData, columns, memo);\n if (batchLength > 0) {\n batchArgs[numBatches++] = [batchLength, childData.slice()];\n }\n }\n }\n return [\n schema = new schema_1.Schema(fields, schema.metadata),\n batchArgs.map((xs) => new recordbatch_1.RecordBatch(schema, ...xs))\n ];\n}\n/** @ignore */\nfunction distributeChildData(fields, batchLength, childData, columns, memo) {\n let data;\n let field;\n let length = 0, i = -1;\n const n = columns.length;\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = childData[i]) && ((length = data.length) >= batchLength)) {\n if (length === batchLength) {\n childData[i] = data;\n }\n else {\n childData[i] = data.slice(0, batchLength);\n data = data.slice(batchLength, length - batchLength);\n memo.numBatches = Math.max(memo.numBatches, columns[i].unshift(data));\n }\n }\n else {\n (field = fields[i]).nullable || (fields[i] = field.clone({ nullable: true }));\n childData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : data_1.Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength));\n }\n }\n return childData;\n}\n\n//# sourceMappingURL=recordbatch.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryVector = void 0;\nconst vector_1 = require(\"../vector\");\nconst base_1 = require(\"./base\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass BinaryVector extends base_1.BaseVector {\n asUtf8() {\n return vector_1.Vector.new(this.data.clone(new type_1.Utf8()));\n }\n}\nexports.BinaryVector = BinaryVector;\n\n//# sourceMappingURL=binary.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BoolVector = void 0;\nconst type_1 = require(\"../type\");\nconst base_1 = require(\"./base\");\nconst index_1 = require(\"./index\");\n/** @ignore */\nclass BoolVector extends base_1.BaseVector {\n /** @nocollapse */\n static from(input) {\n return index_1.vectorFromValuesWithType(() => new type_1.Bool(), input);\n }\n}\nexports.BoolVector = BoolVector;\n\n//# sourceMappingURL=bool.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateMillisecondVector = exports.DateDayVector = exports.DateVector = void 0;\nconst enum_1 = require(\"../enum\");\nconst base_1 = require(\"./base\");\nconst index_1 = require(\"./index\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass DateVector extends base_1.BaseVector {\n /** @nocollapse */\n static from(...args) {\n if (args.length === 2) {\n return index_1.vectorFromValuesWithType(() => args[1] === enum_1.DateUnit.DAY ? new type_1.DateDay() : new type_1.DateMillisecond(), args[0]);\n }\n return index_1.vectorFromValuesWithType(() => new type_1.DateMillisecond(), args[0]);\n }\n}\nexports.DateVector = DateVector;\n/** @ignore */\nclass DateDayVector extends DateVector {\n}\nexports.DateDayVector = DateDayVector;\n/** @ignore */\nclass DateMillisecondVector extends DateVector {\n}\nexports.DateMillisecondVector = DateMillisecondVector;\n\n//# sourceMappingURL=date.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DecimalVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass DecimalVector extends base_1.BaseVector {\n}\nexports.DecimalVector = DecimalVector;\n\n//# sourceMappingURL=decimal.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FixedSizeBinaryVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass FixedSizeBinaryVector extends base_1.BaseVector {\n}\nexports.FixedSizeBinaryVector = FixedSizeBinaryVector;\n\n//# sourceMappingURL=fixedsizebinary.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FixedSizeListVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass FixedSizeListVector extends base_1.BaseVector {\n}\nexports.FixedSizeListVector = FixedSizeListVector;\n\n//# sourceMappingURL=fixedsizelist.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Float64Vector = exports.Float32Vector = exports.Float16Vector = exports.FloatVector = void 0;\nconst data_1 = require(\"../data\");\nconst vector_1 = require(\"../vector\");\nconst base_1 = require(\"./base\");\nconst index_1 = require(\"./index\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass FloatVector extends base_1.BaseVector {\n /** @nocollapse */\n static from(input) {\n let ArrowType = vectorTypeToDataType(this);\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n const InputType = arrayTypeToDataType(input.constructor) || ArrowType;\n // Special case, infer the Arrow DataType from the input if calling the base\n // FloatVector.from with a TypedArray, e.g. `FloatVector.from(new Float32Array())`\n if (ArrowType === null) {\n ArrowType = InputType;\n }\n // If the DataType inferred from the Vector constructor matches the\n // DataType inferred from the input arguments, return zero-copy view\n if (ArrowType && ArrowType === InputType) {\n const type = new ArrowType();\n const length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is Float16 but the input type isn't a Uint16Array,\n // let the Float16Builder handle casting the input values to Uint16s.\n if (!convertTo16Bit(ArrowType, input.constructor)) {\n return vector_1.Vector.new(data_1.Data.Float(type, 0, length, 0, null, input));\n }\n }\n }\n if (ArrowType) {\n // If the DataType inferred from the Vector constructor is different than\n // the DataType inferred from the input TypedArray, or if input isn't a\n // TypedArray, use the Builders to construct the result Vector\n return index_1.vectorFromValuesWithType(() => new ArrowType(), input);\n }\n if ((input instanceof DataView) || (input instanceof ArrayBuffer)) {\n throw new TypeError(`Cannot infer float type from instance of ${input.constructor.name}`);\n }\n throw new TypeError('Unrecognized FloatVector input');\n }\n}\nexports.FloatVector = FloatVector;\n/** @ignore */\nclass Float16Vector extends FloatVector {\n // Since JS doesn't have half floats, `toArray()` returns a zero-copy slice\n // of the underlying Uint16Array data. This behavior ensures we don't incur\n // extra compute or copies if you're calling `toArray()` in order to create\n // a buffer for something like WebGL. Buf if you're using JS and want typed\n // arrays of 4-to-8-byte precision, these methods will enumerate the values\n // and clamp to the desired byte lengths.\n toFloat32Array() { return new Float32Array(this); }\n toFloat64Array() { return new Float64Array(this); }\n}\nexports.Float16Vector = Float16Vector;\n/** @ignore */\nclass Float32Vector extends FloatVector {\n}\nexports.Float32Vector = Float32Vector;\n/** @ignore */\nclass Float64Vector extends FloatVector {\n}\nexports.Float64Vector = Float64Vector;\nconst convertTo16Bit = (typeCtor, dataCtor) => {\n return (typeCtor === type_1.Float16) && (dataCtor !== Uint16Array);\n};\n/** @ignore */\nconst arrayTypeToDataType = (ctor) => {\n switch (ctor) {\n case Uint16Array: return type_1.Float16;\n case Float32Array: return type_1.Float32;\n case Float64Array: return type_1.Float64;\n default: return null;\n }\n};\n/** @ignore */\nconst vectorTypeToDataType = (ctor) => {\n switch (ctor) {\n case Float16Vector: return type_1.Float16;\n case Float32Vector: return type_1.Float32;\n case Float64Vector: return type_1.Float64;\n default: return null;\n }\n};\n\n//# sourceMappingURL=float.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IntervalYearMonthVector = exports.IntervalDayTimeVector = exports.IntervalVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass IntervalVector extends base_1.BaseVector {\n}\nexports.IntervalVector = IntervalVector;\n/** @ignore */\nclass IntervalDayTimeVector extends IntervalVector {\n}\nexports.IntervalDayTimeVector = IntervalDayTimeVector;\n/** @ignore */\nclass IntervalYearMonthVector extends IntervalVector {\n}\nexports.IntervalYearMonthVector = IntervalYearMonthVector;\n\n//# sourceMappingURL=interval.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass ListVector extends base_1.BaseVector {\n}\nexports.ListVector = ListVector;\n\n//# sourceMappingURL=list.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapVector = void 0;\nconst row_1 = require(\"./row\");\nconst vector_1 = require(\"../vector\");\nconst base_1 = require(\"./base\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass MapVector extends base_1.BaseVector {\n asList() {\n const child = this.type.children[0];\n return vector_1.Vector.new(this.data.clone(new type_1.List(child)));\n }\n bind(index) {\n const child = this.getChildAt(0);\n const { [index]: begin, [index + 1]: end } = this.valueOffsets;\n return new row_1.MapRow(child.slice(begin, end));\n }\n}\nexports.MapVector = MapVector;\n\n//# sourceMappingURL=map.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NullVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass NullVector extends base_1.BaseVector {\n}\nexports.NullVector = NullVector;\n\n//# sourceMappingURL=null.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StructVector = void 0;\nconst row_1 = require(\"./row\");\nconst base_1 = require(\"./base\");\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */\nclass StructVector extends base_1.BaseVector {\n bind(index) {\n const proto = this._row || (this._row = new row_1.StructRow(this));\n const bound = Object.create(proto);\n bound[kRowIndex] = index;\n return bound;\n }\n}\nexports.StructVector = StructVector;\n\n//# sourceMappingURL=struct.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimestampNanosecondVector = exports.TimestampMicrosecondVector = exports.TimestampMillisecondVector = exports.TimestampSecondVector = exports.TimestampVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass TimestampVector extends base_1.BaseVector {\n}\nexports.TimestampVector = TimestampVector;\n/** @ignore */\nclass TimestampSecondVector extends TimestampVector {\n}\nexports.TimestampSecondVector = TimestampSecondVector;\n/** @ignore */\nclass TimestampMillisecondVector extends TimestampVector {\n}\nexports.TimestampMillisecondVector = TimestampMillisecondVector;\n/** @ignore */\nclass TimestampMicrosecondVector extends TimestampVector {\n}\nexports.TimestampMicrosecondVector = TimestampMicrosecondVector;\n/** @ignore */\nclass TimestampNanosecondVector extends TimestampVector {\n}\nexports.TimestampNanosecondVector = TimestampNanosecondVector;\n\n//# sourceMappingURL=timestamp.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeNanosecondVector = exports.TimeMicrosecondVector = exports.TimeMillisecondVector = exports.TimeSecondVector = exports.TimeVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass TimeVector extends base_1.BaseVector {\n}\nexports.TimeVector = TimeVector;\n/** @ignore */\nclass TimeSecondVector extends TimeVector {\n}\nexports.TimeSecondVector = TimeSecondVector;\n/** @ignore */\nclass TimeMillisecondVector extends TimeVector {\n}\nexports.TimeMillisecondVector = TimeMillisecondVector;\n/** @ignore */\nclass TimeMicrosecondVector extends TimeVector {\n}\nexports.TimeMicrosecondVector = TimeMicrosecondVector;\n/** @ignore */\nclass TimeNanosecondVector extends TimeVector {\n}\nexports.TimeNanosecondVector = TimeNanosecondVector;\n\n//# sourceMappingURL=time.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SparseUnionVector = exports.DenseUnionVector = exports.UnionVector = void 0;\nconst base_1 = require(\"./base\");\n/** @ignore */\nclass UnionVector extends base_1.BaseVector {\n get typeIdToChildIndex() { return this.data.type.typeIdToChildIndex; }\n}\nexports.UnionVector = UnionVector;\n/** @ignore */\nclass DenseUnionVector extends UnionVector {\n get valueOffsets() { return this.data.valueOffsets; }\n}\nexports.DenseUnionVector = DenseUnionVector;\n/** @ignore */\nclass SparseUnionVector extends UnionVector {\n}\nexports.SparseUnionVector = SparseUnionVector;\n\n//# sourceMappingURL=union.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Utf8Vector = void 0;\nconst vector_1 = require(\"../vector\");\nconst base_1 = require(\"./base\");\nconst type_1 = require(\"../type\");\nconst index_1 = require(\"./index\");\n/** @ignore */\nclass Utf8Vector extends base_1.BaseVector {\n /** @nocollapse */\n static from(input) {\n return index_1.vectorFromValuesWithType(() => new type_1.Utf8(), input);\n }\n asBinary() {\n return vector_1.Vector.new(this.data.clone(new type_1.Binary()));\n }\n}\nexports.Utf8Vector = Utf8Vector;\n\n//# sourceMappingURL=utf8.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.GetVisitor = void 0;\nconst bn_1 = require(\"../util/bn\");\nconst visitor_1 = require(\"../visitor\");\nconst utf8_1 = require(\"../util/utf8\");\nconst math_1 = require(\"../util/math\");\nconst enum_1 = require(\"../enum\");\n/** @ignore */\nclass GetVisitor extends visitor_1.Visitor {\n}\nexports.GetVisitor = GetVisitor;\n/** @ignore */ const epochDaysToMs = (data, index) => 86400000 * data[index];\n/** @ignore */ const epochMillisecondsLongToMs = (data, index) => 4294967296 * (data[index + 1]) + (data[index] >>> 0);\n/** @ignore */ const epochMicrosecondsLongToMs = (data, index) => 4294967296 * (data[index + 1] / 1000) + ((data[index] >>> 0) / 1000);\n/** @ignore */ const epochNanosecondsLongToMs = (data, index) => 4294967296 * (data[index + 1] / 1000000) + ((data[index] >>> 0) / 1000000);\n/** @ignore */ const epochMillisecondsToDate = (epochMs) => new Date(epochMs);\n/** @ignore */ const epochDaysToDate = (data, index) => epochMillisecondsToDate(epochDaysToMs(data, index));\n/** @ignore */ const epochMillisecondsLongToDate = (data, index) => epochMillisecondsToDate(epochMillisecondsLongToMs(data, index));\n/** @ignore */\nconst getNull = (_vector, _index) => null;\n/** @ignore */\nconst getVariableWidthBytes = (values, valueOffsets, index) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n return x != null && y != null ? values.subarray(x, y) : null;\n};\n/** @ignore */\nconst getBool = ({ offset, values }, index) => {\n const idx = offset + index;\n const byte = values[idx >> 3];\n return (byte & 1 << (idx % 8)) !== 0;\n};\n/** @ignore */\nconst getDateDay = ({ values }, index) => epochDaysToDate(values, index);\n/** @ignore */\nconst getDateMillisecond = ({ values }, index) => epochMillisecondsLongToDate(values, index * 2);\n/** @ignore */\nconst getNumeric = ({ stride, values }, index) => values[stride * index];\n/** @ignore */\nconst getFloat16 = ({ stride, values }, index) => math_1.uint16ToFloat64(values[stride * index]);\n/** @ignore */\nconst getBigInts = ({ stride, values, type }, index) => bn_1.BN.new(values.subarray(stride * index, stride * (index + 1)), type.isSigned);\n/** @ignore */\nconst getFixedSizeBinary = ({ stride, values }, index) => values.subarray(stride * index, stride * (index + 1));\n/** @ignore */\nconst getBinary = ({ values, valueOffsets }, index) => getVariableWidthBytes(values, valueOffsets, index);\n/** @ignore */\nconst getUtf8 = ({ values, valueOffsets }, index) => {\n const bytes = getVariableWidthBytes(values, valueOffsets, index);\n return bytes !== null ? utf8_1.decodeUtf8(bytes) : null;\n};\n/* istanbul ignore next */\n/** @ignore */\nconst getInt = (vector, index) => (vector.type.bitWidth < 64\n ? getNumeric(vector, index)\n : getBigInts(vector, index));\n/* istanbul ignore next */\n/** @ignore */\nconst getFloat = (vector, index) => (vector.type.precision !== enum_1.Precision.HALF\n ? getNumeric(vector, index)\n : getFloat16(vector, index));\n/* istanbul ignore next */\n/** @ignore */\nconst getDate = (vector, index) => (vector.type.unit === enum_1.DateUnit.DAY\n ? getDateDay(vector, index)\n : getDateMillisecond(vector, index));\n/** @ignore */\nconst getTimestampSecond = ({ values }, index) => 1000 * epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMillisecond = ({ values }, index) => epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMicrosecond = ({ values }, index) => epochMicrosecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampNanosecond = ({ values }, index) => epochNanosecondsLongToMs(values, index * 2);\n/* istanbul ignore next */\n/** @ignore */\nconst getTimestamp = (vector, index) => {\n switch (vector.type.unit) {\n case enum_1.TimeUnit.SECOND: return getTimestampSecond(vector, index);\n case enum_1.TimeUnit.MILLISECOND: return getTimestampMillisecond(vector, index);\n case enum_1.TimeUnit.MICROSECOND: return getTimestampMicrosecond(vector, index);\n case enum_1.TimeUnit.NANOSECOND: return getTimestampNanosecond(vector, index);\n }\n};\n/** @ignore */\nconst getTimeSecond = ({ values, stride }, index) => values[stride * index];\n/** @ignore */\nconst getTimeMillisecond = ({ values, stride }, index) => values[stride * index];\n/** @ignore */\nconst getTimeMicrosecond = ({ values }, index) => bn_1.BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/** @ignore */\nconst getTimeNanosecond = ({ values }, index) => bn_1.BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/* istanbul ignore next */\n/** @ignore */\nconst getTime = (vector, index) => {\n switch (vector.type.unit) {\n case enum_1.TimeUnit.SECOND: return getTimeSecond(vector, index);\n case enum_1.TimeUnit.MILLISECOND: return getTimeMillisecond(vector, index);\n case enum_1.TimeUnit.MICROSECOND: return getTimeMicrosecond(vector, index);\n case enum_1.TimeUnit.NANOSECOND: return getTimeNanosecond(vector, index);\n }\n};\n/** @ignore */\nconst getDecimal = ({ values }, index) => bn_1.BN.decimal(values.subarray(4 * index, 4 * (index + 1)));\n/** @ignore */\nconst getList = (vector, index) => {\n const child = vector.getChildAt(0), { valueOffsets, stride } = vector;\n return child.slice(valueOffsets[index * stride], valueOffsets[(index * stride) + 1]);\n};\n/** @ignore */\nconst getMap = (vector, index) => {\n return vector.bind(index);\n};\n/** @ignore */\nconst getStruct = (vector, index) => {\n return vector.bind(index);\n};\n/* istanbul ignore next */\n/** @ignore */\nconst getUnion = (vector, index) => {\n return vector.type.mode === enum_1.UnionMode.Dense ?\n getDenseUnion(vector, index) :\n getSparseUnion(vector, index);\n};\n/** @ignore */\nconst getDenseUnion = (vector, index) => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(vector.valueOffsets[index]) : null;\n};\n/** @ignore */\nconst getSparseUnion = (vector, index) => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(index) : null;\n};\n/** @ignore */\nconst getDictionary = (vector, index) => {\n return vector.getValue(vector.getKey(index));\n};\n/* istanbul ignore next */\n/** @ignore */\nconst getInterval = (vector, index) => (vector.type.unit === enum_1.IntervalUnit.DAY_TIME)\n ? getIntervalDayTime(vector, index)\n : getIntervalYearMonth(vector, index);\n/** @ignore */\nconst getIntervalDayTime = ({ values }, index) => values.subarray(2 * index, 2 * (index + 1));\n/** @ignore */\nconst getIntervalYearMonth = ({ values }, index) => {\n const interval = values[index];\n const int32s = new Int32Array(2);\n int32s[0] = interval / 12 | 0; /* years */\n int32s[1] = interval % 12 | 0; /* months */\n return int32s;\n};\n/** @ignore */\nconst getFixedSizeList = (vector, index) => {\n const child = vector.getChildAt(0), { stride } = vector;\n return child.slice(index * stride, (index + 1) * stride);\n};\nGetVisitor.prototype.visitNull = getNull;\nGetVisitor.prototype.visitBool = getBool;\nGetVisitor.prototype.visitInt = getInt;\nGetVisitor.prototype.visitInt8 = getNumeric;\nGetVisitor.prototype.visitInt16 = getNumeric;\nGetVisitor.prototype.visitInt32 = getNumeric;\nGetVisitor.prototype.visitInt64 = getBigInts;\nGetVisitor.prototype.visitUint8 = getNumeric;\nGetVisitor.prototype.visitUint16 = getNumeric;\nGetVisitor.prototype.visitUint32 = getNumeric;\nGetVisitor.prototype.visitUint64 = getBigInts;\nGetVisitor.prototype.visitFloat = getFloat;\nGetVisitor.prototype.visitFloat16 = getFloat16;\nGetVisitor.prototype.visitFloat32 = getNumeric;\nGetVisitor.prototype.visitFloat64 = getNumeric;\nGetVisitor.prototype.visitUtf8 = getUtf8;\nGetVisitor.prototype.visitBinary = getBinary;\nGetVisitor.prototype.visitFixedSizeBinary = getFixedSizeBinary;\nGetVisitor.prototype.visitDate = getDate;\nGetVisitor.prototype.visitDateDay = getDateDay;\nGetVisitor.prototype.visitDateMillisecond = getDateMillisecond;\nGetVisitor.prototype.visitTimestamp = getTimestamp;\nGetVisitor.prototype.visitTimestampSecond = getTimestampSecond;\nGetVisitor.prototype.visitTimestampMillisecond = getTimestampMillisecond;\nGetVisitor.prototype.visitTimestampMicrosecond = getTimestampMicrosecond;\nGetVisitor.prototype.visitTimestampNanosecond = getTimestampNanosecond;\nGetVisitor.prototype.visitTime = getTime;\nGetVisitor.prototype.visitTimeSecond = getTimeSecond;\nGetVisitor.prototype.visitTimeMillisecond = getTimeMillisecond;\nGetVisitor.prototype.visitTimeMicrosecond = getTimeMicrosecond;\nGetVisitor.prototype.visitTimeNanosecond = getTimeNanosecond;\nGetVisitor.prototype.visitDecimal = getDecimal;\nGetVisitor.prototype.visitList = getList;\nGetVisitor.prototype.visitStruct = getStruct;\nGetVisitor.prototype.visitUnion = getUnion;\nGetVisitor.prototype.visitDenseUnion = getDenseUnion;\nGetVisitor.prototype.visitSparseUnion = getSparseUnion;\nGetVisitor.prototype.visitDictionary = getDictionary;\nGetVisitor.prototype.visitInterval = getInterval;\nGetVisitor.prototype.visitIntervalDayTime = getIntervalDayTime;\nGetVisitor.prototype.visitIntervalYearMonth = getIntervalYearMonth;\nGetVisitor.prototype.visitFixedSizeList = getFixedSizeList;\nGetVisitor.prototype.visitMap = getMap;\n/** @ignore */\nexports.instance = new GetVisitor();\n\n//# sourceMappingURL=get.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.IteratorVisitor = void 0;\nconst enum_1 = require(\"../enum\");\nconst visitor_1 = require(\"../visitor\");\nconst bit_1 = require(\"../util/bit\");\nconst get_1 = require(\"./get\");\n/** @ignore */\nclass IteratorVisitor extends visitor_1.Visitor {\n}\nexports.IteratorVisitor = IteratorVisitor;\n/** @ignore */\nfunction nullableIterator(vector) {\n const getFn = get_1.instance.getVisitFn(vector);\n return new bit_1.BitIterator(vector.data.nullBitmap, vector.data.offset, vector.length, vector, (vec, idx, nullByte, nullBit) => ((nullByte & 1 << nullBit) !== 0) ? getFn(vec, idx) : null);\n}\n/** @ignore */\nclass VectorIterator {\n constructor(vector, getFn) {\n this.vector = vector;\n this.getFn = getFn;\n this.index = 0;\n }\n next() {\n if (this.index < this.vector.length) {\n return {\n value: this.getFn(this.vector, this.index++)\n };\n }\n return { done: true, value: null };\n }\n [Symbol.iterator]() {\n return this;\n }\n}\n/** @ignore */\nfunction vectorIterator(vector) {\n // If nullable, iterate manually\n if (vector.nullCount > 0) {\n return nullableIterator(vector);\n }\n const { type, typeId, length } = vector;\n // Fast case, defer to native iterators if possible\n if (vector.stride === 1 && ((typeId === enum_1.Type.Timestamp) ||\n (typeId === enum_1.Type.Int && type.bitWidth !== 64) ||\n (typeId === enum_1.Type.Time && type.bitWidth !== 64) ||\n (typeId === enum_1.Type.Float && type.precision > 0 /* Precision.HALF */))) {\n return vector.data.values.subarray(0, length)[Symbol.iterator]();\n }\n // Otherwise, iterate manually\n return new VectorIterator(vector, get_1.instance.getVisitFn(vector));\n}\nIteratorVisitor.prototype.visitNull = vectorIterator;\nIteratorVisitor.prototype.visitBool = vectorIterator;\nIteratorVisitor.prototype.visitInt = vectorIterator;\nIteratorVisitor.prototype.visitInt8 = vectorIterator;\nIteratorVisitor.prototype.visitInt16 = vectorIterator;\nIteratorVisitor.prototype.visitInt32 = vectorIterator;\nIteratorVisitor.prototype.visitInt64 = vectorIterator;\nIteratorVisitor.prototype.visitUint8 = vectorIterator;\nIteratorVisitor.prototype.visitUint16 = vectorIterator;\nIteratorVisitor.prototype.visitUint32 = vectorIterator;\nIteratorVisitor.prototype.visitUint64 = vectorIterator;\nIteratorVisitor.prototype.visitFloat = vectorIterator;\nIteratorVisitor.prototype.visitFloat16 = vectorIterator;\nIteratorVisitor.prototype.visitFloat32 = vectorIterator;\nIteratorVisitor.prototype.visitFloat64 = vectorIterator;\nIteratorVisitor.prototype.visitUtf8 = vectorIterator;\nIteratorVisitor.prototype.visitBinary = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeBinary = vectorIterator;\nIteratorVisitor.prototype.visitDate = vectorIterator;\nIteratorVisitor.prototype.visitDateDay = vectorIterator;\nIteratorVisitor.prototype.visitDateMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestamp = vectorIterator;\nIteratorVisitor.prototype.visitTimestampSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitTime = vectorIterator;\nIteratorVisitor.prototype.visitTimeSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitDecimal = vectorIterator;\nIteratorVisitor.prototype.visitList = vectorIterator;\nIteratorVisitor.prototype.visitStruct = vectorIterator;\nIteratorVisitor.prototype.visitUnion = vectorIterator;\nIteratorVisitor.prototype.visitDenseUnion = vectorIterator;\nIteratorVisitor.prototype.visitSparseUnion = vectorIterator;\nIteratorVisitor.prototype.visitDictionary = vectorIterator;\nIteratorVisitor.prototype.visitInterval = vectorIterator;\nIteratorVisitor.prototype.visitIntervalDayTime = vectorIterator;\nIteratorVisitor.prototype.visitIntervalYearMonth = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeList = vectorIterator;\nIteratorVisitor.prototype.visitMap = vectorIterator;\n/** @ignore */\nexports.instance = new IteratorVisitor();\n\n//# sourceMappingURL=iterator.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.custom = exports.or = exports.and = exports.col = exports.lit = exports.CustomPredicate = exports.Not = exports.GTeq = exports.LTeq = exports.Equals = exports.Or = exports.And = exports.CombinationPredicate = exports.ComparisonPredicate = exports.Predicate = exports.Col = exports.Literal = exports.Value = void 0;\nconst dictionary_1 = require(\"../vector/dictionary\");\n/** @ignore */\nclass Value {\n eq(other) {\n if (!(other instanceof Value)) {\n other = new Literal(other);\n }\n return new Equals(this, other);\n }\n le(other) {\n if (!(other instanceof Value)) {\n other = new Literal(other);\n }\n return new LTeq(this, other);\n }\n ge(other) {\n if (!(other instanceof Value)) {\n other = new Literal(other);\n }\n return new GTeq(this, other);\n }\n lt(other) {\n return new Not(this.ge(other));\n }\n gt(other) {\n return new Not(this.le(other));\n }\n ne(other) {\n return new Not(this.eq(other));\n }\n}\nexports.Value = Value;\n/** @ignore */\nclass Literal extends Value {\n constructor(v) {\n super();\n this.v = v;\n }\n}\nexports.Literal = Literal;\n/** @ignore */\nclass Col extends Value {\n constructor(name) {\n super();\n this.name = name;\n }\n bind(batch) {\n if (!this.colidx) {\n // Assume column index doesn't change between calls to bind\n //this.colidx = cols.findIndex(v => v.name.indexOf(this.name) != -1);\n this.colidx = -1;\n const fields = batch.schema.fields;\n for (let idx = -1; ++idx < fields.length;) {\n if (fields[idx].name === this.name) {\n this.colidx = idx;\n break;\n }\n }\n if (this.colidx < 0) {\n throw new Error(`Failed to bind Col \"${this.name}\"`);\n }\n }\n const vec = this.vector = batch.getChildAt(this.colidx);\n return (idx) => vec.get(idx);\n }\n}\nexports.Col = Col;\n/** @ignore */\nclass Predicate {\n and(...expr) { return new And(this, ...expr); }\n or(...expr) { return new Or(this, ...expr); }\n not() { return new Not(this); }\n}\nexports.Predicate = Predicate;\n/** @ignore */\nclass ComparisonPredicate extends Predicate {\n constructor(left, right) {\n super();\n this.left = left;\n this.right = right;\n }\n bind(batch) {\n if (this.left instanceof Literal) {\n if (this.right instanceof Literal) {\n return this._bindLitLit(batch, this.left, this.right);\n }\n else { // right is a Col\n return this._bindLitCol(batch, this.left, this.right);\n }\n }\n else { // left is a Col\n if (this.right instanceof Literal) {\n return this._bindColLit(batch, this.left, this.right);\n }\n else { // right is a Col\n return this._bindColCol(batch, this.left, this.right);\n }\n }\n }\n}\nexports.ComparisonPredicate = ComparisonPredicate;\n/** @ignore */\nclass CombinationPredicate extends Predicate {\n constructor(...children) {\n super();\n this.children = children;\n }\n}\nexports.CombinationPredicate = CombinationPredicate;\n// add children to prototype so it doesn't get mangled in es2015/umd\nCombinationPredicate.prototype.children = Object.freeze([]); // freeze for safety\n/** @ignore */\nclass And extends CombinationPredicate {\n constructor(...children) {\n // Flatten any Ands\n children = children.reduce((accum, p) => {\n return accum.concat(p instanceof And ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx, batch) => bound.every((p) => p(idx, batch));\n }\n}\nexports.And = And;\n/** @ignore */\nclass Or extends CombinationPredicate {\n constructor(...children) {\n // Flatten any Ors\n children = children.reduce((accum, p) => {\n return accum.concat(p instanceof Or ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx, batch) => bound.some((p) => p(idx, batch));\n }\n}\nexports.Or = Or;\n/** @ignore */\nclass Equals extends ComparisonPredicate {\n _bindLitLit(_batch, left, right) {\n const rtrn = left.v == right.v;\n return () => rtrn;\n }\n _bindColCol(batch, left, right) {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx, batch) => left_func(idx, batch) == right_func(idx, batch);\n }\n _bindColLit(batch, col, lit) {\n const col_func = col.bind(batch);\n if (col.vector instanceof dictionary_1.DictionaryVector) {\n let key;\n const vector = col.vector;\n if (vector.dictionary !== this.lastDictionary) {\n key = vector.reverseLookup(lit.v);\n this.lastDictionary = vector.dictionary;\n this.lastKey = key;\n }\n else {\n key = this.lastKey;\n }\n if (key === -1) {\n // the value doesn't exist in the dictionary - always return\n // false\n // TODO: special-case of PredicateFunc that encapsulates this\n // \"always false\" behavior. That way filtering operations don't\n // have to bother checking\n return () => false;\n }\n else {\n return (idx) => {\n return vector.getKey(idx) === key;\n };\n }\n }\n else {\n return (idx, cols) => col_func(idx, cols) == lit.v;\n }\n }\n _bindLitCol(batch, lit, col) {\n // Equals is commutative\n return this._bindColLit(batch, col, lit);\n }\n}\nexports.Equals = Equals;\n/** @ignore */\nclass LTeq extends ComparisonPredicate {\n _bindLitLit(_batch, left, right) {\n const rtrn = left.v <= right.v;\n return () => rtrn;\n }\n _bindColCol(batch, left, right) {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx, cols) => left_func(idx, cols) <= right_func(idx, cols);\n }\n _bindColLit(batch, col, lit) {\n const col_func = col.bind(batch);\n return (idx, cols) => col_func(idx, cols) <= lit.v;\n }\n _bindLitCol(batch, lit, col) {\n const col_func = col.bind(batch);\n return (idx, cols) => lit.v <= col_func(idx, cols);\n }\n}\nexports.LTeq = LTeq;\n/** @ignore */\nclass GTeq extends ComparisonPredicate {\n _bindLitLit(_batch, left, right) {\n const rtrn = left.v >= right.v;\n return () => rtrn;\n }\n _bindColCol(batch, left, right) {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx, cols) => left_func(idx, cols) >= right_func(idx, cols);\n }\n _bindColLit(batch, col, lit) {\n const col_func = col.bind(batch);\n return (idx, cols) => col_func(idx, cols) >= lit.v;\n }\n _bindLitCol(batch, lit, col) {\n const col_func = col.bind(batch);\n return (idx, cols) => lit.v >= col_func(idx, cols);\n }\n}\nexports.GTeq = GTeq;\n/** @ignore */\nclass Not extends Predicate {\n constructor(child) {\n super();\n this.child = child;\n }\n bind(batch) {\n const func = this.child.bind(batch);\n return (idx, batch) => !func(idx, batch);\n }\n}\nexports.Not = Not;\n/** @ignore */\nclass CustomPredicate extends Predicate {\n constructor(next, bind_) {\n super();\n this.next = next;\n this.bind_ = bind_;\n }\n bind(batch) {\n this.bind_(batch);\n return this.next;\n }\n}\nexports.CustomPredicate = CustomPredicate;\nfunction lit(v) { return new Literal(v); }\nexports.lit = lit;\nfunction col(n) { return new Col(n); }\nexports.col = col;\nfunction and(...p) { return new And(...p); }\nexports.and = and;\nfunction or(...p) { return new Or(...p); }\nexports.or = or;\nfunction custom(next, bind) {\n return new CustomPredicate(next, bind);\n}\nexports.custom = custom;\n\n//# sourceMappingURL=predicate.js.map\n","// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.<number>} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.<number>} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.<number>|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.<number>} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.<number>)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.<number>}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.<number>)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.<number>}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.<number>)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.<number>)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexports.TextEncoder = TextEncoder;\nexports.TextDecoder = TextDecoder;","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createIsValidFunction = void 0;\nconst pretty_1 = require(\"../util/pretty\");\nconst compat_1 = require(\"../util/compat\");\n/**\n * Dynamically compile the null values into an `isValid()` function whose\n * implementation is a switch statement. Microbenchmarks in v8 indicate\n * this approach is 25% faster than using an ES6 Map.\n *\n * @example\n * console.log(createIsValidFunction([null, 'N/A', NaN]));\n * `function (x) {\n * if (x !== x) return false;\n * switch (x) {\n * case null:\n * case \"N/A\":\n * return false;\n * }\n * return true;\n * }`\n *\n * @ignore\n * @param nullValues\n */\nfunction createIsValidFunction(nullValues) {\n if (!nullValues || nullValues.length <= 0) {\n // @ts-ignore\n return function isValid(value) { return true; };\n }\n let fnBody = '';\n const noNaNs = nullValues.filter((x) => x === x);\n if (noNaNs.length > 0) {\n fnBody = `\n switch (x) {${noNaNs.map((x) => `\n case ${valueToCase(x)}:`).join('')}\n return false;\n }`;\n }\n // NaN doesn't equal anything including itself, so it doesn't work as a\n // switch case. Instead we must explicitly check for NaN before the switch.\n if (nullValues.length !== noNaNs.length) {\n fnBody = `if (x !== x) return false;\\n${fnBody}`;\n }\n return new Function(`x`, `${fnBody}\\nreturn true;`);\n}\nexports.createIsValidFunction = createIsValidFunction;\n/** @ignore */\nfunction valueToCase(x) {\n if (typeof x !== 'bigint') {\n return pretty_1.valueToString(x);\n }\n else if (compat_1.BigIntAvailable) {\n return `${pretty_1.valueToString(x)}n`;\n }\n return `\"${pretty_1.valueToString(x)}\"`;\n}\n\n//# sourceMappingURL=valid.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.GetBuilderCtor = void 0;\nconst visitor_1 = require(\"../visitor\");\nconst binary_1 = require(\"../builder/binary\");\nconst bool_1 = require(\"../builder/bool\");\nconst date_1 = require(\"../builder/date\");\nconst decimal_1 = require(\"../builder/decimal\");\nconst dictionary_1 = require(\"../builder/dictionary\");\nconst fixedsizebinary_1 = require(\"../builder/fixedsizebinary\");\nconst fixedsizelist_1 = require(\"../builder/fixedsizelist\");\nconst float_1 = require(\"../builder/float\");\nconst interval_1 = require(\"../builder/interval\");\nconst int_1 = require(\"../builder/int\");\nconst list_1 = require(\"../builder/list\");\nconst map_1 = require(\"../builder/map\");\nconst null_1 = require(\"../builder/null\");\nconst struct_1 = require(\"../builder/struct\");\nconst timestamp_1 = require(\"../builder/timestamp\");\nconst time_1 = require(\"../builder/time\");\nconst union_1 = require(\"../builder/union\");\nconst utf8_1 = require(\"../builder/utf8\");\n/** @ignore */\nclass GetBuilderCtor extends visitor_1.Visitor {\n visitNull() { return null_1.NullBuilder; }\n visitBool() { return bool_1.BoolBuilder; }\n visitInt() { return int_1.IntBuilder; }\n visitInt8() { return int_1.Int8Builder; }\n visitInt16() { return int_1.Int16Builder; }\n visitInt32() { return int_1.Int32Builder; }\n visitInt64() { return int_1.Int64Builder; }\n visitUint8() { return int_1.Uint8Builder; }\n visitUint16() { return int_1.Uint16Builder; }\n visitUint32() { return int_1.Uint32Builder; }\n visitUint64() { return int_1.Uint64Builder; }\n visitFloat() { return float_1.FloatBuilder; }\n visitFloat16() { return float_1.Float16Builder; }\n visitFloat32() { return float_1.Float32Builder; }\n visitFloat64() { return float_1.Float64Builder; }\n visitUtf8() { return utf8_1.Utf8Builder; }\n visitBinary() { return binary_1.BinaryBuilder; }\n visitFixedSizeBinary() { return fixedsizebinary_1.FixedSizeBinaryBuilder; }\n visitDate() { return date_1.DateBuilder; }\n visitDateDay() { return date_1.DateDayBuilder; }\n visitDateMillisecond() { return date_1.DateMillisecondBuilder; }\n visitTimestamp() { return timestamp_1.TimestampBuilder; }\n visitTimestampSecond() { return timestamp_1.TimestampSecondBuilder; }\n visitTimestampMillisecond() { return timestamp_1.TimestampMillisecondBuilder; }\n visitTimestampMicrosecond() { return timestamp_1.TimestampMicrosecondBuilder; }\n visitTimestampNanosecond() { return timestamp_1.TimestampNanosecondBuilder; }\n visitTime() { return time_1.TimeBuilder; }\n visitTimeSecond() { return time_1.TimeSecondBuilder; }\n visitTimeMillisecond() { return time_1.TimeMillisecondBuilder; }\n visitTimeMicrosecond() { return time_1.TimeMicrosecondBuilder; }\n visitTimeNanosecond() { return time_1.TimeNanosecondBuilder; }\n visitDecimal() { return decimal_1.DecimalBuilder; }\n visitList() { return list_1.ListBuilder; }\n visitStruct() { return struct_1.StructBuilder; }\n visitUnion() { return union_1.UnionBuilder; }\n visitDenseUnion() { return union_1.DenseUnionBuilder; }\n visitSparseUnion() { return union_1.SparseUnionBuilder; }\n visitDictionary() { return dictionary_1.DictionaryBuilder; }\n visitInterval() { return interval_1.IntervalBuilder; }\n visitIntervalDayTime() { return interval_1.IntervalDayTimeBuilder; }\n visitIntervalYearMonth() { return interval_1.IntervalYearMonthBuilder; }\n visitFixedSizeList() { return fixedsizelist_1.FixedSizeListBuilder; }\n visitMap() { return map_1.MapBuilder; }\n}\nexports.GetBuilderCtor = GetBuilderCtor;\n/** @ignore */\nexports.instance = new GetBuilderCtor();\n\n//# sourceMappingURL=builderctor.js.map\n","\"use strict\";\n// automatically generated by the FlatBuffers compiler, do not modify\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Block = exports.Footer = void 0;\nconst flatbuffers_1 = require(\"flatbuffers\");\nconst NS13596923344997147894 = require(\"./Schema\");\n/**\n * ----------------------------------------------------------------------\n * Arrow File metadata\n *\n *\n * @constructor\n */\nclass Footer {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Footer\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Footer= obj\n * @returns Footer\n */\n static getRootAsFooter(bb, obj) {\n return (obj || new Footer()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Footer= obj\n * @returns Footer\n */\n static getSizePrefixedRootAsFooter(bb, obj) {\n bb.setPosition(bb.position() + flatbuffers_1.flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Footer()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n /**\n * @returns MetadataVersion\n */\n version() {\n const offset = this.bb.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb.readInt16(this.bb_pos + offset)) : NS13596923344997147894.MetadataVersion.V1;\n }\n /**\n * @param Schema= obj\n * @returns Schema|null\n */\n schema(obj) {\n const offset = this.bb.__offset(this.bb_pos, 6);\n return offset ? (obj || new NS13596923344997147894.Schema()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;\n }\n /**\n * @param number index\n * @param Block= obj\n * @returns Block\n */\n dictionaries(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? (obj || new Block()).__init(this.bb.__vector(this.bb_pos + offset) + index * 24, this.bb) : null;\n }\n /**\n * @returns number\n */\n dictionariesLength() {\n const offset = this.bb.__offset(this.bb_pos, 8);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * @param number index\n * @param Block= obj\n * @returns Block\n */\n recordBatches(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 10);\n return offset ? (obj || new Block()).__init(this.bb.__vector(this.bb_pos + offset) + index * 24, this.bb) : null;\n }\n /**\n * @returns number\n */\n recordBatchesLength() {\n const offset = this.bb.__offset(this.bb_pos, 10);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * User-defined metadata\n *\n * @param number index\n * @param KeyValue= obj\n * @returns KeyValue\n */\n customMetadata(index, obj) {\n const offset = this.bb.__offset(this.bb_pos, 12);\n return offset ? (obj || new NS13596923344997147894.KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;\n }\n /**\n * @returns number\n */\n customMetadataLength() {\n const offset = this.bb.__offset(this.bb_pos, 12);\n return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;\n }\n /**\n * @param flatbuffers.Builder builder\n */\n static startFooter(builder) {\n builder.startObject(5);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param MetadataVersion version\n */\n static addVersion(builder, version) {\n builder.addFieldInt16(0, version, NS13596923344997147894.MetadataVersion.V1);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset schemaOffset\n */\n static addSchema(builder, schemaOffset) {\n builder.addFieldOffset(1, schemaOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionariesOffset\n */\n static addDictionaries(builder, dictionariesOffset) {\n builder.addFieldOffset(2, dictionariesOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startDictionariesVector(builder, numElems) {\n builder.startVector(24, numElems, 8);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset recordBatchesOffset\n */\n static addRecordBatches(builder, recordBatchesOffset) {\n builder.addFieldOffset(3, recordBatchesOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startRecordBatchesVector(builder, numElems) {\n builder.startVector(24, numElems, 8);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder, customMetadataOffset) {\n builder.addFieldOffset(4, customMetadataOffset, 0);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<flatbuffers.Offset> data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder, data) {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]);\n }\n return builder.endVector();\n }\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder, numElems) {\n builder.startVector(4, numElems, 4);\n }\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFooter(builder) {\n const offset = builder.endObject();\n return offset;\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishFooterBuffer(builder, offset) {\n builder.finish(offset);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSizePrefixedFooterBuffer(builder, offset) {\n builder.finish(offset, undefined, true);\n }\n static createFooter(builder, version, schemaOffset, dictionariesOffset, recordBatchesOffset, customMetadataOffset) {\n Footer.startFooter(builder);\n Footer.addVersion(builder, version);\n Footer.addSchema(builder, schemaOffset);\n Footer.addDictionaries(builder, dictionariesOffset);\n Footer.addRecordBatches(builder, recordBatchesOffset);\n Footer.addCustomMetadata(builder, customMetadataOffset);\n return Footer.endFooter(builder);\n }\n}\nexports.Footer = Footer;\n/**\n * @constructor\n */\nclass Block {\n constructor() {\n this.bb = null;\n this.bb_pos = 0;\n }\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Block\n */\n __init(i, bb) {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n /**\n * Index to the start of the RecordBlock (note this is past the Message header)\n *\n * @returns flatbuffers.Long\n */\n offset() {\n return this.bb.readInt64(this.bb_pos);\n }\n /**\n * Length of the metadata\n *\n * @returns number\n */\n metaDataLength() {\n return this.bb.readInt32(this.bb_pos + 8);\n }\n /**\n * Length of the data (this is aligned so there can be a gap between this and\n * the metadata).\n *\n * @returns flatbuffers.Long\n */\n bodyLength() {\n return this.bb.readInt64(this.bb_pos + 16);\n }\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long offset\n * @param number metaDataLength\n * @param flatbuffers.Long bodyLength\n * @returns flatbuffers.Offset\n */\n static createBlock(builder, offset, metaDataLength, bodyLength) {\n builder.prep(8, 24);\n builder.writeInt64(bodyLength);\n builder.pad(4);\n builder.writeInt32(metaDataLength);\n builder.writeInt64(offset);\n return builder.offset();\n }\n}\nexports.Block = Block;\n\n//# sourceMappingURL=File.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JSONVectorLoader = exports.VectorLoader = void 0;\nconst data_1 = require(\"../data\");\nconst schema_1 = require(\"../schema\");\nconst type_1 = require(\"../type\");\nconst visitor_1 = require(\"../visitor\");\nconst bit_1 = require(\"../util/bit\");\nconst utf8_1 = require(\"../util/utf8\");\nconst int_1 = require(\"../util/int\");\nconst enum_1 = require(\"../enum\");\nconst buffer_1 = require(\"../util/buffer\");\n/** @ignore */\nclass VectorLoader extends visitor_1.Visitor {\n constructor(bytes, nodes, buffers, dictionaries) {\n super();\n this.nodesIndex = -1;\n this.buffersIndex = -1;\n this.bytes = bytes;\n this.nodes = nodes;\n this.buffers = buffers;\n this.dictionaries = dictionaries;\n }\n visit(node) {\n return super.visit(node instanceof schema_1.Field ? node.type : node);\n }\n visitNull(type, { length, } = this.nextFieldNode()) { return data_1.Data.Null(type, 0, length); }\n visitBool(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Bool(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitInt(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Int(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitFloat(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Float(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitUtf8(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Utf8(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n visitBinary(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Binary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n visitFixedSizeBinary(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.FixedSizeBinary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitDate(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Date(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitTimestamp(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Timestamp(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitTime(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Time(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitDecimal(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Decimal(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitList(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.List(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n visitStruct(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Struct(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visitMany(type.children)); }\n visitUnion(type) { return type.mode === enum_1.UnionMode.Sparse ? this.visitSparseUnion(type) : this.visitDenseUnion(type); }\n visitDenseUnion(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.readOffsets(type), this.visitMany(type.children)); }\n visitSparseUnion(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.visitMany(type.children)); }\n visitDictionary(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Dictionary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type.indices), this.readDictionary(type)); }\n visitInterval(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Interval(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n visitFixedSizeList(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.FixedSizeList(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visit(type.children[0])); }\n visitMap(type, { length, nullCount } = this.nextFieldNode()) { return data_1.Data.Map(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n nextFieldNode() { return this.nodes[++this.nodesIndex]; }\n nextBufferRange() { return this.buffers[++this.buffersIndex]; }\n readNullBitmap(type, nullCount, buffer = this.nextBufferRange()) {\n return nullCount > 0 && this.readData(type, buffer) || new Uint8Array(0);\n }\n readOffsets(type, buffer) { return this.readData(type, buffer); }\n readTypeIds(type, buffer) { return this.readData(type, buffer); }\n readData(_type, { length, offset } = this.nextBufferRange()) {\n return this.bytes.subarray(offset, offset + length);\n }\n readDictionary(type) {\n return this.dictionaries.get(type.id);\n }\n}\nexports.VectorLoader = VectorLoader;\n/** @ignore */\nclass JSONVectorLoader extends VectorLoader {\n constructor(sources, nodes, buffers, dictionaries) {\n super(new Uint8Array(0), nodes, buffers, dictionaries);\n this.sources = sources;\n }\n readNullBitmap(_type, nullCount, { offset } = this.nextBufferRange()) {\n return nullCount <= 0 ? new Uint8Array(0) : bit_1.packBools(this.sources[offset]);\n }\n readOffsets(_type, { offset } = this.nextBufferRange()) {\n return buffer_1.toArrayBufferView(Uint8Array, buffer_1.toArrayBufferView(Int32Array, this.sources[offset]));\n }\n readTypeIds(type, { offset } = this.nextBufferRange()) {\n return buffer_1.toArrayBufferView(Uint8Array, buffer_1.toArrayBufferView(type.ArrayType, this.sources[offset]));\n }\n readData(type, { offset } = this.nextBufferRange()) {\n const { sources } = this;\n if (type_1.DataType.isTimestamp(type)) {\n return buffer_1.toArrayBufferView(Uint8Array, int_1.Int64.convertArray(sources[offset]));\n }\n else if ((type_1.DataType.isInt(type) || type_1.DataType.isTime(type)) && type.bitWidth === 64) {\n return buffer_1.toArrayBufferView(Uint8Array, int_1.Int64.convertArray(sources[offset]));\n }\n else if (type_1.DataType.isDate(type) && type.unit === enum_1.DateUnit.MILLISECOND) {\n return buffer_1.toArrayBufferView(Uint8Array, int_1.Int64.convertArray(sources[offset]));\n }\n else if (type_1.DataType.isDecimal(type)) {\n return buffer_1.toArrayBufferView(Uint8Array, int_1.Int128.convertArray(sources[offset]));\n }\n else if (type_1.DataType.isBinary(type) || type_1.DataType.isFixedSizeBinary(type)) {\n return binaryDataFromJSON(sources[offset]);\n }\n else if (type_1.DataType.isBool(type)) {\n return bit_1.packBools(sources[offset]);\n }\n else if (type_1.DataType.isUtf8(type)) {\n return utf8_1.encodeUtf8(sources[offset].join(''));\n }\n return buffer_1.toArrayBufferView(Uint8Array, buffer_1.toArrayBufferView(type.ArrayType, sources[offset].map((x) => +x)));\n }\n}\nexports.JSONVectorLoader = JSONVectorLoader;\n/** @ignore */\nfunction binaryDataFromJSON(values) {\n // \"DATA\": [\"49BC7D5B6C47D2\",\"3F5FB6D9322026\"]\n // There are definitely more efficient ways to do this... but it gets the\n // job done.\n const joined = values.join('');\n const data = new Uint8Array(joined.length / 2);\n for (let i = 0; i < joined.length; i += 2) {\n data[i >> 1] = parseInt(joined.substr(i, 2), 16);\n }\n return data;\n}\n\n//# sourceMappingURL=vectorloader.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.TypeAssembler = void 0;\nconst flatbuffers_1 = require(\"flatbuffers\");\nvar Long = flatbuffers_1.flatbuffers.Long;\nconst visitor_1 = require(\"../visitor\");\nconst Schema_1 = require(\"../fb/Schema\");\n/** @ignore */\nclass TypeAssembler extends visitor_1.Visitor {\n visit(node, builder) {\n return (node == null || builder == null) ? undefined : super.visit(node, builder);\n }\n visitNull(_node, b) {\n Schema_1.Null.startNull(b);\n return Schema_1.Null.endNull(b);\n }\n visitInt(node, b) {\n Schema_1.Int.startInt(b);\n Schema_1.Int.addBitWidth(b, node.bitWidth);\n Schema_1.Int.addIsSigned(b, node.isSigned);\n return Schema_1.Int.endInt(b);\n }\n visitFloat(node, b) {\n Schema_1.FloatingPoint.startFloatingPoint(b);\n Schema_1.FloatingPoint.addPrecision(b, node.precision);\n return Schema_1.FloatingPoint.endFloatingPoint(b);\n }\n visitBinary(_node, b) {\n Schema_1.Binary.startBinary(b);\n return Schema_1.Binary.endBinary(b);\n }\n visitBool(_node, b) {\n Schema_1.Bool.startBool(b);\n return Schema_1.Bool.endBool(b);\n }\n visitUtf8(_node, b) {\n Schema_1.Utf8.startUtf8(b);\n return Schema_1.Utf8.endUtf8(b);\n }\n visitDecimal(node, b) {\n Schema_1.Decimal.startDecimal(b);\n Schema_1.Decimal.addScale(b, node.scale);\n Schema_1.Decimal.addPrecision(b, node.precision);\n return Schema_1.Decimal.endDecimal(b);\n }\n visitDate(node, b) {\n Schema_1.Date.startDate(b);\n Schema_1.Date.addUnit(b, node.unit);\n return Schema_1.Date.endDate(b);\n }\n visitTime(node, b) {\n Schema_1.Time.startTime(b);\n Schema_1.Time.addUnit(b, node.unit);\n Schema_1.Time.addBitWidth(b, node.bitWidth);\n return Schema_1.Time.endTime(b);\n }\n visitTimestamp(node, b) {\n const timezone = (node.timezone && b.createString(node.timezone)) || undefined;\n Schema_1.Timestamp.startTimestamp(b);\n Schema_1.Timestamp.addUnit(b, node.unit);\n if (timezone !== undefined) {\n Schema_1.Timestamp.addTimezone(b, timezone);\n }\n return Schema_1.Timestamp.endTimestamp(b);\n }\n visitInterval(node, b) {\n Schema_1.Interval.startInterval(b);\n Schema_1.Interval.addUnit(b, node.unit);\n return Schema_1.Interval.endInterval(b);\n }\n visitList(_node, b) {\n Schema_1.List.startList(b);\n return Schema_1.List.endList(b);\n }\n visitStruct(_node, b) {\n Schema_1.Struct_.startStruct_(b);\n return Schema_1.Struct_.endStruct_(b);\n }\n visitUnion(node, b) {\n Schema_1.Union.startTypeIdsVector(b, node.typeIds.length);\n const typeIds = Schema_1.Union.createTypeIdsVector(b, node.typeIds);\n Schema_1.Union.startUnion(b);\n Schema_1.Union.addMode(b, node.mode);\n Schema_1.Union.addTypeIds(b, typeIds);\n return Schema_1.Union.endUnion(b);\n }\n visitDictionary(node, b) {\n const indexType = this.visit(node.indices, b);\n Schema_1.DictionaryEncoding.startDictionaryEncoding(b);\n Schema_1.DictionaryEncoding.addId(b, new Long(node.id, 0));\n Schema_1.DictionaryEncoding.addIsOrdered(b, node.isOrdered);\n if (indexType !== undefined) {\n Schema_1.DictionaryEncoding.addIndexType(b, indexType);\n }\n return Schema_1.DictionaryEncoding.endDictionaryEncoding(b);\n }\n visitFixedSizeBinary(node, b) {\n Schema_1.FixedSizeBinary.startFixedSizeBinary(b);\n Schema_1.FixedSizeBinary.addByteWidth(b, node.byteWidth);\n return Schema_1.FixedSizeBinary.endFixedSizeBinary(b);\n }\n visitFixedSizeList(node, b) {\n Schema_1.FixedSizeList.startFixedSizeList(b);\n Schema_1.FixedSizeList.addListSize(b, node.listSize);\n return Schema_1.FixedSizeList.endFixedSizeList(b);\n }\n visitMap(node, b) {\n Schema_1.Map.startMap(b);\n Schema_1.Map.addKeysSorted(b, node.keysSorted);\n return Schema_1.Map.endMap(b);\n }\n}\nexports.TypeAssembler = TypeAssembler;\n/** @ignore */\nexports.instance = new TypeAssembler();\n\n//# sourceMappingURL=typeassembler.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fieldFromJSON = exports.dictionaryBatchFromJSON = exports.recordBatchFromJSON = exports.schemaFromJSON = void 0;\n/* eslint-disable brace-style */\nconst schema_1 = require(\"../../schema\");\nconst type_1 = require(\"../../type\");\nconst message_1 = require(\"./message\");\nconst enum_1 = require(\"../../enum\");\n/** @ignore */\nfunction schemaFromJSON(_schema, dictionaries = new Map()) {\n return new schema_1.Schema(schemaFieldsFromJSON(_schema, dictionaries), customMetadataFromJSON(_schema['customMetadata']), dictionaries);\n}\nexports.schemaFromJSON = schemaFromJSON;\n/** @ignore */\nfunction recordBatchFromJSON(b) {\n return new message_1.RecordBatch(b['count'], fieldNodesFromJSON(b['columns']), buffersFromJSON(b['columns']));\n}\nexports.recordBatchFromJSON = recordBatchFromJSON;\n/** @ignore */\nfunction dictionaryBatchFromJSON(b) {\n return new message_1.DictionaryBatch(recordBatchFromJSON(b['data']), b['id'], b['isDelta']);\n}\nexports.dictionaryBatchFromJSON = dictionaryBatchFromJSON;\n/** @ignore */\nfunction schemaFieldsFromJSON(_schema, dictionaries) {\n return (_schema['fields'] || []).filter(Boolean).map((f) => schema_1.Field.fromJSON(f, dictionaries));\n}\n/** @ignore */\nfunction fieldChildrenFromJSON(_field, dictionaries) {\n return (_field['children'] || []).filter(Boolean).map((f) => schema_1.Field.fromJSON(f, dictionaries));\n}\n/** @ignore */\nfunction fieldNodesFromJSON(xs) {\n return (xs || []).reduce((fieldNodes, column) => [\n ...fieldNodes,\n new message_1.FieldNode(column['count'], nullCountFromJSON(column['VALIDITY'])),\n ...fieldNodesFromJSON(column['children'])\n ], []);\n}\n/** @ignore */\nfunction buffersFromJSON(xs, buffers = []) {\n for (let i = -1, n = (xs || []).length; ++i < n;) {\n const column = xs[i];\n column['VALIDITY'] && buffers.push(new message_1.BufferRegion(buffers.length, column['VALIDITY'].length));\n column['TYPE'] && buffers.push(new message_1.BufferRegion(buffers.length, column['TYPE'].length));\n column['OFFSET'] && buffers.push(new message_1.BufferRegion(buffers.length, column['OFFSET'].length));\n column['DATA'] && buffers.push(new message_1.BufferRegion(buffers.length, column['DATA'].length));\n buffers = buffersFromJSON(column['children'], buffers);\n }\n return buffers;\n}\n/** @ignore */\nfunction nullCountFromJSON(validity) {\n return (validity || []).reduce((sum, val) => sum + +(val === 0), 0);\n}\n/** @ignore */\nfunction fieldFromJSON(_field, dictionaries) {\n let id;\n let keys;\n let field;\n let dictMeta;\n let type;\n let dictType;\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = _field['dictionary'])) {\n type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries));\n field = new schema_1.Field(_field['name'], type, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // If dictionary encoded and the first time we've seen this dictionary id, decode\n // the data type and child fields, then wrap in a Dictionary type and insert the\n // data type into the dictionary types map.\n else if (!dictionaries.has(id = dictMeta['id'])) {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta['indexType']) ? indexTypeFromJSON(keys) : new type_1.Int32();\n dictionaries.set(id, type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries)));\n dictType = new type_1.Dictionary(type, keys, id, dictMeta['isOrdered']);\n field = new schema_1.Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // If dictionary encoded, and have already seen this dictionary Id in the schema, then reuse the\n // data type and wrap in a new Dictionary type and field.\n else {\n // a dictionary index defaults to signed 32 bit int if unspecified\n keys = (keys = dictMeta['indexType']) ? indexTypeFromJSON(keys) : new type_1.Int32();\n dictType = new type_1.Dictionary(dictionaries.get(id), keys, id, dictMeta['isOrdered']);\n field = new schema_1.Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n return field || null;\n}\nexports.fieldFromJSON = fieldFromJSON;\n/** @ignore */\nfunction customMetadataFromJSON(_metadata) {\n return new Map(Object.entries(_metadata || {}));\n}\n/** @ignore */\nfunction indexTypeFromJSON(_type) {\n return new type_1.Int(_type['isSigned'], _type['bitWidth']);\n}\n/** @ignore */\nfunction typeFromJSON(f, children) {\n const typeId = f['type']['name'];\n switch (typeId) {\n case 'NONE': return new type_1.Null();\n case 'null': return new type_1.Null();\n case 'binary': return new type_1.Binary();\n case 'utf8': return new type_1.Utf8();\n case 'bool': return new type_1.Bool();\n case 'list': return new type_1.List((children || [])[0]);\n case 'struct': return new type_1.Struct(children || []);\n case 'struct_': return new type_1.Struct(children || []);\n }\n switch (typeId) {\n case 'int': {\n const t = f['type'];\n return new type_1.Int(t['isSigned'], t['bitWidth']);\n }\n case 'floatingpoint': {\n const t = f['type'];\n return new type_1.Float(enum_1.Precision[t['precision']]);\n }\n case 'decimal': {\n const t = f['type'];\n return new type_1.Decimal(t['scale'], t['precision']);\n }\n case 'date': {\n const t = f['type'];\n return new type_1.Date_(enum_1.DateUnit[t['unit']]);\n }\n case 'time': {\n const t = f['type'];\n return new type_1.Time(enum_1.TimeUnit[t['unit']], t['bitWidth']);\n }\n case 'timestamp': {\n const t = f['type'];\n return new type_1.Timestamp(enum_1.TimeUnit[t['unit']], t['timezone']);\n }\n case 'interval': {\n const t = f['type'];\n return new type_1.Interval(enum_1.IntervalUnit[t['unit']]);\n }\n case 'union': {\n const t = f['type'];\n return new type_1.Union(enum_1.UnionMode[t['mode']], (t['typeIds'] || []), children || []);\n }\n case 'fixedsizebinary': {\n const t = f['type'];\n return new type_1.FixedSizeBinary(t['byteWidth']);\n }\n case 'fixedsizelist': {\n const t = f['type'];\n return new type_1.FixedSizeList(t['listSize'], (children || [])[0]);\n }\n case 'map': {\n const t = f['type'];\n return new type_1.Map_((children || [])[0], t['keysSorted']);\n }\n }\n throw new Error(`Unrecognized type: \"${typeId}\"`);\n}\n\n//# sourceMappingURL=json.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VectorAssembler = void 0;\nconst visitor_1 = require(\"../visitor\");\nconst enum_1 = require(\"../enum\");\nconst recordbatch_1 = require(\"../recordbatch\");\nconst buffer_1 = require(\"../util/buffer\");\nconst bit_1 = require(\"../util/bit\");\nconst args_1 = require(\"../util/args\");\nconst message_1 = require(\"../ipc/metadata/message\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass VectorAssembler extends visitor_1.Visitor {\n constructor() {\n super();\n this._byteLength = 0;\n this._nodes = [];\n this._buffers = [];\n this._bufferRegions = [];\n }\n /** @nocollapse */\n static assemble(...args) {\n const assembler = new VectorAssembler();\n const vectorChildren = args_1.selectVectorChildrenArgs(recordbatch_1.RecordBatch, args);\n const [assembleResult = assembler] = assembler.visitMany(vectorChildren);\n return assembleResult;\n }\n visit(vector) {\n if (!type_1.DataType.isDictionary(vector.type)) {\n const { data, length, nullCount } = vector;\n if (length > 2147483647) {\n /* istanbul ignore next */\n throw new RangeError('Cannot write arrays larger than 2^31 - 1 in length');\n }\n if (!type_1.DataType.isNull(vector.type)) {\n addBuffer.call(this, nullCount <= 0\n ? new Uint8Array(0) // placeholder validity buffer\n : bit_1.truncateBitmap(data.offset, length, data.nullBitmap));\n }\n this.nodes.push(new message_1.FieldNode(length, nullCount));\n }\n return super.visit(vector);\n }\n visitNull(_nullV) {\n return this;\n }\n visitDictionary(vector) {\n // Assemble the indices here, Dictionary assembled separately.\n return this.visit(vector.indices);\n }\n get nodes() { return this._nodes; }\n get buffers() { return this._buffers; }\n get byteLength() { return this._byteLength; }\n get bufferRegions() { return this._bufferRegions; }\n}\nexports.VectorAssembler = VectorAssembler;\n/** @ignore */\nfunction addBuffer(values) {\n const byteLength = (values.byteLength + 7) & ~7; // Round up to a multiple of 8\n this.buffers.push(values);\n this.bufferRegions.push(new message_1.BufferRegion(this._byteLength, byteLength));\n this._byteLength += byteLength;\n return this;\n}\n/** @ignore */\nfunction assembleUnion(vector) {\n const { type, length, typeIds, valueOffsets } = vector;\n // All Union Vectors have a typeIds buffer\n addBuffer.call(this, typeIds);\n // If this is a Sparse Union, treat it like all other Nested types\n if (type.mode === enum_1.UnionMode.Sparse) {\n return assembleNestedVector.call(this, vector);\n }\n else if (type.mode === enum_1.UnionMode.Dense) {\n // If this is a Dense Union, add the valueOffsets buffer and potentially slice the children\n if (vector.offset <= 0) {\n // If the Vector hasn't been sliced, write the existing valueOffsets\n addBuffer.call(this, valueOffsets);\n // We can treat this like all other Nested types\n return assembleNestedVector.call(this, vector);\n }\n else {\n // A sliced Dense Union is an unpleasant case. Because the offsets are different for\n // each child vector, we need to \"rebase\" the valueOffsets for each child\n // Union typeIds are not necessary 0-indexed\n const maxChildTypeId = typeIds.reduce((x, y) => Math.max(x, y), typeIds[0]);\n const childLengths = new Int32Array(maxChildTypeId + 1);\n // Set all to -1 to indicate that we haven't observed a first occurrence of a particular child yet\n const childOffsets = new Int32Array(maxChildTypeId + 1).fill(-1);\n const shiftedOffsets = new Int32Array(length);\n // If we have a non-zero offset, then the value offsets do not start at\n // zero. We must a) create a new offsets array with shifted offsets and\n // b) slice the values array accordingly\n const unshiftedOffsets = buffer_1.rebaseValueOffsets(-valueOffsets[0], length, valueOffsets);\n for (let typeId, shift, index = -1; ++index < length;) {\n if ((shift = childOffsets[typeId = typeIds[index]]) === -1) {\n shift = childOffsets[typeId] = unshiftedOffsets[typeId];\n }\n shiftedOffsets[index] = unshiftedOffsets[index] - shift;\n ++childLengths[typeId];\n }\n addBuffer.call(this, shiftedOffsets);\n // Slice and visit children accordingly\n for (let child, childIndex = -1, numChildren = type.children.length; ++childIndex < numChildren;) {\n if (child = vector.getChildAt(childIndex)) {\n const typeId = type.typeIds[childIndex];\n const childLength = Math.min(length, childLengths[typeId]);\n this.visit(child.slice(childOffsets[typeId], childLength));\n }\n }\n }\n }\n return this;\n}\n/** @ignore */\nfunction assembleBoolVector(vector) {\n // Bool vector is a special case of FlatVector, as its data buffer needs to stay packed\n let values;\n if (vector.nullCount >= vector.length) {\n // If all values are null, just insert a placeholder empty data buffer (fastest path)\n return addBuffer.call(this, new Uint8Array(0));\n }\n else if ((values = vector.values) instanceof Uint8Array) {\n // If values is already a Uint8Array, slice the bitmap (fast path)\n return addBuffer.call(this, bit_1.truncateBitmap(vector.offset, vector.length, values));\n }\n // Otherwise if the underlying data *isn't* a Uint8Array, enumerate the\n // values as bools and re-pack them into a Uint8Array. This code isn't\n // reachable unless you're trying to manipulate the Data internals,\n // we we're only doing this for safety.\n /* istanbul ignore next */\n return addBuffer.call(this, bit_1.packBools(vector));\n}\n/** @ignore */\nfunction assembleFlatVector(vector) {\n return addBuffer.call(this, vector.values.subarray(0, vector.length * vector.stride));\n}\n/** @ignore */\nfunction assembleFlatListVector(vector) {\n const { length, values, valueOffsets } = vector;\n const firstOffset = valueOffsets[0];\n const lastOffset = valueOffsets[length];\n const byteLength = Math.min(lastOffset - firstOffset, values.byteLength - firstOffset);\n // Push in the order FlatList types read their buffers\n addBuffer.call(this, buffer_1.rebaseValueOffsets(-valueOffsets[0], length, valueOffsets)); // valueOffsets buffer first\n addBuffer.call(this, values.subarray(firstOffset, firstOffset + byteLength)); // sliced values buffer second\n return this;\n}\n/** @ignore */\nfunction assembleListVector(vector) {\n const { length, valueOffsets } = vector;\n // If we have valueOffsets (MapVector, ListVector), push that buffer first\n if (valueOffsets) {\n addBuffer.call(this, buffer_1.rebaseValueOffsets(valueOffsets[0], length, valueOffsets));\n }\n // Then insert the List's values child\n return this.visit(vector.getChildAt(0));\n}\n/** @ignore */\nfunction assembleNestedVector(vector) {\n return this.visitMany(vector.type.children.map((_, i) => vector.getChildAt(i)).filter(Boolean))[0];\n}\nVectorAssembler.prototype.visitBool = assembleBoolVector;\nVectorAssembler.prototype.visitInt = assembleFlatVector;\nVectorAssembler.prototype.visitFloat = assembleFlatVector;\nVectorAssembler.prototype.visitUtf8 = assembleFlatListVector;\nVectorAssembler.prototype.visitBinary = assembleFlatListVector;\nVectorAssembler.prototype.visitFixedSizeBinary = assembleFlatVector;\nVectorAssembler.prototype.visitDate = assembleFlatVector;\nVectorAssembler.prototype.visitTimestamp = assembleFlatVector;\nVectorAssembler.prototype.visitTime = assembleFlatVector;\nVectorAssembler.prototype.visitDecimal = assembleFlatVector;\nVectorAssembler.prototype.visitList = assembleListVector;\nVectorAssembler.prototype.visitStruct = assembleNestedVector;\nVectorAssembler.prototype.visitUnion = assembleUnion;\nVectorAssembler.prototype.visitInterval = assembleFlatVector;\nVectorAssembler.prototype.visitFixedSizeList = assembleListVector;\nVectorAssembler.prototype.visitMap = assembleListVector;\n\n//# sourceMappingURL=vectorassembler.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JSONTypeAssembler = void 0;\nconst visitor_1 = require(\"../visitor\");\nconst Schema_1 = require(\"../fb/Schema\");\nconst enum_1 = require(\"../enum\");\n/** @ignore */\nclass JSONTypeAssembler extends visitor_1.Visitor {\n visit(node) {\n return node == null ? undefined : super.visit(node);\n }\n visitNull({ typeId }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase() };\n }\n visitInt({ typeId, bitWidth, isSigned }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'bitWidth': bitWidth, 'isSigned': isSigned };\n }\n visitFloat({ typeId, precision }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'precision': enum_1.Precision[precision] };\n }\n visitBinary({ typeId }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase() };\n }\n visitBool({ typeId }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase() };\n }\n visitUtf8({ typeId }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase() };\n }\n visitDecimal({ typeId, scale, precision }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'scale': scale, 'precision': precision };\n }\n visitDate({ typeId, unit }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'unit': enum_1.DateUnit[unit] };\n }\n visitTime({ typeId, unit, bitWidth }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'unit': enum_1.TimeUnit[unit], bitWidth };\n }\n visitTimestamp({ typeId, timezone, unit }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'unit': enum_1.TimeUnit[unit], timezone };\n }\n visitInterval({ typeId, unit }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'unit': enum_1.IntervalUnit[unit] };\n }\n visitList({ typeId }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase() };\n }\n visitStruct({ typeId }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase() };\n }\n visitUnion({ typeId, mode, typeIds }) {\n return {\n 'name': Schema_1.Type[typeId].toLowerCase(),\n 'mode': enum_1.UnionMode[mode],\n 'typeIds': [...typeIds]\n };\n }\n visitDictionary(node) {\n return this.visit(node.dictionary);\n }\n visitFixedSizeBinary({ typeId, byteWidth }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'byteWidth': byteWidth };\n }\n visitFixedSizeList({ typeId, listSize }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'listSize': listSize };\n }\n visitMap({ typeId, keysSorted }) {\n return { 'name': Schema_1.Type[typeId].toLowerCase(), 'keysSorted': keysSorted };\n }\n}\nexports.JSONTypeAssembler = JSONTypeAssembler;\n\n//# sourceMappingURL=jsontypeassembler.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JSONVectorAssembler = void 0;\nconst bn_1 = require(\"../util/bn\");\nconst column_1 = require(\"../column\");\nconst vector_1 = require(\"../vector\");\nconst visitor_1 = require(\"../visitor\");\nconst enum_1 = require(\"../enum\");\nconst recordbatch_1 = require(\"../recordbatch\");\nconst enum_2 = require(\"../enum\");\nconst bit_1 = require(\"../util/bit\");\nconst args_1 = require(\"../util/args\");\nconst type_1 = require(\"../type\");\n/** @ignore */\nclass JSONVectorAssembler extends visitor_1.Visitor {\n /** @nocollapse */\n static assemble(...args) {\n return new JSONVectorAssembler().visitMany(args_1.selectColumnChildrenArgs(recordbatch_1.RecordBatch, args));\n }\n visit(column) {\n const { data, name, length } = column;\n const { offset, nullCount, nullBitmap } = data;\n const type = type_1.DataType.isDictionary(column.type) ? column.type.indices : column.type;\n const buffers = Object.assign([], data.buffers, { [enum_1.BufferType.VALIDITY]: undefined });\n return {\n 'name': name,\n 'count': length,\n 'VALIDITY': type_1.DataType.isNull(type) ? undefined\n : nullCount <= 0 ? Array.from({ length }, () => 1)\n : [...new bit_1.BitIterator(nullBitmap, offset, length, null, bit_1.getBit)],\n ...super.visit(vector_1.Vector.new(data.clone(type, offset, length, 0, buffers)))\n };\n }\n visitNull() { return {}; }\n visitBool({ values, offset, length }) {\n return { 'DATA': [...new bit_1.BitIterator(values, offset, length, null, bit_1.getBool)] };\n }\n visitInt(vector) {\n return {\n 'DATA': vector.type.bitWidth < 64\n ? [...vector.values]\n : [...bigNumsToStrings(vector.values, 2)]\n };\n }\n visitFloat(vector) {\n return { 'DATA': [...vector.values] };\n }\n visitUtf8(vector) {\n return { 'DATA': [...vector], 'OFFSET': [...vector.valueOffsets] };\n }\n visitBinary(vector) {\n return { 'DATA': [...binaryToString(vector)], OFFSET: [...vector.valueOffsets] };\n }\n visitFixedSizeBinary(vector) {\n return { 'DATA': [...binaryToString(vector)] };\n }\n visitDate(vector) {\n return {\n 'DATA': vector.type.unit === enum_2.DateUnit.DAY\n ? [...vector.values]\n : [...bigNumsToStrings(vector.values, 2)]\n };\n }\n visitTimestamp(vector) {\n return { 'DATA': [...bigNumsToStrings(vector.values, 2)] };\n }\n visitTime(vector) {\n return {\n 'DATA': vector.type.unit < enum_2.TimeUnit.MICROSECOND\n ? [...vector.values]\n : [...bigNumsToStrings(vector.values, 2)]\n };\n }\n visitDecimal(vector) {\n return { 'DATA': [...bigNumsToStrings(vector.values, 4)] };\n }\n visitList(vector) {\n return {\n 'OFFSET': [...vector.valueOffsets],\n 'children': vector.type.children.map((f, i) => this.visit(new column_1.Column(f, [vector.getChildAt(i)])))\n };\n }\n visitStruct(vector) {\n return {\n 'children': vector.type.children.map((f, i) => this.visit(new column_1.Column(f, [vector.getChildAt(i)])))\n };\n }\n visitUnion(vector) {\n return {\n 'TYPE': [...vector.typeIds],\n 'OFFSET': vector.type.mode === enum_2.UnionMode.Dense ? [...vector.valueOffsets] : undefined,\n 'children': vector.type.children.map((f, i) => this.visit(new column_1.Column(f, [vector.getChildAt(i)])))\n };\n }\n visitInterval(vector) {\n return { 'DATA': [...vector.values] };\n }\n visitFixedSizeList(vector) {\n return {\n 'children': vector.type.children.map((f, i) => this.visit(new column_1.Column(f, [vector.getChildAt(i)])))\n };\n }\n visitMap(vector) {\n return {\n 'OFFSET': [...vector.valueOffsets],\n 'children': vector.type.children.map((f, i) => this.visit(new column_1.Column(f, [vector.getChildAt(i)])))\n };\n }\n}\nexports.JSONVectorAssembler = JSONVectorAssembler;\n/** @ignore */\nfunction* binaryToString(vector) {\n for (const octets of vector) {\n yield octets.reduce((str, byte) => {\n return `${str}${('0' + (byte & 0xFF).toString(16)).slice(-2)}`;\n }, '').toUpperCase();\n }\n}\n/** @ignore */\nfunction* bigNumsToStrings(values, stride) {\n for (let i = -1, n = values.length / stride; ++i < n;) {\n yield `${bn_1.BN.new(values.subarray((i + 0) * stride, (i + 1) * stride), false)}`;\n }\n}\n\n//# sourceMappingURL=jsonvectorassembler.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.partial2 = exports.partial1 = exports.partial0 = void 0;\n/** @ignore */\nfunction partial0(visit) {\n return function () { return visit(this); };\n}\nexports.partial0 = partial0;\n/** @ignore */\nfunction partial1(visit) {\n return function (a) { return visit(this, a); };\n}\nexports.partial1 = partial1;\n/** @ignore */\nfunction partial2(visit) {\n return function (a, b) { return visit(this, a, b); };\n}\nexports.partial2 = partial2;\n\n//# sourceMappingURL=fn.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.IndexOfVisitor = void 0;\nconst visitor_1 = require(\"../visitor\");\nconst bit_1 = require(\"../util/bit\");\nconst vector_1 = require(\"../util/vector\");\n/** @ignore */\nclass IndexOfVisitor extends visitor_1.Visitor {\n}\nexports.IndexOfVisitor = IndexOfVisitor;\n/** @ignore */\nfunction nullIndexOf(vector, searchElement) {\n // if you're looking for nulls and the vector isn't empty, we've got 'em!\n return searchElement === null && vector.length > 0 ? 0 : -1;\n}\n/** @ignore */\nfunction indexOfNull(vector, fromIndex) {\n const { nullBitmap } = vector.data;\n if (!nullBitmap || vector.nullCount <= 0) {\n return -1;\n }\n let i = 0;\n for (const isValid of new bit_1.BitIterator(nullBitmap, vector.data.offset + (fromIndex || 0), vector.length, nullBitmap, bit_1.getBool)) {\n if (!isValid) {\n return i;\n }\n ++i;\n }\n return -1;\n}\n/** @ignore */\nfunction indexOfValue(vector, searchElement, fromIndex) {\n if (searchElement === undefined) {\n return -1;\n }\n if (searchElement === null) {\n return indexOfNull(vector, fromIndex);\n }\n const compare = vector_1.createElementComparator(searchElement);\n for (let i = (fromIndex || 0) - 1, n = vector.length; ++i < n;) {\n if (compare(vector.get(i))) {\n return i;\n }\n }\n return -1;\n}\n/** @ignore */\nfunction indexOfUnion(vector, searchElement, fromIndex) {\n // Unions are special -- they do have a nullBitmap, but so can their children.\n // If the searchElement is null, we don't know whether it came from the Union's\n // bitmap or one of its childrens'. So we don't interrogate the Union's bitmap,\n // since that will report the wrong index if a child has a null before the Union.\n const compare = vector_1.createElementComparator(searchElement);\n for (let i = (fromIndex || 0) - 1, n = vector.length; ++i < n;) {\n if (compare(vector.get(i))) {\n return i;\n }\n }\n return -1;\n}\nIndexOfVisitor.prototype.visitNull = nullIndexOf;\nIndexOfVisitor.prototype.visitBool = indexOfValue;\nIndexOfVisitor.prototype.visitInt = indexOfValue;\nIndexOfVisitor.prototype.visitInt8 = indexOfValue;\nIndexOfVisitor.prototype.visitInt16 = indexOfValue;\nIndexOfVisitor.prototype.visitInt32 = indexOfValue;\nIndexOfVisitor.prototype.visitInt64 = indexOfValue;\nIndexOfVisitor.prototype.visitUint8 = indexOfValue;\nIndexOfVisitor.prototype.visitUint16 = indexOfValue;\nIndexOfVisitor.prototype.visitUint32 = indexOfValue;\nIndexOfVisitor.prototype.visitUint64 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat = indexOfValue;\nIndexOfVisitor.prototype.visitFloat16 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat32 = indexOfValue;\nIndexOfVisitor.prototype.visitFloat64 = indexOfValue;\nIndexOfVisitor.prototype.visitUtf8 = indexOfValue;\nIndexOfVisitor.prototype.visitBinary = indexOfValue;\nIndexOfVisitor.prototype.visitFixedSizeBinary = indexOfValue;\nIndexOfVisitor.prototype.visitDate = indexOfValue;\nIndexOfVisitor.prototype.visitDateDay = indexOfValue;\nIndexOfVisitor.prototype.visitDateMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestamp = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampSecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampMicrosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimestampNanosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTime = indexOfValue;\nIndexOfVisitor.prototype.visitTimeSecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeMillisecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeMicrosecond = indexOfValue;\nIndexOfVisitor.prototype.visitTimeNanosecond = indexOfValue;\nIndexOfVisitor.prototype.visitDecimal = indexOfValue;\nIndexOfVisitor.prototype.visitList = indexOfValue;\nIndexOfVisitor.prototype.visitStruct = indexOfValue;\nIndexOfVisitor.prototype.visitUnion = indexOfValue;\nIndexOfVisitor.prototype.visitDenseUnion = indexOfUnion;\nIndexOfVisitor.prototype.visitSparseUnion = indexOfUnion;\nIndexOfVisitor.prototype.visitDictionary = indexOfValue;\nIndexOfVisitor.prototype.visitInterval = indexOfValue;\nIndexOfVisitor.prototype.visitIntervalDayTime = indexOfValue;\nIndexOfVisitor.prototype.visitIntervalYearMonth = indexOfValue;\nIndexOfVisitor.prototype.visitFixedSizeList = indexOfValue;\nIndexOfVisitor.prototype.visitMap = indexOfValue;\n/** @ignore */\nexports.instance = new IndexOfVisitor();\n\n//# sourceMappingURL=indexof.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.ToArrayVisitor = void 0;\nconst enum_1 = require(\"../enum\");\nconst visitor_1 = require(\"../visitor\");\nconst iterator_1 = require(\"./iterator\");\n/** @ignore */\nclass ToArrayVisitor extends visitor_1.Visitor {\n}\nexports.ToArrayVisitor = ToArrayVisitor;\n/** @ignore */\nfunction arrayOfVector(vector) {\n const { type, length, stride } = vector;\n // Fast case, return subarray if possible\n switch (type.typeId) {\n case enum_1.Type.Int:\n case enum_1.Type.Float:\n case enum_1.Type.Decimal:\n case enum_1.Type.Time:\n case enum_1.Type.Timestamp:\n return vector.data.values.subarray(0, length * stride);\n }\n // Otherwise if not primitive, slow copy\n return [...iterator_1.instance.visit(vector)];\n}\nToArrayVisitor.prototype.visitNull = arrayOfVector;\nToArrayVisitor.prototype.visitBool = arrayOfVector;\nToArrayVisitor.prototype.visitInt = arrayOfVector;\nToArrayVisitor.prototype.visitInt8 = arrayOfVector;\nToArrayVisitor.prototype.visitInt16 = arrayOfVector;\nToArrayVisitor.prototype.visitInt32 = arrayOfVector;\nToArrayVisitor.prototype.visitInt64 = arrayOfVector;\nToArrayVisitor.prototype.visitUint8 = arrayOfVector;\nToArrayVisitor.prototype.visitUint16 = arrayOfVector;\nToArrayVisitor.prototype.visitUint32 = arrayOfVector;\nToArrayVisitor.prototype.visitUint64 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat = arrayOfVector;\nToArrayVisitor.prototype.visitFloat16 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat32 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat64 = arrayOfVector;\nToArrayVisitor.prototype.visitUtf8 = arrayOfVector;\nToArrayVisitor.prototype.visitBinary = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeBinary = arrayOfVector;\nToArrayVisitor.prototype.visitDate = arrayOfVector;\nToArrayVisitor.prototype.visitDateDay = arrayOfVector;\nToArrayVisitor.prototype.visitDateMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestamp = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTime = arrayOfVector;\nToArrayVisitor.prototype.visitTimeSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitDecimal = arrayOfVector;\nToArrayVisitor.prototype.visitList = arrayOfVector;\nToArrayVisitor.prototype.visitStruct = arrayOfVector;\nToArrayVisitor.prototype.visitUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDenseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitSparseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDictionary = arrayOfVector;\nToArrayVisitor.prototype.visitInterval = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalDayTime = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalYearMonth = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeList = arrayOfVector;\nToArrayVisitor.prototype.visitMap = arrayOfVector;\n/** @ignore */\nexports.instance = new ToArrayVisitor();\n\n//# sourceMappingURL=toarray.js.map\n","\"use strict\";\n/* istanbul ignore file */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.ByteWidthVisitor = void 0;\nconst visitor_1 = require(\"../visitor\");\nconst enum_1 = require(\"../enum\");\n/** @ignore */ const sum = (x, y) => x + y;\n/** @ignore */ const variableWidthColumnErrorMessage = (type) => `Cannot compute the byte width of variable-width column ${type}`;\n/** @ignore */\nclass ByteWidthVisitor extends visitor_1.Visitor {\n visitNull(____) { return 0; }\n visitInt(type) { return type.bitWidth / 8; }\n visitFloat(type) { return type.ArrayType.BYTES_PER_ELEMENT; }\n visitBinary(type) { throw new Error(variableWidthColumnErrorMessage(type)); }\n visitUtf8(type) { throw new Error(variableWidthColumnErrorMessage(type)); }\n visitBool(____) { return 1 / 8; }\n visitDecimal(____) { return 16; }\n visitDate(type) { return (type.unit + 1) * 4; }\n visitTime(type) { return type.bitWidth / 8; }\n visitTimestamp(type) { return type.unit === enum_1.TimeUnit.SECOND ? 4 : 8; }\n visitInterval(type) { return (type.unit + 1) * 4; }\n visitList(type) { throw new Error(variableWidthColumnErrorMessage(type)); }\n visitStruct(type) { return this.visitFields(type.children).reduce(sum, 0); }\n visitUnion(type) { return this.visitFields(type.children).reduce(sum, 0); }\n visitFixedSizeBinary(type) { return type.byteWidth; }\n visitFixedSizeList(type) { return type.listSize * this.visitFields(type.children).reduce(sum, 0); }\n visitMap(type) { return this.visitFields(type.children).reduce(sum, 0); }\n visitDictionary(type) { return this.visit(type.indices); }\n visitFields(fields) { return (fields || []).map((field) => this.visit(field.type)); }\n visitSchema(schema) { return this.visitFields(schema.fields).reduce(sum, 0); }\n}\nexports.ByteWidthVisitor = ByteWidthVisitor;\n/** @ignore */\nexports.instance = new ByteWidthVisitor();\n\n//# sourceMappingURL=bytewidth.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instance = exports.GetVectorConstructor = void 0;\nconst visitor_1 = require(\"../visitor\");\nconst binary_1 = require(\"../vector/binary\");\nconst bool_1 = require(\"../vector/bool\");\nconst date_1 = require(\"../vector/date\");\nconst decimal_1 = require(\"../vector/decimal\");\nconst dictionary_1 = require(\"../vector/dictionary\");\nconst fixedsizebinary_1 = require(\"../vector/fixedsizebinary\");\nconst fixedsizelist_1 = require(\"../vector/fixedsizelist\");\nconst float_1 = require(\"../vector/float\");\nconst interval_1 = require(\"../vector/interval\");\nconst int_1 = require(\"../vector/int\");\nconst list_1 = require(\"../vector/list\");\nconst map_1 = require(\"../vector/map\");\nconst null_1 = require(\"../vector/null\");\nconst struct_1 = require(\"../vector/struct\");\nconst timestamp_1 = require(\"../vector/timestamp\");\nconst time_1 = require(\"../vector/time\");\nconst union_1 = require(\"../vector/union\");\nconst utf8_1 = require(\"../vector/utf8\");\n/** @ignore */\nclass GetVectorConstructor extends visitor_1.Visitor {\n visitNull() { return null_1.NullVector; }\n visitBool() { return bool_1.BoolVector; }\n visitInt() { return int_1.IntVector; }\n visitInt8() { return int_1.Int8Vector; }\n visitInt16() { return int_1.Int16Vector; }\n visitInt32() { return int_1.Int32Vector; }\n visitInt64() { return int_1.Int64Vector; }\n visitUint8() { return int_1.Uint8Vector; }\n visitUint16() { return int_1.Uint16Vector; }\n visitUint32() { return int_1.Uint32Vector; }\n visitUint64() { return int_1.Uint64Vector; }\n visitFloat() { return float_1.FloatVector; }\n visitFloat16() { return float_1.Float16Vector; }\n visitFloat32() { return float_1.Float32Vector; }\n visitFloat64() { return float_1.Float64Vector; }\n visitUtf8() { return utf8_1.Utf8Vector; }\n visitBinary() { return binary_1.BinaryVector; }\n visitFixedSizeBinary() { return fixedsizebinary_1.FixedSizeBinaryVector; }\n visitDate() { return date_1.DateVector; }\n visitDateDay() { return date_1.DateDayVector; }\n visitDateMillisecond() { return date_1.DateMillisecondVector; }\n visitTimestamp() { return timestamp_1.TimestampVector; }\n visitTimestampSecond() { return timestamp_1.TimestampSecondVector; }\n visitTimestampMillisecond() { return timestamp_1.TimestampMillisecondVector; }\n visitTimestampMicrosecond() { return timestamp_1.TimestampMicrosecondVector; }\n visitTimestampNanosecond() { return timestamp_1.TimestampNanosecondVector; }\n visitTime() { return time_1.TimeVector; }\n visitTimeSecond() { return time_1.TimeSecondVector; }\n visitTimeMillisecond() { return time_1.TimeMillisecondVector; }\n visitTimeMicrosecond() { return time_1.TimeMicrosecondVector; }\n visitTimeNanosecond() { return time_1.TimeNanosecondVector; }\n visitDecimal() { return decimal_1.DecimalVector; }\n visitList() { return list_1.ListVector; }\n visitStruct() { return struct_1.StructVector; }\n visitUnion() { return union_1.UnionVector; }\n visitDenseUnion() { return union_1.DenseUnionVector; }\n visitSparseUnion() { return union_1.SparseUnionVector; }\n visitDictionary() { return dictionary_1.DictionaryVector; }\n visitInterval() { return interval_1.IntervalVector; }\n visitIntervalDayTime() { return interval_1.IntervalDayTimeVector; }\n visitIntervalYearMonth() { return interval_1.IntervalYearMonthVector; }\n visitFixedSizeList() { return fixedsizelist_1.FixedSizeListVector; }\n visitMap() { return map_1.MapVector; }\n}\nexports.GetVectorConstructor = GetVectorConstructor;\n/** @ignore */\nexports.instance = new GetVectorConstructor();\n\n//# sourceMappingURL=vectorctor.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toDOMStream = void 0;\nconst buffer_1 = require(\"../../util/buffer\");\nconst compat_1 = require(\"../../util/compat\");\n/** @ignore */\nfunction toDOMStream(source, options) {\n if (compat_1.isAsyncIterable(source)) {\n return asyncIterableAsReadableDOMStream(source, options);\n }\n if (compat_1.isIterable(source)) {\n return iterableAsReadableDOMStream(source, options);\n }\n /* istanbul ignore next */\n throw new Error(`toDOMStream() must be called with an Iterable or AsyncIterable`);\n}\nexports.toDOMStream = toDOMStream;\n/** @ignore */\nfunction iterableAsReadableDOMStream(source, options) {\n let it = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n return new ReadableStream({\n ...options,\n start(controller) { next(controller, it || (it = source[Symbol.iterator]())); },\n pull(controller) { it ? (next(controller, it)) : controller.close(); },\n cancel() { (it && (it.return && it.return()) || true) && (it = null); }\n }, { highWaterMark: bm ? hwm : undefined, ...options });\n function next(controller, it) {\n let buf;\n let r = null;\n let size = controller.desiredSize || null;\n while (!(r = it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = buffer_1.toUint8Array(r.value))) {\n size != null && bm && (size = size - buf.byteLength + 1);\n r.value = buf;\n }\n controller.enqueue(r.value);\n if (size != null && --size <= 0) {\n return;\n }\n }\n controller.close();\n }\n}\n/** @ignore */\nfunction asyncIterableAsReadableDOMStream(source, options) {\n let it = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n return new ReadableStream({\n ...options,\n async start(controller) { await next(controller, it || (it = source[Symbol.asyncIterator]())); },\n async pull(controller) { it ? (await next(controller, it)) : controller.close(); },\n async cancel() { (it && (it.return && await it.return()) || true) && (it = null); },\n }, { highWaterMark: bm ? hwm : undefined, ...options });\n async function next(controller, it) {\n let buf;\n let r = null;\n let size = controller.desiredSize || null;\n while (!(r = await it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = buffer_1.toUint8Array(r.value))) {\n size != null && bm && (size = size - buf.byteLength + 1);\n r.value = buf;\n }\n controller.enqueue(r.value);\n if (size != null && --size <= 0) {\n return;\n }\n }\n controller.close();\n }\n}\n\n//# sourceMappingURL=iterable.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BuilderTransform = exports.builderThroughDOMStream = void 0;\nconst index_1 = require(\"../../builder/index\");\n/** @ignore */\nfunction builderThroughDOMStream(options) {\n return new BuilderTransform(options);\n}\nexports.builderThroughDOMStream = builderThroughDOMStream;\n/** @ignore */\nclass BuilderTransform {\n constructor(options) {\n // Access properties by string indexers to defeat closure compiler\n this._numChunks = 0;\n this._finished = false;\n this._bufferedSize = 0;\n const { ['readableStrategy']: readableStrategy, ['writableStrategy']: writableStrategy, ['queueingStrategy']: queueingStrategy = 'count', ...builderOptions } = options;\n this._controller = null;\n this._builder = index_1.Builder.new(builderOptions);\n this._getSize = queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength;\n const { ['highWaterMark']: readableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...readableStrategy };\n const { ['highWaterMark']: writableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...writableStrategy };\n this['readable'] = new ReadableStream({\n ['cancel']: () => { this._builder.clear(); },\n ['pull']: (c) => { this._maybeFlush(this._builder, this._controller = c); },\n ['start']: (c) => { this._maybeFlush(this._builder, this._controller = c); },\n }, {\n 'highWaterMark': readableHighWaterMark,\n 'size': queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength,\n });\n this['writable'] = new WritableStream({\n ['abort']: () => { this._builder.clear(); },\n ['write']: () => { this._maybeFlush(this._builder, this._controller); },\n ['close']: () => { this._maybeFlush(this._builder.finish(), this._controller); },\n }, {\n 'highWaterMark': writableHighWaterMark,\n 'size': (value) => this._writeValueAndReturnChunkSize(value),\n });\n }\n _writeValueAndReturnChunkSize(value) {\n const bufferedSize = this._bufferedSize;\n this._bufferedSize = this._getSize(this._builder.append(value));\n return this._bufferedSize - bufferedSize;\n }\n _maybeFlush(builder, controller) {\n if (controller === null) {\n return;\n }\n if (this._bufferedSize >= controller.desiredSize) {\n ++this._numChunks && this._enqueue(controller, builder.toVector());\n }\n if (builder.finished) {\n if (builder.length > 0 || this._numChunks === 0) {\n ++this._numChunks && this._enqueue(controller, builder.toVector());\n }\n if (!this._finished && (this._finished = true)) {\n this._enqueue(controller, null);\n }\n }\n }\n _enqueue(controller, chunk) {\n this._bufferedSize = 0;\n this._controller = null;\n chunk === null ? controller.close() : controller.enqueue(chunk);\n }\n}\nexports.BuilderTransform = BuilderTransform;\n/** @ignore */ const chunkLength = (chunk) => chunk.length;\n/** @ignore */ const chunkByteLength = (chunk) => chunk.byteLength;\n\n//# sourceMappingURL=builder.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.recordBatchReaderThroughDOMStream = void 0;\nconst stream_1 = require(\"../../io/stream\");\nconst reader_1 = require(\"../../ipc/reader\");\n/** @ignore */\nfunction recordBatchReaderThroughDOMStream(writableStrategy, readableStrategy) {\n const queue = new stream_1.AsyncByteQueue();\n let reader = null;\n const readable = new ReadableStream({\n async cancel() { await queue.close(); },\n async start(controller) { await next(controller, reader || (reader = await open())); },\n async pull(controller) { reader ? await next(controller, reader) : controller.close(); }\n });\n return { writable: new WritableStream(queue, { 'highWaterMark': 2 ** 14, ...writableStrategy }), readable };\n async function open() {\n return await (await reader_1.RecordBatchReader.from(queue)).open(readableStrategy);\n }\n async function next(controller, reader) {\n let size = controller.desiredSize;\n let r = null;\n while (!(r = await reader.next()).done) {\n controller.enqueue(r.value);\n if (size != null && --size <= 0) {\n return;\n }\n }\n controller.close();\n }\n}\nexports.recordBatchReaderThroughDOMStream = recordBatchReaderThroughDOMStream;\n\n//# sourceMappingURL=reader.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.recordBatchWriterThroughDOMStream = void 0;\nconst stream_1 = require(\"../../io/stream\");\n/** @ignore */\nfunction recordBatchWriterThroughDOMStream(writableStrategy, readableStrategy) {\n const writer = new this(writableStrategy);\n const reader = new stream_1.AsyncByteStream(writer);\n const readable = new ReadableStream({\n type: 'bytes',\n async cancel() { await reader.cancel(); },\n async pull(controller) { await next(controller); },\n async start(controller) { await next(controller); },\n }, { 'highWaterMark': 2 ** 14, ...readableStrategy });\n return { writable: new WritableStream(writer, writableStrategy), readable };\n async function next(controller) {\n let buf = null;\n let size = controller.desiredSize;\n while (buf = await reader.read(size || null)) {\n controller.enqueue(buf);\n if (size != null && (size -= buf.byteLength) <= 0) {\n return;\n }\n }\n controller.close();\n }\n}\nexports.recordBatchWriterThroughDOMStream = recordBatchWriterThroughDOMStream;\n\n//# sourceMappingURL=writer.js.map\n","\"use strict\";\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FilteredDataFrame = exports.CountByResult = exports.DataFrame = void 0;\nconst table_1 = require(\"../table\");\nconst int_1 = require(\"../vector/int\");\nconst schema_1 = require(\"../schema\");\nconst predicate_1 = require(\"./predicate\");\nconst recordbatch_1 = require(\"../recordbatch\");\nconst type_1 = require(\"../type\");\ntable_1.Table.prototype.countBy = function (name) { return new DataFrame(this.chunks).countBy(name); };\ntable_1.Table.prototype.scan = function (next, bind) { return new DataFrame(this.chunks).scan(next, bind); };\ntable_1.Table.prototype.scanReverse = function (next, bind) { return new DataFrame(this.chunks).scanReverse(next, bind); };\ntable_1.Table.prototype.filter = function (predicate) { return new DataFrame(this.chunks).filter(predicate); };\nclass DataFrame extends table_1.Table {\n filter(predicate) {\n return new FilteredDataFrame(this.chunks, predicate);\n }\n scan(next, bind) {\n const batches = this.chunks, numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n if (bind) {\n bind(batch);\n }\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n next(index, batch);\n }\n }\n }\n scanReverse(next, bind) {\n const batches = this.chunks, numBatches = batches.length;\n for (let batchIndex = numBatches; --batchIndex >= 0;) {\n // load batches\n const batch = batches[batchIndex];\n if (bind) {\n bind(batch);\n }\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n next(index, batch);\n }\n }\n }\n countBy(name) {\n const batches = this.chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new predicate_1.Col(name) : name;\n // Assume that all dictionary batches are deltas, which means that the\n // last record batch has the most complete dictionary\n count_by.bind(batches[numBatches - 1]);\n const vector = count_by.vector;\n if (!type_1.DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\n const countByteLength = Math.ceil(Math.log(vector.length) / Math.log(256));\n const CountsArrayType = countByteLength == 4 ? Uint32Array :\n countByteLength >= 2 ? Uint16Array : Uint8Array;\n const counts = new CountsArrayType(vector.dictionary.length);\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n // rebind the countBy Col\n count_by.bind(batch);\n const keys = count_by.vector.indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n const key = keys.get(index);\n if (key !== null) {\n counts[key]++;\n }\n }\n }\n return new CountByResult(vector.dictionary, int_1.IntVector.from(counts));\n }\n}\nexports.DataFrame = DataFrame;\n/** @ignore */\nclass CountByResult extends table_1.Table {\n constructor(values, counts) {\n const schema = new schema_1.Schema([\n new schema_1.Field('values', values.type),\n new schema_1.Field('counts', counts.type)\n ]);\n super(new recordbatch_1.RecordBatch(schema, counts.length, [values, counts]));\n }\n toJSON() {\n const values = this.getColumnAt(0);\n const counts = this.getColumnAt(1);\n const result = {};\n for (let i = -1; ++i < this.length;) {\n result[values.get(i)] = counts.get(i);\n }\n return result;\n }\n}\nexports.CountByResult = CountByResult;\n/** @ignore */\nclass FilteredBatchIterator {\n constructor(batches, predicate) {\n this.batches = batches;\n this.predicate = predicate;\n this.batchIndex = 0;\n this.index = 0;\n // TODO: bind batches lazily\n // If predicate doesn't match anything in the batch we don't need\n // to bind the callback\n this.batch = this.batches[this.batchIndex];\n this.predicateFunc = this.predicate.bind(this.batch);\n }\n next() {\n while (this.batchIndex < this.batches.length) {\n while (this.index < this.batch.length) {\n if (this.predicateFunc(this.index, this.batch)) {\n return {\n value: this.batch.get(this.index++),\n };\n }\n this.index++;\n }\n if (++this.batchIndex < this.batches.length) {\n this.index = 0;\n this.batch = this.batches[this.batchIndex];\n this.predicateFunc = this.predicate.bind(this.batch);\n }\n }\n return { done: true, value: null };\n }\n [Symbol.iterator]() {\n return this;\n }\n}\n/** @ignore */\nclass FilteredDataFrame extends DataFrame {\n constructor(batches, predicate) {\n super(batches);\n this._predicate = predicate;\n }\n scan(next, bind) {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n let isBound = false;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) {\n // bind batches lazily - if predicate doesn't match anything\n // in the batch we don't need to call bind on the batch\n if (bind && !isBound) {\n bind(batch);\n isBound = true;\n }\n next(index, batch);\n }\n }\n }\n }\n scanReverse(next, bind) {\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = numBatches; --batchIndex >= 0;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n let isBound = false;\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n if (predicate(index, batch)) {\n // bind batches lazily - if predicate doesn't match anything\n // in the batch we don't need to call bind on the batch\n if (bind && !isBound) {\n bind(batch);\n isBound = true;\n }\n next(index, batch);\n }\n }\n }\n }\n count() {\n // inlined version of this:\n // let sum = 0;\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) ++sum;\n // });\n // return sum;\n let sum = 0;\n const batches = this._chunks;\n const numBatches = batches.length;\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) {\n ++sum;\n }\n }\n }\n return sum;\n }\n [Symbol.iterator]() {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n return new FilteredBatchIterator(this._chunks, this._predicate);\n }\n filter(predicate) {\n return new FilteredDataFrame(this._chunks, this._predicate.and(predicate));\n }\n countBy(name) {\n const batches = this._chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new predicate_1.Col(name) : name;\n // Assume that all dictionary batches are deltas, which means that the\n // last record batch has the most complete dictionary\n count_by.bind(batches[numBatches - 1]);\n const vector = count_by.vector;\n if (!type_1.DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\n const countByteLength = Math.ceil(Math.log(vector.length) / Math.log(256));\n const CountsArrayType = countByteLength == 4 ? Uint32Array :\n countByteLength >= 2 ? Uint16Array : Uint8Array;\n const counts = new CountsArrayType(vector.dictionary.length);\n for (let batchIndex = -1; ++batchIndex < numBatches;) {\n // load batches\n const batch = batches[batchIndex];\n const predicate = this._predicate.bind(batch);\n // rebind the countBy Col\n count_by.bind(batch);\n const keys = count_by.vector.indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n const key = keys.get(index);\n if (key !== null && predicate(index, batch)) {\n counts[key]++;\n }\n }\n }\n return new CountByResult(vector.dictionary, int_1.IntVector.from(counts));\n }\n}\nexports.FilteredDataFrame = FilteredDataFrame;\n\n//# sourceMappingURL=dataframe.js.map\n","import type {Schema} from '../schema';\nimport type {TableBatch} from '../../category/table/table-types';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n rows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n getBatch(): TableBatch | null {\n let rows = this.rows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.rows = null;\n\n const batch: TableBatch = {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n\n return batch;\n }\n}\n","/** Convert an object row to an array row */\nexport function convertToObjectRow(\n arrayRow: any[],\n headers: string[]\n): {[columnName: string]: any} {\n if (!arrayRow) {\n throw new Error('null row');\n }\n if (!headers) {\n throw new Error('no headers');\n }\n const objectRow = {};\n for (let i = 0; i < headers.length; i++) {\n objectRow[headers[i]] = arrayRow[i];\n }\n return objectRow;\n}\n\n/** Convert an object row to an array row */\nexport function convertToArrayRow(\n objectRow: {[columnName: string]: any},\n headers: string[]\n): any[] {\n if (!objectRow) {\n throw new Error('null row');\n }\n if (!headers) {\n throw new Error('no headers');\n }\n const arrayRow = new Array(headers.length);\n for (let i = 0; i < headers.length; i++) {\n arrayRow[i] = objectRow[headers[i]];\n }\n return arrayRow;\n}\n","import type {Schema} from '../schema';\nimport type {TableBatch} from '../../category/table/table-types';\n// import type {ArrayRowTableBatch, ObjectRowTableBatch} from '../../category/table';\nimport {convertToArrayRow, convertToObjectRow} from '../utils/row-utils';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n objectRows: {[columnName: string]: any} | null = null;\n arrayRows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'object-row-table':\n const rowObject = convertToObjectRow(row, this._headers);\n this.addObjectRow(rowObject, cursor);\n break;\n case 'array-row-table':\n this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);\n this.arrayRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'array-row-table':\n const rowArray = convertToArrayRow(row, this._headers);\n this.addArrayRow(rowArray, cursor);\n break;\n case 'object-row-table':\n this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);\n this.objectRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n getBatch(): TableBatch | null {\n let rows = this.arrayRows || this.objectRows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.arrayRows = null;\n this.objectRows = null;\n\n return {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n }\n}\n","import type {Schema} from '../schema';\nimport type {ColumnarTableBatch, ArrowTableBatch} from '../../category/table/table-types';\nimport {TableBatchAggregator} from './table-batch-aggregator';\n\ntype ColumnarTableBatchOptions = {};\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class ColumnarTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n length: number = 0;\n allocated: number = 0;\n columns: {[columnName: string]: any[]} = {};\n\n constructor(schema: Schema, options: ColumnarTableBatchOptions) {\n this.schema = schema;\n this._reallocateColumns();\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[]) {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n let i = 0;\n // TODO what if no csv header, columns not populated?\n for (const fieldName in this.columns) {\n this.columns[fieldName][this.length] = row[i++];\n }\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}): void {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n for (const fieldName in row) {\n this.columns[fieldName][this.length] = row[fieldName];\n }\n this.length++;\n }\n\n getBatch(): ColumnarTableBatch | ArrowTableBatch | null {\n this._pruneColumns();\n const columns = Array.isArray(this.schema) ? this.columns : {};\n\n // schema is an array if there're no headers\n // object if there are headers\n // columns should match schema format\n if (!Array.isArray(this.schema)) {\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n columns[field.name] = this.columns[field.index];\n }\n }\n\n this.columns = {};\n\n const batch: ColumnarTableBatch = {\n shape: 'columnar-table',\n batchType: 'data',\n data: columns,\n schema: this.schema,\n length: this.length\n };\n\n return batch;\n }\n\n // HELPERS\n\n _reallocateColumns() {\n if (this.length < this.allocated) {\n return;\n }\n\n // @ts-ignore TODO\n this.allocated = this.allocated > 0 ? (this.allocated *= 2) : DEFAULT_ROW_COUNT;\n this.columns = {};\n\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n const ArrayType = field.type || Float32Array;\n const oldColumn = this.columns[field.index];\n\n if (oldColumn && ArrayBuffer.isView(oldColumn)) {\n // Copy the old data to the new array\n const typedArray = new ArrayType(this.allocated);\n typedArray.set(oldColumn);\n this.columns[field.index] = typedArray;\n } else if (oldColumn) {\n // Plain array\n oldColumn.length = this.allocated;\n this.columns[field.index] = oldColumn;\n } else {\n // Create new\n this.columns[field.index] = new ArrayType(this.allocated);\n }\n }\n }\n\n _pruneColumns() {\n for (const [columnName, column] of Object.entries(this.columns)) {\n this.columns[columnName] = column.slice(0, this.length);\n }\n }\n}\n","import type {Schema} from '../schema';\nimport type {TableBatch} from '../../category/table/table-types';\nimport type {TableBatchAggregator, TableBatchConstructor} from './table-batch-aggregator';\nimport BaseTableBatchAggregator from './base-table-batch-aggregator';\nimport RowTableBatchAggregator from './row-table-batch-aggregator';\nimport ColumnarTableBatchAggregator from './columnar-table-batch-aggregator';\n\n// TODO define interface instead\ntype TableBatchBuilderOptions = {\n shape: 'row-table' | 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';\n batchSize?: number | 'auto';\n batchDebounceMs?: number;\n limit: number;\n _limitMB: number;\n};\n\ntype GetBatchOptions = {\n bytesUsed?: number;\n [key: string]: any;\n};\n\nconst DEFAULT_OPTIONS: Required<TableBatchBuilderOptions> = {\n shape: 'array-row-table',\n batchSize: 'auto',\n batchDebounceMs: 0,\n limit: 0,\n _limitMB: 0\n};\n\nconst ERR_MESSAGE = 'TableBatchBuilder';\n\n/** Incrementally builds batches from a stream of rows */\nexport default class TableBatchBuilder {\n schema: Schema;\n options: Required<TableBatchBuilderOptions>;\n\n private aggregator: TableBatchAggregator | null = null;\n private batchCount: number = 0;\n private bytesUsed: number = 0;\n private isChunkComplete: boolean = false;\n private lastBatchEmittedMs: number = Date.now();\n private totalLength: number = 0;\n private totalBytes: number = 0;\n private rowBytes: number = 0;\n\n static ArrowBatch?: TableBatchConstructor;\n\n constructor(schema: Schema, options?: TableBatchBuilderOptions) {\n this.schema = schema;\n this.options = {...DEFAULT_OPTIONS, ...options};\n }\n\n limitReached(): boolean {\n if (Boolean(this.options?.limit) && this.totalLength >= this.options.limit) {\n return true;\n }\n if (Boolean(this.options?._limitMB) && this.totalBytes / 1e6 >= this.options._limitMB) {\n return true;\n }\n return false;\n }\n\n /** @deprecated Use addArrayRow or addObjectRow */\n addRow(row: any[] | {[columnName: string]: any}): void {\n if (this.limitReached()) {\n return;\n }\n this.totalLength++;\n this.rowBytes = this.rowBytes || this._estimateRowMB(row);\n this.totalBytes += this.rowBytes;\n if (Array.isArray(row)) {\n this.addArrayRow(row);\n } else {\n this.addObjectRow(row);\n }\n }\n\n /** Add one row to the batch */\n protected addArrayRow(row: any[]) {\n if (!this.aggregator) {\n const TableBatchType = this._getTableBatchType();\n this.aggregator = new TableBatchType(this.schema, this.options);\n }\n this.aggregator.addArrayRow(row);\n }\n\n /** Add one row to the batch */\n protected addObjectRow(row: {[columnName: string]: any}): void {\n if (!this.aggregator) {\n const TableBatchType = this._getTableBatchType();\n this.aggregator = new TableBatchType(this.schema, this.options);\n }\n this.aggregator.addObjectRow(row);\n }\n\n /** Mark an incoming raw memory chunk has completed */\n chunkComplete(chunk: ArrayBuffer | string): void {\n if (chunk instanceof ArrayBuffer) {\n this.bytesUsed += chunk.byteLength;\n }\n if (typeof chunk === 'string') {\n this.bytesUsed += chunk.length;\n }\n this.isChunkComplete = true;\n }\n\n getFullBatch(options?: GetBatchOptions): TableBatch | null {\n return this._isFull() ? this._getBatch(options) : null;\n }\n\n getFinalBatch(options?: GetBatchOptions): TableBatch | null {\n return this._getBatch(options);\n }\n\n // INTERNAL\n\n _estimateRowMB(row) {\n return Array.isArray(row) ? row.length * 8 : Object.keys(row).length * 8;\n }\n\n private _isFull(): boolean {\n // No batch, not ready\n if (!this.aggregator || this.aggregator.rowCount() === 0) {\n return false;\n }\n\n // if batchSize === 'auto' we wait for chunk to complete\n // if batchSize === number, ensure we have enough rows\n if (this.options.batchSize === 'auto') {\n if (!this.isChunkComplete) {\n return false;\n }\n } else if (this.options.batchSize > this.aggregator.rowCount()) {\n return false;\n }\n\n // Debounce batches\n if (this.options.batchDebounceMs > Date.now() - this.lastBatchEmittedMs) {\n return false;\n }\n\n // Emit batch\n this.isChunkComplete = false;\n this.lastBatchEmittedMs = Date.now();\n return true;\n }\n\n /**\n * bytesUsed can be set via chunkComplete or via getBatch*\n */\n private _getBatch(options?: GetBatchOptions): TableBatch | null {\n if (!this.aggregator) {\n return null;\n }\n\n // TODO - this can overly increment bytes used?\n if (options?.bytesUsed) {\n this.bytesUsed = options.bytesUsed;\n }\n const normalizedBatch = this.aggregator.getBatch() as TableBatch;\n normalizedBatch.count = this.batchCount;\n normalizedBatch.bytesUsed = this.bytesUsed;\n Object.assign(normalizedBatch, options);\n\n this.batchCount++;\n this.aggregator = null;\n return normalizedBatch;\n }\n\n private _getTableBatchType(): TableBatchConstructor {\n switch (this.options.shape) {\n case 'row-table':\n return BaseTableBatchAggregator;\n case 'array-row-table':\n case 'object-row-table':\n return RowTableBatchAggregator;\n case 'columnar-table':\n return ColumnarTableBatchAggregator;\n case 'arrow-table':\n if (!TableBatchBuilder.ArrowBatch) {\n throw new Error(ERR_MESSAGE);\n }\n return TableBatchBuilder.ArrowBatch;\n default:\n throw new Error(ERR_MESSAGE);\n }\n }\n}\n","// Mesh category utilities\n// TODO - move to mesh category module, or to math.gl/geometry module\nimport {TypedArray} from '../../types';\nimport {MeshAttributes} from './mesh-types';\n\ntype TypedArrays = {[key: string]: TypedArray};\n\n/**\n * Holds an axis aligned bounding box\n * TODO - make sure AxisAlignedBoundingBox in math.gl/culling understands this format (or change this format)\n */\ntype BoundingBox = [[number, number, number], [number, number, number]];\n\n/**\n * Get number of vertices in mesh\n * @param attributes\n */\nexport function getMeshSize(attributes: TypedArrays): number {\n let size = 0;\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n if (ArrayBuffer.isView(attribute)) {\n // @ts-ignore DataView doesn't have BYTES_PER_ELEMENT\n size += attribute.byteLength * attribute.BYTES_PER_ELEMENT;\n }\n }\n return size;\n}\n\n/**\n * Get the (axis aligned) bounding box of a mesh\n * @param attributes\n * @returns array of two vectors representing the axis aligned bounding box\n */\n// eslint-disable-next-line complexity\nexport function getMeshBoundingBox(attributes: MeshAttributes): BoundingBox {\n let minX = Infinity;\n let minY = Infinity;\n let minZ = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let maxZ = -Infinity;\n\n const positions = attributes.POSITION ? attributes.POSITION.value : [];\n const len = positions && positions.length;\n\n for (let i = 0; i < len; i += 3) {\n const x = positions[i];\n const y = positions[i + 1];\n const z = positions[i + 2];\n\n minX = x < minX ? x : minX;\n minY = y < minY ? y : minY;\n minZ = z < minZ ? z : minZ;\n\n maxX = x > maxX ? x : maxX;\n maxY = y > maxY ? y : maxY;\n maxZ = z > maxZ ? z : maxZ;\n }\n return [\n [minX, minY, minZ],\n [maxX, maxY, maxZ]\n ];\n}\n","import type {TypedArray} from '../../types';\nimport {\n DataType,\n Float32,\n Float64,\n Int16,\n Int32,\n Int8,\n Uint16,\n Uint32,\n Uint8,\n Int8Vector,\n Uint8Vector,\n Int16Vector,\n Uint16Vector,\n Int32Vector,\n Uint32Vector,\n Float32Vector,\n Float64Vector\n} from 'apache-arrow';\nimport {AbstractVector} from 'apache-arrow/vector';\n\nexport function getArrowType(array: TypedArray): DataType {\n switch (array.constructor) {\n case Int8Array:\n return new Int8();\n case Uint8Array:\n return new Uint8();\n case Int16Array:\n return new Int16();\n case Uint16Array:\n return new Uint16();\n case Int32Array:\n return new Int32();\n case Uint32Array:\n return new Uint32();\n case Float32Array:\n return new Float32();\n case Float64Array:\n return new Float64();\n default:\n throw new Error('array type not supported');\n }\n}\n\nexport function getArrowVector(array: TypedArray): AbstractVector {\n switch (array.constructor) {\n case Int8Array:\n return Int8Vector.from(array);\n case Uint8Array:\n return Uint8Vector.from(array);\n case Int16Array:\n return Int16Vector.from(array);\n case Uint16Array:\n return Uint16Vector.from(array);\n case Int32Array:\n return Int32Vector.from(array);\n case Uint32Array:\n return Uint32Vector.from(array);\n case Float32Array:\n return Float32Vector.from(array);\n case Float64Array:\n return Float64Vector.from(array);\n default:\n throw new Error('array type not supported');\n }\n}\n","import {assert} from '../../utils/assert';\nimport Field from './field';\n\nexport type SchemaMetadata = Map<string, any>;\n\n/**\n * ArrowJS `Schema` API-compatible class for row-based tables (returned from `DataTable`)\n * https://loaders.gl/arrowjs/docs/api-reference/schema\n */\nexport default class Schema {\n fields: Field[];\n // TODO - Arrow just allows Map<string, string>\n metadata: SchemaMetadata;\n\n constructor(fields: Field[], metadata?: SchemaMetadata) {\n assert(Array.isArray(fields));\n checkNames(fields);\n // For kepler fields, create arrow compatible `Fields` that have kepler fields as `metadata`\n this.fields = fields;\n this.metadata = metadata || new Map();\n }\n\n // TODO - arrow only seems to compare fields, not metadata\n compareTo(other: Schema): boolean {\n if (this.metadata !== other.metadata) {\n return false;\n }\n if (this.fields.length !== other.fields.length) {\n return false;\n }\n for (let i = 0; i < this.fields.length; ++i) {\n if (!this.fields[i].compareTo(other.fields[i])) {\n return false;\n }\n }\n return true;\n }\n\n select(...columnNames: string[]): Schema {\n // Ensure column names reference valid fields\n const nameMap = Object.create(null);\n for (const name of columnNames) {\n nameMap[name] = true;\n }\n const selectedFields = this.fields.filter((field) => nameMap[field.name]);\n return new Schema(selectedFields, this.metadata);\n }\n\n selectAt(...columnIndices: number[]): Schema {\n // Ensure column indices reference valid fields\n const selectedFields = columnIndices.map((index) => this.fields[index]).filter(Boolean);\n return new Schema(selectedFields, this.metadata);\n }\n\n assign(schemaOrFields: Schema | Field[]): Schema {\n let fields: Field[];\n let metadata: SchemaMetadata = this.metadata;\n\n if (schemaOrFields instanceof Schema) {\n const otherSchema = schemaOrFields;\n fields = otherSchema.fields;\n metadata = mergeMaps(mergeMaps(new Map(), this.metadata), otherSchema.metadata);\n } else {\n fields = schemaOrFields;\n }\n\n // Create a merged list of fields, overwrite fields in place, new fields at end\n const fieldMap: {[key: string]: Field} = Object.create(null);\n\n for (const field of this.fields) {\n fieldMap[field.name] = field;\n }\n\n for (const field of fields) {\n fieldMap[field.name] = field;\n }\n\n const mergedFields = Object.values(fieldMap);\n\n return new Schema(mergedFields, metadata);\n }\n}\n\n// Warn if any duplicated field names\nfunction checkNames(fields) {\n const usedNames = {};\n for (const field of fields) {\n if (usedNames[field.name]) {\n // eslint-disable-next-line\n console.warn('Schema: duplicated field name', field.name, field);\n }\n usedNames[field.name] = true;\n }\n}\n\nfunction mergeMaps<T>(m1: T, m2: T): T {\n // @ts-ignore\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n","// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport function assert(condition: boolean, message?: string) {\n if (!condition) {\n throw new Error(message || 'loader assertion failed.');\n }\n}\n","import {DataType} from './type';\n\n/**\n * ArrowJS `Field` API-compatible class for row-based tables\n * https://loaders.gl/arrowjs/docs/api-reference/field\n * A field holds name, nullable, and metadata information about a table \"column\"\n * A Schema is essentially a list of fields\n */\nexport default class Field {\n name: string;\n type: DataType;\n nullable: boolean;\n metadata: Map<string, string>;\n\n constructor(\n name: string,\n type: DataType,\n nullable = false,\n metadata: Map<string, string> = new Map()\n ) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata;\n }\n\n get typeId(): number {\n return this.type && this.type.typeId;\n }\n\n clone(): Field {\n return new Field(this.name, this.type, this.nullable, this.metadata);\n }\n\n compareTo(other: this): boolean {\n return (\n this.name === other.name &&\n this.type === other.type &&\n this.nullable === other.nullable &&\n this.metadata === other.metadata\n );\n }\n\n toString(): string {\n return `${this.type}${this.nullable ? ', nullable' : ''}${\n this.metadata ? `, metadata: ${this.metadata}` : ''\n }`;\n }\n}\n","// This code is adapted from ArrowJS https://github.com/apache/arrow\n// under Apache license http://www.apache.org/licenses/LICENSE-2.0\n\n/**\n * Main data type enumeration.\n *\n * Data types in this library are all *logical*. They can be expressed as\n * either a primitive physical type (bytes or bits of some fixed size), a\n * nested type consisting of other data types, or another data type (e.g. a\n * timestamp encoded as an int64).\n *\n * **Note**: Only enum values 0-17 (NONE through Map) are written to an Arrow\n * IPC payload.\n *\n * The rest of the values are specified here so TypeScript can narrow the type\n * signatures further beyond the base Arrow Types. The Arrow DataTypes include\n * metadata like `bitWidth` that impact the type signatures of the values we\n * accept and return.\n *\n * For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an\n * `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`\n * reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the\n * underlying `Int32Array`.\n *\n * Library consumers benefit by knowing the narrowest type, since we can ensure\n * the types across all public methods are propagated, and never bail to `any`.\n * These values are _never_ used at runtime, and they will _never_ be written\n * to the flatbuffers metadata of serialized Arrow IPC payloads.\n */\nexport enum Type {\n /** The default placeholder type */\n NONE = 0,\n /** A NULL type having no physical storage */\n Null = 1,\n /** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */\n Int = 2,\n /** 2, 4, or 8-byte floating point value */\n Float = 3,\n /** Variable-length bytes (no guarantee of UTF8-ness) */\n Binary = 4,\n /** UTF8 variable-length string as List<Char> */\n Utf8 = 5,\n /** Boolean as 1 bit, LSB bit-packed ordering */\n Bool = 6,\n /** Precision-and-scale-based decimal type. Storage type depends on the parameters. */\n Decimal = 7,\n /** int32_t days or int64_t milliseconds since the UNIX epoch */\n Date = 8,\n /** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */\n Time = 9,\n /** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */\n Timestamp = 10,\n /** YEAR_MONTH or DAY_TIME interval in SQL style */\n Interval = 11,\n /** A list of some logical data type */\n List = 12,\n /** Struct of logical types */\n Struct = 13,\n /** Union of logical types */\n Union = 14,\n /** Fixed-size binary. Each value occupies the same number of bytes */\n FixedSizeBinary = 15,\n /** Fixed-size list. Each value occupies the same number of bytes */\n FixedSizeList = 16,\n /** Map of named logical types */\n Map = 17,\n\n /** Dictionary aka Category type */\n Dictionary = -1,\n Int8 = -2,\n Int16 = -3,\n Int32 = -4,\n Int64 = -5,\n Uint8 = -6,\n Uint16 = -7,\n Uint32 = -8,\n Uint64 = -9,\n Float16 = -10,\n Float32 = -11,\n Float64 = -12,\n DateDay = -13,\n DateMillisecond = -14,\n TimestampSecond = -15,\n TimestampMillisecond = -16,\n TimestampMicrosecond = -17,\n TimestampNanosecond = -18,\n TimeSecond = -19,\n TimeMillisecond = -20,\n TimeMicrosecond = -21,\n TimeNanosecond = -22,\n DenseUnion = -23,\n SparseUnion = -24,\n IntervalDayTime = -25,\n IntervalYearMonth = -26\n}\n","// This code is adapted from ArrowJS https://github.com/apache/arrow\n// under Apache license http://www.apache.org/licenses/LICENSE-2.0\n\nimport {Type} from './enum';\n\nimport Field from './field';\n\nexport {Type} from './enum';\n\nexport type TypedIntArray =\n | Int8Array\n | Uint8Array\n | Int16Array\n | Uint16Array\n | Int32Array\n | Uint32Array\n | Int32Array\n | Uint32Array\n | Uint8ClampedArray;\n\nexport type TypedFloatArray = Float32Array | Float64Array;\n\nexport type TypedArray = TypedIntArray | TypedFloatArray;\n\nexport type AnyArrayType = Array<any> | TypedIntArray | TypedFloatArray;\n\nexport class DataType {\n static isNull(x: any): boolean {\n return x && x.typeId === Type.Null;\n }\n static isInt(x: any): boolean {\n return x && x.typeId === Type.Int;\n }\n static isFloat(x: any): boolean {\n return x && x.typeId === Type.Float;\n }\n static isBinary(x: any): boolean {\n return x && x.typeId === Type.Binary;\n }\n static isUtf8(x: any): boolean {\n return x && x.typeId === Type.Utf8;\n }\n static isBool(x: any): boolean {\n return x && x.typeId === Type.Bool;\n }\n static isDecimal(x: any): boolean {\n return x && x.typeId === Type.Decimal;\n }\n static isDate(x: any): boolean {\n return x && x.typeId === Type.Date;\n }\n static isTime(x: any): boolean {\n return x && x.typeId === Type.Time;\n }\n static isTimestamp(x: any): boolean {\n return x && x.typeId === Type.Timestamp;\n }\n static isInterval(x: any): boolean {\n return x && x.typeId === Type.Interval;\n }\n static isList(x: any): boolean {\n return x && x.typeId === Type.List;\n }\n static isStruct(x: any): boolean {\n return x && x.typeId === Type.Struct;\n }\n static isUnion(x: any): boolean {\n return x && x.typeId === Type.Union;\n }\n static isFixedSizeBinary(x: any): boolean {\n return x && x.typeId === Type.FixedSizeBinary;\n }\n static isFixedSizeList(x: any): boolean {\n return x && x.typeId === Type.FixedSizeList;\n }\n static isMap(x: any): boolean {\n return x && x.typeId === Type.Map;\n }\n static isDictionary(x: any): boolean {\n return x && x.typeId === Type.Dictionary;\n }\n\n get typeId(): Type {\n return Type.NONE;\n }\n\n // get ArrayType(): AnyArrayType {\n // return Int8Array;\n // }\n\n // get ArrayType() { return Array; }\n compareTo(other: DataType): boolean {\n // TODO\n return this === other; // comparer.visit(this, other);\n }\n}\n\n// NULL\n\nexport class Null extends DataType {\n get typeId(): Type {\n return Type.Null;\n }\n get [Symbol.toStringTag](): string {\n return 'Null';\n }\n toString(): string {\n return 'Null';\n }\n}\n\n// BOOLEANS\n\nexport class Bool extends DataType {\n get typeId(): Type {\n return Type.Bool;\n }\n // get ArrayType() {\n // return Uint8Array;\n // }\n get [Symbol.toStringTag](): string {\n return 'Bool';\n }\n toString(): string {\n return 'Bool';\n }\n}\n\n// INTS\n\nexport class Int extends DataType {\n readonly isSigned: boolean;\n readonly bitWidth: number;\n constructor(isSigned, bitWidth) {\n super();\n this.isSigned = isSigned;\n this.bitWidth = bitWidth;\n }\n get typeId(): Type {\n return Type.Int;\n }\n // get ArrayType() {\n // switch (this.bitWidth) {\n // case 8:\n // return this.isSigned ? Int8Array : Uint8Array;\n // case 16:\n // return this.isSigned ? Int16Array : Uint16Array;\n // case 32:\n // return this.isSigned ? Int32Array : Uint32Array;\n // case 64:\n // return this.isSigned ? Int32Array : Uint32Array;\n // default:\n // throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n // }\n // }\n get [Symbol.toStringTag](): string {\n return 'Int';\n }\n toString(): string {\n return `${this.isSigned ? 'I' : 'Ui'}nt${this.bitWidth}`;\n }\n}\n\nexport class Int8 extends Int {\n constructor() {\n super(true, 8);\n }\n}\nexport class Int16 extends Int {\n constructor() {\n super(true, 16);\n }\n}\nexport class Int32 extends Int {\n constructor() {\n super(true, 32);\n }\n}\nexport class Int64 extends Int {\n constructor() {\n super(true, 64);\n }\n}\nexport class Uint8 extends Int {\n constructor() {\n super(false, 8);\n }\n}\nexport class Uint16 extends Int {\n constructor() {\n super(false, 16);\n }\n}\nexport class Uint32 extends Int {\n constructor() {\n super(false, 32);\n }\n}\nexport class Uint64 extends Int {\n constructor() {\n super(false, 64);\n }\n}\n\n// FLOATS\n\nconst Precision = {\n HALF: 16,\n SINGLE: 32,\n DOUBLE: 64\n};\n\nexport class Float extends DataType {\n readonly precision: number;\n constructor(precision) {\n super();\n this.precision = precision;\n }\n get typeId(): Type {\n return Type.Float;\n }\n // get ArrayType() {\n // switch (this.precision) {\n // case Precision.HALF:\n // return Uint16Array;\n // case Precision.SINGLE:\n // return Float32Array;\n // case Precision.DOUBLE:\n // return Float64Array;\n // default:\n // throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n // }\n // }\n get [Symbol.toStringTag](): string {\n return 'Float';\n }\n toString(): string {\n return `Float${this.precision}`;\n }\n}\n\nexport class Float16 extends Float {\n constructor() {\n super(Precision.HALF);\n }\n}\nexport class Float32 extends Float {\n constructor() {\n super(Precision.SINGLE);\n }\n}\nexport class Float64 extends Float {\n constructor() {\n super(Precision.DOUBLE);\n }\n}\n\nexport class Binary extends DataType {\n constructor() {\n super();\n }\n get typeId() {\n return Type.Binary;\n }\n toString() {\n return 'Binary';\n }\n get [Symbol.toStringTag]() {\n return 'Binary';\n }\n}\n\n// STRINGS\n\nexport class Utf8 extends DataType {\n get typeId(): Type {\n return Type.Utf8;\n }\n // get ArrayType() {\n // return Uint8Array;\n // }\n get [Symbol.toStringTag](): string {\n return 'Utf8';\n }\n toString(): string {\n return 'Utf8';\n }\n}\n\n// DATES, TIMES AND INTERVALS\n\nconst DateUnit = {\n DAY: 0,\n MILLISECOND: 1\n};\n\nexport class Date extends DataType {\n readonly unit: number;\n constructor(unit) {\n super();\n this.unit = unit;\n }\n get typeId(): Type {\n return Type.Date;\n }\n // get ArrayType() {\n // return Int32Array;\n // }\n get [Symbol.toStringTag](): string {\n return 'Date';\n }\n toString(): string {\n return `Date${(this.unit + 1) * 32}<${DateUnit[this.unit]}>`;\n }\n}\n\nexport class DateDay extends Date {\n constructor() {\n super(DateUnit.DAY);\n }\n}\nexport class DateMillisecond extends Date {\n constructor() {\n super(DateUnit.MILLISECOND);\n }\n}\n\nconst TimeUnit = {\n SECOND: 1,\n MILLISECOND: 1e3,\n MICROSECOND: 1e6,\n NANOSECOND: 1e9\n};\n\nexport class Time extends DataType {\n readonly unit: number;\n readonly bitWidth: number;\n\n constructor(unit, bitWidth) {\n super();\n this.unit = unit;\n this.bitWidth = bitWidth;\n }\n get typeId(): Type {\n return Type.Time;\n }\n toString(): string {\n return `Time${this.bitWidth}<${TimeUnit[this.unit]}>`;\n }\n get [Symbol.toStringTag](): string {\n return 'Time';\n }\n // get ArrayType() {\n // return Int32Array;\n // }\n}\n\nexport class TimeSecond extends Time {\n constructor() {\n super(TimeUnit.SECOND, 32);\n }\n}\nexport class TimeMillisecond extends Time {\n constructor() {\n super(TimeUnit.MILLISECOND, 32);\n }\n}\n// export class TimeMicrosecond extends Time { constructor() { super(TimeUnit.MICROSECOND, 64); } }\n// export class TimeNanosecond extends Time { constructor() { super(TimeUnit.NANOSECOND, 64); } }\n\nexport class Timestamp extends DataType {\n readonly unit: any;\n readonly timezone: any;\n\n constructor(unit: any, timezone = null) {\n super();\n this.unit = unit;\n this.timezone = timezone;\n }\n get typeId(): Type {\n return Type.Timestamp;\n }\n // get ArrayType() {\n // return Int32Array;\n // }\n get [Symbol.toStringTag](): string {\n return 'Timestamp';\n }\n toString(): string {\n return `Timestamp<${TimeUnit[this.unit]}${this.timezone ? `, ${this.timezone}` : ''}>`;\n }\n}\n\nexport class TimestampSecond extends Timestamp {\n constructor(timezone = null) {\n super(TimeUnit.SECOND, timezone);\n }\n}\nexport class TimestampMillisecond extends Timestamp {\n constructor(timezone = null) {\n super(TimeUnit.MILLISECOND, timezone);\n }\n}\nexport class TimestampMicrosecond extends Timestamp {\n constructor(timezone = null) {\n super(TimeUnit.MICROSECOND, timezone);\n }\n}\nexport class TimestampNanosecond extends Timestamp {\n constructor(timezone = null) {\n super(TimeUnit.NANOSECOND, timezone);\n }\n}\n\nconst IntervalUnit = {\n DAY_TIME: 0,\n YEAR_MONTH: 1\n};\n\nexport class Interval extends DataType {\n readonly unit: number;\n constructor(unit: number) {\n super();\n this.unit = unit;\n }\n get typeId(): Type {\n return Type.Interval;\n }\n // get ArrayType() {\n // return Int32Array;\n // }\n get [Symbol.toStringTag](): string {\n return 'Interval';\n }\n toString(): string {\n return `Interval<${IntervalUnit[this.unit]}>`;\n }\n}\n\nexport class IntervalDayTime extends Interval {\n constructor() {\n super(IntervalUnit.DAY_TIME);\n }\n}\nexport class IntervalYearMonth extends Interval {\n constructor() {\n super(IntervalUnit.YEAR_MONTH);\n }\n}\n\nexport class FixedSizeList extends DataType {\n readonly listSize: number;\n readonly children: Field[];\n\n constructor(listSize: number, child: Field) {\n super();\n this.listSize = listSize;\n this.children = [child];\n }\n get typeId(): Type {\n return Type.FixedSizeList;\n }\n get valueType() {\n return this.children[0].type;\n }\n get valueField() {\n return this.children[0];\n }\n // get ArrayType() {\n // return this.valueType.ArrayType;\n // }\n get [Symbol.toStringTag](): string {\n return 'FixedSizeList';\n }\n toString(): string {\n return `FixedSizeList[${this.listSize}]<${this.valueType}>`;\n }\n}\n\nexport class Struct extends DataType {\n public readonly children: Field[];\n\n constructor(children: Field[]) {\n super();\n this.children = children;\n }\n\n public get typeId() {\n return Type.Struct;\n }\n public toString() {\n return `Struct<{${this.children.map((f) => `${f.name}:${f.type}`).join(', ')}}>`;\n }\n get [Symbol.toStringTag](): string {\n return 'Struct';\n }\n}\n","import type {TypedArray} from '../../types';\nimport {DataType, Float32, Float64, Int16, Int32, Int8, Uint16, Uint32, Uint8} from '../schema';\n\nexport function getArrowTypeFromTypedArray(array: TypedArray): DataType {\n switch (array.constructor) {\n case Int8Array:\n return new Int8();\n case Uint8Array:\n return new Uint8();\n case Int16Array:\n return new Int16();\n case Uint16Array:\n return new Uint16();\n case Int32Array:\n return new Int32();\n case Uint32Array:\n return new Uint32();\n case Float32Array:\n return new Float32();\n case Float64Array:\n return new Float64();\n default:\n throw new Error('array type not supported');\n }\n}\n","import {MeshAttribute, MeshAttributes} from './mesh-types';\nimport {Schema, Field, FixedSizeList} from '../../lib/schema';\nimport {getArrowTypeFromTypedArray} from '../../lib/arrow/arrow-like-type-utils';\n\n/**\n * Create a schema for mesh attributes data\n * @param attributes\n * @param metadata\n * @returns\n */\nexport function deduceMeshSchema(\n attributes: MeshAttributes,\n metadata?: Map<string, string>\n): Schema {\n const fields = deduceMeshFields(attributes);\n return new Schema(fields, metadata);\n}\n\n/**\n * Create arrow-like schema field for mesh attribute\n * @param attributeName\n * @param attribute\n * @param optionalMetadata\n * @returns\n */\nexport function deduceMeshField(\n attributeName: string,\n attribute: MeshAttribute,\n optionalMetadata?: Map<string, string>\n): Field {\n const type = getArrowTypeFromTypedArray(attribute.value);\n const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);\n const field = new Field(\n attributeName,\n new FixedSizeList(attribute.size, new Field('value', type)),\n false,\n metadata\n );\n return field;\n}\n\n/**\n * Create fields array for mesh attributes\n * @param attributes\n * @returns\n */\nfunction deduceMeshFields(attributes: MeshAttributes): Field[] {\n const fields: Field[] = [];\n for (const attributeName in attributes) {\n const attribute: MeshAttribute = attributes[attributeName];\n fields.push(deduceMeshField(attributeName, attribute));\n }\n return fields;\n}\n\n/**\n * Make metadata by mesh attribute properties\n * @param attribute\n * @returns\n */\nexport function makeMeshAttributeMetadata(attribute: MeshAttribute): Map<string, string> {\n const result = new Map();\n if ('byteOffset' in attribute) {\n result.set('byteOffset', attribute.byteOffset!.toString(10));\n }\n if ('byteStride' in attribute) {\n result.set('byteStride', attribute.byteStride!.toString(10));\n }\n if ('normalized' in attribute) {\n result.set('normalized', attribute.normalized!.toString());\n }\n return result;\n}\n","import {\n Table,\n Schema,\n RecordBatch,\n FixedSizeList,\n Field,\n Data,\n FixedSizeListVector\n} from 'apache-arrow/Arrow';\nimport {AbstractVector} from 'apache-arrow/vector';\nimport {getArrowType, getArrowVector} from '../../lib/arrow/arrow-type-utils';\nimport type {Mesh} from './mesh-types';\nimport {makeMeshAttributeMetadata} from './deduce-mesh-schema';\n\n/**\n * * Convert a loaders.gl Mesh to an Apache Arrow Table\n * @param mesh\n * @param metadata\n * @param batchSize\n * @returns\n */\nexport function convertMeshToArrowTable(mesh: Mesh, batchSize?: number): Table {\n const vectors: AbstractVector[] = [];\n const fields: Field[] = [];\n for (const attributeKey in mesh.attributes) {\n const attribute = mesh.attributes[attributeKey];\n const {value, size = 1} = attribute;\n const type = getArrowType(value);\n const vector = getArrowVector(value);\n const listType = new FixedSizeList(size, new Field('value', type));\n const field = new Field(attributeKey, listType, false, makeMeshAttributeMetadata(attribute));\n const data = new Data(listType, 0, value.length / size, 0, undefined, [vector]);\n const listVector = new FixedSizeListVector(data);\n vectors.push(listVector);\n fields.push(field);\n }\n const schema = new Schema(fields, mesh?.schema?.metadata || new Map<string, string>());\n const recordBatch = new RecordBatch(schema, vectors[0].length, vectors);\n const table = new Table(schema, recordBatch);\n return table;\n}\n","import type {Mesh} from './mesh-types';\nimport type {ColumnarTable, ArrowTable} from '../table/table-types';\nimport {convertMeshToArrowTable} from './mesh-to-arrow-table';\n\ntype TargetShape = 'mesh' | 'columnar-table' | 'arrow-table';\n\n/**\n * Convert a mesh to a specific shape\n */\nexport function convertMesh(\n mesh: Mesh,\n shape: TargetShape,\n options?: any\n): Mesh | ColumnarTable | ArrowTable {\n switch (shape || 'mesh') {\n case 'mesh':\n return mesh;\n case 'columnar-table':\n return convertMeshToColumnarTable(mesh);\n case 'arrow-table':\n return {\n shape: 'arrow-table',\n data: convertMeshToArrowTable(mesh)\n };\n default:\n throw new Error(`Unsupported shape ${options?.shape}`);\n }\n}\n\n/**\n * Convert a loaders.gl Mesh to a Columnar Table\n * @param mesh\n * @returns\n */\nexport function convertMeshToColumnarTable(mesh: Mesh): ColumnarTable {\n const columns = {};\n\n for (const [columnName, attribute] of Object.entries(mesh.attributes)) {\n columns[columnName] = attribute.value;\n }\n\n return {\n shape: 'columnar-table',\n schema: mesh.schema,\n data: columns\n };\n}\n","// Type deduction\n// import {\n// Schema\n// Int,\n// Int8,\n// Int16,\n// Int32,\n// Uint8,\n// Uint16,\n// Uint32,\n// Float32,\n// Float64\n// Bool,\n// Utf8,\n// TimestampMillisecond,\n// Null\n// } from '../schema';\n\n// const TYPED_ARRAY_TO_TYPE = {\n// Int8Array: new Int8(),\n// Int16Array: new Int16(),\n// Int32Array: new Int32(),\n// Uint8Array: new Uint8(),\n// Uint8ClampedArray: new Uint8(),\n// Uint16Array: new Uint16(),\n// Uint32Array: new Uint32(),\n// Float32Array: new Float32(),\n// Float64Array: new Float64()\n// };\n\n// if (typeof BigInt64Array !== 'undefined') {\n// TYPED_ARRAY_TO_TYPE.BigInt64Array = new Int64();\n// TYPED_ARRAY_TO_TYPE.BigUint64Array = new Uint64();\n// }\n\nexport function deduceTypeFromColumn(value) {\n if (value instanceof Date) {\n return Date;\n } else if (value instanceof Number) {\n return Float32Array;\n } else if (typeof value === 'string') {\n return String;\n }\n return null;\n}\n\nexport function deduceTypeFromValue(value) {\n if (value instanceof Date) {\n return Date;\n } else if (value instanceof Number) {\n return Float32Array;\n } else if (typeof value === 'string') {\n return String;\n }\n return null;\n}\n\n/*\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction deduceSchema(rows) {\n const row = rows[0];\n\n const schema = {};\n let i = 0;\n for (const columnName in row) {\n const value = row[columnName];\n switch (typeof value) {\n case 'number':\n case 'boolean':\n // TODO - booleans could be handled differently...\n schema[columnName] = {name: String(columnName), index: i, type: Float32Array};\n break;\n\n case 'object':\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n break;\n\n case 'string':\n default:\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n // We currently only handle numeric rows\n // TODO we could offer a function to map strings to numbers?\n }\n i++;\n }\n return schema;\n}\n*/\n","import {Type} from '../schema';\nimport {AnyArray} from '../../types';\n\n/**\n * Gets type information from an Arrow type object or \"mock\" Arrow type object\n * @param arrowTypeLike Arrow Type or type object of similar shape\n */\nexport function getTypeInfo(arrowTypeLike: any): {\n typeId: Type;\n ArrayType: AnyArray;\n typeName: string;\n typeEnumName?: string;\n precision?: number;\n} {\n return {\n typeId: arrowTypeLike.typeId,\n ArrayType: arrowTypeLike.ArrayType,\n typeName: arrowTypeLike.toString(),\n typeEnumName: getTypeKey(arrowTypeLike.typeId),\n precision: arrowTypeLike.precision\n };\n}\n\nlet ReverseType: {[key: string]: string} | null = null;\n\nfunction getTypeKey(typeKey) {\n if (!ReverseType) {\n ReverseType = {};\n for (const key in Type) {\n ReverseType[Type[key]] = key;\n }\n }\n\n return ReverseType[typeKey];\n}\n","// From https://github.com/rauschma/async-iter-demo/tree/master/src under MIT license\n// http://2ality.com/2016/10/asynchronous-iteration.html\n\nclass ArrayQueue<T> extends Array<T> {\n enqueue(value) {\n // Add at the end\n return this.push(value);\n }\n dequeue(): T {\n // Remove first element\n return this.shift() as T;\n }\n}\n\nexport default class AsyncQueue<T> {\n private _values: ArrayQueue<T>;\n private _settlers: ArrayQueue<{resolve; reject}>;\n private _closed: boolean;\n\n constructor() {\n // enqueues > dequeues\n this._values = new ArrayQueue<T>();\n // dequeues > enqueues\n this._settlers = new ArrayQueue<{resolve; reject}>();\n this._closed = false;\n }\n\n close(): void {\n while (this._settlers.length > 0) {\n this._settlers.dequeue().resolve({done: true});\n }\n this._closed = true;\n }\n\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this;\n }\n\n enqueue(value: T | Error): void {\n if (this._closed) {\n throw new Error('Closed');\n }\n\n if (this._settlers.length > 0) {\n if (this._values.length > 0) {\n throw new Error('Illegal internal state');\n }\n const settler = this._settlers.dequeue();\n if (value instanceof Error) {\n settler.reject(value);\n } else {\n settler.resolve({value});\n }\n } else {\n this._values.enqueue(value);\n }\n }\n\n /**\n * @returns a Promise for an IteratorResult\n */\n next(): Promise<any> {\n if (this._values.length > 0) {\n const value = this._values.dequeue();\n if (value instanceof Error) {\n return Promise.reject(value);\n }\n return Promise.resolve({value});\n }\n\n if (this._closed) {\n if (this._settlers.length > 0) {\n throw new Error('Illegal internal state');\n }\n return Promise.resolve({done: true});\n }\n // Wait for new values to be enqueued\n return new Promise((resolve, reject) => {\n this._settlers.enqueue({resolve, reject});\n });\n }\n}\n\n/**\n * @returns a Promise for an Array with the elements in `asyncIterable`\n */\nexport async function takeAsync(\n asyncIterable: AsyncIterable<any>,\n count = Infinity\n): Promise<any[]> {\n const result: Array<any> = [];\n const iterator = asyncIterable[Symbol.asyncIterator]();\n while (result.length < count) {\n const {value, done} = await iterator.next();\n if (done) {\n break;\n }\n result.push(value);\n }\n return result;\n}\n"],"sourceRoot":""}
|