{"version":3,"sources":["../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/react/index.js","../node_modules/prop-types/index.js","../../src/event.mjs","../../src/event-target.mjs","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/AwaitValue.js","../node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/flatbuffers/js/flatbuffers.mjs","../node_modules/text-encoding-utf-8/lib/encoding.lib.mjs","../util/utf8.ts","../io/interfaces.ts","../util/compat.ts","../util/buffer.ts","../io/adapters.ts","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../vector.ts","../fb/Schema.ts","../fb/Message.ts","../enum.ts","../util/bit.ts","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../visitor.ts","../visitor/typecomparator.ts","../type.ts","../data.ts","../util/pretty.ts","../builder/valid.ts","../builder/buffer.ts","../builder.ts","../builder/bool.ts","../builder/null.ts","../builder/date.ts","../builder/decimal.ts","../builder/dictionary.ts","../builder/fixedsizebinary.ts","../util/math.ts","../builder/float.ts","../node_modules/@babel/runtime/helpers/esm/construct.js","../util/bn.ts","../builder/int.ts","../builder/time.ts","../builder/timestamp.ts","../builder/interval.ts","../builder/binary.ts","../builder/utf8.ts","../builder/run.ts","../vector/row.ts","../util/vector.ts","../vector/chunked.ts","../column.ts","../util/args.ts","../schema.ts","../builder/list.ts","../builder/fixedsizelist.ts","../builder/map.ts","../builder/struct.ts","../builder/union.ts","../visitor/set.ts","../fb/File.ts","../visitor/builderctor.ts","../builder/index.ts","../ipc/metadata/file.ts","../io/stream.ts","../io/file.ts","../util/int.ts","../visitor/vectorloader.ts","../visitor/typeassembler.ts","../ipc/metadata/json.ts","../ipc/metadata/message.ts","../ipc/message.ts","../visitor/vectorassembler.ts","../ipc/writer.ts","../util/recordbatch.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../vector/base.ts","../vector/binary.ts","../vector/bool.ts","../vector/date.ts","../vector/decimal.ts","../vector/dictionary.ts","../vector/fixedsizebinary.ts","../vector/fixedsizelist.ts","../vector/float.ts","../vector/interval.ts","../vector/int.ts","../vector/list.ts","../vector/map.ts","../vector/null.ts","../vector/struct.ts","../vector/timestamp.ts","../vector/time.ts","../vector/union.ts","../vector/utf8.ts","../util/fn.ts","../visitor/get.ts","../visitor/indexof.ts","../visitor/iterator.ts","../visitor/toarray.ts","../visitor/bytewidth.ts","../visitor/vectorctor.ts","../vector/index.ts","../table.ts","../recordbatch.ts","../ipc/reader.ts","../io/whatwg/builder.ts","../compute/predicate.ts","../compute/dataframe.ts","../Arrow.ts","../Arrow.dom.ts","../io/whatwg/iterable.ts","../io/whatwg/reader.ts","../io/whatwg/writer.ts","../node_modules/streamlit-component-lib/dist/ArrowTable.js","../node_modules/streamlit-component-lib/dist/streamlit.js","../node_modules/streamlit-component-lib/dist/StreamlitReact.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../../src/index.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/object-assign/index.js","../node_modules/react-dom/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react-is/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","_inherits","subClass","superClass","create","constructor","value","_createSuper","Derived","result","Super","NewTarget","this","Reflect","construct","arguments","apply","module","exports","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","require","privateData","WeakMap","wrappers","pd","event","retv","get","console","assert","setCancelFlag","data","passiveListener","cancelable","canceled","preventDefault","error","Event","eventTarget","set","eventPhase","currentTarget","stopped","immediateStopped","timeStamp","Date","now","keys","defineRedirectDescriptor","defineCallDescriptor","getWrapper","proto","wrapper","BaseEvent","CustomEvent","call","isFunc","getOwnPropertyDescriptor","defineWrapper","isStopped","setPassiveListener","type","composedPath","stopPropagation","stopImmediatePropagation","Boolean","bubbles","composed","cancelBubble","initEvent","window","listenersMap","isObject","x","getListeners","listeners","defineEventAttribute","eventTargetPrototype","eventName","node","listenerType","listener","next","prev","delete","newNode","passive","once","defineEventAttributeDescriptor","defineCustomEventTarget","eventNames","CustomEventTarget","EventTarget","Array","isArray","types","Map","addEventListener","options","optionsIsObj","capture","undefined","removeEventListener","dispatchEvent","wrappedEvent","wrapEvent","err","handleEvent","setEventPhase","setCurrentTarget","defaultPrevented","_arrayLikeToArray","arr","len","arr2","_unsupportedIterableToArray","minLen","n","toString","slice","name","from","test","_createForOfIteratorHelper","Symbol","iterator","F","s","done","e","_e","f","it","normalCompletion","didErr","step","_e2","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","Promise","then","_asyncToGenerator","fn","self","args","_slicedToArray","_arr","_n","_d","_s","_i","push","_AwaitValue","wrapped","_awaitAsyncGenerator","AsyncGenerator","front","back","resume","wrappedAwait","settle","_invoke","request","_wrapAsyncGenerator","_asyncGeneratorDelegate","inner","awaitWrap","iter","waiting","pump","asyncIterator","flatbuffers","inRange","a","min","max","ToDictionary","Offset","Table","SIZEOF_SHORT","SIZEOF_INT","FILE_IDENTIFIER_LENGTH","Encoding","UTF8_BYTES","UTF16_STRING","int32","Int32Array","float32","Float32Array","buffer","float64","Float64Array","isLittleEndian","Uint16Array","Uint8Array","Long","low","high","ZERO","toFloat64","equals","other","Builder","opt_initial_size","initial_size","bb","ByteBuffer","allocate","space","minalign","vtable","vtable_in_use","isNested","object_start","vtables","vector_num_elems","force_defaults","clear","capacity","forceDefaults","dataBuffer","asUint8Array","bytes","subarray","position","offset","prep","size","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","Error","notNested","new_buf_size","nbb","setPosition","startObject","numfields","endObject","vtableloc","trimmed_size","existing_vtable","vt1","outer_loop","vt2","readInt16","j","finish","root_table","opt_file_identifier","file_identifier","charCodeAt","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","t","__string","opt_encoding","b","c","__indirect","__vector","__vector_len","__has_identifier","ident","Stream","tokens","endOfStream","read","shift","prepend","token","unshift","pop","decoderError","fatal","opt_code_point","TextDecoder","encoding","toLowerCase","_streaming","_BOMseen","_decoder","_fatal","_ignoreBOM","TextEncoder","_encoder","_options","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","handler","stream","bite","code_point","UTF8Encoder","count","temp","decode","input","ArrayBuffer","byteOffset","byteLength","input_stream","code_points","indexOf","cp","codePointsToString","encode","opt_string","string","u","d","stringToCodePoints","_Buffer","Buffer","useNativeEncoders","decodeUtf8","decoder","toUint8Array","TextDecoderPolyfill","encodeUtf8","encoder","TextEncoderPolyfill","ITERATOR_DONE","freeze","ArrowJSON","_json","ReadableInterop","_getDOMStream","tee","_getNodeStream","pipe","pipeTo","duplex","pipeThrough","_DOMStream","toDOMStream","_nodeStream","toNodeStream","AsyncQueue","_values","resolvers","_closedPromise","r","_closedPromiseResolve","reason","return","_ensureOpen","_error","streamAdapters","_","abort","close","BigIntUnavailableError","BigIntUnavailable","asIntN","asUintN","BigInt","BigIntCtor","BigIntAvailable","BigInt64ArrayUnavailableError","BigInt64Array","BigInt64ArrayCtor","BigUint64ArrayUnavailableError","BigUint64Array","BigUint64ArrayCtor","isNumber","isBoolean","isFunction","isPromise","isIterable","isAsyncIterable","isArrowJSON","isIteratorResult","isFileHandle","isFetchResponse","isReadableDOMStream","isWritableDOMStream","isWritableNodeStream","isReadableNodeStream","toArrayBufferViewIterator","SharedArrayBuf","SharedArrayBuffer","memcpy","source","targetByteOffset","sourceByteLength","targetByteLength","dst","src","Math","joinUint8Arrays","chunks","sliced","xOffset","yOffset","xLen","yLen","y","collapseContiguousByteRanges","reduce","index","Infinity","toArrayBufferView","ArrayBufferViewCtor","isView","BYTES_PER_ELEMENT","toInt8Array","Int8Array","toInt16Array","Int16Array","toInt32Array","toBigInt64Array","toUint16Array","toUint32Array","Uint32Array","toBigUint64Array","toFloat32Array","toFloat64Array","toUint8ClampedArray","Uint8ClampedArray","ArrayCtor","wrap","buffers","toInt8ArrayIterator","toInt16ArrayIterator","toInt32ArrayIterator","toUint8ArrayIterator","toUint16ArrayIterator","toUint32ArrayIterator","toFloat32ArrayIterator","toFloat64ArrayIterator","toUint8ClampedArrayIterator","toArrayBufferViewAsyncIterator","emit","toInt8ArrayAsyncIterator","toInt16ArrayAsyncIterator","toInt32ArrayAsyncIterator","toUint8ArrayAsyncIterator","toUint16ArrayAsyncIterator","toUint32ArrayAsyncIterator","toFloat32ArrayAsyncIterator","toFloat64ArrayAsyncIterator","toUint8ClampedArrayAsyncIterator","rebaseValueOffsets","valueOffsets","compareArrayLike","fromIterable","fromAsyncIterable","fromDOMStream","fromNodeStream","byteRange","cmd","bufferLength","threw","isNaN","throw","AdaptiveByteReader","releaseLock","byobReader","defaultReader","supportsBYOB","reader","getBYOBReader","getDefaultReader","catch","readFromBYOBReader","mode","readInto","onEvent","cleanup","events","evt","destroy","race","map","isFinite","_defineProperty","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","property","receiver","base","hasOwnProperty","desc","org","flatbuf","arrow","apache","AbstractVector","MetadataVersion","UnionMode","Precision","DateUnit","TimeUnit","IntervalUnit","Type","Endianness","Null","__init","builder","startNull","endNull","Struct_","startStruct_","endStruct_","List","startList","endList","LargeList","startLargeList","endLargeList","FixedSizeList","listSize","startFixedSizeList","addListSize","endFixedSizeList","keysSorted","startMap","addKeysSorted","endMap","Union","Sparse","typeIdsOffset","numElems","startUnion","addMode","addTypeIds","endUnion","Int","bitWidth","isSigned","startInt","addBitWidth","addIsSigned","endInt","FloatingPoint","HALF","precision","startFloatingPoint","addPrecision","endFloatingPoint","Utf8","startUtf8","endUtf8","Binary","startBinary","endBinary","LargeUtf8","startLargeUtf8","endLargeUtf8","LargeBinary","startLargeBinary","endLargeBinary","FixedSizeBinary","byteWidth","startFixedSizeBinary","addByteWidth","endFixedSizeBinary","Bool","startBool","endBool","Decimal","scale","startDecimal","addScale","endDecimal","MILLISECOND","unit","startDate","addUnit","endDate","Time","startTime","endTime","Timestamp","SECOND","optionalEncoding","timezoneOffset","startTimestamp","addTimezone","endTimestamp","Interval","YEAR_MONTH","startInterval","endInterval","Duration","startDuration","endDuration","KeyValue","keyOffset","valueOffset","startKeyValue","addKey","addValue","endKeyValue","DictionaryEncoding","id","indexTypeOffset","isOrdered","startDictionaryEncoding","addId","addIndexType","addIsOrdered","endDictionaryEncoding","Field","NONE","nameOffset","nullable","typeType","typeOffset","dictionaryOffset","childrenOffset","customMetadataOffset","startField","addName","addNullable","addTypeType","addType","addDictionary","addChildren","addCustomMetadata","endField","Schema","Little","endianness","fieldsOffset","startSchema","addEndianness","addFields","endSchema","NS7624605610262437867","MessageHeader","FieldNode","null_count","RecordBatch","nodesOffset","buffersOffset","startRecordBatch","addLength","addNodes","addBuffers","endRecordBatch","DictionaryBatch","dataOffset","isDelta","startDictionaryBatch","addData","addIsDelta","endDictionaryBatch","Message","V1","version","headerType","headerOffset","bodyLength","startMessage","addVersion","addHeaderType","addHeader","addBodyLength","endMessage","Schema_","BufferType","Message_","iterateBits","getBool","_data","_index","byte","bit","getBit","setBool","truncateBitmap","bitmap","alignedSize","packBools","values","xs","begin","context","byteIndex","remaining","popcnt_bit_range","lhs","rhs","sum","rhsInside","lhsInside","popcnt_array","cnt","pos","view","DataView","popcnt_uint32","getUint32","getUint16","getUint8","uint32","_toConsumableArray","Visitor","nodes","visit","getVisitFn","throwIfNotFound","_node","visitor","dtype","Data","Vector","inferDType","DataType","visitNull","visitBool","visitInt","Int8","visitInt8","Int16","visitInt16","Int32","visitInt32","Int64","visitInt64","Uint8","visitUint8","Uint16","visitUint16","Uint32","visitUint32","Uint64","visitUint64","Float","visitFloat","Float16","visitFloat16","Float32","visitFloat32","Float64","visitFloat64","visitUtf8","visitBinary","visitFixedSizeBinary","visitDate","DateDay","visitDateDay","DateMillisecond","visitDateMillisecond","visitTimestamp","TimestampSecond","visitTimestampSecond","TimestampMillisecond","visitTimestampMillisecond","TimestampMicrosecond","visitTimestampMicrosecond","TimestampNanosecond","visitTimestampNanosecond","visitTime","TimeSecond","visitTimeSecond","TimeMillisecond","visitTimeMillisecond","TimeMicrosecond","visitTimeMicrosecond","TimeNanosecond","visitTimeNanosecond","visitDecimal","visitList","Struct","visitStruct","visitUnion","DenseUnion","visitDenseUnion","SparseUnion","visitSparseUnion","Dictionary","visitDictionary","visitInterval","IntervalDayTime","visitIntervalDayTime","IntervalYearMonth","visitIntervalYearMonth","visitFixedSizeList","visitMap","typeId","SINGLE","DOUBLE","MICROSECOND","NANOSECOND","DAY","DAY_TIME","Dense","TypeComparator","schema","compareFields","fields","others","every","compareField","compareConstructor","compareAny","compareInt","compareFloat","compareDate","compareTimestamp","timezone","compareTime","compareUnion","typeIds","children","compareInterval","indices","dictionary","comparer","toStringTag","ArrayType","Int_","Date_","Time_","Timestamp_","Interval_","child","valueType","join","Union_","typeIdToChildIndex","idx","Map_","atomicDictionaryId","getId","strideForType","nullCount","childData","floor","_nullCount","stride","nullBitmap","childStride","_sliceBuffers","clone","_sliceChildren","newLength","fill","VALIDITY","TYPE","OFFSET","DATA","valueOffsetsOrChildren","valueToString","toPrimitive","JSON","stringify","createIsValidFunction","nullValues","fnBody","noNaNs","valueToCase","Function","roundLengthUpToNearest64Bytes","BPE","sliceOrExtendArray","BufferBuilder","_resize","extra","reserved","array","DataBufferBuilder","reserve","BitmapBufferBuilder","numValid","val","cur","OffsetsBufferBuilder","WideBufferBuilder","_ArrayType64","buffer64","ArrayType64","nulls","finished","_nulls","_isValid","new","flush","numInvalid","_offsets","_typeIds","reservedLength","reservedByteLength","setValid","isValid","setValue","_setValue","valid","numChildren","offsets","last","queueingStrategy","highWaterMark","sizeProperty","numChunks","append","toVector","throughIterable","throughAsyncIterable","FixedWidthBuilder","opts","VariableWidthBuilder","_pendingLength","pending","_pending","current","_flush","pendingLength","_flushPending","BoolBuilder","NullBuilder","DateBuilder","DateDayBuilder","DateMillisecondBuilder","DecimalBuilder","DictionaryBuilder","hashFn","_dictionaryOffset","_keysToIndices","valueToKey","keysToIndices","_dictionary","curr","concat","FixedSizeBinaryBuilder","f64","u32","uint16ToFloat64","h","expo","sigf","sign","NaN","float64ToUint16","FloatBuilder","Float16Builder","Float32Builder","Float64Builder","Parent","Class","isNativeReflectConstruct","bind","bignumToString","bignumToBigInt","isArrowBigNumSymbol","for","BigNum","SignedBigNum","UnsignedBigNum","DecimalBigNum","bignumToNumber","bn","hi","lo","signed","words","number","decimalToString","digits","base64","base32","checks","reverse","toJSON","valueOf","hint","assign","memo","BN","num","IntBuilder","Int8Builder","Int16Builder","Int32Builder","Int64Builder","toBigInt","Uint8Builder","Uint16Builder","Uint32Builder","Uint64Builder","TimeBuilder","TimeSecondBuilder","TimeMillisecondBuilder","TimeMicrosecondBuilder","TimeNanosecondBuilder","TimestampBuilder","TimestampSecondBuilder","TimestampMillisecondBuilder","TimestampMicrosecondBuilder","TimestampNanosecondBuilder","IntervalBuilder","IntervalDayTimeBuilder","IntervalYearMonthBuilder","BinaryBuilder","Utf8Builder","Run","kParent","kRowIndex","kKeyToIdx","kIdxToVal","kCustomInspect","Row","parent","numKeys","ktoi","itov","getValue","getIndex","ki","vi","kr","vr","k","v","has","callbackfn","thisArg","callback","m","str","MapRow","createRowProxy","getChildAt","StructRow","defineRowProxyProperties","findIndex","tmp","row","getter","setter","Proxy","getKey","RowProxyHandler","isExtensible","deleteProperty","preventExtensions","ownKeys","clampIndex","adjust","clampRange","end","big0","isNaNFast","createElementComparator","search","typeofSearch","valueOfSearch","comparators","createSubElementsComparator","creatMapComparator","createArrayLikeComparator","createVectorComparator","createObjectComparator","compareArray","compareObject","vec","compareVector","lKeyItr","rKeyItr","rValItr","rVal","lKey","rKey","Chunked","calculateOffsets","_type","_chunks","_chunkOffsets","_length","_numChildren","chunk","isDictionary","_indices","flatten","_sliceInternal","columns","_children","vector","mid","isValidInternal","getInternal","element","indexOfInternal","toArray","arraySet","typedSet","chunkIndex","fromIndex","start","found","slices","chunkOffsets","chunkLength","chunkOffset","to","vectors","selectChunkArgs","Column","_field","SingleChunkColumn","metadata","column","rest","some","_chunk","selectArgs","Ctor","vals","_selectArgs","selectColumnArgs","_selectFieldArgs","selectFieldArgs","_selectChunkArgs","res","selectVectorChildrenArgs","_selectVectorChildrenArgs","toKeysAndValues","ret","entries","fieldIndex","valueIndex","dictionaries","generateDictionaryMap","compareSchemas","columnNames","names","columnIndices","curFields","mergeMaps","newFields","f2","newDictionaries","m1","m2","ListBuilder","_run","run","FixedSizeListBuilder","childIndex","MapBuilder","StructBuilder","UnionBuilder","_valueToChildTypeId","childTypeId","SparseUnionBuilder","DenseUnionBuilder","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","newBuilder","getBuilderConstructor","defaultOptions","getChildOptions","T","setVisitor","Footer","Block","schemaOffset","dictionariesOffset","recordBatchesOffset","startFooter","addSchema","addDictionaries","addRecordBatches","endFooter","metaDataLength","_Block","File_","_Footer","Footer_","V4","recordBatches","dictionaryBatches","_recordBatches","_dictionaryBatches","numRecordBatches","block","getRecordBatch","numDictionaries","getDictionaryBatch","buf","footer","getRootAsFooter","OffHeapFooter","startRecordBatchesVector","rb","FileBlock","startDictionariesVector","db","dictionaryBatchesOffset","finishFooterBuffer","_footer","recordBatchesLength","dictionariesLength","fileBlock","createBlock","AsyncByteQueue","sync","ByteStream","ByteStreamSource","peek","AsyncByteStream","AsyncByteStreamSource","body","closed","cancel","RandomAccessFile","readAt","getInt32","nBytes","AsyncRandomAccessFile","file","_handle","stat","bytesRead","intAsHex","kPowersOfTen","BaseInt64","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","Int128","L0","L1","L2","L3","R0","R1","R2","R3","multiply","sums","VectorLoader","nodesIndex","buffersIndex","nextFieldNode","readNullBitmap","readData","readOffsets","visitMany","readTypeIds","readDictionary","nextBufferRange","JSONVectorLoader","sources","isTimestamp","isInt","isTime","isDate","convertArray","isDecimal","isBinary","isFixedSizeBinary","binaryDataFromJSON","isBool","isUtf8","joined","startTypeIdsVector","createTypeIdsVector","indexType","recordBatchFromJSON","fieldNodesFromJSON","fieldNodes","validity","buffersFromJSON","BufferRegion","schemaFieldsFromJSON","_schema","fromJSON","fieldChildrenFromJSON","customMetadataFromJSON","_metadata","indexTypeFromJSON","typeFromJSON","_Field","_Schema","_Message","_KeyValue","_FieldNode","_Endianness","_RecordBatch","_DictionaryBatch","header","_version","_headerType","_createHeader","_bodyLength","msg","message","messageHeaderFromJSON","_message","getRootAsMessage","decodeMessageHeader","isSchema","isRecordBatch","isDictionaryBatch","finishMessageBuffer","_nodes","_buffers","_isDelta","_id","decodeFieldNodes","batch","nodesLength","decodeBuffers","bufferRegions","buffersLength","decodeSchemaFields","fieldsLength","decodeFieldChildren","childrenLength","decodeCustomMetadata","entry","customMetadataLength","customMetadata","decodeIndexType","decodeFieldType","typeIdsArray","typeAssembler","childOffsets","childrenVectorOffset","createChildrenVector","metadataOffset","createCustomMetadataVector","dictType","dictMeta","fieldOffsets","startFieldsVector","fieldsVectorOffset","createFieldsVector","platformIsLittleEndian","Big","recordBatch","startNodesVector","nodesVectorOffset","startBuffersVector","b_","buffersVectorOffset","dictionaryBatch","createFieldNode","createBuffer","setInt16","invalidMessageType","nullMessage","invalidMessageMetadata","expected","actual","invalidMessageBodyLength","MessageReader","readMetadataLength","readMetadata","throwIfNull","readMessage","PADDING","metadataLength","AsyncMessageReader","JSONMessageReader","_body","_batchIndex","_dictionaryIndex","batches","flattenDataSources","MAGIC","checkForMagicArrowString","magicLength","magicAndPadding","magicX2AndPadding","VectorAssembler","_byteLength","_bufferRegions","RangeError","isNull","addBuffer","_nullV","assembler","vectorChildren","assembleResult","assembleFlatVector","assembleFlatListVector","firstOffset","lastOffset","assembleListVector","assembleNestedVector","maxChildTypeId","childLengths","shiftedOffsets","unshiftedOffsets","childLength","RecordBatchWriter","_position","_started","_sink","_dictionaryBlocks","_recordBatchBlocks","_dictionaryDeltaOffsets","autoDestroy","writeLegacyIpcFormat","_autoDestroy","_writeLegacyIpcFormat","writeAll","writeAllAsync","reset","sink","objectMode","_writeFooter","compareTo","_writeSchema","payload","_InternalEmptyPlaceholderRecordBatch","_writeRecordBatch","flatbufferSize","prefixSize","nPaddingBytes","_write","of","_writePadding","write","_writeMessage","assemble","_writeDictionaries","_writeBodyBuffers","padding","_writeDictionaryBatch","writableStrategy","readableStrategy","RecordBatchStreamWriter","writer","RecordBatchFileWriter","_writeMagic","noopBuf","nullBufs","bitmapLength","ensureSameLengthData","batchLength","l","batchData","_changeLengthAndBackfillNullBitmap","distributeColumnsIntoRecordBatches","distributeVectorsIntoRecordBatches","vecs","batchArgs","numBatches","numColumns","Number","POSITIVE_INFINITY","distributeChildData","uniformlyDistributeChunksAcrossRecordBatches","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","BaseVector","_bindDataAccessors","VectorName","isConcatSpreadable","BinaryVector","BoolVector","vectorFromValuesWithType","DateVector","DateDayVector","DateMillisecondVector","DecimalVector","DictionaryVector","FixedSizeBinaryVector","FixedSizeListVector","FloatVector","ArrowType","vectorTypeToDataType","InputType","arrayTypeToDataType","convertTo16Bit","Float16Vector","Float32Vector","Float64Vector","typeCtor","dataCtor","ctor","IntervalVector","IntervalDayTimeVector","IntervalYearMonthVector","IntVector","is64bit","convert32To64Bit","Int8Vector","Int16Vector","Int32Vector","Int64Vector","_values64","Uint8Vector","Uint16Vector","Uint32Vector","Uint64Vector","ListVector","MapVector","NullVector","StructVector","_row","bound","TimestampVector","TimestampSecondVector","TimestampMillisecondVector","TimestampMicrosecondVector","TimestampNanosecondVector","TimeVector","TimeSecondVector","TimeMillisecondVector","TimeMicrosecondVector","TimeNanosecondVector","UnionVector","DenseUnionVector","SparseUnionVector","Utf8Vector","partial0","partial2","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","IndexOfVisitor","indexOfValue","searchElement","indexOfNull","compare","indexOfUnion","IteratorVisitor","vectorIterator","getFn","getVisitor","nullByte","nullBit","nullableIterator","ToArrayVisitor","arrayOfVector","iteratorVisitor","variableWidthColumnErrorMessage","____","visitFields","newDataType","getVectorConstructor","transform","indexOfVisitor","toArrayVisitor","getByteWidth","byteWidthVisitor","wrapNullableSet","VectorCtor","partialType0","getColumnAt","getColumnIndex","Writer","nameToIndex","selectAt","columnName","newIdx","oldToNew","_f","_fs","empty","fromStruct","tableFromIterable","tableFromAsyncIterable","RecordBatchReader","isSync","open","opening","cols","_dictionaries","DictionaryCollector","collect","fs","vs","readAllSync","impl","_impl","isFile","isAsync","isStream","readRecordBatch","RecordBatchStreamReader","RecordBatchJSONReaderImpl","fromArrowJSON","fromFileHandle","fromAsyncByteStream","RecordBatchFileReader","RecordBatchFileReaderImpl","RecordBatchStreamReaderImpl","fromByteStream","readAllAsync","AsyncRecordBatchStreamReader","AsyncRecordBatchFileReader","RecordBatchReaderImpl","_recordBatchIndex","_loadVectors","_reader","shouldAutoDestroy","readSchema","_readNextMessageAndValidate","readMessageBody","_loadRecordBatch","_loadDictionaryBatch","AsyncRecordBatchStreamReaderImpl","_readFooter","_readDictionaryBatch","seek","AsyncRecordBatchFileReaderImpl","BuilderTransform","_numChunks","_finished","_bufferedSize","builderOptions","_controller","_builder","_getSize","chunkByteLength","readableHighWaterMark","writableHighWaterMark","ReadableStream","_maybeFlush","WritableStream","_writeValueAndReturnChunkSize","bufferedSize","controller","desiredSize","_enqueue","enqueue","Value","Literal","Equals","LTeq","GTeq","Not","ge","le","eq","Col","colidx","Predicate","expr","And","Or","ComparisonPredicate","_bindLitLit","_bindLitCol","_bindColLit","_bindColCol","CombinationPredicate","accum","p","_batch","rtrn","left_func","right_func","col","lit","col_func","lastDictionary","reverseLookup","lastKey","func","countBy","DataFrame","scan","scanReverse","predicate","FilteredDataFrame","batchIndex","numRows","count_by","countByteLength","ceil","log","counts","CountByResult","_predicate","isBound","and","util_bn_","util_int_","util_bit_","util_math_","util_buffer_","util_vector_","bm","hwm","pull","asyncIterableAsReadableDOMStream","iterableAsReadableDOMStream","queue","readable","ComponentMessageType","ArrowTable","indexBuffer","columnsBuffer","styler","_this","getCell","rowIndex","columnIndex","isBlankCell","headerRows","headerColumns","isIndexCell","isColumnsCell","classNames","content","dataColumnIndex","getContent","columnsTable","dataRowIndex","uuid","indexTable","displayValuesTable","dataTable","getColumnTypeId","nanosToDate","caption","displayValues","styles","numCols","rows","dataRows","dataColumns","serialize","nanos","__assign","Streamlit","API_VERSION","RENDER_EVENT","registeredMessageListener","setComponentReady","onMessageEvent","sendBackMsg","COMPONENT_READY","apiVersion","setFrameHeight","height","document","scrollHeight","lastFrameHeight","SET_FRAME_HEIGHT","setComponentValue","dataType","isBigIntArray","isTypedArray","SET_COMPONENT_VALUE","onRenderMessage","dataframeArgs","argsDataframeToObject","disabled","theme","_injectTheme","eventData","detail","argsDataframe","argsDataframeArrow","_a","toArrowTable","fromEntries","df","postMessage","isStreamlitMessage","style","createElement","head","appendChild","innerHTML","primaryColor","backgroundColor","secondaryBackgroundColor","textColor","font","__extends","extendStatics","__","StreamlitComponentBase","_super","componentDidMount","componentDidUpdate","React","PureComponent","withStreamlitConnection","WrappedComponent","ComponentWrapper","onRenderEvent","state","componentError","componentWillUnmount","renderEvent","setState","renderData","render","width","innerWidth","getDerivedStateFromError","hoistNonReactStatics","_assertThisInitialized","ReferenceError","_typeof","_possibleConstructorReturn","assertThisInitialized","RecordState","START","PAUSE","STOP","AudioReactRecorder","init","leftchannel","rightchannel","recorder","recording","recordingLength","volume","audioInput","sampleRate","AudioContext","webkitAudioContext","analyser","canvas","canvasRef","canvasCtx","getContext","tested","navigator","getUserMedia","webkitGetUserMedia","mozGetUserMedia","getStream","constraints","audio","video","mediaDevices","setUpRecording","createGain","createMediaStreamSource","createAnalyser","connect","createScriptProcessor","destination","onaudioprocess","inputBuffer","getChannelData","stop","getTracks","track","visualize","mergeBuffers","channelBuffer","lng","interleave","leftChannel","rightChannel","inputIndex","writeUTFBytes","setUint8","foregroundColor","WIDTH","HEIGHT","CENTERX","CENTERY","fftSize","dataArray","clearRect","draw","drawVisual","requestAnimationFrame","getByteTimeDomainData","fillStyle","fillRect","lineWidth","strokeStyle","beginPath","sliceWidth","moveTo","lineTo","stroke","setupMic","recover","onStop","closeMic","leftBuffer","rightBuffer","interleaved","setUint32","setUint16","blob","Blob","audioUrl","URL","createObjectURL","url","pause","getAudioTracks","disconnect","createRef","prevProps","prevState","checkState","previousState","doIfState","cb","canvasWidth","canvasHeight","className","ref","Component","propTypes","PropTypes","isRequired","oneOfType","defaultProps","_setPrototypeOf","_isNativeReflectConstruct","sham","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","split","letter","shouldUseNative","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","displayName","getDefaultProps","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","q","w","z","A","B","C","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","K","__self","__source","M","g","$$typeof","_owner","O","P","Q","keyPrefix","S","V","U","replace","escape","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Fragment","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","forwardRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","toUpperCase","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttribute","setAttributeNS","Ya","Za","$a","ab","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","tag","_debugOwner","_debugSource","fileName","lineNumber","sb","nodeName","xb","_valueTracker","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","selected","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","firstChild","removeChild","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","transition","Xb","Yb","Zb","$b","ac","bc","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","parentNode","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","container","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","trim","md","setProperty","charAt","substring","nd","menuitem","area","br","embed","hr","img","keygen","link","meta","param","wbr","od","is","qd","rd","sd","td","ud","vd","nextSibling","xd","HTMLIFrameElement","contentWindow","location","href","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","setTimeout","Id","clearTimeout","Jd","Kd","previousSibling","Ld","random","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","persist","isTrusted","extend","he","ie","je","ke","documentMode","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","re","se","ve","locale","which","te","ctrlKey","altKey","metaKey","char","ue","we","color","date","datetime","email","month","password","range","tel","text","time","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","repeat","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","documentElement","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","onClick","onclick","createElementNS","createTextNode","ti","ui","wi","xi","yi","zi","Ai","stack","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","insertBefore","_reactRootContainer","Ri","Si","Ti","display","Ui","Vi","add","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","contains","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","vb","Uj","Vj","Wj","hidden","default","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","async","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","bool","symbol","any","arrayOf","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes"],"mappings":"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","file":"static/js/2.270b84d8.chunk.js","sourcesContent":["function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","module.exports = require(\"regenerator-runtime\");\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap()\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap()\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event)\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n )\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n )\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault()\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n })\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true })\n\n // Define accessors\n const keys = Object.keys(event)\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key))\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation()\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this)\n\n data.stopped = true\n data.immediateStopped = true\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation()\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this))\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this)\n\n data.stopped = true\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this))\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n})\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype)\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event)\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto)\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event)\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n })\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key)\n const isFunc = typeof descriptor.value === \"function\"\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n )\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto)\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto)\n wrappers.set(proto, wrapper)\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nexport function wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event))\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nexport function isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nexport function setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nexport function setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nexport function setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener\n}\n","import {\n isStopped,\n setCurrentTarget,\n setEventPhase,\n setPassiveListener,\n wrapEvent,\n} from \"./event.mjs\"\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap()\n\n// Listener types\nconst CAPTURE = 1\nconst BUBBLE = 2\nconst ATTRIBUTE = 3\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget)\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this)\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this)\n\n // Traverse to the tail while removing old value.\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n node = node.next\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n }\n if (prev === null) {\n listeners.set(eventName, newNode)\n } else {\n prev.next = newNode\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n )\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this)\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n })\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i])\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map())\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length)\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i]\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this)\n const optionsIsObj = isObject(options)\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n }\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName)\n if (node === undefined) {\n listeners.set(eventName, newNode)\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node\n node = node.next\n }\n\n // Add it.\n prev.next = newNode\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this)\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options)\n const listenerType = capture ? CAPTURE : BUBBLE\n\n let prev = null\n let node = listeners.get(eventName)\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n return\n }\n\n prev = node\n node = node.next\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this)\n const eventName = event.type\n let node = listeners.get(eventName)\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event)\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next\n } else if (node.next !== null) {\n listeners.set(eventName, node.next)\n } else {\n listeners.delete(eventName)\n }\n } else {\n prev = node\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n )\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent)\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err)\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent)\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next\n }\n setPassiveListener(wrappedEvent, null)\n setEventPhase(wrappedEvent, 0)\n setCurrentTarget(wrappedEvent, null)\n\n return !wrappedEvent.defaultPrevented\n },\n}\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n})\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype)\n}\n\nexport { defineEventAttribute, EventTarget }\nexport default EventTarget\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _AwaitValue(value) {\n this.wrapped = value;\n}","import AwaitValue from \"./AwaitValue\";\nexport default function _awaitAsyncGenerator(value) {\n return new AwaitValue(value);\n}","import AwaitValue from \"./AwaitValue\";\nexport default function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {\n if (wrappedAwait) {\n resume(key === \"return\" ? \"return\" : \"next\", arg);\n return;\n }\n\n settle(result.done ? \"return\" : \"normal\", arg);\n }, function (err) {\n resume(\"throw\", err);\n });\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen[\"return\"] !== \"function\") {\n this[\"return\"] = undefined;\n }\n}\n\nif (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n}\n\nAsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n};\n\nAsyncGenerator.prototype[\"throw\"] = function (arg) {\n return this._invoke(\"throw\", arg);\n};\n\nAsyncGenerator.prototype[\"return\"] = function (arg) {\n return this._invoke(\"return\", arg);\n};","import AsyncGenerator from \"./AsyncGenerator\";\nexport default function _wrapAsyncGenerator(fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n}","export default function _asyncGeneratorDelegate(inner, awaitWrap) {\n var iter = {},\n waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function (resolve) {\n resolve(inner[key](value));\n });\n return {\n done: false,\n value: awaitWrap(value)\n };\n }\n\n ;\n\n if (typeof Symbol === \"function\" && Symbol.iterator) {\n iter[Symbol.iterator] = function () {\n return this;\n };\n }\n\n iter.next = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump(\"next\", value);\n };\n\n if (typeof inner[\"throw\"] === \"function\") {\n iter[\"throw\"] = function (value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n\n return pump(\"throw\", value);\n };\n }\n\n if (typeof inner[\"return\"] === \"function\") {\n iter[\"return\"] = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump(\"return\", value);\n };\n }\n\n return iter;\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 * @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.}\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.}\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|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 */\nflatbuffers.Builder.prototype.finish = function(root_table, opt_file_identifier) {\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);\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);\n this.addOffset(root_table);\n this.bb.setPosition(this.space);\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\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.} 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.} 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.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\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.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(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.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(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/** @interface */\nfunction Decoder() {}\nDecoder.prototype = {\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.)} 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, or |finished|.\n */\n handler: function(stream, bite) {}\n};\n\n/** @interface */\nfunction Encoder() {}\nEncoder.prototype = {\n /**\n * @param {Stream} stream The stream of code points being encoded.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit, or |finished|.\n */\n handler: function(stream, code_point) {}\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.)} */\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.}*/(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.}*/(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.)} */\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.}*/(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.}*/(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.)} 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.)} 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\nexport {TextEncoder, TextDecoder};\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.\n\nimport { toUint8Array } from './buffer';\nimport {\n TextDecoder as TextDecoderPolyfill,\n TextEncoder as TextEncoderPolyfill,\n} from 'text-encoding-utf-8';\n\n/** @ignore @suppress {missingRequire} */\nconst _Buffer = typeof Buffer === 'function' ? Buffer : null;\n/** @ignore */\nconst useNativeEncoders = typeof TextDecoder === 'function' && typeof TextEncoder === 'function';\n\n/** @ignore */\nexport const decodeUtf8 = ((TextDecoder) => {\n if (useNativeEncoders || !_Buffer) {\n const decoder = new TextDecoder('utf-8');\n return (buffer?: ArrayBuffer | ArrayBufferView) => decoder.decode(buffer);\n }\n return (input: ArrayBufferLike | ArrayBufferView) => {\n const { buffer, byteOffset, length } = toUint8Array(input);\n return _Buffer.from(buffer, byteOffset, length).toString();\n };\n})(typeof TextDecoder !== 'undefined' ? TextDecoder : TextDecoderPolyfill);\n\n/** @ignore */\nexport const encodeUtf8 = ((TextEncoder) => {\n if (useNativeEncoders || !_Buffer) {\n const encoder = new TextEncoder();\n return (value?: string) => encoder.encode(value);\n }\n return (input = '') => toUint8Array(_Buffer.from(input, 'utf8'));\n})(typeof TextEncoder !== 'undefined' ? TextEncoder : TextEncoderPolyfill);\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.\n\nimport streamAdapters from './adapters';\n\n/** @ignore */\nexport const ITERATOR_DONE: any = Object.freeze({ done: true, value: void (0) });\n\n/** @ignore */\nexport type FileHandle = import('fs').promises.FileHandle;\n/** @ignore */\nexport type ArrowJSONLike = { schema: any; batches?: any[]; dictionaries?: any[]; };\n/** @ignore */\nexport type ReadableDOMStreamOptions = { type: 'bytes' | undefined, autoAllocateChunkSize?: number, highWaterMark?: number };\n\n/** @ignore */\nexport class ArrowJSON {\n // @ts-ignore\n constructor(private _json: ArrowJSONLike) {}\n public get schema(): any { return this._json['schema']; }\n public get batches(): any[] { return (this._json['batches'] || []) as any[]; }\n public get dictionaries(): any[] { return (this._json['dictionaries'] || []) as any[]; }\n}\n\n/** @ignore */\nexport interface Readable {\n\n readonly closed: Promise;\n cancel(reason?: any): Promise;\n\n read(size?: number | null): Promise;\n peek(size?: number | null): Promise;\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(size?: number | null): Promise>;\n}\n\n/** @ignore */\nexport interface Writable {\n readonly closed: Promise;\n close(): void;\n write(chunk: T): void;\n abort(reason?: any): void;\n}\n\n/** @ignore */\nexport interface ReadableWritable extends Readable, Writable {\n [Symbol.asyncIterator](): AsyncIterableIterator;\n toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream;\n toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n}\n\n/** @ignore */\nexport abstract class ReadableInterop {\n\n public abstract toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream;\n public abstract toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n\n public tee(): [ReadableStream, ReadableStream] {\n return this._getDOMStream().tee();\n }\n public pipe(writable: R, options?: { end?: boolean; }) {\n return this._getNodeStream().pipe(writable, options);\n }\n public pipeTo(writable: WritableStream, options?: PipeOptions) { return this._getDOMStream().pipeTo(writable, options); }\n public pipeThrough>(duplex: { writable: WritableStream, readable: R }, options?: PipeOptions) {\n return this._getDOMStream().pipeThrough(duplex, options);\n }\n\n protected _DOMStream?: ReadableStream;\n private _getDOMStream() {\n return this._DOMStream || (this._DOMStream = this.toDOMStream());\n }\n\n protected _nodeStream?: import('stream').Readable;\n private _getNodeStream() {\n return this._nodeStream || (this._nodeStream = this.toNodeStream());\n }\n}\n\n/** @ignore */\ntype Resolution = { resolve: (value?: T | PromiseLike) => void; reject: (reason?: any) => void; };\n\n/** @ignore */\nexport class AsyncQueue extends ReadableInterop\n implements AsyncIterableIterator, ReadableWritable {\n\n protected _values: TWritable[] = [];\n protected _error?: { error: any; };\n protected _closedPromise: Promise;\n protected _closedPromiseResolve?: (value?: any) => void;\n protected resolvers: Resolution>[] = [];\n\n constructor() {\n super();\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n\n public get closed(): Promise { return this._closedPromise; }\n public async cancel(reason?: any) { await this.return(reason); }\n public write(value: TWritable) {\n if (this._ensureOpen()) {\n this.resolvers.length <= 0\n ? (this._values.push(value))\n : (this.resolvers.shift()!.resolve({ done: false, value } as any));\n }\n }\n public abort(value?: any) {\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 public close() {\n if (this._closedPromiseResolve) {\n const { resolvers } = this;\n while (resolvers.length > 0) {\n resolvers.shift()!.resolve(ITERATOR_DONE);\n }\n this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n }\n }\n\n public [Symbol.asyncIterator]() { return this; }\n public toDOMStream(options?: ReadableDOMStreamOptions) {\n return streamAdapters.toDOMStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable)\n : (this._values as any) as Iterable,\n options);\n }\n public toNodeStream(options?: import('stream').ReadableOptions) {\n return streamAdapters.toNodeStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable)\n : (this._values as any) as Iterable,\n options);\n }\n public async throw(_?: any) { await this.abort(_); return ITERATOR_DONE; }\n public async return(_?: any) { await this.close(); return ITERATOR_DONE; }\n\n public async read(size?: number | null): Promise { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise { return (await this.next(size, 'peek')).value; }\n public next(..._args: any[]): Promise> {\n if (this._values.length > 0) {\n return Promise.resolve({ done: false, value: this._values.shift()! } as any);\n } else if (this._error) {\n return Promise.reject({ done: true, value: this._error.error });\n } else if (!this._closedPromiseResolve) {\n return Promise.resolve(ITERATOR_DONE);\n } else {\n return new Promise>((resolve, reject) => {\n this.resolvers.push({ resolve, reject });\n });\n }\n }\n\n protected _ensureOpen() {\n if (this._closedPromiseResolve) {\n return true;\n }\n throw new Error(`${this} is closed`);\n }\n}\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.\n\nimport { ReadableInterop, ArrowJSONLike } from '../io/interfaces';\n\n/** @ignore */\ntype FSReadStream = import('fs').ReadStream;\n/** @ignore */\ntype FileHandle = import('fs').promises.FileHandle;\n\n/** @ignore */\nexport interface Subscription {\n unsubscribe: () => void;\n}\n\n/** @ignore */\nexport interface Observer {\n closed?: boolean;\n next: (value: T) => void;\n error: (err: any) => void;\n complete: () => void;\n}\n\n/** @ignore */\nexport interface Observable {\n subscribe: (observer: Observer) => Subscription;\n}\n\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})() as [BigIntConstructor, boolean];\n\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})() as [BigInt64ArrayConstructor, boolean];\n\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})() as [BigUint64ArrayConstructor, boolean];\n\nexport { BigIntCtor as BigInt, BigIntAvailable };\nexport { BigInt64ArrayCtor as BigInt64Array, BigInt64ArrayAvailable };\nexport { BigUint64ArrayCtor as BigUint64Array, BigUint64ArrayAvailable };\n\n/** @ignore */ const isNumber = (x: any) => typeof x === 'number';\n/** @ignore */ const isBoolean = (x: any) => typeof x === 'boolean';\n/** @ignore */ const isFunction = (x: any) => typeof x === 'function';\n/** @ignore */\nexport const isObject = (x: any): x is Object => x != null && Object(x) === x;\n\n/** @ignore */\nexport const isPromise = (x: any): x is PromiseLike => {\n return isObject(x) && isFunction(x.then);\n};\n\n/** @ignore */\nexport const isObservable = (x: any): x is Observable => {\n return isObject(x) && isFunction(x.subscribe);\n};\n\n/** @ignore */\nexport const isIterable = (x: any): x is Iterable => {\n return isObject(x) && isFunction(x[Symbol.iterator]);\n};\n\n/** @ignore */\nexport const isAsyncIterable = (x: any): x is AsyncIterable => {\n return isObject(x) && isFunction(x[Symbol.asyncIterator]);\n};\n\n/** @ignore */\nexport const isArrowJSON = (x: any): x is ArrowJSONLike => {\n return isObject(x) && isObject(x['schema']);\n};\n\n/** @ignore */\nexport const isArrayLike = (x: any): x is ArrayLike => {\n return isObject(x) && isNumber(x['length']);\n};\n\n/** @ignore */\nexport const isIteratorResult = (x: any): x is IteratorResult => {\n return isObject(x) && ('done' in x) && ('value' in x);\n};\n\n/** @ignore */\nexport const isUnderlyingSink = (x: any): x is UnderlyingSink => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['close']) &&\n isFunction(x['start']) &&\n isFunction(x['write']);\n};\n\n/** @ignore */\nexport const isFileHandle = (x: any): x is FileHandle => {\n return isObject(x) && isFunction(x['stat']) && isNumber(x['fd']);\n};\n\n/** @ignore */\nexport const isFSReadStream = (x: any): x is FSReadStream => {\n return isReadableNodeStream(x) && isNumber(( x)['bytesRead']);\n};\n\n/** @ignore */\nexport const isFetchResponse = (x: any): x is Response => {\n return isObject(x) && isReadableDOMStream(x['body']);\n};\n\n/** @ignore */\nexport const isWritableDOMStream = (x: any): x is WritableStream => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['getWriter']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableDOMStream = (x: any): x is ReadableStream => {\n return isObject(x) &&\n isFunction(x['cancel']) &&\n isFunction(x['getReader']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isWritableNodeStream = (x: any): x is NodeJS.WritableStream => {\n return isObject(x) &&\n isFunction(x['end']) &&\n isFunction(x['write']) &&\n isBoolean(x['writable']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableNodeStream = (x: any): x is NodeJS.ReadableStream => {\n return isObject(x) &&\n isFunction(x['read']) &&\n isFunction(x['pipe']) &&\n isBoolean(x['readable']) &&\n !(x instanceof ReadableInterop);\n};\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.\n\nimport { flatbuffers } from 'flatbuffers';\nimport { encodeUtf8 } from '../util/utf8';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { isPromise, isIterable, isAsyncIterable, isIteratorResult, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nconst SharedArrayBuf = (typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : ArrayBuffer);\n\n/** @ignore */\nfunction collapseContiguousByteRanges(chunks: Uint8Array[]) {\n let result = chunks[0] ? [chunks[0]] : [];\n let xOffset: number, yOffset: number, xLen: number, yLen: number;\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\n/** @ignore */\nexport function memcpy(target: TTarget, source: TSource, 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}\n\n/** @ignore */\nexport function joinUint8Arrays(chunks: Uint8Array[], size?: number | null): [Uint8Array, Uint8Array[], number] {\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 let result = collapseContiguousByteRanges(chunks);\n let byteLength = result.reduce((x, b) => x + b.byteLength, 0);\n let source: Uint8Array, sliced: Uint8Array, buffer: Uint8Array | void;\n let offset = 0, index = -1, 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 } else if (sliced.length === source.length) { index++; }\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}\n\n/** @ignore */\nexport type ArrayBufferViewInput = ArrayBufferView | ArrayBufferLike | ArrayBufferView | Iterable | ArrayLike | ByteBuffer | string | null | undefined |\n IteratorResult | ArrayLike | ByteBuffer | string | null | undefined> |\n ReadableStreamReadResult | ArrayLike | ByteBuffer | string | null | undefined> ;\n\n/** @ignore */\nexport function toArrayBufferView(ArrayBufferViewCtor: TypedArrayConstructor, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView(ArrayBufferViewCtor: BigIntArrayConstructor, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView(ArrayBufferViewCtor: any, input: ArrayBufferViewInput) {\n\n let value: any = isIteratorResult(input) ? input.value : input;\n\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) { return new ArrayBufferViewCtor(0); }\n if (typeof value === 'string') { value = encodeUtf8(value); }\n if (value instanceof ArrayBuffer) { return new ArrayBufferViewCtor(value); }\n if (value instanceof SharedArrayBuf) { return new ArrayBufferViewCtor(value); }\n if (value instanceof ByteBuffer) { return toArrayBufferView(ArrayBufferViewCtor, value.bytes()); }\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}\n\n/** @ignore */ export const toInt8Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int8Array, input);\n/** @ignore */ export const toInt16Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int16Array, input);\n/** @ignore */ export const toInt32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Int32Array, input);\n/** @ignore */ export const toBigInt64Array = (input: ArrayBufferViewInput) => toArrayBufferView(BigInt64Array, input);\n/** @ignore */ export const toUint8Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint8Array, input);\n/** @ignore */ export const toUint16Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint16Array, input);\n/** @ignore */ export const toUint32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Uint32Array, input);\n/** @ignore */ export const toBigUint64Array = (input: ArrayBufferViewInput) => toArrayBufferView(BigUint64Array, input);\n/** @ignore */ export const toFloat32Array = (input: ArrayBufferViewInput) => toArrayBufferView(Float32Array, input);\n/** @ignore */ export const toFloat64Array = (input: ArrayBufferViewInput) => toArrayBufferView(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArray = (input: ArrayBufferViewInput) => toArrayBufferView(Uint8ClampedArray, input);\n\n/** @ignore */\ntype ArrayBufferViewIteratorInput = Iterable | ArrayBufferViewInput;\n\n/** @ignore */\nconst pump = | AsyncIterator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nexport function* toArrayBufferViewIterator(ArrayCtor: TypedArrayConstructor, source: ArrayBufferViewIteratorInput) {\n\n const wrap = function*(x: T) { yield x; };\n const buffers: Iterable =\n (typeof source === 'string') ? wrap(source)\n : (ArrayBuffer.isView(source)) ? wrap(source)\n : (source instanceof ArrayBuffer) ? wrap(source)\n : (source instanceof SharedArrayBuf) ? wrap(source)\n : !isIterable(source) ? wrap(source) : source;\n\n yield* pump((function* (it) {\n let r: IteratorResult = null;\n do {\n r = it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.iterator]()));\n}\n\n/** @ignore */ export const toInt8ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int8Array, input);\n/** @ignore */ export const toInt16ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int16Array, input);\n/** @ignore */ export const toInt32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Int32Array, input);\n/** @ignore */ export const toUint8ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint8Array, input);\n/** @ignore */ export const toUint16ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint16Array, input);\n/** @ignore */ export const toUint32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint32Array, input);\n/** @ignore */ export const toFloat32ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Float32Array, input);\n/** @ignore */ export const toFloat64ArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArrayIterator = (input: ArrayBufferViewIteratorInput) => toArrayBufferViewIterator(Uint8ClampedArray, input);\n\n/** @ignore */\ntype ArrayBufferViewAsyncIteratorInput = AsyncIterable | Iterable | PromiseLike | ArrayBufferViewInput;\n\n/** @ignore */\nexport async function* toArrayBufferViewAsyncIterator(ArrayCtor: TypedArrayConstructor, source: ArrayBufferViewAsyncIteratorInput): AsyncIterableIterator {\n\n // if a Promise, unwrap the Promise and iterate the resolved value\n if (isPromise(source)) {\n return yield* toArrayBufferViewAsyncIterator(ArrayCtor, await source);\n }\n\n const wrap = async function*(x: T) { yield await x; };\n const emit = async function* >(source: T) {\n yield* pump((function*(it: Iterator) {\n let r: IteratorResult = null;\n do {\n r = it.next(yield r && r.value);\n } while (!r.done);\n })(source[Symbol.iterator]()));\n };\n\n const buffers: AsyncIterable =\n (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 : isIterable(source) ? emit(source) // If Iterable, wrap in an AsyncIterableIterator and compose the `next` values\n : !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\n yield* pump((async function* (it) {\n let r: IteratorResult = null;\n do {\n r = await it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.asyncIterator]()));\n}\n\n/** @ignore */ export const toInt8ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int8Array, input);\n/** @ignore */ export const toInt16ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int16Array, input);\n/** @ignore */ export const toInt32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Int32Array, input);\n/** @ignore */ export const toUint8ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint8Array, input);\n/** @ignore */ export const toUint16ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint16Array, input);\n/** @ignore */ export const toUint32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint32Array, input);\n/** @ignore */ export const toFloat32ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Float32Array, input);\n/** @ignore */ export const toFloat64ArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Float64Array, input);\n/** @ignore */ export const toUint8ClampedArrayAsyncIterator = (input: ArrayBufferViewAsyncIteratorInput) => toArrayBufferViewAsyncIterator(Uint8ClampedArray, input);\n\n/** @ignore */\nexport function rebaseValueOffsets(offset: number, length: number, valueOffsets: Int32Array) {\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}\n\n/** @ignore */\nexport function compareArrayLike>(a: T, b: T) {\n let i = 0, n = a.length;\n if (n !== b.length) { return false; }\n if (n > 0) {\n do { if (a[i] !== b[i]) { return false; } } while (++i < n);\n }\n return true;\n}\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.\n\nimport {\n toUint8Array,\n joinUint8Arrays,\n ArrayBufferViewInput,\n toUint8ArrayIterator,\n toUint8ArrayAsyncIterator\n} from '../util/buffer';\n\nimport { ReadableDOMStreamOptions } from './interfaces';\n\n/** @ignore */\nexport default {\n fromIterable(source: Iterable | T): IterableIterator {\n return pump(fromIterable(source));\n },\n fromAsyncIterable(source: AsyncIterable | PromiseLike): AsyncIterableIterator {\n return pump(fromAsyncIterable(source));\n },\n fromDOMStream(source: ReadableStream): AsyncIterableIterator {\n return pump(fromDOMStream(source));\n },\n fromNodeStream(stream: NodeJS.ReadableStream): AsyncIterableIterator {\n return pump(fromNodeStream(stream));\n },\n // @ts-ignore\n toDOMStream(source: Iterable | AsyncIterable, options?: ReadableDOMStreamOptions): ReadableStream {\n throw new Error(`\"toDOMStream\" not available in this environment`);\n },\n // @ts-ignore\n toNodeStream(source: Iterable | AsyncIterable, options?: import('stream').ReadableOptions): import('stream').Readable {\n throw new Error(`\"toNodeStream\" not available in this environment`);\n },\n};\n\n/** @ignore */\nconst pump = | AsyncIterator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nfunction* fromIterable(source: Iterable | T): IterableIterator {\n\n let done: boolean, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before creating the source Iterator\n ({ cmd, size } = yield null);\n\n // initialize the iterator\n let it = toUint8ArrayIterator(source)[Symbol.iterator]();\n\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 } catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (it.throw(e));\n } finally {\n (threw === false) && (typeof it.return === 'function') && (it.return());\n }\n}\n\n/** @ignore */\nasync function* fromAsyncIterable(source: AsyncIterable | PromiseLike): AsyncIterableIterator {\n\n let done: boolean, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before creating the source AsyncIterator\n ({ cmd, size } = yield null);\n\n // initialize the iterator\n let it = toUint8ArrayAsyncIterator(source)[Symbol.asyncIterator]();\n\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 } catch (e) {\n (threw = true) && (typeof it.throw === 'function') && (await it.throw(e));\n } finally {\n (threw === false) && (typeof it.return === 'function') && (await it.return());\n }\n}\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: ReadableStream): AsyncIterableIterator {\n\n let done = false, threw = false;\n let buffers: Uint8Array[] = [], buffer: Uint8Array;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\n\n // Yield so the caller can inject the read command before we establish the ReadableStream lock\n ({ cmd, size } = yield null);\n\n // initialize the reader and lock the stream\n let it = new AdaptiveByteReader(source);\n\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(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 } catch (e) {\n (threw = true) && (await it['cancel'](e));\n } finally {\n (threw === false) ? (await it['cancel']())\n : source['locked'] && it.releaseLock();\n }\n}\n\n/** @ignore */\nclass AdaptiveByteReader {\n\n private supportsBYOB: boolean;\n private byobReader: ReadableStreamBYOBReader | null = null;\n private defaultReader: ReadableStreamDefaultReader | null = null;\n private reader: ReadableStreamBYOBReader | ReadableStreamDefaultReader | null;\n\n constructor(private source: ReadableStream) {\n try {\n this.supportsBYOB = !!(this.reader = this.getBYOBReader());\n } catch (e) {\n this.supportsBYOB = !!!(this.reader = this.getDefaultReader());\n }\n }\n\n get closed(): Promise {\n return this.reader ? this.reader['closed'].catch(() => {}) : Promise.resolve();\n }\n\n releaseLock(): void {\n if (this.reader) {\n this.reader.releaseLock();\n }\n this.reader = this.byobReader = this.defaultReader = null;\n }\n\n async cancel(reason?: any): Promise {\n const { reader, source } = this;\n reader && (await reader['cancel'](reason).catch(() => {}));\n source && (source['locked'] && this.releaseLock());\n }\n\n async read(size?: number): Promise> {\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 = toUint8Array(result as ReadableStreamReadResult));\n return result as ReadableStreamReadResult;\n }\n\n private getDefaultReader() {\n if (this.byobReader) { this.releaseLock(); }\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\n private getBYOBReader() {\n if (this.defaultReader) { this.releaseLock(); }\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\n // This strategy plucked from the example in the streams spec:\n // https://streams.spec.whatwg.org/#example-manual-read-bytes\n private async readFromBYOBReader(size: number) {\n return await readInto(this.getBYOBReader(), new ArrayBuffer(size), 0, size);\n }\n}\n\n/** @ignore */\nasync function readInto(reader: ReadableStreamBYOBReader, buffer: ArrayBufferLike, offset: number, size: number): Promise> {\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\n/** @ignore */\ntype EventName = 'end' | 'error' | 'readable';\n/** @ignore */\ntype Event = [EventName, (_: any) => void, Promise<[EventName, Error | null]>];\n/** @ignore */\nconst onEvent = (stream: NodeJS.ReadableStream, event: T) => {\n let handler = (_: any) => resolve([event, _]);\n let resolve: (value?: [T, any] | PromiseLike<[T, any]>) => void;\n return [event, handler, new Promise<[T, any]>(\n (r) => (resolve = r) && stream['once'](event, handler)\n )] as Event;\n};\n\n/** @ignore */\nasync function* fromNodeStream(stream: NodeJS.ReadableStream): AsyncIterableIterator {\n\n let events: Event[] = [];\n let event: EventName = 'error';\n let done = false, err: Error | null = null;\n let cmd: 'peek' | 'read', size: number, bufferLength = 0;\n let buffers: Uint8Array[] = [], buffer: Uint8Array | Buffer | string;\n\n function byteRange() {\n if (cmd === 'peek') {\n return joinUint8Arrays(buffers, size)[0];\n }\n [buffer, buffers, bufferLength] = joinUint8Arrays(buffers, size);\n return buffer;\n }\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\n // ignore stdin if it's a TTY\n if ((stream as any)['isTTY']) { return yield new Uint8Array(0); }\n\n try {\n // initialize the stream event handlers\n events[0] = onEvent(stream, 'end');\n events[1] = onEvent(stream, 'error');\n\n do {\n events[2] = onEvent(stream, 'readable');\n\n // wait on the first message event from the stream\n [event, err] = await Promise.race(events.map((x) => x[2]));\n\n // if the stream emitted an Error, rethrow it\n if (event === 'error') { break; }\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 = toUint8Array(stream['read'](undefined));\n } else {\n buffer = 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 = 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 } finally {\n await cleanup(events, event === 'error' ? err : null);\n }\n\n function cleanup(events: Event[], err?: T) {\n buffer = buffers = null;\n return new Promise(async (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 as any)['destroy'];\n destroy && destroy.call(stream, err);\n err = undefined;\n } catch (e) { err = e || err; } finally {\n err != null ? reject(err) : resolve();\n }\n });\n }\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\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.\n\nimport { Data } from './data';\nimport { DataType } from './type';\nimport { Chunked } from './vector/chunked';\n\n/** @ignore */\nexport interface Clonable {\n clone(...args: any[]): R;\n}\n\n/** @ignore */\nexport interface Sliceable {\n slice(begin?: number, end?: number): R;\n}\n\n/** @ignore */\nexport interface Applicative {\n concat(...others: Vector[]): R;\n readonly [Symbol.isConcatSpreadable]: boolean;\n}\n\nexport interface AbstractVector\n extends Clonable>,\n Sliceable>,\n Applicative> {\n\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\nexport abstract class AbstractVector implements Iterable {\n\n public abstract readonly data: Data;\n public abstract readonly type: T;\n public abstract readonly typeId: T['TType'];\n public abstract readonly length: number;\n public abstract readonly stride: number;\n public abstract readonly nullCount: number;\n public abstract readonly byteLength: number;\n public abstract readonly numChildren: number;\n\n public abstract readonly ArrayType: T['ArrayType'];\n\n public abstract isValid(index: number): boolean;\n public abstract get(index: number): T['TValue'] | null;\n public abstract set(index: number, value: T['TValue'] | null): void;\n public abstract indexOf(value: T['TValue'] | null, fromIndex?: number): number;\n public abstract [Symbol.iterator](): IterableIterator;\n\n public abstract toArray(): T['TArray'];\n public abstract getChildAt(index: number): Vector | null;\n}\n\nexport { AbstractVector as Vector };\n","/* tslint:disable:class-name */\n\n// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum MetadataVersion {\n /**\n * 0.1.0\n */\n V1 = 0,\n\n /**\n * 0.2.0\n */\n V2 = 1,\n\n /**\n * 0.3.0 -> 0.7.1\n */\n V3 = 2,\n\n /**\n * >= 0.8.0\n */\n V4 = 3\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum UnionMode {\n Sparse = 0,\n Dense = 1\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Precision {\n HALF = 0,\n SINGLE = 1,\n DOUBLE = 2\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum DateUnit {\n DAY = 0,\n MILLISECOND = 1\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum TimeUnit {\n SECOND = 0,\n MILLISECOND = 1,\n MICROSECOND = 2,\n NANOSECOND = 3\n }\n}\n\n/**\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum IntervalUnit {\n YEAR_MONTH = 0,\n DAY_TIME = 1\n }\n}\n\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 */\nexport namespace org.apache.arrow.flatbuf {\n export enum Type {\n NONE = 0,\n Null = 1,\n Int = 2,\n FloatingPoint = 3,\n Binary = 4,\n Utf8 = 5,\n Bool = 6,\n Decimal = 7,\n Date = 8,\n Time = 9,\n Timestamp = 10,\n Interval = 11,\n List = 12,\n Struct_ = 13,\n Union = 14,\n FixedSizeBinary = 15,\n FixedSizeList = 16,\n Map = 17,\n Duration = 18,\n LargeBinary = 19,\n LargeUtf8 = 20,\n LargeList = 21\n }\n}\n\n/**\n * ----------------------------------------------------------------------\n * Endianness of the platform producing the data\n *\n * @enum {number}\n */\nexport namespace org.apache.arrow.flatbuf {\n export enum Endianness {\n Little = 0,\n Big = 1\n }\n}\n\n/**\n * These are stored in the flatbuffer in the Type union below\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Null {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Null\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Null {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Null= obj\n * @returns Null\n */\n static getRootAsNull(bb: flatbuffers.ByteBuffer, obj?: Null): Null {\n return (obj || new Null).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startNull(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endNull(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createNull(builder: flatbuffers.Builder): flatbuffers.Offset {\n Null.startNull(builder);\n return Null.endNull(builder);\n }\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class Struct_ {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Struct_\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Struct_ {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Struct_= obj\n * @returns Struct_\n */\n static getRootAsStruct_(bb: flatbuffers.ByteBuffer, obj?: Struct_): Struct_ {\n return (obj || new Struct_).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startStruct_(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createStruct_(builder: flatbuffers.Builder): flatbuffers.Offset {\n Struct_.startStruct_(builder);\n return Struct_.endStruct_(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class List {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns List\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): List {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param List= obj\n * @returns List\n */\n static getRootAsList(bb: flatbuffers.ByteBuffer, obj?: List): List {\n return (obj || new List).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startList(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createList(builder: flatbuffers.Builder): flatbuffers.Offset {\n List.startList(builder);\n return List.endList(builder);\n }\n }\n}\n/**\n * Same as List, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeList {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeList\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeList {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeList= obj\n * @returns LargeList\n */\n static getRootAsLargeList(bb: flatbuffers.ByteBuffer, obj?: LargeList): LargeList {\n return (obj || new LargeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeList(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeList.startLargeList(builder);\n return LargeList.endLargeList(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FixedSizeList {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeList\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeList {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeList= obj\n * @returns FixedSizeList\n */\n static getRootAsFixedSizeList(bb: flatbuffers.ByteBuffer, obj?: FixedSizeList): FixedSizeList {\n return (obj || new FixedSizeList).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Number of list items per value\n *\n * @returns number\n */\n listSize(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeList(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number listSize\n */\n static addListSize(builder: flatbuffers.Builder, listSize: number) {\n builder.addFieldInt32(0, listSize, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeList(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFixedSizeList(builder: flatbuffers.Builder, listSize: number): flatbuffers.Offset {\n FixedSizeList.startFixedSizeList(builder);\n FixedSizeList.addListSize(builder, listSize);\n return FixedSizeList.endFixedSizeList(builder);\n }\n }\n}\n/**\n * A Map is a logical nested type that is represented as\n *\n * List>\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 \"entry\", \"key\", and \"value\", but this is\n * not enforced\n *\n * Map\n * - child[0] entry: Struct\n * - child[0] key: K\n * - child[1] value: V\n *\n * Neither the \"entry\" 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 */\nexport namespace org.apache.arrow.flatbuf {\n export class Map {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Map\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Map {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Map= obj\n * @returns Map\n */\n static getRootAsMap(bb: flatbuffers.ByteBuffer, obj?: Map): Map {\n return (obj || new Map).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Set to true if the keys within each value are sorted\n *\n * @returns boolean\n */\n keysSorted(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startMap(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean keysSorted\n */\n static addKeysSorted(builder: flatbuffers.Builder, keysSorted: boolean) {\n builder.addFieldInt8(0, +keysSorted, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMap(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createMap(builder: flatbuffers.Builder, keysSorted: boolean): flatbuffers.Offset {\n Map.startMap(builder);\n Map.addKeysSorted(builder, keysSorted);\n return Map.endMap(builder);\n }\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class Union {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Union\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Union {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Union= obj\n * @returns Union\n */\n static getRootAsUnion(bb: flatbuffers.ByteBuffer, obj?: Union): Union {\n return (obj || new Union).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.UnionMode\n */\n mode(): org.apache.arrow.flatbuf.UnionMode {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.UnionMode.Sparse;\n }\n\n /**\n * @param number index\n * @returns number\n */\n typeIds(index: number): number | null {\n let 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 /**\n * @returns number\n */\n typeIdsLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns Int32Array\n */\n typeIdsArray(): Int32Array | null {\n let 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 /**\n * @param flatbuffers.Builder builder\n */\n static startUnion(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.UnionMode mode\n */\n static addMode(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode) {\n builder.addFieldInt16(0, mode, org.apache.arrow.flatbuf.UnionMode.Sparse);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeIdsOffset\n */\n static addTypeIds(builder: flatbuffers.Builder, typeIdsOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, typeIdsOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createTypeIdsVector(builder: flatbuffers.Builder, data: number[] | Int32Array): flatbuffers.Offset {\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 /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startTypeIdsVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUnion(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createUnion(builder: flatbuffers.Builder, mode: org.apache.arrow.flatbuf.UnionMode, typeIdsOffset: flatbuffers.Offset): flatbuffers.Offset {\n Union.startUnion(builder);\n Union.addMode(builder, mode);\n Union.addTypeIds(builder, typeIdsOffset);\n return Union.endUnion(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Int {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Int\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Int {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Int= obj\n * @returns Int\n */\n static getRootAsInt(bb: flatbuffers.ByteBuffer, obj?: Int): Int {\n return (obj || new Int).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns boolean\n */\n isSigned(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startInt(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(0, bitWidth, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isSigned\n */\n static addIsSigned(builder: flatbuffers.Builder, isSigned: boolean) {\n builder.addFieldInt8(1, +isSigned, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInt(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createInt(builder: flatbuffers.Builder, bitWidth: number, isSigned: boolean): flatbuffers.Offset {\n Int.startInt(builder);\n Int.addBitWidth(builder, bitWidth);\n Int.addIsSigned(builder, isSigned);\n return Int.endInt(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FloatingPoint {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FloatingPoint\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FloatingPoint {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FloatingPoint= obj\n * @returns FloatingPoint\n */\n static getRootAsFloatingPoint(bb: flatbuffers.ByteBuffer, obj?: FloatingPoint): FloatingPoint {\n return (obj || new FloatingPoint).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.Precision\n */\n precision(): org.apache.arrow.flatbuf.Precision {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Precision.HALF;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFloatingPoint(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Precision precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision) {\n builder.addFieldInt16(0, precision, org.apache.arrow.flatbuf.Precision.HALF);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFloatingPoint(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFloatingPoint(builder: flatbuffers.Builder, precision: org.apache.arrow.flatbuf.Precision): flatbuffers.Offset {\n FloatingPoint.startFloatingPoint(builder);\n FloatingPoint.addPrecision(builder, precision);\n return FloatingPoint.endFloatingPoint(builder);\n }\n }\n}\n/**\n * Unicode with UTF-8 encoding\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Utf8 {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Utf8\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Utf8 {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Utf8= obj\n * @returns Utf8\n */\n static getRootAsUtf8(bb: flatbuffers.ByteBuffer, obj?: Utf8): Utf8 {\n return (obj || new Utf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startUtf8(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n Utf8.startUtf8(builder);\n return Utf8.endUtf8(builder);\n }\n }\n}\n/**\n * Opaque binary data\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Binary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Binary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Binary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Binary= obj\n * @returns Binary\n */\n static getRootAsBinary(bb: flatbuffers.ByteBuffer, obj?: Binary): Binary {\n return (obj || new Binary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBinary(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n Binary.startBinary(builder);\n return Binary.endBinary(builder);\n }\n }\n}\n/**\n * Same as Utf8, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeUtf8 {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeUtf8\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeUtf8 {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeUtf8= obj\n * @returns LargeUtf8\n */\n static getRootAsLargeUtf8(bb: flatbuffers.ByteBuffer, obj?: LargeUtf8): LargeUtf8 {\n return (obj || new LargeUtf8).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeUtf8(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeUtf8(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeUtf8.startLargeUtf8(builder);\n return LargeUtf8.endLargeUtf8(builder);\n }\n }\n}\n/**\n * Same as Binary, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class LargeBinary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns LargeBinary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): LargeBinary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param LargeBinary= obj\n * @returns LargeBinary\n */\n static getRootAsLargeBinary(bb: flatbuffers.ByteBuffer, obj?: LargeBinary): LargeBinary {\n return (obj || new LargeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startLargeBinary(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endLargeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createLargeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n LargeBinary.startLargeBinary(builder);\n return LargeBinary.endLargeBinary(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class FixedSizeBinary {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FixedSizeBinary\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FixedSizeBinary {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeBinary= obj\n * @returns FixedSizeBinary\n */\n static getRootAsFixedSizeBinary(bb: flatbuffers.ByteBuffer, obj?: FixedSizeBinary): FixedSizeBinary {\n return (obj || new FixedSizeBinary).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Number of bytes per value\n *\n * @returns number\n */\n byteWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFixedSizeBinary(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number byteWidth\n */\n static addByteWidth(builder: flatbuffers.Builder, byteWidth: number) {\n builder.addFieldInt32(0, byteWidth, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFixedSizeBinary(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createFixedSizeBinary(builder: flatbuffers.Builder, byteWidth: number): flatbuffers.Offset {\n FixedSizeBinary.startFixedSizeBinary(builder);\n FixedSizeBinary.addByteWidth(builder, byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Bool {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Bool\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Bool {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Bool= obj\n * @returns Bool\n */\n static getRootAsBool(bb: flatbuffers.ByteBuffer, obj?: Bool): Bool {\n return (obj || new Bool).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBool(builder: flatbuffers.Builder) {\n builder.startObject(0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBool(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createBool(builder: flatbuffers.Builder): flatbuffers.Offset {\n Bool.startBool(builder);\n return Bool.endBool(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Decimal {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Decimal\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Decimal {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Decimal= obj\n * @returns Decimal\n */\n static getRootAsDecimal(bb: flatbuffers.ByteBuffer, obj?: Decimal): Decimal {\n return (obj || new Decimal).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Total number of decimal digits\n *\n * @returns number\n */\n precision(): number {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * Number of digits after the decimal point \".\"\n *\n * @returns number\n */\n scale(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDecimal(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: number) {\n builder.addFieldInt32(0, precision, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number scale\n */\n static addScale(builder: flatbuffers.Builder, scale: number) {\n builder.addFieldInt32(1, scale, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDecimal(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDecimal(builder: flatbuffers.Builder, precision: number, scale: number): flatbuffers.Offset {\n Decimal.startDecimal(builder);\n Decimal.addPrecision(builder, precision);\n Decimal.addScale(builder, scale);\n return Decimal.endDecimal(builder);\n }\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class Date {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Date\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Date {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Date= obj\n * @returns Date\n */\n static getRootAsDate(bb: flatbuffers.ByteBuffer, obj?: Date): Date {\n return (obj || new Date).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.DateUnit\n */\n unit(): org.apache.arrow.flatbuf.DateUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.DateUnit.MILLISECOND;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDate(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.DateUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.DateUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDate(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDate(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.DateUnit): flatbuffers.Offset {\n Date.startDate(builder);\n Date.addUnit(builder, unit);\n return Date.endDate(builder);\n }\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class Time {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Time\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Time {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Time= obj\n * @returns Time\n */\n static getRootAsTime(bb: flatbuffers.ByteBuffer, obj?: Time): Time {\n return (obj || new Time).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 32;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startTime(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(1, bitWidth, 32);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTime(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createTime(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, bitWidth: number): flatbuffers.Offset {\n Time.startTime(builder);\n Time.addUnit(builder, unit);\n Time.addBitWidth(builder, bitWidth);\n return Time.endTime(builder);\n }\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class Timestamp {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Timestamp\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Timestamp {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Timestamp= obj\n * @returns Timestamp\n */\n static getRootAsTimestamp(bb: flatbuffers.ByteBuffer, obj?: Timestamp): Timestamp {\n return (obj || new Timestamp).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.SECOND;\n }\n\n /**\n * The time zone is a string indicating the name of a time zone, one of:\n *\n * * As used in the Olson time zone database (the \"tz database\" or\n * \"tzdata\"), such as \"America/New_York\"\n * * An absolute time zone offset of the form +XX:XX or -XX:XX, such as +07:30\n *\n * Whether a timezone string is present indicates different semantics about\n * the data:\n *\n * * If the time zone is null or equal to an empty string, the data is \"time\n * zone naive\" and shall be displayed *as is* to the user, not localized\n * to the locale of the user. This data can be though of as UTC but\n * without having \"UTC\" as the time zone, it is not considered to be\n * localized to any time zone\n *\n * * If the time zone is set to a valid value, values can be displayed as\n * \"localized\" to that time zone, even though the underlying 64-bit\n * integers are identical to the same data stored in UTC. Converting\n * between time zones is a metadata-only operation and does not change the\n * underlying values\n *\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n timezone(): string | null;\n timezone(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n timezone(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startTimestamp(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.SECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset timezoneOffset\n */\n static addTimezone(builder: flatbuffers.Builder, timezoneOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, timezoneOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endTimestamp(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createTimestamp(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit, timezoneOffset: flatbuffers.Offset): flatbuffers.Offset {\n Timestamp.startTimestamp(builder);\n Timestamp.addUnit(builder, unit);\n Timestamp.addTimezone(builder, timezoneOffset);\n return Timestamp.endTimestamp(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Interval {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Interval\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Interval {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Interval= obj\n * @returns Interval\n */\n static getRootAsInterval(bb: flatbuffers.ByteBuffer, obj?: Interval): Interval {\n return (obj || new Interval).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.IntervalUnit\n */\n unit(): org.apache.arrow.flatbuf.IntervalUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startInterval(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.IntervalUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.IntervalUnit.YEAR_MONTH);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endInterval(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createInterval(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.IntervalUnit): flatbuffers.Offset {\n Interval.startInterval(builder);\n Interval.addUnit(builder, unit);\n return Interval.endInterval(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Duration {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Duration\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Duration {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Duration= obj\n * @returns Duration\n */\n static getRootAsDuration(bb: flatbuffers.ByteBuffer, obj?: Duration): Duration {\n return (obj || new Duration).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.TimeUnit\n */\n unit(): org.apache.arrow.flatbuf.TimeUnit {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.TimeUnit.MILLISECOND;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDuration(builder: flatbuffers.Builder) {\n builder.startObject(1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit) {\n builder.addFieldInt16(0, unit, org.apache.arrow.flatbuf.TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDuration(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDuration(builder: flatbuffers.Builder, unit: org.apache.arrow.flatbuf.TimeUnit): flatbuffers.Offset {\n Duration.startDuration(builder);\n Duration.addUnit(builder, unit);\n return Duration.endDuration(builder);\n }\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class KeyValue {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns KeyValue\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): KeyValue {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param KeyValue= obj\n * @returns KeyValue\n */\n static getRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue {\n return (obj || new KeyValue).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n key(): string | null;\n key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n key(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n value(): string | null;\n value(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n value(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startKeyValue(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset keyOffset\n */\n static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset) {\n builder.addFieldOffset(0, keyOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset valueOffset\n */\n static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, valueOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endKeyValue(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createKeyValue(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, valueOffset: flatbuffers.Offset): flatbuffers.Offset {\n KeyValue.startKeyValue(builder);\n KeyValue.addKey(builder, keyOffset);\n KeyValue.addValue(builder, valueOffset);\n return KeyValue.endKeyValue(builder);\n }\n }\n}\n/**\n * ----------------------------------------------------------------------\n * Dictionary encoding metadata\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class DictionaryEncoding {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryEncoding\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryEncoding {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding\n */\n static getRootAsDictionaryEncoding(bb: flatbuffers.ByteBuffer, obj?: DictionaryEncoding): DictionaryEncoding {\n return (obj || new DictionaryEncoding).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\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(): flatbuffers.Long {\n let 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 /**\n * The dictionary indices are constrained to be positive integers. If this\n * field is null, the indices must be signed int32\n *\n * @param org.apache.arrow.flatbuf.Int= obj\n * @returns org.apache.arrow.flatbuf.Int|null\n */\n indexType(obj?: org.apache.arrow.flatbuf.Int): org.apache.arrow.flatbuf.Int | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.Int).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\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(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryEncoding(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset indexTypeOffset\n */\n static addIndexType(builder: flatbuffers.Builder, indexTypeOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, indexTypeOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isOrdered\n */\n static addIsOrdered(builder: flatbuffers.Builder, isOrdered: boolean) {\n builder.addFieldInt8(2, +isOrdered, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryEncoding(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryEncoding(builder: flatbuffers.Builder, id: flatbuffers.Long, indexTypeOffset: flatbuffers.Offset, isOrdered: boolean): flatbuffers.Offset {\n DictionaryEncoding.startDictionaryEncoding(builder);\n DictionaryEncoding.addId(builder, id);\n DictionaryEncoding.addIndexType(builder, indexTypeOffset);\n DictionaryEncoding.addIsOrdered(builder, isOrdered);\n return DictionaryEncoding.endDictionaryEncoding(builder);\n }\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class Field {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Field\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Field {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Field= obj\n * @returns Field\n */\n static getRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field {\n return (obj || new Field).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Name is not required, in i.e. a List\n *\n * @param flatbuffers.Encoding= optionalEncoding\n * @returns string|Uint8Array|null\n */\n name(): string | null;\n name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null;\n name(optionalEncoding?: any): string | Uint8Array | null {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null;\n }\n\n /**\n * Whether or not this field can contain nulls. Should be true in general.\n *\n * @returns boolean\n */\n nullable(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.Type\n */\n typeType(): org.apache.arrow.flatbuf.Type {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Type.NONE;\n }\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: T): T | null {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * Present only if the field is dictionary encoded.\n *\n * @param org.apache.arrow.flatbuf.DictionaryEncoding= obj\n * @returns org.apache.arrow.flatbuf.DictionaryEncoding|null\n */\n dictionary(obj?: org.apache.arrow.flatbuf.DictionaryEncoding): org.apache.arrow.flatbuf.DictionaryEncoding | null {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new org.apache.arrow.flatbuf.DictionaryEncoding).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\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 org.apache.arrow.flatbuf.Field= obj\n * @returns org.apache.arrow.flatbuf.Field\n */\n children(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {\n let offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n childrenLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * User-defined metadata\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startField(builder: flatbuffers.Builder) {\n builder.startObject(7);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nameOffset\n */\n static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset) {\n builder.addFieldOffset(0, nameOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean nullable\n */\n static addNullable(builder: flatbuffers.Builder, nullable: boolean) {\n builder.addFieldInt8(1, +nullable, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Type typeType\n */\n static addTypeType(builder: flatbuffers.Builder, typeType: org.apache.arrow.flatbuf.Type) {\n builder.addFieldInt8(2, typeType, org.apache.arrow.flatbuf.Type.NONE);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset typeOffset\n */\n static addType(builder: flatbuffers.Builder, typeOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, typeOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionaryOffset\n */\n static addDictionary(builder: flatbuffers.Builder, dictionaryOffset: flatbuffers.Offset) {\n builder.addFieldOffset(4, dictionaryOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset childrenOffset\n */\n static addChildren(builder: flatbuffers.Builder, childrenOffset: flatbuffers.Offset) {\n builder.addFieldOffset(5, childrenOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createChildrenVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\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 /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startChildrenVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(6, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\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 /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endField(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createField(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, nullable: boolean, typeType: org.apache.arrow.flatbuf.Type, typeOffset: flatbuffers.Offset, dictionaryOffset: flatbuffers.Offset, childrenOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\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 }\n}\n/**\n * ----------------------------------------------------------------------\n * A Buffer represents a single contiguous memory segment\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Buffer {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Buffer\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Buffer {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\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(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\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).\n *\n * @returns flatbuffers.Long\n */\n length(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 8);\n }\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: flatbuffers.Builder, offset: flatbuffers.Long, length: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 16);\n builder.writeInt64(length);\n builder.writeInt64(offset);\n return builder.offset();\n }\n\n }\n}\n/**\n * ----------------------------------------------------------------------\n * A Schema describes the columns in a row batch\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Schema {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Schema\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Schema {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Schema= obj\n * @returns Schema\n */\n static getRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema {\n return (obj || new Schema).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\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 org.apache.arrow.flatbuf.Endianness\n */\n endianness(): org.apache.arrow.flatbuf.Endianness {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : org.apache.arrow.flatbuf.Endianness.Little;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Field= obj\n * @returns org.apache.arrow.flatbuf.Field\n */\n fields(index: number, obj?: org.apache.arrow.flatbuf.Field): org.apache.arrow.flatbuf.Field | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.Field).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n fieldsLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: org.apache.arrow.flatbuf.KeyValue): org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startSchema(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.Endianness endianness\n */\n static addEndianness(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness) {\n builder.addFieldInt16(0, endianness, org.apache.arrow.flatbuf.Endianness.Little);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset fieldsOffset\n */\n static addFields(builder: flatbuffers.Builder, fieldsOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, fieldsOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createFieldsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\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 /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startFieldsVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\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 /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endSchema(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createSchema(builder: flatbuffers.Builder, endianness: org.apache.arrow.flatbuf.Endianness, fieldsOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\n Schema.startSchema(builder);\n Schema.addEndianness(builder, endianness);\n Schema.addFields(builder, fieldsOffset);\n Schema.addCustomMetadata(builder, customMetadataOffset);\n return Schema.endSchema(builder);\n }\n }\n}\n","// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS7624605610262437867 from './Schema';\nexport namespace org.apache.arrow.flatbuf {\n export import Schema = NS7624605610262437867.org.apache.arrow.flatbuf.Schema;\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export enum MessageHeader {\n NONE = 0,\n Schema = 1,\n DictionaryBatch = 2,\n RecordBatch = 3,\n Tensor = 4,\n SparseTensor = 5\n }\n}\n\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 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 */\nexport namespace org.apache.arrow.flatbuf {\n export class FieldNode {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns FieldNode\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): FieldNode {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\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(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\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(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 8);\n }\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: flatbuffers.Builder, length: flatbuffers.Long, null_count: flatbuffers.Long): flatbuffers.Offset {\n builder.prep(8, 16);\n builder.writeInt64(null_count);\n builder.writeInt64(length);\n return builder.offset();\n }\n\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class RecordBatch {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns RecordBatch\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): RecordBatch {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param RecordBatch= obj\n * @returns RecordBatch\n */\n static getRootAsRecordBatch(bb: flatbuffers.ByteBuffer, obj?: RecordBatch): RecordBatch {\n return (obj || new RecordBatch).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\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(): flatbuffers.Long {\n let 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 /**\n * Nodes correspond to the pre-ordered flattened logical schema\n *\n * @param number index\n * @param org.apache.arrow.flatbuf.FieldNode= obj\n * @returns org.apache.arrow.flatbuf.FieldNode\n */\n nodes(index: number, obj?: org.apache.arrow.flatbuf.FieldNode): org.apache.arrow.flatbuf.FieldNode | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.FieldNode).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n nodesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\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 org.apache.arrow.flatbuf.Buffer= obj\n * @returns org.apache.arrow.flatbuf.Buffer\n */\n buffers(index: number, obj?: NS7624605610262437867.org.apache.arrow.flatbuf.Buffer): NS7624605610262437867.org.apache.arrow.flatbuf.Buffer | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.Buffer).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n buffersLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startRecordBatch(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long length\n */\n static addLength(builder: flatbuffers.Builder, length: flatbuffers.Long) {\n builder.addFieldInt64(0, length, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset nodesOffset\n */\n static addNodes(builder: flatbuffers.Builder, nodesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, nodesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startNodesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(16, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset buffersOffset\n */\n static addBuffers(builder: flatbuffers.Builder, buffersOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, buffersOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startBuffersVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(16, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endRecordBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createRecordBatch(builder: flatbuffers.Builder, length: flatbuffers.Long, nodesOffset: flatbuffers.Offset, buffersOffset: flatbuffers.Offset): flatbuffers.Offset {\n RecordBatch.startRecordBatch(builder);\n RecordBatch.addLength(builder, length);\n RecordBatch.addNodes(builder, nodesOffset);\n RecordBatch.addBuffers(builder, buffersOffset);\n return RecordBatch.endRecordBatch(builder);\n }\n }\n}\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 */\nexport namespace org.apache.arrow.flatbuf {\n export class DictionaryBatch {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns DictionaryBatch\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): DictionaryBatch {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param DictionaryBatch= obj\n * @returns DictionaryBatch\n */\n static getRootAsDictionaryBatch(bb: flatbuffers.ByteBuffer, obj?: DictionaryBatch): DictionaryBatch {\n return (obj || new DictionaryBatch).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns flatbuffers.Long\n */\n id(): flatbuffers.Long {\n let 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 /**\n * @param org.apache.arrow.flatbuf.RecordBatch= obj\n * @returns org.apache.arrow.flatbuf.RecordBatch|null\n */\n data(obj?: org.apache.arrow.flatbuf.RecordBatch): org.apache.arrow.flatbuf.RecordBatch | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new org.apache.arrow.flatbuf.RecordBatch).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * If isDelta is true the values in the dictionary are to be appended to a\n * dictionary with the indicated id\n *\n * @returns boolean\n */\n isDelta(): boolean {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryBatch(builder: flatbuffers.Builder) {\n builder.startObject(3);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long id\n */\n static addId(builder: flatbuffers.Builder, id: flatbuffers.Long) {\n builder.addFieldInt64(0, id, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dataOffset\n */\n static addData(builder: flatbuffers.Builder, dataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, dataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param boolean isDelta\n */\n static addIsDelta(builder: flatbuffers.Builder, isDelta: boolean) {\n builder.addFieldInt8(2, +isDelta, +false);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryBatch(builder: flatbuffers.Builder, id: flatbuffers.Long, dataOffset: flatbuffers.Offset, isDelta: boolean): flatbuffers.Offset {\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 }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Message {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Message\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Message {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Message= obj\n * @returns Message\n */\n static getRootAsMessage(bb: flatbuffers.ByteBuffer, obj?: Message): Message {\n return (obj || new Message).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MetadataVersion\n */\n version(): NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1;\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MessageHeader\n */\n headerType(): org.apache.arrow.flatbuf.MessageHeader {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : org.apache.arrow.flatbuf.MessageHeader.NONE;\n }\n\n /**\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n header(obj: T): T | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n let 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 /**\n * @param number index\n * @param org.apache.arrow.flatbuf.KeyValue= obj\n * @returns org.apache.arrow.flatbuf.KeyValue\n */\n customMetadata(index: number, obj?: NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue): NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue | null {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.KeyValue).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startMessage(builder: flatbuffers.Builder) {\n builder.startObject(5);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion) {\n builder.addFieldInt16(0, version, NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MessageHeader headerType\n */\n static addHeaderType(builder: flatbuffers.Builder, headerType: org.apache.arrow.flatbuf.MessageHeader) {\n builder.addFieldInt8(1, headerType, org.apache.arrow.flatbuf.MessageHeader.NONE);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset headerOffset\n */\n static addHeader(builder: flatbuffers.Builder, headerOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, headerOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Long bodyLength\n */\n static addBodyLength(builder: flatbuffers.Builder, bodyLength: flatbuffers.Long) {\n builder.addFieldInt64(3, bodyLength, builder.createLong(0, 0));\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset customMetadataOffset\n */\n static addCustomMetadata(builder: flatbuffers.Builder, customMetadataOffset: flatbuffers.Offset) {\n builder.addFieldOffset(4, customMetadataOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array. data\n * @returns flatbuffers.Offset\n */\n static createCustomMetadataVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset {\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 /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startCustomMetadataVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(4, numElems, 4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endMessage(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishMessageBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createMessage(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion, headerType: org.apache.arrow.flatbuf.MessageHeader, headerOffset: flatbuffers.Offset, bodyLength: flatbuffers.Long, customMetadataOffset: flatbuffers.Offset): flatbuffers.Offset {\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 }\n}\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.\n\nimport * as Schema_ from './fb/Schema';\nimport * as Message_ from './fb/Message';\n\nexport import ArrowType = Schema_.org.apache.arrow.flatbuf.Type;\nexport import DateUnit = Schema_.org.apache.arrow.flatbuf.DateUnit;\nexport import TimeUnit = Schema_.org.apache.arrow.flatbuf.TimeUnit;\nexport import Precision = Schema_.org.apache.arrow.flatbuf.Precision;\nexport import UnionMode = Schema_.org.apache.arrow.flatbuf.UnionMode;\nexport import IntervalUnit = Schema_.org.apache.arrow.flatbuf.IntervalUnit;\nexport import MessageHeader = Message_.org.apache.arrow.flatbuf.MessageHeader;\nexport import MetadataVersion = Schema_.org.apache.arrow.flatbuf.MetadataVersion;\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 */\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\nexport enum BufferType {\n /**\n * used in List type, Dense Union and variable length primitive types (String, Binary)\n */\n OFFSET = 0,\n\n /**\n * actual data, either wixed width primitive types in slots or variable width delimited by an OFFSET vector\n */\n DATA = 1,\n\n /**\n * Bit vector indicating if each value is null\n */\n VALIDITY = 2,\n\n /**\n * Type vector used in Union type\n */\n TYPE = 3\n }\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.\n\n/** @ignore */\nexport function getBool(_data: any, _index: number, byte: number, bit: number) {\n return (byte & 1 << bit) !== 0;\n}\n\n/** @ignore */\nexport function getBit(_data: any, _index: number, byte: number, bit: number): 0 | 1 {\n return (byte & 1 << bit) >> bit as (0 | 1);\n}\n\n/** @ignore */\nexport function setBool(bytes: Uint8Array, index: number, value: any) {\n return value ?\n !!(bytes[index >> 3] |= (1 << (index % 8))) || true :\n !(bytes[index >> 3] &= ~(1 << (index % 8))) && false ;\n}\n\n/** @ignore */\nexport function truncateBitmap(offset: number, length: number, bitmap: Uint8Array) {\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(iterateBits(bitmap, offset, length, null, getBool)).subarray(0, alignedSize));\n return bytes;\n }\n return bitmap;\n}\n\n/** @ignore */\nexport function packBools(values: Iterable) {\n let xs: number[] = [];\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) { xs[i++] = byte; }\n let b = new Uint8Array((xs.length + 7) & ~7);\n b.set(xs);\n return b;\n}\n\n/** @ignore */\nexport function* iterateBits(bytes: Uint8Array, begin: number, length: number, context: any,\n get: (context: any, index: number, byte: number, bit: number) => T) {\n let bit = begin % 8;\n let byteIndex = begin >> 3;\n let index = 0, remaining = length;\n for (; remaining > 0; bit = 0) {\n let byte = bytes[byteIndex++];\n do {\n yield get(context, index++, byte, bit);\n } while (--remaining > 0 && ++bit < 8);\n }\n}\n\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 */\nexport function popcnt_bit_range(data: Uint8Array, lhs: number, rhs: number): number {\n if (rhs - lhs <= 0) { return 0; }\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 iterateBits(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 );\n}\n\n/** @ignore */\nexport function popcnt_array(arr: ArrayBufferView, byteOffset?: number, byteLength?: number) {\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}\n\n/** @ignore */\nexport function popcnt_uint32(uint32: number): number {\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}\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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.\n\nimport { Data } from './data';\nimport { Vector } from './vector';\nimport { Type, Precision, DateUnit, TimeUnit, IntervalUnit, UnionMode } from './enum';\nimport { DataType, Float, Int, Date_, Interval, Time, Timestamp, Union, } from './type';\n\nexport abstract class Visitor {\n public visitMany(nodes: any[], ...args: any[][]) {\n return nodes.map((node, i) => this.visit(node, ...args.map((x) => x[i])));\n }\n public visit(...args: any[]) {\n return this.getVisitFn(args[0], false).apply(this, args);\n }\n public getVisitFn(node: any, throwIfNotFound = true) {\n return getVisitFn(this, node, throwIfNotFound);\n }\n public visitNull (_node: any, ..._args: any[]): any { return null; }\n public visitBool (_node: any, ..._args: any[]): any { return null; }\n public visitInt (_node: any, ..._args: any[]): any { return null; }\n public visitFloat (_node: any, ..._args: any[]): any { return null; }\n public visitUtf8 (_node: any, ..._args: any[]): any { return null; }\n public visitBinary (_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeBinary (_node: any, ..._args: any[]): any { return null; }\n public visitDate (_node: any, ..._args: any[]): any { return null; }\n public visitTimestamp (_node: any, ..._args: any[]): any { return null; }\n public visitTime (_node: any, ..._args: any[]): any { return null; }\n public visitDecimal (_node: any, ..._args: any[]): any { return null; }\n public visitList (_node: any, ..._args: any[]): any { return null; }\n public visitStruct (_node: any, ..._args: any[]): any { return null; }\n public visitUnion (_node: any, ..._args: any[]): any { return null; }\n public visitDictionary (_node: any, ..._args: any[]): any { return null; }\n public visitInterval (_node: any, ..._args: any[]): any { return null; }\n public visitFixedSizeList (_node: any, ..._args: any[]): any { return null; }\n public visitMap (_node: any, ..._args: any[]): any { return null; }\n}\n\n/** @ignore */\nfunction getVisitFn(visitor: Visitor, node: any, throwIfNotFound = true) {\n let fn: any = null;\n let dtype: T['TType'] = Type.NONE;\n // tslint:disable\n if (node instanceof Data ) { dtype = inferDType(node.type as T); }\n else if (node instanceof Vector ) { dtype = inferDType(node.type as T); }\n else if (node instanceof DataType) { dtype = inferDType(node as T); }\n else if (typeof (dtype = node) !== 'number') { dtype = Type[node] as any as T['TType']; }\n\n switch (dtype) {\n case Type.Null: fn = visitor.visitNull; break;\n case Type.Bool: fn = visitor.visitBool; break;\n case Type.Int: fn = visitor.visitInt; break;\n case Type.Int8: fn = visitor.visitInt8 || visitor.visitInt; break;\n case Type.Int16: fn = visitor.visitInt16 || visitor.visitInt; break;\n case Type.Int32: fn = visitor.visitInt32 || visitor.visitInt; break;\n case Type.Int64: fn = visitor.visitInt64 || visitor.visitInt; break;\n case Type.Uint8: fn = visitor.visitUint8 || visitor.visitInt; break;\n case Type.Uint16: fn = visitor.visitUint16 || visitor.visitInt; break;\n case Type.Uint32: fn = visitor.visitUint32 || visitor.visitInt; break;\n case Type.Uint64: fn = visitor.visitUint64 || visitor.visitInt; break;\n case Type.Float: fn = visitor.visitFloat; break;\n case Type.Float16: fn = visitor.visitFloat16 || visitor.visitFloat; break;\n case Type.Float32: fn = visitor.visitFloat32 || visitor.visitFloat; break;\n case Type.Float64: fn = visitor.visitFloat64 || visitor.visitFloat; break;\n case Type.Utf8: fn = visitor.visitUtf8; break;\n case Type.Binary: fn = visitor.visitBinary; break;\n case Type.FixedSizeBinary: fn = visitor.visitFixedSizeBinary; break;\n case Type.Date: fn = visitor.visitDate; break;\n case Type.DateDay: fn = visitor.visitDateDay || visitor.visitDate; break;\n case Type.DateMillisecond: fn = visitor.visitDateMillisecond || visitor.visitDate; break;\n case Type.Timestamp: fn = visitor.visitTimestamp; break;\n case Type.TimestampSecond: fn = visitor.visitTimestampSecond || visitor.visitTimestamp; break;\n case Type.TimestampMillisecond: fn = visitor.visitTimestampMillisecond || visitor.visitTimestamp; break;\n case Type.TimestampMicrosecond: fn = visitor.visitTimestampMicrosecond || visitor.visitTimestamp; break;\n case Type.TimestampNanosecond: fn = visitor.visitTimestampNanosecond || visitor.visitTimestamp; break;\n case Type.Time: fn = visitor.visitTime; break;\n case Type.TimeSecond: fn = visitor.visitTimeSecond || visitor.visitTime; break;\n case Type.TimeMillisecond: fn = visitor.visitTimeMillisecond || visitor.visitTime; break;\n case Type.TimeMicrosecond: fn = visitor.visitTimeMicrosecond || visitor.visitTime; break;\n case Type.TimeNanosecond: fn = visitor.visitTimeNanosecond || visitor.visitTime; break;\n case Type.Decimal: fn = visitor.visitDecimal; break;\n case Type.List: fn = visitor.visitList; break;\n case Type.Struct: fn = visitor.visitStruct; break;\n case Type.Union: fn = visitor.visitUnion; break;\n case Type.DenseUnion: fn = visitor.visitDenseUnion || visitor.visitUnion; break;\n case Type.SparseUnion: fn = visitor.visitSparseUnion || visitor.visitUnion; break;\n case Type.Dictionary: fn = visitor.visitDictionary; break;\n case Type.Interval: fn = visitor.visitInterval; break;\n case Type.IntervalDayTime: fn = visitor.visitIntervalDayTime || visitor.visitInterval; break;\n case Type.IntervalYearMonth: fn = visitor.visitIntervalYearMonth || visitor.visitInterval; break;\n case Type.FixedSizeList: fn = visitor.visitFixedSizeList; break;\n case Type.Map: fn = visitor.visitMap; break;\n }\n if (typeof fn === 'function') return fn;\n if (!throwIfNotFound) return () => null;\n throw new Error(`Unrecognized type '${Type[dtype]}'`);\n}\n\n/** @ignore */\nfunction inferDType(type: T): Type {\n switch (type.typeId) {\n case Type.Null: return Type.Null;\n case Type.Int:\n const { bitWidth, isSigned } = (type as any as Int);\n switch (bitWidth) {\n case 8: return isSigned ? Type.Int8 : Type.Uint8 ;\n case 16: return isSigned ? Type.Int16 : Type.Uint16;\n case 32: return isSigned ? Type.Int32 : Type.Uint32;\n case 64: return isSigned ? Type.Int64 : Type.Uint64;\n }\n return Type.Int;\n case Type.Float:\n switch((type as any as Float).precision) {\n case Precision.HALF: return Type.Float16;\n case Precision.SINGLE: return Type.Float32;\n case Precision.DOUBLE: return Type.Float64;\n }\n return Type.Float;\n case Type.Binary: return Type.Binary;\n case Type.Utf8: return Type.Utf8;\n case Type.Bool: return Type.Bool;\n case Type.Decimal: return Type.Decimal;\n case Type.Time:\n switch ((type as any as Time).unit) {\n case TimeUnit.SECOND: return Type.TimeSecond;\n case TimeUnit.MILLISECOND: return Type.TimeMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimeMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimeNanosecond;\n }\n return Type.Time;\n case Type.Timestamp:\n switch ((type as any as Timestamp).unit) {\n case TimeUnit.SECOND: return Type.TimestampSecond;\n case TimeUnit.MILLISECOND: return Type.TimestampMillisecond;\n case TimeUnit.MICROSECOND: return Type.TimestampMicrosecond;\n case TimeUnit.NANOSECOND: return Type.TimestampNanosecond;\n }\n return Type.Timestamp;\n case Type.Date:\n switch ((type as any as Date_).unit) {\n case DateUnit.DAY: return Type.DateDay;\n case DateUnit.MILLISECOND: return Type.DateMillisecond;\n }\n return Type.Date;\n case Type.Interval:\n switch ((type as any as Interval).unit) {\n case IntervalUnit.DAY_TIME: return Type.IntervalDayTime;\n case IntervalUnit.YEAR_MONTH: return Type.IntervalYearMonth;\n }\n return Type.Interval;\n case Type.Map: return Type.Map;\n case Type.List: return Type.List;\n case Type.Struct: return Type.Struct;\n case Type.Union:\n switch ((type as any as Union).mode) {\n case UnionMode.Dense: return Type.DenseUnion;\n case UnionMode.Sparse: return Type.SparseUnion;\n }\n return Type.Union;\n case Type.FixedSizeBinary: return Type.FixedSizeBinary;\n case Type.FixedSizeList: return Type.FixedSizeList;\n case Type.Dictionary: return Type.Dictionary;\n }\n throw new Error(`Unrecognized type '${Type[type.typeId]}'`);\n}\n\nexport interface Visitor {\n visitNull (node: any, ...args: any[]): any;\n visitBool (node: any, ...args: any[]): any;\n visitInt (node: any, ...args: any[]): any;\n visitInt8? (node: any, ...args: any[]): any;\n visitInt16? (node: any, ...args: any[]): any;\n visitInt32? (node: any, ...args: any[]): any;\n visitInt64? (node: any, ...args: any[]): any;\n visitUint8? (node: any, ...args: any[]): any;\n visitUint16? (node: any, ...args: any[]): any;\n visitUint32? (node: any, ...args: any[]): any;\n visitUint64? (node: any, ...args: any[]): any;\n visitFloat (node: any, ...args: any[]): any;\n visitFloat16? (node: any, ...args: any[]): any;\n visitFloat32? (node: any, ...args: any[]): any;\n visitFloat64? (node: any, ...args: any[]): any;\n visitUtf8 (node: any, ...args: any[]): any;\n visitBinary (node: any, ...args: any[]): any;\n visitFixedSizeBinary (node: any, ...args: any[]): any;\n visitDate (node: any, ...args: any[]): any;\n visitDateDay? (node: any, ...args: any[]): any;\n visitDateMillisecond? (node: any, ...args: any[]): any;\n visitTimestamp (node: any, ...args: any[]): any;\n visitTimestampSecond? (node: any, ...args: any[]): any;\n visitTimestampMillisecond? (node: any, ...args: any[]): any;\n visitTimestampMicrosecond? (node: any, ...args: any[]): any;\n visitTimestampNanosecond? (node: any, ...args: any[]): any;\n visitTime (node: any, ...args: any[]): any;\n visitTimeSecond? (node: any, ...args: any[]): any;\n visitTimeMillisecond? (node: any, ...args: any[]): any;\n visitTimeMicrosecond? (node: any, ...args: any[]): any;\n visitTimeNanosecond? (node: any, ...args: any[]): any;\n visitDecimal (node: any, ...args: any[]): any;\n visitList (node: any, ...args: any[]): any;\n visitStruct (node: any, ...args: any[]): any;\n visitUnion (node: any, ...args: any[]): any;\n visitDenseUnion? (node: any, ...args: any[]): any;\n visitSparseUnion? (node: any, ...args: any[]): any;\n visitDictionary (node: any, ...args: any[]): any;\n visitInterval (node: any, ...args: any[]): any;\n visitIntervalDayTime? (node: any, ...args: any[]): any;\n visitIntervalYearMonth? (node: any, ...args: any[]): any;\n visitFixedSizeList (node: any, ...args: any[]): any;\n visitMap (node: any, ...args: any[]): any;\n}\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\n(Visitor.prototype as any).visitInt8 = null;\n(Visitor.prototype as any).visitInt16 = null;\n(Visitor.prototype as any).visitInt32 = null;\n(Visitor.prototype as any).visitInt64 = null;\n(Visitor.prototype as any).visitUint8 = null;\n(Visitor.prototype as any).visitUint16 = null;\n(Visitor.prototype as any).visitUint32 = null;\n(Visitor.prototype as any).visitUint64 = null;\n(Visitor.prototype as any).visitFloat16 = null;\n(Visitor.prototype as any).visitFloat32 = null;\n(Visitor.prototype as any).visitFloat64 = null;\n(Visitor.prototype as any).visitDateDay = null;\n(Visitor.prototype as any).visitDateMillisecond = null;\n(Visitor.prototype as any).visitTimestampSecond = null;\n(Visitor.prototype as any).visitTimestampMillisecond = null;\n(Visitor.prototype as any).visitTimestampMicrosecond = null;\n(Visitor.prototype as any).visitTimestampNanosecond = null;\n(Visitor.prototype as any).visitTimeSecond = null;\n(Visitor.prototype as any).visitTimeMillisecond = null;\n(Visitor.prototype as any).visitTimeMicrosecond = null;\n(Visitor.prototype as any).visitTimeNanosecond = null;\n(Visitor.prototype as any).visitDenseUnion = null;\n(Visitor.prototype as any).visitSparseUnion = null;\n(Visitor.prototype as any).visitIntervalDayTime = null;\n(Visitor.prototype as any).visitIntervalYearMonth = null;\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.\n\nimport { Data } from '../data';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { Schema, Field } from '../schema';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface TypeComparator extends Visitor {\n visit(type: T, other?: DataType | null): other is T;\n visitMany(nodes: T[], others?: DataType[] | null): boolean[];\n getVisitFn(node: VectorType | Data | T): (other?: DataType | null) => other is T;\n visitNull (type: T, other?: DataType | null): other is T;\n visitBool (type: T, other?: DataType | null): other is T;\n visitInt (type: T, other?: DataType | null): other is T;\n visitInt8 (type: T, other?: DataType | null): other is T;\n visitInt16 (type: T, other?: DataType | null): other is T;\n visitInt32 (type: T, other?: DataType | null): other is T;\n visitInt64 (type: T, other?: DataType | null): other is T;\n visitUint8 (type: T, other?: DataType | null): other is T;\n visitUint16 (type: T, other?: DataType | null): other is T;\n visitUint32 (type: T, other?: DataType | null): other is T;\n visitUint64 (type: T, other?: DataType | null): other is T;\n visitFloat (type: T, other?: DataType | null): other is T;\n visitFloat16 (type: T, other?: DataType | null): other is T;\n visitFloat32 (type: T, other?: DataType | null): other is T;\n visitFloat64 (type: T, other?: DataType | null): other is T;\n visitUtf8 (type: T, other?: DataType | null): other is T;\n visitBinary (type: T, other?: DataType | null): other is T;\n visitFixedSizeBinary (type: T, other?: DataType | null): other is T;\n visitDate (type: T, other?: DataType | null): other is T;\n visitDateDay (type: T, other?: DataType | null): other is T;\n visitDateMillisecond (type: T, other?: DataType | null): other is T;\n visitTimestamp (type: T, other?: DataType | null): other is T;\n visitTimestampSecond (type: T, other?: DataType | null): other is T;\n visitTimestampMillisecond (type: T, other?: DataType | null): other is T;\n visitTimestampMicrosecond (type: T, other?: DataType | null): other is T;\n visitTimestampNanosecond (type: T, other?: DataType | null): other is T;\n visitTime (type: T, other?: DataType | null): other is T;\n visitTimeSecond (type: T, other?: DataType | null): other is T;\n visitTimeMillisecond (type: T, other?: DataType | null): other is T;\n visitTimeMicrosecond (type: T, other?: DataType | null): other is T;\n visitTimeNanosecond (type: T, other?: DataType | null): other is T;\n visitDecimal (type: T, other?: DataType | null): other is T;\n visitList (type: T, other?: DataType | null): other is T;\n visitStruct (type: T, other?: DataType | null): other is T;\n visitUnion (type: T, other?: DataType | null): other is T;\n visitDenseUnion (type: T, other?: DataType | null): other is T;\n visitSparseUnion (type: T, other?: DataType | null): other is T;\n visitDictionary (type: T, other?: DataType | null): other is T;\n visitInterval (type: T, other?: DataType | null): other is T;\n visitIntervalDayTime (type: T, other?: DataType | null): other is T;\n visitIntervalYearMonth (type: T, other?: DataType | null): other is T;\n visitFixedSizeList (type: T, other?: DataType | null): other is T;\n visitMap (type: T, other?: DataType | null): other is T;\n}\n\n/** @ignore */\nexport class TypeComparator extends Visitor {\n compareSchemas(schema: Schema, other?: Schema | null): other is Schema {\n return (schema === other) || (\n other instanceof schema.constructor &&\n instance.compareFields(schema.fields, other.fields)\n );\n }\n compareFields(fields: Field[], others?: Field[] | null): others is Field[] {\n return (fields === others) || (\n Array.isArray(fields) &&\n Array.isArray(others) &&\n fields.length === others.length &&\n fields.every((f, i) => instance.compareField(f, others[i]))\n );\n }\n compareField(field: Field, other?: Field | null): other is Field {\n return (field === other) || (\n other instanceof field.constructor &&\n field.name === other.name &&\n field.nullable === other.nullable &&\n instance.visit(field.type, other.type)\n );\n }\n}\n\nfunction compareConstructor(type: T, other?: DataType | null): other is T {\n return other instanceof type.constructor;\n}\n\nfunction compareAny(type: T, other?: DataType | null): other is T {\n return (type === other) || compareConstructor(type, other);\n}\n\nfunction compareInt(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.bitWidth === other.bitWidth &&\n type.isSigned === other.isSigned\n );\n}\n\nfunction compareFloat(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.precision === other.precision\n );\n}\n\nfunction compareFixedSizeBinary(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.byteWidth === other.byteWidth\n );\n}\n\nfunction compareDate(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit\n );\n}\n\nfunction compareTimestamp(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.timezone === other.timezone\n );\n}\n\nfunction compareTime(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit &&\n type.bitWidth === other.bitWidth\n );\n}\n\nfunction compareList(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareStruct(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareUnion(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.mode === other.mode &&\n type.typeIds.every((x, i) => x === other.typeIds[i]) &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareDictionary(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.id === other.id &&\n type.isOrdered === other.isOrdered &&\n instance.visit( type.indices, other.indices) &&\n instance.visit(type.dictionary, other.dictionary)\n );\n}\n\nfunction compareInterval(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.unit === other.unit\n );\n}\n\nfunction compareFixedSizeList(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.listSize === other.listSize &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\n\nfunction compareMap(type: T, other?: DataType | null): other is T {\n return (type === other) || (\n compareConstructor(type, other) &&\n type.keysSorted === other.keysSorted &&\n type.children.length === other.children.length &&\n instance.compareFields(type.children, other.children)\n );\n}\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\n/** @ignore */\nexport const instance = new TypeComparator();\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.\n\n/* tslint:disable:class-name */\n\nimport { Field } from './schema';\nimport { flatbuffers } from 'flatbuffers';\nimport { TypedArrayConstructor } from './interfaces';\nimport { VectorType as V, TypeToDataType } from './interfaces';\nimport { instance as comparer } from './visitor/typecomparator';\n\nimport Long = flatbuffers.Long;\nimport {\n Type,\n Precision, UnionMode,\n DateUnit, TimeUnit, IntervalUnit\n} from './enum';\n\n/** @ignore */\nexport type TimeBitWidth = 32 | 64;\n/** @ignore */\nexport type IntBitWidth = 8 | 16 | 32 | 64;\n/** @ignore */\nexport type IsSigned = { 'true': true; 'false': false };\n/** @ignore */\nexport type RowLike =\n ( Iterable<[string, T[keyof T]['TValue'] | null]> )\n & { [P in keyof T]: T[P]['TValue'] | null }\n & { get(key: K): T[K]['TValue'] | null; }\n & { set(key: K, val: T[K]['TValue'] | null): void; }\n ;\n\n/** @ignore */\nexport type MapLike =\n { [P in K['TValue']]: V['TValue'] | null }\n & ( Map )\n ;\n\nexport interface DataType {\n readonly TType: TType;\n readonly TArray: any;\n readonly TValue: any;\n readonly ArrayType: any;\n readonly children: Field[];\n}\n\n/**\n * An abstract base class for classes that encapsulate metadata about each of\n * the logical types that Arrow can represent.\n */\nexport abstract class DataType {\n\n // @ts-ignore\n public [Symbol.toStringTag]: string;\n\n /** @nocollapse */ static isNull (x: any): x is Null { return x && x.typeId === Type.Null; }\n /** @nocollapse */ static isInt (x: any): x is Int_ { return x && x.typeId === Type.Int; }\n /** @nocollapse */ static isFloat (x: any): x is Float { return x && x.typeId === Type.Float; }\n /** @nocollapse */ static isBinary (x: any): x is Binary { return x && x.typeId === Type.Binary; }\n /** @nocollapse */ static isUtf8 (x: any): x is Utf8 { return x && x.typeId === Type.Utf8; }\n /** @nocollapse */ static isBool (x: any): x is Bool { return x && x.typeId === Type.Bool; }\n /** @nocollapse */ static isDecimal (x: any): x is Decimal { return x && x.typeId === Type.Decimal; }\n /** @nocollapse */ static isDate (x: any): x is Date_ { return x && x.typeId === Type.Date; }\n /** @nocollapse */ static isTime (x: any): x is Time_ { return x && x.typeId === Type.Time; }\n /** @nocollapse */ static isTimestamp (x: any): x is Timestamp_ { return x && x.typeId === Type.Timestamp; }\n /** @nocollapse */ static isInterval (x: any): x is Interval_ { return x && x.typeId === Type.Interval; }\n /** @nocollapse */ static isList (x: any): x is List { return x && x.typeId === Type.List; }\n /** @nocollapse */ static isStruct (x: any): x is Struct { return x && x.typeId === Type.Struct; }\n /** @nocollapse */ static isUnion (x: any): x is Union_ { return x && x.typeId === Type.Union; }\n /** @nocollapse */ static isFixedSizeBinary (x: any): x is FixedSizeBinary { return x && x.typeId === Type.FixedSizeBinary; }\n /** @nocollapse */ static isFixedSizeList (x: any): x is FixedSizeList { return x && x.typeId === Type.FixedSizeList; }\n /** @nocollapse */ static isMap (x: any): x is Map_ { return x && x.typeId === Type.Map; }\n /** @nocollapse */ static isDictionary (x: any): x is Dictionary { return x && x.typeId === Type.Dictionary; }\n\n public get typeId(): TType { return Type.NONE; }\n public compareTo(other: DataType): other is TypeToDataType {\n return comparer.visit(this, other);\n }\n\n protected static [Symbol.toStringTag] = ((proto: DataType) => {\n ( proto).children = null;\n ( proto).ArrayType = Array;\n return proto[Symbol.toStringTag] = 'DataType';\n })(DataType.prototype);\n}\n\n/** @ignore */\nexport interface Null extends DataType { TArray: void; TValue: null; }\n/** @ignore */\nexport class Null extends DataType {\n public toString() { return `Null`; }\n public get typeId() { return Type.Null as Type.Null; }\n protected static [Symbol.toStringTag] = ((proto: Null) => {\n return proto[Symbol.toStringTag] = 'Null';\n })(Null.prototype);\n}\n\n/** @ignore */\ntype Ints = Type.Int | Type.Int8 | Type.Int16 | Type.Int32 | Type.Int64 | Type.Uint8 | Type.Uint16 | Type.Uint32 | Type.Uint64;\n/** @ignore */\ntype IType = {\n [Type.Int ]: { bitWidth: IntBitWidth; isSigned: true | false; TArray: IntArray; TValue: number | bigint | Int32Array | Uint32Array; };\n [Type.Int8 ]: { bitWidth: 8; isSigned: true; TArray: Int8Array; TValue: number; };\n [Type.Int16 ]: { bitWidth: 16; isSigned: true; TArray: Int16Array; TValue: number; };\n [Type.Int32 ]: { bitWidth: 32; isSigned: true; TArray: Int32Array; TValue: number; };\n [Type.Int64 ]: { bitWidth: 64; isSigned: true; TArray: Int32Array; TValue: bigint | Int32Array | Uint32Array; };\n [Type.Uint8 ]: { bitWidth: 8; isSigned: false; TArray: Uint8Array; TValue: number; };\n [Type.Uint16]: { bitWidth: 16; isSigned: false; TArray: Uint16Array; TValue: number; };\n [Type.Uint32]: { bitWidth: 32; isSigned: false; TArray: Uint32Array; TValue: number; };\n [Type.Uint64]: { bitWidth: 64; isSigned: false; TArray: Uint32Array; TValue: bigint | Int32Array | Uint32Array; };\n};\n\n/** @ignore */\ninterface Int_ extends DataType { TArray: IType[T]['TArray']; TValue: IType[T]['TValue']; }\n/** @ignore */\nclass Int_ extends DataType {\n constructor(public readonly isSigned: IType[T]['isSigned'],\n public readonly bitWidth: IType[T]['bitWidth']) {\n super();\n }\n public get typeId() { return Type.Int as T; }\n public get ArrayType(): TypedArrayConstructor {\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 public toString() { return `${this.isSigned ? `I` : `Ui`}nt${this.bitWidth}`; }\n protected static [Symbol.toStringTag] = ((proto: Int_) => {\n ( proto).isSigned = null;\n ( proto).bitWidth = null;\n return proto[Symbol.toStringTag] = 'Int';\n })(Int_.prototype);\n}\n\nexport { Int_ as Int };\n\n/** @ignore */\nexport class Int8 extends Int_ { constructor() { super(true, 8); } }\n/** @ignore */\nexport class Int16 extends Int_ { constructor() { super(true, 16); } }\n/** @ignore */\nexport class Int32 extends Int_ { constructor() { super(true, 32); } }\n/** @ignore */\nexport class Int64 extends Int_ { constructor() { super(true, 64); } }\n/** @ignore */\nexport class Uint8 extends Int_ { constructor() { super(false, 8); } }\n/** @ignore */\nexport class Uint16 extends Int_ { constructor() { super(false, 16); } }\n/** @ignore */\nexport class Uint32 extends Int_ { constructor() { super(false, 32); } }\n/** @ignore */\nexport class Uint64 extends Int_ { constructor() { super(false, 64); } }\n\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\n/** @ignore */\ntype Floats = Type.Float | Type.Float16 | Type.Float32 | Type.Float64;\n/** @ignore */\ntype FType = {\n [Type.Float ]: { precision: Precision; TArray: FloatArray; TValue: number; };\n [Type.Float16]: { precision: Precision.HALF; TArray: Uint16Array; TValue: number; };\n [Type.Float32]: { precision: Precision.SINGLE; TArray: Float32Array; TValue: number; };\n [Type.Float64]: { precision: Precision.DOUBLE; TArray: Float64Array; TValue: number; };\n};\n\n/** @ignore */\nexport interface Float extends DataType { TArray: FType[T]['TArray']; TValue: number; }\n/** @ignore */\nexport class Float extends DataType {\n constructor(public readonly precision: Precision) {\n super();\n }\n public get typeId() { return Type.Float as T; }\n public get ArrayType(): TypedArrayConstructor {\n switch (this.precision) {\n case Precision.HALF: return Uint16Array;\n case Precision.SINGLE: return Float32Array;\n case Precision.DOUBLE: return Float64Array;\n }\n throw new Error(`Unrecognized ${this[Symbol.toStringTag]} type`);\n }\n public toString() { return `Float${(this.precision << 5) || 16}`; }\n protected static [Symbol.toStringTag] = ((proto: Float) => {\n ( proto).precision = null;\n return proto[Symbol.toStringTag] = 'Float';\n })(Float.prototype);\n}\n\n/** @ignore */\nexport class Float16 extends Float { constructor() { super(Precision.HALF); } }\n/** @ignore */\nexport class Float32 extends Float { constructor() { super(Precision.SINGLE); } }\n/** @ignore */\nexport class Float64 extends Float { constructor() { super(Precision.DOUBLE); } }\n\nObject.defineProperty(Float16.prototype, 'ArrayType', { value: Uint16Array });\nObject.defineProperty(Float32.prototype, 'ArrayType', { value: Float32Array });\nObject.defineProperty(Float64.prototype, 'ArrayType', { value: Float64Array });\n\n/** @ignore */\nexport interface Binary extends DataType { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Binary extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Binary as Type.Binary; }\n public toString() { return `Binary`; }\n protected static [Symbol.toStringTag] = ((proto: Binary) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Binary';\n })(Binary.prototype);\n}\n\n/** @ignore */\nexport interface Utf8 extends DataType { TArray: Uint8Array; TValue: string; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Utf8 extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Utf8 as Type.Utf8; }\n public toString() { return `Utf8`; }\n protected static [Symbol.toStringTag] = ((proto: Utf8) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Utf8';\n })(Utf8.prototype);\n}\n\n/** @ignore */\nexport interface Bool extends DataType { TArray: Uint8Array; TValue: boolean; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Bool extends DataType {\n constructor() {\n super();\n }\n public get typeId() { return Type.Bool as Type.Bool; }\n public toString() { return `Bool`; }\n protected static [Symbol.toStringTag] = ((proto: Bool) => {\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Bool';\n })(Bool.prototype);\n}\n\n/** @ignore */\nexport interface Decimal extends DataType { TArray: Uint32Array; TValue: Uint32Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Decimal extends DataType {\n constructor(public readonly scale: number,\n public readonly precision: number) {\n super();\n }\n public get typeId() { return Type.Decimal as Type.Decimal; }\n public toString() { return `Decimal[${this.precision}e${this.scale > 0 ? `+` : ``}${this.scale}]`; }\n protected static [Symbol.toStringTag] = ((proto: Decimal) => {\n ( proto).scale = null;\n ( proto).precision = null;\n ( proto).ArrayType = Uint32Array;\n return proto[Symbol.toStringTag] = 'Decimal';\n })(Decimal.prototype);\n}\n\n/** @ignore */\nexport type Dates = Type.Date | Type.DateDay | Type.DateMillisecond;\n/** @ignore */\nexport interface Date_ extends DataType { TArray: Int32Array; TValue: Date; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class Date_ extends DataType {\n constructor(public readonly unit: DateUnit) {\n super();\n }\n public get typeId() { return Type.Date as T; }\n public toString() { return `Date${(this.unit + 1) * 32}<${DateUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Date_) => {\n ( proto).unit = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Date';\n })(Date_.prototype);\n}\n\n/** @ignore */\nexport class DateDay extends Date_ { constructor() { super(DateUnit.DAY); } }\n/** @ignore */\nexport class DateMillisecond extends Date_ { constructor() { super(DateUnit.MILLISECOND); } }\n\n/** @ignore */\ntype Times = Type.Time | Type.TimeSecond | Type.TimeMillisecond | Type.TimeMicrosecond | Type.TimeNanosecond;\n/** @ignore */\ntype TimesType = {\n [Type.Time ]: { unit: TimeUnit; TValue: number | Int32Array };\n [Type.TimeSecond ]: { unit: TimeUnit.SECOND; TValue: number; };\n [Type.TimeMillisecond]: { unit: TimeUnit.MILLISECOND; TValue: number; };\n [Type.TimeMicrosecond]: { unit: TimeUnit.MICROSECOND; TValue: Int32Array; };\n [Type.TimeNanosecond ]: { unit: TimeUnit.NANOSECOND; TValue: Int32Array; };\n};\n\n/** @ignore */\ninterface Time_ extends DataType { TArray: Int32Array; TValue: TimesType[T]['TValue']; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Time_ extends DataType {\n constructor(public readonly unit: TimesType[T]['unit'],\n public readonly bitWidth: TimeBitWidth) {\n super();\n }\n public get typeId() { return Type.Time as T; }\n public toString() { return `Time${this.bitWidth}<${TimeUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Time_) => {\n ( proto).unit = null;\n ( proto).bitWidth = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Time';\n })(Time_.prototype);\n}\n\nexport { Time_ as Time };\n\n/** @ignore */\nexport class TimeSecond extends Time_ { constructor() { super(TimeUnit.SECOND, 32); } }\n/** @ignore */\nexport class TimeMillisecond extends Time_ { constructor() { super(TimeUnit.MILLISECOND, 32); } }\n/** @ignore */\nexport class TimeMicrosecond extends Time_ { constructor() { super(TimeUnit.MICROSECOND, 64); } }\n/** @ignore */\nexport class TimeNanosecond extends Time_ { constructor() { super(TimeUnit.NANOSECOND, 64); } }\n\n/** @ignore */\ntype Timestamps = Type.Timestamp | Type.TimestampSecond | Type.TimestampMillisecond | Type.TimestampMicrosecond | Type.TimestampNanosecond;\n/** @ignore */\ninterface Timestamp_ extends DataType { TArray: Int32Array; TValue: number; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Timestamp_ extends DataType {\n constructor(public readonly unit: TimeUnit,\n public readonly timezone?: string | null) {\n super();\n }\n public get typeId() { return Type.Timestamp as T; }\n public toString() { return `Timestamp<${TimeUnit[this.unit]}${this.timezone ? `, ${this.timezone}` : ``}>`; }\n protected static [Symbol.toStringTag] = ((proto: Timestamp_) => {\n ( proto).unit = null;\n ( proto).timezone = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Timestamp';\n })(Timestamp_.prototype);\n}\n\nexport { Timestamp_ as Timestamp };\n\n/** @ignore */\nexport class TimestampSecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.SECOND, timezone); } }\n/** @ignore */\nexport class TimestampMillisecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.MILLISECOND, timezone); } }\n/** @ignore */\nexport class TimestampMicrosecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.MICROSECOND, timezone); } }\n/** @ignore */\nexport class TimestampNanosecond extends Timestamp_ { constructor(timezone?: string | null) { super(TimeUnit.NANOSECOND, timezone); } }\n\n/** @ignore */\ntype Intervals = Type.Interval | Type.IntervalDayTime | Type.IntervalYearMonth;\n/** @ignore */\ninterface Interval_ extends DataType { TArray: Int32Array; TValue: Int32Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Interval_ extends DataType {\n constructor(public readonly unit: IntervalUnit) {\n super();\n }\n public get typeId() { return Type.Interval as T; }\n public toString() { return `Interval<${IntervalUnit[this.unit]}>`; }\n protected static [Symbol.toStringTag] = ((proto: Interval_) => {\n ( proto).unit = null;\n ( proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Interval';\n })(Interval_.prototype);\n}\n\nexport { Interval_ as Interval };\n\n/** @ignore */\nexport class IntervalDayTime extends Interval_ { constructor() { super(IntervalUnit.DAY_TIME); } }\n/** @ignore */\nexport class IntervalYearMonth extends Interval_ { constructor() { super(IntervalUnit.YEAR_MONTH); } }\n\n/** @ignore */\nexport interface List extends DataType { TArray: IterableArrayLike; TValue: V; }\n/** @ignore */\nexport class List extends DataType {\n constructor(child: Field) {\n super();\n this.children = [child];\n }\n public readonly children: Field[];\n public get typeId() { return Type.List as Type.List; }\n public toString() { return `List<${this.valueType}>`; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field { return this.children[0] as Field; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n protected static [Symbol.toStringTag] = ((proto: List) => {\n ( proto).children = null;\n return proto[Symbol.toStringTag] = 'List';\n })(List.prototype);\n}\n\n/** @ignore */\nexport interface Struct extends DataType { TArray: IterableArrayLike>; TValue: RowLike; dataTypes: T; }\n/** @ignore */\nexport class Struct extends DataType {\n public readonly children: Field[];\n constructor(children: Field[]) {\n super();\n this.children = children;\n }\n public get typeId() { return Type.Struct as Type.Struct; }\n public toString() { return `Struct<{${this.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Struct) => {\n ( proto).children = null;\n return proto[Symbol.toStringTag] = 'Struct';\n })(Struct.prototype);\n}\n\n/** @ignore */\ntype Unions = Type.Union | Type.DenseUnion | Type.SparseUnion;\n/** @ignore */\ninterface Union_ extends DataType { TArray: Int8Array; TValue: any; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nclass Union_ extends DataType {\n public readonly mode: UnionMode;\n public readonly typeIds: Int32Array;\n public readonly children: Field[];\n public readonly typeIdToChildIndex: { [key: number]: number };\n constructor(mode: UnionMode,\n typeIds: number[] | Int32Array,\n children: Field[]) {\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) as { [key: number]: number });\n }\n public get typeId() { return Type.Union as T; }\n public toString() { return `${this[Symbol.toStringTag]}<${\n this.children.map((x) => `${x.type}`).join(` | `)\n }>`; }\n protected static [Symbol.toStringTag] = ((proto: Union_) => {\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}\n\nexport { Union_ as Union };\n\n/** @ignore */\nexport class DenseUnion extends Union_ {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Dense, typeIds, children);\n }\n}\n\n/** @ignore */\nexport class SparseUnion extends Union_ {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Sparse, typeIds, children);\n }\n}\n\n/** @ignore */\nexport interface FixedSizeBinary extends DataType { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor; }\n/** @ignore */\nexport class FixedSizeBinary extends DataType {\n constructor(public readonly byteWidth: number) {\n super();\n }\n public get typeId() { return Type.FixedSizeBinary as Type.FixedSizeBinary; }\n public toString() { return `FixedSizeBinary[${this.byteWidth}]`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeBinary) => {\n ( proto).byteWidth = null;\n ( proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'FixedSizeBinary';\n })(FixedSizeBinary.prototype);\n}\n\n/** @ignore */\nexport interface FixedSizeList extends DataType { TArray: IterableArrayLike; TValue: V; }\n/** @ignore */\nexport class FixedSizeList extends DataType {\n public readonly children: Field[];\n constructor(public readonly listSize: number, child: Field) {\n super();\n this.children = [child];\n }\n public get typeId() { return Type.FixedSizeList as Type.FixedSizeList; }\n public get valueType(): T { return this.children[0].type as T; }\n public get valueField(): Field { return this.children[0] as Field; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n public toString() { return `FixedSizeList[${this.listSize}]<${this.valueType}>`; }\n protected static [Symbol.toStringTag] = ((proto: FixedSizeList) => {\n ( proto).children = null;\n ( proto).listSize = null;\n return proto[Symbol.toStringTag] = 'FixedSizeList';\n })(FixedSizeList.prototype);\n}\n\n/** @ignore */\nexport interface Map_ extends DataType {\n TArray: IterableArrayLike>;\n TChild: Struct<{ key: TKey, value: TValue }>;\n TValue: MapLike;\n}\n\n/** @ignore */\nexport class Map_ extends DataType {\n constructor(child: Field>, keysSorted = false) {\n super();\n this.children = [child];\n this.keysSorted = keysSorted;\n }\n public readonly keysSorted: boolean;\n public readonly children: Field>[];\n public get typeId() { return Type.Map as Type.Map; }\n public get keyType(): TKey { return this.children[0].type.children[0].type as TKey; }\n public get valueType(): TValue { return this.children[0].type.children[1].type as TValue; }\n public toString() { return `Map<{${this.children[0].type.children.map((f) => `${f.name}:${f.type}`).join(`, `)}}>`; }\n protected static [Symbol.toStringTag] = ((proto: Map_) => {\n ( proto).children = null;\n ( proto).keysSorted = null;\n return proto[Symbol.toStringTag] = 'Map_';\n })(Map_.prototype);\n}\n\n/** @ignore */\nconst getId = ((atomicDictionaryId) => () => ++atomicDictionaryId)(-1);\n\n/** @ignore */\nexport type TKeys = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32;\n\n/** @ignore */\nexport interface Dictionary extends DataType { TArray: TKey['TArray']; TValue: T['TValue']; }\n/** @ignore */\nexport class Dictionary extends DataType {\n public readonly id: number;\n public readonly indices: TKey;\n public readonly dictionary: T;\n public readonly isOrdered: boolean;\n constructor(dictionary: T, indices: TKey, id?: Long | number | null, isOrdered?: boolean | null) {\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 public get typeId() { return Type.Dictionary as Type.Dictionary; }\n public get children() { return this.dictionary.children; }\n public get valueType(): T { return this.dictionary as T; }\n public get ArrayType(): T['ArrayType'] { return this.dictionary.ArrayType; }\n public toString() { return `Dictionary<${this.indices}, ${this.dictionary}>`; }\n protected static [Symbol.toStringTag] = ((proto: Dictionary) => {\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}\n\n/** @ignore */\nexport interface IterableArrayLike extends ArrayLike, Iterable {}\n/** @ignore */\nexport type FloatArray = Uint16Array | Float32Array | Float64Array;\n/** @ignore */\nexport type IntArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;\n\n/** @ignore */\nexport function strideForType(type: DataType) {\n let t: any = type;\n switch (type.typeId) {\n case Type.Decimal: return 4;\n case Type.Timestamp: return 2;\n case Type.Date: return 1 + (t as Date_).unit;\n case Type.Interval: return 1 + (t as Interval_).unit;\n case Type.Int: return 1 + +((t as Int_).bitWidth > 32);\n case Type.Time: return 1 + +((t as Time_).bitWidth > 32);\n case Type.FixedSizeList: return (t as FixedSizeList).listSize;\n case Type.FixedSizeBinary: return (t as FixedSizeBinary).byteWidth;\n default: return 1;\n }\n}\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.\n\nimport { Vector } from './vector';\nimport { truncateBitmap } from './util/bit';\nimport { popcnt_bit_range } from './util/bit';\nimport { BufferType, UnionMode, Type } from './enum';\nimport { DataType, SparseUnion, DenseUnion, strideForType } from './type';\nimport { toArrayBufferView, toUint8Array, toInt32Array } from './util/buffer';\nimport {\n Dictionary,\n Null, Int, Float,\n Binary, Bool, Utf8, Decimal,\n Date_, Time, Timestamp, Interval,\n List, Struct, Union, FixedSizeBinary, FixedSizeList, Map_,\n} from './type';\n\n// When slicing, we do not know the null count of the sliced range without\n// doing some computation. To avoid doing this eagerly, we set the null count\n// to -1 (any negative number will do). When Vector.nullCount is called the\n// first time, the null count will be computed. See ARROW-33\n/** @ignore */ export type kUnknownNullCount = -1;\n/** @ignore */ export const kUnknownNullCount = -1;\n\n/** @ignore */ export type NullBuffer = Uint8Array | null | undefined;\n/** @ignore */ export type TypeIdsBuffer = Int8Array | ArrayLike | Iterable | undefined;\n/** @ignore */ export type ValueOffsetsBuffer = Int32Array | ArrayLike | Iterable | undefined;\n/** @ignore */ export type DataBuffer = T['TArray'] | ArrayLike | Iterable | undefined;\n\n/** @ignore */\nexport interface Buffers {\n [BufferType.OFFSET]: Int32Array;\n [BufferType.DATA]: T['TArray'];\n [BufferType.VALIDITY]: Uint8Array;\n [BufferType.TYPE]: T['TArray'];\n}\n\n/** @ignore */\nexport interface Data {\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\n/** @ignore */\nexport class Data {\n\n public readonly type: T;\n public readonly length: number;\n public readonly offset: number;\n public readonly stride: number;\n public readonly childData: Data[];\n\n /**\n * The dictionary for this Vector, if any. Only used for Dictionary type.\n */\n public dictionary?: Vector;\n\n public readonly values: Buffers[BufferType.DATA];\n // @ts-ignore\n public readonly typeIds: Buffers[BufferType.TYPE];\n // @ts-ignore\n public readonly nullBitmap: Buffers[BufferType.VALIDITY];\n // @ts-ignore\n public readonly valueOffsets: Buffers[BufferType.OFFSET];\n\n public get typeId(): T['TType'] { return this.type.typeId; }\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n public get buffers() {\n return [this.valueOffsets, this.values, this.nullBitmap, this.typeIds] as Buffers;\n }\n public get byteLength(): number {\n let byteLength = 0;\n let { 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\n protected _nullCount: number | kUnknownNullCount;\n\n public get nullCount() {\n let nullCount = this._nullCount;\n let nullBitmap: Uint8Array | undefined;\n if (nullCount <= kUnknownNullCount && (nullBitmap = this.nullBitmap)) {\n this._nullCount = nullCount = this.length - popcnt_bit_range(nullBitmap, this.offset, this.offset + this.length);\n }\n return nullCount;\n }\n\n constructor(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial> | Data, childData?: (Data | Vector)[], dictionary?: Vector) {\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) as Data[];\n let buffer: Buffers[keyof Buffers];\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 } else {\n this.stride = strideForType(type);\n if (buffers) {\n (buffer = (buffers as Buffers)[0]) && (this.valueOffsets = buffer);\n (buffer = (buffers as Buffers)[1]) && (this.values = buffer);\n (buffer = (buffers as Buffers)[2]) && (this.nullBitmap = buffer);\n (buffer = (buffers as Buffers)[3]) && (this.typeIds = buffer);\n }\n }\n }\n\n public clone(type: R, offset = this.offset, length = this.length, nullCount = this._nullCount, buffers: Buffers = this, childData: (Data | Vector)[] = this.childData) {\n return new Data(type, offset, length, nullCount, buffers, childData, this.dictionary);\n }\n\n public slice(offset: number, length: number): Data {\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\n public _changeLengthAndBackfillNullBitmap(newLength: number): Data {\n if (this.typeId === 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(truncateBitmap(this.offset, length, this.nullBitmap), 0);\n }\n const buffers = this.buffers;\n buffers[BufferType.VALIDITY] = bitmap;\n return this.clone(this.type, 0, newLength, nullCount + (newLength - length), buffers);\n }\n\n protected _sliceBuffers(offset: number, length: number, stride: number, typeId: T['TType']): Buffers {\n let arr: any, { buffers } = this;\n // If typeIds exist, slice the typeIds buffer\n (arr = buffers[BufferType.TYPE]) && (buffers[BufferType.TYPE] = arr.subarray(offset, offset + length));\n // If offsets exist, only slice the offsets buffer\n (arr = buffers[BufferType.OFFSET]) && (buffers[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[BufferType.DATA]) && (buffers[BufferType.DATA] = typeId === 6 ? arr : arr.subarray(stride * offset, stride * (offset + length)));\n return buffers;\n }\n\n protected _sliceChildren(childData: Data[], offset: number, length: number): Data[] {\n return childData.map((child) => child.slice(offset, length));\n }\n\n //\n // Convenience methods for creating Data instances for each of the Arrow Vector types\n //\n /** @nocollapse */\n public static new(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial> | Data, childData?: (Data | Vector)[], dictionary?: Vector): Data {\n if (buffers instanceof Data) { buffers = buffers.buffers; } else if (!buffers) { buffers = [] as Partial>; }\n switch (type.typeId) {\n case Type.Null: return Data.Null( type as Null, offset, length) as Data;\n case Type.Int: return Data.Int( type as Int, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Dictionary: return Data.Dictionary( type as Dictionary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || [], dictionary!) as Data;\n case Type.Float: return Data.Float( type as Float, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Bool: return Data.Bool( type as Bool, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Decimal: return Data.Decimal( type as Decimal, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Date: return Data.Date( type as Date_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Time: return Data.Time( type as Time, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Timestamp: return Data.Timestamp( type as Timestamp, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Interval: return Data.Interval( type as Interval, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.FixedSizeBinary: return Data.FixedSizeBinary( type as FixedSizeBinary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data;\n case Type.Binary: return Data.Binary( type as Binary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data;\n case Type.Utf8: return Data.Utf8( type as Utf8, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data;\n case Type.List: return Data.List( type as List, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data;\n case Type.FixedSizeList: return Data.FixedSizeList( type as FixedSizeList, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], (childData || [])[0]) as Data;\n case Type.Struct: return Data.Struct( type as Struct, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], childData || []) as Data;\n case Type.Map: return Data.Map( type as Map_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data;\n case Type.Union: return Data.Union( type as Union, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.TYPE] || [], buffers[BufferType.OFFSET] || childData, childData) as Data;\n }\n throw new Error(`Unrecognized typeId ${type.typeId}`);\n }\n\n /** @nocollapse */\n public static Null(type: T, offset: number, length: number) {\n return new Data(type, offset, length, 0);\n }\n /** @nocollapse */\n public static Int(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Dictionary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer, dictionary: Vector) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.indices.ArrayType, data), toUint8Array(nullBitmap)], [], dictionary);\n }\n /** @nocollapse */\n public static Float(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Bool(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Decimal(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Date(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Time(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Timestamp(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Interval(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static FixedSizeBinary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Binary(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: Uint8Array) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Utf8(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: Uint8Array) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static List(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: Data | Vector) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], [child]);\n }\n /** @nocollapse */\n public static FixedSizeList(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, child: Data | Vector) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], [child]);\n }\n /** @nocollapse */\n public static Struct(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, children: (Data | Vector)[]) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], children);\n }\n /** @nocollapse */\n public static Map(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: (Data | Vector)) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], [child]);\n }\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, children: (Data | Vector)[], _?: any): Data;\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsets: ValueOffsetsBuffer, children: (Data | Vector)[]): Data;\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]): Data;\n /** @nocollapse */\n public static Union(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]) {\n const buffers = [\n undefined, undefined,\n toUint8Array(nullBitmap),\n toArrayBufferView(type.ArrayType, typeIds)\n ] as Partial>;\n if (type.mode === UnionMode.Sparse) {\n return new Data(type, offset, length, nullCount, buffers, valueOffsetsOrChildren as (Data | Vector)[]);\n }\n buffers[BufferType.OFFSET] = toInt32Array( valueOffsetsOrChildren);\n return new Data(type, offset, length, nullCount, buffers, children);\n }\n}\n\n(Data.prototype as any).childData = Object.freeze([]);\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.\n\n/** @ignore */ const undf = void (0);\n\n/** @ignore */\nexport function valueToString(x: any) {\n if (x === null) { return 'null'; }\n if (x === undf) { return 'undefined'; }\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}\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.\n\nimport { DataType } from '../type';\nimport { valueToString } from '../util/pretty';\nimport { BigIntAvailable } from '../util/compat';\n\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 */\nexport function createIsValidFunction(nullValues?: ReadonlyArray) {\n\n if (!nullValues || nullValues.length <= 0) {\n // @ts-ignore\n return function isValid(value: any) { return true; };\n }\n\n let fnBody = '';\n let noNaNs = nullValues.filter((x) => x === x);\n\n if (noNaNs.length > 0) {\n fnBody = `\n switch (x) {${noNaNs.map((x) => `\n case ${valueToCase(x)}:`).join('')}\n return false;\n }`;\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\n return new Function(`x`, `${fnBody}\\nreturn true;`) as (value: T['TValue'] | TNull) => boolean;\n}\n\n/** @ignore */\nfunction valueToCase(x: any) {\n if (typeof x !== 'bigint') {\n return valueToString(x);\n } else if (BigIntAvailable) {\n return `${valueToString(x)}n`;\n }\n return `\"${valueToString(x)}\"`;\n}\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.\n\nimport { memcpy } from '../util/buffer';\nimport { BigIntAvailable, BigInt64Array, BigUint64Array } from '../util/compat';\nimport {\n TypedArray, TypedArrayConstructor,\n BigIntArray, BigIntArrayConstructor\n} from '../interfaces';\n\n/** @ignore */ type DataValue = T extends TypedArray ? number : T extends BigIntArray ? WideValue : T;\n/** @ignore */ type WideValue = T extends BigIntArray ? bigint | Int32Array | Uint32Array : never;\n/** @ignore */ type ArrayCtor =\n T extends TypedArray ? TypedArrayConstructor :\n T extends BigIntArray ? BigIntArrayConstructor :\n any;\n\n/** @ignore */\nconst roundLengthUpToNearest64Bytes = (len: number, BPE: number) => ((((len * BPE) + 63) & ~63) || 64) / BPE;\n/** @ignore */\nconst sliceOrExtendArray = (arr: T, len = 0) => (\n arr.length >= len ? arr.subarray(0, len) : memcpy(new (arr.constructor as any)(len), arr, 0)\n) as T;\n\n/** @ignore */\nexport interface BufferBuilder> {\n readonly offset: number;\n}\n\n/** @ignore */\nexport class BufferBuilder> {\n\n constructor(buffer: T, stride = 1) {\n this.buffer = buffer;\n this.stride = stride;\n this.BYTES_PER_ELEMENT = buffer.BYTES_PER_ELEMENT;\n this.ArrayType = buffer.constructor as ArrayCtor;\n this._resize(this.length = buffer.length / stride | 0);\n }\n\n public buffer: T;\n public length: number;\n public readonly stride: number;\n public readonly ArrayType: ArrayCtor;\n public readonly BYTES_PER_ELEMENT: number;\n\n public get byteLength() { return this.length * this.stride * this.BYTES_PER_ELEMENT | 0; }\n public get reservedLength() { return this.buffer.length / this.stride; }\n public get reservedByteLength() { return this.buffer.byteLength; }\n\n // @ts-ignore\n public set(index: number, value: TValue) { return this; }\n public append(value: TValue) { return this.set(this.length, value); }\n public reserve(extra: number) {\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 }\n return this;\n }\n public 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 public clear() {\n this.length = 0;\n this._resize(0);\n return this;\n }\n protected _resize(newLength: number) {\n return this.buffer = memcpy(new this.ArrayType(newLength), this.buffer);\n }\n}\n\n(BufferBuilder.prototype as any).offset = 0;\n\n/** @ignore */\nexport class DataBufferBuilder extends BufferBuilder {\n public last() { return this.get(this.length - 1); }\n public get(index: number) { return this.buffer[index]; }\n public set(index: number, value: number) {\n this.reserve(index - this.length + 1);\n this.buffer[index * this.stride] = value;\n return this;\n }\n}\n\n/** @ignore */\nexport class BitmapBufferBuilder extends DataBufferBuilder {\n\n constructor(data = new Uint8Array(0)) { super(data, 1 / 8); }\n\n public numValid = 0;\n public get numInvalid() { return this.length - this.numValid; }\n public get(idx: number) { return this.buffer[idx >> 3] >> idx % 8 & 1; }\n public set(idx: number, val: number) {\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 public clear() {\n this.numValid = 0;\n return super.clear();\n }\n}\n\n/** @ignore */\nexport class OffsetsBufferBuilder extends DataBufferBuilder {\n constructor(data = new Int32Array(1)) { super(data, 1); }\n public append(value: number) {\n return this.set(this.length - 1, value);\n }\n public set(index: number, value: number) {\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 public 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}\n\n/** @ignore */\nexport class WideBufferBuilder extends BufferBuilder> {\n // @ts-ignore\n public buffer64: R;\n // @ts-ignore\n protected _ArrayType64: BigIntArrayConstructor;\n public get ArrayType64() {\n return this._ArrayType64 || (this._ArrayType64 = > (this.buffer instanceof Int32Array ? BigInt64Array : BigUint64Array));\n }\n public set(index: number, value: DataValue) {\n this.reserve(index - this.length + 1);\n switch (typeof value) {\n case 'bigint': this.buffer64[index] = value; break;\n case 'number': this.buffer[index * this.stride] = value; break;\n default: this.buffer.set(value as TypedArray, index * this.stride);\n }\n return this;\n }\n protected _resize(newLength: number) {\n const data = super._resize(newLength);\n const length = data.byteLength / (this.BYTES_PER_ELEMENT * this.stride);\n if (BigIntAvailable) {\n this.buffer64 = new this.ArrayType64(data.buffer, data.byteOffset, length);\n }\n return data;\n }\n}\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.\n\nimport { Vector } from './vector';\nimport { BufferType } from './enum';\nimport { Data, Buffers } from './data';\nimport { createIsValidFunction } from './builder/valid';\nimport { BuilderType as B, VectorType as V} from './interfaces';\nimport { BufferBuilder, BitmapBufferBuilder, DataBufferBuilder, OffsetsBufferBuilder } from './builder/buffer';\nimport {\n DataType, strideForType,\n Float, Int, Decimal, FixedSizeBinary,\n Date_, Time, Timestamp, Interval,\n Utf8, Binary, List, Map_\n} from './type';\n\n/**\n * A set of options required to create a `Builder` instance for a given `DataType`.\n * @see {@link Builder}\n */\nexport interface BuilderOptions {\n type: T;\n nullValues?: TNull[] | ReadonlyArray | null;\n children?: { [key: string]: BuilderOptions; } | BuilderOptions[];\n}\n\n/**\n * A set of options to create an Iterable or AsyncIterable `Builder` transform function.\n * @see {@link Builder.throughIterable}\n * @see {@link Builder.throughAsyncIterable}\n */\n\nexport interface IterableBuilderOptions extends BuilderOptions {\n highWaterMark?: number;\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;\n}\n\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` is returned.\n * Alternatively, `Builder.prototype.toVector()` will flush the `Builder` and return\n * an instance of `Vector` 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 */\nexport abstract class Builder {\n\n /**\n * Create a `Builder` instance based on the `type` property of the supplied `options` object.\n * @param {BuilderOptions} 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 public static new(options: BuilderOptions): B {}\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options: import('./io/node/builder').BuilderDuplexOptions): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n // @ts-ignore\n public static throughDOM(options: import('./io/whatwg/builder').BuilderTransformOptions): import('./io/whatwg/builder').BuilderTransform {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n /**\n * Transform a synchronous `Iterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector 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`.\n *\n * The resulting `Iterator>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `Iterator>`\n * will flush the underlying `Builder` (and yield a new `Vector`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `Iterator>` will flush\n * the underlying `Builder` (and yield a new `Vector`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions} 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 public static throughIterable(options: IterableBuilderOptions) {\n return throughIterable(options);\n }\n\n /**\n * Transform an `AsyncIterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector 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`.\n *\n * The resulting `AsyncIterator>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `AsyncIterator>`\n * will flush the underlying `Builder` (and yield a new `Vector`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `AsyncIterator>` will flush\n * the underlying `Builder` (and yield a new `Vector`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions} 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 public static throughAsyncIterable(options: IterableBuilderOptions) {\n return throughAsyncIterable(options);\n }\n\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 }: BuilderOptions) {\n this.type = type;\n this.children = [];\n this.nullValues = nulls;\n this.stride = strideForType(type);\n this._nulls = new BitmapBufferBuilder();\n if (nulls && nulls.length > 0) {\n this._isValid = createIsValidFunction(nulls);\n }\n }\n\n /**\n * The Builder's `DataType` instance.\n * @readonly\n */\n public type: T;\n /**\n * The number of values written to the `Builder` that haven't been flushed yet.\n * @readonly\n */\n public length = 0;\n /**\n * A boolean indicating whether `Builder.prototype.finish()` has been called on this `Builder`.\n * @readonly\n */\n public finished = false;\n /**\n * The number of elements in the underlying values TypedArray that\n * represent a single logical element, determined by this Builder's\n * `DataType`. This is 1 for most types, but is larger when the `DataType`\n * is `Int64`, `Uint64`, `Decimal`, `DateMillisecond`, certain variants of\n * `Interval`, `Time`, or `Timestamp`, `FixedSizeBinary`, and `FixedSizeList`.\n * @readonly\n */\n public readonly stride: number;\n public readonly children: Builder[];\n /**\n * The list of null-value sentinels for this `Builder`. When one of these values\n * is written to the `Builder` (either via `Builder.prototype.set()` or `Builder.prototype.append()`),\n * a 1-bit is written to this Builder's underlying null BitmapBufferBuilder.\n * @readonly\n */\n public readonly nullValues?: TNull[] | ReadonlyArray | null;\n\n /**\n * Flush the `Builder` and return a `Vector`.\n * @returns {Vector} A `Vector` of the flushed values.\n */\n public toVector() { return Vector.new(this.flush()); }\n\n public get ArrayType() { return this.type.ArrayType; }\n public get nullCount() { return this._nulls.numInvalid; }\n public get numChildren() { return this.children.length; }\n\n /**\n * @returns The aggregate length (in bytes) of the values that have been written.\n */\n public get byteLength(): number {\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 /**\n * @returns The aggregate number of rows that have been reserved to write new values.\n */\n public get reservedLength(): number {\n return this._nulls.reservedLength;\n }\n\n /**\n * @returns The aggregate length (in bytes) that has been reserved to write new values.\n */\n public get reservedByteLength(): number {\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\n // @ts-ignore\n protected _offsets: DataBufferBuilder;\n public get valueOffsets() { return this._offsets ? this._offsets.buffer : null; }\n\n // @ts-ignore\n protected _values: BufferBuilder;\n public get values() { return this._values ? this._values.buffer : null; }\n\n protected _nulls: BitmapBufferBuilder;\n public get nullBitmap() { return this._nulls ? this._nulls.buffer : null; }\n\n // @ts-ignore\n protected _typeIds: DataBufferBuilder;\n public get typeIds() { return this._typeIds ? this._typeIds.buffer : null; }\n\n // @ts-ignore\n protected _isValid: (value: T['TValue'] | TNull) => boolean;\n // @ts-ignore\n protected _setValue: (inst: Builder, index: number, value: T['TValue']) => void;\n\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 public append(value: T['TValue'] | TNull) { return this.set(this.length, value); }\n\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 // @ts-ignore\n public isValid(value: T['TValue'] | TNull): boolean { return this._isValid(value); }\n\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 public set(index: number, value: T['TValue'] | TNull) {\n if (this.setValid(index, this.isValid(value))) {\n this.setValue(index, value);\n }\n return this;\n }\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 // @ts-ignore\n public setValue(index: number, value: T['TValue']) { this._setValue(this, index, value); }\n public setValid(index: number, valid: boolean) {\n this.length = this._nulls.set(index, +valid).length;\n return valid;\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.numChildren}`) {\n throw new Error(`Cannot append children to non-nested type \"${this.type}\"`);\n }\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 public getChildAt(index: number): Builder | null {\n return this.children[index] || null;\n }\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` of the buffers and childData representing the values written.\n */\n public flush() {\n\n const buffers: any = [];\n const values = this._values;\n const offsets = this._offsets;\n const typeIds = this._typeIds;\n const { length, nullCount } = this;\n\n if (typeIds) { /* Unions */\n buffers[BufferType.TYPE] = typeIds.flush(length);\n // DenseUnions\n offsets && (buffers[BufferType.OFFSET] = offsets.flush(length));\n } else if (offsets) { /* Variable-width primitives (Binary, Utf8) and Lists */\n // Binary, Utf8\n values && (buffers[BufferType.DATA] = values.flush(offsets.last()));\n buffers[BufferType.OFFSET] = offsets.flush(length);\n } else if (values) { /* Fixed-width primitives (Int, Float, Decimal, Time, Timestamp, and Interval) */\n buffers[BufferType.DATA] = values.flush(length);\n }\n\n nullCount > 0 && (buffers[BufferType.VALIDITY] = this._nulls.flush(length));\n\n const data = Data.new(\n this.type, 0, length, nullCount, buffers as Buffers,\n this.children.map((child) => child.flush())) as Data;\n\n this.clear();\n\n return data;\n }\n\n /**\n * Finalize this `Builder`, and child builders if applicable.\n * @returns {this} The finalized `Builder` instance.\n */\n public finish() {\n this.finished = true;\n this.children.forEach((child) => child.finish());\n return this;\n }\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 public 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}\n\n(Builder.prototype as any).length = 1;\n(Builder.prototype as any).stride = 1;\n(Builder.prototype as any).children = null;\n(Builder.prototype as any).finished = false;\n(Builder.prototype as any).nullValues = null;\n(Builder.prototype as any)._isValid = () => true;\n\n/** @ignore */\nexport abstract class FixedWidthBuilder extends Builder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new DataBufferBuilder(new this.ArrayType(0), this.stride);\n }\n public setValue(index: number, value: T['TValue']) {\n const values = this._values;\n values.reserve(index - values.length + 1);\n return super.setValue(index, value);\n }\n}\n\n/** @ignore */\nexport abstract class VariableWidthBuilder extends Builder {\n protected _pendingLength: number = 0;\n protected _offsets: OffsetsBufferBuilder;\n protected _pending: Map | undefined;\n constructor(opts: BuilderOptions) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public setValue(index: number, value: T['TValue']) {\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 public setValid(index: number, isValid: boolean) {\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 public clear() {\n this._pendingLength = 0;\n this._pending = undefined;\n return super.clear();\n }\n public flush() {\n this._flush();\n return super.flush();\n }\n public finish() {\n this._flush();\n return super.finish();\n }\n protected _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 protected abstract _flushPending(pending: Map, pendingLength: number): void;\n}\n\n/** @ignore */\ntype ThroughIterable = (source: Iterable) => IterableIterator>;\n\n/** @ignore */\nfunction throughIterable(options: IterableBuilderOptions): ThroughIterable {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return function*(source: Iterable) {\n let numChunks = 0;\n let 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\n/** @ignore */\ntype ThroughAsyncIterable = (source: Iterable | AsyncIterable) => AsyncIterableIterator>;\n\n/** @ignore */\nfunction throughAsyncIterable(options: IterableBuilderOptions): ThroughAsyncIterable {\n const { ['queueingStrategy']: queueingStrategy = 'count' } = options;\n const { ['highWaterMark']: highWaterMark = queueingStrategy !== 'bytes' ? 1000 : 2 ** 14 } = options;\n const sizeProperty: 'length' | 'byteLength' = queueingStrategy !== 'bytes' ? 'length' : 'byteLength';\n return async function* (source: Iterable | AsyncIterable) {\n let numChunks = 0;\n let 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","// 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.\n\nimport { Bool } from '../type';\nimport { BitmapBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BoolBuilder extends Builder {\n constructor(options: BuilderOptions) {\n super(options);\n this._values = new BitmapBufferBuilder();\n }\n public setValue(index: number, value: boolean) {\n this._values.set(index, +value);\n }\n}\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.\n\nimport { Null } from '../type';\nimport { Builder } from '../builder';\n\n/** @ignore */\nexport class NullBuilder extends Builder {\n // @ts-ignore\n public setValue(index: number, value: null) {}\n public setValid(index: number, valid: boolean) {\n this.length = Math.max(index + 1, this.length);\n return valid;\n }\n}\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.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Date_, DateDay, DateMillisecond } from '../type';\n\n/** @ignore */\nexport class DateBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class DateDayBuilder extends DateBuilder {}\n/** @ignore */\nexport class DateMillisecondBuilder extends DateBuilder {}\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.\n\nimport { Decimal } from '../type';\nimport { FixedWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class DecimalBuilder extends FixedWidthBuilder {}\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.\n\nimport { Vector } from '../vector';\nimport { IntBuilder } from './int';\nimport { Dictionary, DataType } from '../type';\nimport { Builder, BuilderOptions } from '../builder';\n\ntype DictionaryHashFunction = (x: any) => string | number;\n\nexport interface DictionaryBuilderOptions extends BuilderOptions {\n dictionaryHashFunction?: DictionaryHashFunction;\n}\n\n/** @ignore */\nexport class DictionaryBuilder extends Builder {\n\n protected _dictionaryOffset: number;\n protected _dictionary?: Vector;\n protected _keysToIndices: { [key: string]: number };\n public readonly indices: IntBuilder;\n public readonly dictionary: Builder;\n\n constructor({ 'type': type, 'nullValues': nulls, 'dictionaryHashFunction': hashFn }: DictionaryBuilderOptions) {\n super({ type: new Dictionary(type.dictionary, type.indices, type.id, type.isOrdered) as T });\n this._nulls = null;\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n this.indices = Builder.new({ 'type': this.type.indices, 'nullValues': nulls }) as IntBuilder;\n this.dictionary = Builder.new({ 'type': this.type.dictionary, 'nullValues': null }) as Builder;\n if (typeof hashFn === 'function') {\n this.valueToKey = hashFn;\n }\n }\n\n public get values() { return this.indices.values; }\n public get nullCount() { return this.indices.nullCount; }\n public get nullBitmap() { return this.indices.nullBitmap; }\n public get byteLength() { return this.indices.byteLength + this.dictionary.byteLength; }\n public get reservedLength() { return this.indices.reservedLength + this.dictionary.reservedLength; }\n public get reservedByteLength() { return this.indices.reservedByteLength + this.dictionary.reservedByteLength; }\n public isValid(value: T['TValue'] | TNull) { return this.indices.isValid(value); }\n public setValid(index: number, valid: boolean) {\n const indices = this.indices;\n valid = indices.setValid(index, valid);\n this.length = indices.length;\n return valid;\n }\n public setValue(index: number, value: T['TValue']) {\n let keysToIndices = this._keysToIndices;\n let 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 public 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 as Vector;\n this.clear();\n return data;\n }\n public 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 public clear() {\n this.indices.clear();\n this.dictionary.clear();\n return super.clear();\n }\n public valueToKey(val: any): string | number {\n return typeof val === 'string' ? val : `${val}`;\n }\n}\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.\n\nimport { FixedSizeBinary } from '../type';\nimport { FixedWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class FixedSizeBinaryBuilder extends FixedWidthBuilder {}\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.\n\nconst f64 = new Float64Array(1);\nconst u32 = new Uint32Array(f64.buffer);\n\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 */\nexport function uint16ToFloat64(h: number) {\n let expo = (h & 0x7C00) >> 10;\n let sigf = (h & 0x03FF) / 1024;\n let 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}\n\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 */\nexport function float64ToUint16(d: number) {\n\n if (d !== d) { return 0x7E00; } // NaN\n\n f64[0] = d;\n\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\n let sign = (u32[1] & 0x80000000) >> 16 & 0xFFFF;\n let expo = (u32[1] & 0x7ff00000), sigf = 0x0000;\n\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 } else {\n expo = (expo & 0x7C000000) >> 16;\n sigf = (u32[1] & 0x000fffff) >> 10;\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 } 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\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\n return sign | expo | sigf & 0xFFFF;\n}\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.\n\nimport { float64ToUint16 } from '../util/math';\nimport { FixedWidthBuilder } from '../builder';\nimport { Float, Float16, Float32, Float64 } from '../type';\n\n/** @ignore */\nexport class FloatBuilder extends FixedWidthBuilder {}\n\n/** @ignore */\nexport class Float16Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n // convert JS float64 to a uint16\n this._values.set(index, float64ToUint16(value));\n }\n}\n\n/** @ignore */\nexport class Float32Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Float64Builder extends FloatBuilder {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\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.\n\nimport { ArrayBufferViewInput, toArrayBufferView } from './buffer';\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { BigIntAvailable, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nexport const isArrowBigNumSymbol = Symbol.for('isArrowBigNum');\n\n/** @ignore */ type BigNumArray = IntArray | UintArray;\n/** @ignore */ type IntArray = Int8Array | Int16Array | Int32Array;\n/** @ignore */ type UintArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray;\n\n/** @ignore */\nfunction BigNum(this: any, x: any, ...xs: any) {\n if (xs.length === 0) {\n return Object.setPrototypeOf(toArrayBufferView(this['TypedArray'], x), this.constructor.prototype);\n }\n return Object.setPrototypeOf(new this['TypedArray'](x, ...xs), this.constructor.prototype);\n}\n\nBigNum.prototype[isArrowBigNumSymbol] = true;\nBigNum.prototype.toJSON = function>(this: T) { return `\"${bignumToString(this)}\"`; };\nBigNum.prototype.valueOf = function>(this: T) { return bignumToNumber(this); };\nBigNum.prototype.toString = function>(this: T) { return bignumToString(this); };\nBigNum.prototype[Symbol.toPrimitive] = function>(this: T, hint: 'string' | 'number' | 'default' = 'default') {\n switch (hint) {\n case 'number': return bignumToNumber(this);\n case 'string': return bignumToString(this);\n case 'default': return bignumToBigInt(this);\n }\n return bignumToString(this);\n};\n\n/** @ignore */\ntype TypedArrayConstructorArgs =\n [number | void] |\n [Iterable | Iterable] |\n [ArrayBufferLike, number | void, number | void] ;\n\n/** @ignore */\nfunction SignedBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction UnsignedBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n/** @ignore */\nfunction DecimalBigNum(this: any, ...args: TypedArrayConstructorArgs) { return BigNum.apply(this, args); }\n\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': BigInt64Array });\nObject.assign(UnsignedBigNum.prototype, BigNum.prototype, { 'constructor': UnsignedBigNum, 'signed': false, 'TypedArray': Uint32Array, 'BigIntArray': BigUint64Array });\nObject.assign(DecimalBigNum.prototype, BigNum.prototype, { 'constructor': DecimalBigNum, 'signed': true, 'TypedArray': Uint32Array, 'BigIntArray': BigUint64Array });\n\n/** @ignore */\nfunction bignumToNumber>(bn: T) {\n let { buffer, byteOffset, length, 'signed': signed } = bn;\n let words = new Int32Array(buffer, byteOffset, length);\n let number = 0, i = 0, n = words.length, 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}\n\n/** @ignore */\nexport let bignumToString: { >(a: T): string; };\n/** @ignore */\nexport let bignumToBigInt: { >(a: T): bigint; };\n\nif (!BigIntAvailable) {\n bignumToString = decimalToString;\n bignumToBigInt = bignumToString;\n} else {\n bignumToBigInt = (>(a: T) => a.byteLength === 8 ? new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0] : decimalToString(a));\n bignumToString = (>(a: T) => a.byteLength === 8 ? `${new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0]}` : decimalToString(a));\n}\n\n/** @ignore */\nfunction decimalToString>(a: T) {\n let digits = '';\n let base64 = new Uint32Array(2);\n let base32 = new Uint16Array(a.buffer, a.byteOffset, a.byteLength / 2);\n let checks = new Uint32Array((base32 = new Uint16Array(base32).reverse()).buffer);\n let i = -1, 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\n/** @ignore */\nexport class BN {\n /** @nocollapse */\n public static new(num: T, isSigned?: boolean): (T & BN) {\n switch (isSigned) {\n case true: return new ( SignedBigNum)(num) as (T & BN);\n case false: return new ( UnsignedBigNum)(num) as (T & BN);\n }\n switch (num.constructor) {\n case Int8Array:\n case Int16Array:\n case Int32Array:\n case BigInt64Array:\n return new ( SignedBigNum)(num) as (T & BN);\n }\n if (num.byteLength === 16) {\n return new ( DecimalBigNum)(num) as (T & BN);\n }\n return new ( UnsignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static signed(num: T): (T & BN) {\n return new ( SignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static unsigned(num: T): (T & BN) {\n return new ( UnsignedBigNum)(num) as (T & BN);\n }\n /** @nocollapse */\n public static decimal(num: T): (T & BN) {\n return new ( DecimalBigNum)(num) as (T & BN);\n }\n constructor(num: T, isSigned?: boolean) {\n return BN.new(num, isSigned) as any;\n }\n}\n\n/** @ignore */\nexport interface BN extends TypedArrayLike {\n\n new(buffer: T, signed?: boolean): T;\n\n readonly signed: boolean;\n readonly TypedArray: TypedArrayConstructor;\n readonly BigIntArray: BigIntArrayConstructor;\n\n [Symbol.toStringTag]:\n 'Int8Array' |\n 'Int16Array' |\n 'Int32Array' |\n 'Uint8Array' |\n 'Uint16Array' |\n 'Uint32Array' |\n 'Uint8ClampedArray';\n\n /**\n * Convert the bytes to their (positive) decimal representation for printing\n */\n toString(): string;\n /**\n * Down-convert the bytes to a 53-bit precision integer. Invoked by JS for\n * arithmetic operators, like `+`. Easy (and unsafe) way to convert BN to\n * number via `+bn_inst`\n */\n valueOf(): number;\n /**\n * Return the JSON representation of the bytes. Must be wrapped in double-quotes,\n * so it's compatible with JSON.stringify().\n */\n toJSON(): string;\n [Symbol.toPrimitive](hint?: any): number | string | bigint;\n}\n\n/** @ignore */\ninterface TypedArrayLike {\n\n readonly length: number;\n readonly buffer: ArrayBuffer;\n readonly byteLength: number;\n readonly byteOffset: number;\n readonly BYTES_PER_ELEMENT: number;\n\n includes(searchElement: number, fromIndex?: number | undefined): boolean;\n copyWithin(target: number, start: number, end?: number | undefined): this;\n every(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): boolean;\n fill(value: number, start?: number | undefined, end?: number | undefined): this;\n filter(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): T;\n find(predicate: (value: number, index: number, obj: T) => boolean, thisArg?: any): number | undefined;\n findIndex(predicate: (value: number, index: number, obj: T) => boolean, thisArg?: any): number;\n forEach(callbackfn: (value: number, index: number, array: T) => void, thisArg?: any): void;\n indexOf(searchElement: number, fromIndex?: number | undefined): number;\n join(separator?: string | undefined): string;\n lastIndexOf(searchElement: number, fromIndex?: number | undefined): number;\n map(callbackfn: (value: number, index: number, array: T) => number, thisArg?: any): T;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number, initialValue: number): number;\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: T) => number, initialValue: number): number;\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reverse(): T;\n set(array: ArrayLike, offset?: number | undefined): void;\n slice(start?: number | undefined, end?: number | undefined): T;\n some(callbackfn: (value: number, index: number, array: T) => boolean, thisArg?: any): boolean;\n sort(compareFn?: ((a: number, b: number) => number) | undefined): this;\n subarray(begin: number, end?: number | undefined): T;\n toLocaleString(): string;\n entries(): IterableIterator<[number, number]>;\n keys(): IterableIterator;\n values(): IterableIterator;\n}\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.\n\nimport { bignumToBigInt } from '../util/bn';\nimport { WideBufferBuilder } from './buffer';\nimport { BigInt64Array } from '../util/compat';\nimport { FixedWidthBuilder, BuilderOptions } from '../builder';\nimport { Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64 } from '../type';\n\n/** @ignore */\nexport class IntBuilder extends FixedWidthBuilder {\n public setValue(index: number, value: T['TValue']) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Int8Builder extends IntBuilder {}\n/** @ignore */\nexport class Int16Builder extends IntBuilder {}\n/** @ignore */\nexport class Int32Builder extends IntBuilder {}\n/** @ignore */\nexport class Int64Builder extends IntBuilder {\n protected _values: WideBufferBuilder;\n constructor(options: BuilderOptions) {\n if (options['nullValues']) {\n options['nullValues'] = (options['nullValues'] as TNull[]).map(toBigInt);\n }\n super(options);\n this._values = new WideBufferBuilder(new Int32Array(0), 2);\n }\n public get values64() { return this._values.buffer64; }\n public isValid(value: Int32Array | bigint | TNull) { return super.isValid(toBigInt(value)); }\n}\n\n/** @ignore */\nexport class Uint8Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint16Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint32Builder extends IntBuilder {}\n/** @ignore */\nexport class Uint64Builder extends IntBuilder {\n protected _values: WideBufferBuilder;\n constructor(options: BuilderOptions) {\n if (options['nullValues']) {\n options['nullValues'] = (options['nullValues'] as TNull[]).map(toBigInt);\n }\n super(options);\n this._values = new WideBufferBuilder(new Uint32Array(0), 2);\n }\n public get values64() { return this._values.buffer64; }\n public isValid(value: Uint32Array | bigint | TNull) { return super.isValid(toBigInt(value)); }\n}\n\nconst toBigInt = ((memo: any) => (value: any) => {\n if (ArrayBuffer.isView(value)) {\n memo.buffer = value.buffer;\n memo.byteOffset = value.byteOffset;\n memo.byteLength = value.byteLength;\n value = bignumToBigInt(memo);\n memo.buffer = null;\n }\n return value;\n})({ 'BigIntArray': BigInt64Array });\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.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond } from '../type';\n\n/** @ignore */\nexport class TimeBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class TimeSecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeMillisecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeMicrosecondBuilder extends TimeBuilder {}\n/** @ignore */\nexport class TimeNanosecondBuilder extends TimeBuilder {}\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.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond } from '../type';\n\n/** @ignore */\nexport class TimestampBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class TimestampSecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampMillisecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampMicrosecondBuilder extends TimestampBuilder {}\n/** @ignore */\nexport class TimestampNanosecondBuilder extends TimestampBuilder {}\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.\n\nimport { FixedWidthBuilder } from '../builder';\nimport { Interval, IntervalDayTime, IntervalYearMonth } from '../type';\n\n/** @ignore */\nexport class IntervalBuilder extends FixedWidthBuilder {}\n/** @ignore */\nexport class IntervalDayTimeBuilder extends IntervalBuilder {}\n/** @ignore */\nexport class IntervalYearMonthBuilder extends IntervalBuilder {}\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.\n\nimport { Binary } from '../type';\nimport { toUint8Array } from '../util/buffer';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BinaryBuilder extends VariableWidthBuilder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new BufferBuilder(new Uint8Array(0));\n }\n public get byteLength(): number {\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 public setValue(index: number, value: Uint8Array) {\n return super.setValue(index, toUint8Array(value));\n }\n protected _flushPending(pending: Map, pendingLength: number) {\n const offsets = this._offsets;\n const data = this._values.reserve(pendingLength).buffer;\n let index = 0, length = 0, offset = 0, value: Uint8Array | undefined;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n length = value.length;\n data.set(value, offset);\n offsets.set(index, length);\n offset += length;\n }\n }\n }\n}\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.\n\nimport { Utf8 } from '../type';\nimport { encodeUtf8 } from '../util/utf8';\nimport { BinaryBuilder } from './binary';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class Utf8Builder extends VariableWidthBuilder {\n constructor(opts: BuilderOptions) {\n super(opts);\n this._values = new BufferBuilder(new Uint8Array(0));\n }\n public get byteLength(): number {\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 public setValue(index: number, value: string) {\n return super.setValue(index, encodeUtf8(value) as any);\n }\n // @ts-ignore\n protected _flushPending(pending: Map, pendingLength: number): void {}\n}\n\n(Utf8Builder.prototype as any)._flushPending = (BinaryBuilder.prototype as any)._flushPending;\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.\n\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\n\n/** @ignore */\nexport class Run {\n // @ts-ignore\n protected _values: ArrayLike;\n public get length() { return this._values.length; }\n public get(index: number) { return this._values[index]; }\n public clear() { this._values = null; return this; }\n public bind(values: Vector | ArrayLike) {\n if (values instanceof Vector) {\n return values;\n }\n this._values = values;\n return this as any;\n }\n}\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.\n\nimport { Vector } from '../vector';\nimport { StructVector } from './struct';\nimport { valueToString } from '../util/pretty';\nimport { DataType, Struct, RowLike } from '../type';\n\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');\n\nabstract class Row implements Map {\n\n public readonly size: number;\n public readonly [Symbol.toStringTag]: string;\n\n protected [kRowIndex]: number;\n protected [kParent]: Vector;\n protected [kKeyToIdx]: Map;\n protected [kIdxToVal]: V[];\n\n constructor(parent: Vector, numKeys: number) {\n this[kParent] = parent;\n this.size = numKeys;\n }\n\n public abstract keys(): IterableIterator;\n public abstract values(): IterableIterator;\n public abstract getKey(idx: number): K;\n public abstract getIndex(key: K): number;\n public abstract getValue(idx: number): V;\n public abstract setValue(idx: number, val: V): void;\n\n public entries() { return this[Symbol.iterator](); }\n\n public has(key: K) { return this.get(key) !== undefined; }\n\n public get(key: K) {\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 } 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\n public set(key: K, val: V) {\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\n public clear(): void { throw new Error(`Clearing ${this[Symbol.toStringTag]} not supported.`); }\n\n public delete(_: K): boolean { throw new Error(`Deleting ${this[Symbol.toStringTag]} values not supported.`); }\n\n public *[Symbol.iterator](): IterableIterator<[K, V]> {\n\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\n for (let k: K, v: V, i = 0, kr: IteratorResult, vr: IteratorResult;\n !((kr = ki.next()).done || (vr = vi.next()).done);\n ++i\n ) {\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\n public forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void {\n\n const ki = this.keys();\n const vi = this.values();\n const callback = thisArg === undefined ? callbackfn :\n (v: V, k: K, m: Map) => 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\n for (let k: K, v: V, i = 0, kr: IteratorResult, vr: IteratorResult;\n !((kr = ki.next()).done || (vr = vi.next()).done);\n ++i\n ) {\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\n public toArray() { return [...this.values()]; }\n public toJSON() {\n const obj = {} as any;\n this.forEach((val, key) => obj[key] = val);\n return obj;\n }\n\n public inspect() { return this.toString(); }\n public [kCustomInspect]() { return this.toString(); }\n public toString() {\n const str: string[] = [];\n this.forEach((val, key) => {\n key = valueToString(key);\n val = valueToString(val);\n str.push(`${key}: ${val}`);\n });\n return `{ ${str.join(', ')} }`;\n }\n\n protected static [Symbol.toStringTag] = ((proto: Row) => {\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 as any)[Symbol.toStringTag] = 'Row';\n })(Row.prototype);\n}\n\nexport class MapRow extends Row {\n constructor(slice: Vector>) {\n super(slice, slice.length);\n return createRowProxy(this);\n }\n public keys() {\n return this[kParent].getChildAt(0)![Symbol.iterator]();\n }\n public values() {\n return this[kParent].getChildAt(1)![Symbol.iterator]();\n }\n public getKey(idx: number): K['TValue'] {\n return this[kParent].getChildAt(0)!.get(idx);\n }\n public getIndex(key: K['TValue']): number {\n return this[kParent].getChildAt(0)!.indexOf(key);\n }\n public getValue(index: number): V['TValue'] | null {\n return this[kParent].getChildAt(1)!.get(index);\n }\n public setValue(index: number, value: V['TValue'] | null): void {\n this[kParent].getChildAt(1)!.set(index, value);\n }\n}\n\nexport class StructRow extends Row {\n constructor(parent: StructVector) {\n super(parent, parent.type.children.length);\n return defineRowProxyProperties(this);\n }\n public *keys() {\n for (const field of this[kParent].type.children) {\n yield field.name as keyof T;\n }\n }\n public *values() {\n for (const field of this[kParent].type.children) {\n yield (this as RowLike)[field.name];\n }\n }\n public getKey(idx: number): keyof T {\n return this[kParent].type.children[idx].name as keyof T;\n }\n public getIndex(key: keyof T): number {\n return this[kParent].type.children.findIndex((f) => f.name === key);\n }\n public getValue(index: number): T[keyof T]['TValue'] | null {\n return this[kParent].getChildAt(index)!.get(this[kRowIndex]);\n }\n public setValue(index: number, value: T[keyof T]['TValue'] | null): void {\n return this[kParent].getChildAt(index)!.set(this[kRowIndex], value);\n }\n}\n\nObject.setPrototypeOf(Row.prototype, Map.prototype);\n\n/** @ignore */\nconst defineRowProxyProperties = (() => {\n const desc = { enumerable: true, configurable: false, get: null as any, set: null as any };\n return (row: T) => {\n let idx = -1, ktoi = row[kKeyToIdx] || (row[kKeyToIdx] = new Map());\n const getter = (key: any) => function(this: T) { return this.get(key); };\n const setter = (key: any) => function(this: T, val: any) { 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 row.hasOwnProperty(key) || (desc.enumerable = true, Object.defineProperty(row, key, desc));\n row.hasOwnProperty(idx) || (desc.enumerable = false, Object.defineProperty(row, idx, desc));\n }\n desc.get = desc.set = null;\n return row;\n };\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: ProxyHandler = {\n isExtensible() { return false; },\n deleteProperty() { return false; },\n preventExtensions() { return true; },\n ownKeys(row: Row) { return [...row.keys()].map((x) => `${x}`); },\n has(row: Row, key: PropertyKey) {\n switch (key) {\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: 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: Row, key: PropertyKey, receiver: any) {\n switch (key) {\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: 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: Row, key: PropertyKey, val: any, receiver: any) {\n switch (key) {\n case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx:\n return Reflect.set(row, key, val, receiver);\n case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n case Symbol.iterator: 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: T) => new Proxy(row, RowProxyHandler) as T;\n})();\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.\n\nimport { Vector } from '../vector';\nimport { MapRow, StructRow } from '../vector/row';\nimport { compareArrayLike } from '../util/buffer';\nimport { BigInt, BigIntAvailable } from './compat';\n\n/** @ignore */\ntype RangeLike = { length: number; stride?: number };\n/** @ignore */\ntype ClampThen = (source: T, index: number) => any;\n/** @ignore */\ntype ClampRangeThen = (source: T, offset: number, length: number) => any;\n\nexport function clampIndex(source: T, index: number): number;\nexport function clampIndex = ClampThen>(source: T, index: number, then: N): ReturnType;\n/** @ignore */\nexport function clampIndex = ClampThen>(source: T, index: number, then?: N) {\n const length = source.length;\n const adjust = index > -1 ? index : (length + (index % length));\n return then ? then(source, adjust) : adjust;\n}\n\n/** @ignore */\nlet tmp: number;\nexport function clampRange(source: T, begin: number | undefined, end: number | undefined): [number, number];\nexport function clampRange = ClampRangeThen>(source: T, begin: number | undefined, end: number | undefined, then: N): ReturnType;\n/** @ignore */\nexport function clampRange = ClampRangeThen>(source: T, begin: number | undefined, end: number | undefined, then?: N) {\n\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 let { 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\n return then ? then(source, lhs, rhs) : [lhs, rhs];\n}\n\nconst big0 = BigIntAvailable ? BigInt(0) : 0;\nconst isNaNFast = (value: any) => value !== value;\n\n/** @ignore */\nexport function createElementComparator(search: any) {\n let 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: any) => value === search\n : (value: any) => (big0 + value) === search;\n }\n // Compare Dates\n if (search instanceof Date) {\n const valueOfSearch = search.valueOf();\n return (value: any) => value instanceof Date ? (value.valueOf() === valueOfSearch) : false;\n }\n // Compare TypedArrays\n if (ArrayBuffer.isView(search)) {\n return (value: any) => value ? compareArrayLike(search, value) : false;\n }\n // Compare Maps and Rows\n if (search instanceof Map) { return creatMapComparator(search); }\n // Compare Array-likes\n if (Array.isArray(search)) { return createArrayLikeComparator(search); }\n // Compare Vectors\n if (search instanceof Vector) { return createVectorComparator(search); }\n // Compare non-empty Objects\n return createObjectComparator(search);\n}\n\n/** @ignore */\nfunction createArrayLikeComparator(lhs: ArrayLike) {\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[i]);\n }\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction creatMapComparator(lhs: Map) {\n let i = -1;\n const comparators = [] as ((x: any) => boolean)[];\n lhs.forEach((v) => comparators[++i] = createElementComparator(v));\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createVectorComparator(lhs: Vector) {\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = lhs.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs.get(i));\n }\n return createSubElementsComparator(comparators);\n}\n\n/** @ignore */\nfunction createObjectComparator(lhs: any) {\n const keys = Object.keys(lhs);\n // Only compare non-empty Objects\n if (keys.length === 0) { return () => false; }\n const comparators = [] as ((x: any) => boolean)[];\n for (let i = -1, n = keys.length; ++i < n;) {\n comparators[i] = createElementComparator(lhs[keys[i]]);\n }\n return createSubElementsComparator(comparators, keys);\n}\n\nfunction createSubElementsComparator(comparators: ((x: any) => boolean)[], keys?: Iterable) {\n return (rhs: any) => {\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 MapRow:\n case 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 ? compareVector(comparators, rhs) : false;\n };\n}\n\nfunction compareArray(comparators: ((x: any) => boolean)[], arr: any[]) {\n const n = comparators.length;\n if (arr.length !== n) { return false; }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](arr[i]))) { return false; }\n }\n return true;\n}\n\nfunction compareVector(comparators: ((x: any) => boolean)[], vec: Vector) {\n const n = comparators.length;\n if (vec.length !== n) { return false; }\n for (let i = -1; ++i < n;) {\n if (!(comparators[i](vec.get(i)))) { return false; }\n }\n return true;\n}\n\nfunction compareObject(comparators: ((x: any) => boolean)[], obj: Map, keys: Iterable) {\n\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\n let i = 0;\n let n = comparators.length;\n let rVal = rValItr.next();\n let lKey = lKeyItr.next();\n let rKey = rKeyItr.next();\n\n for (; i < n && !lKey.done && !rKey.done && !rVal.done;\n ++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","// 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.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { clampRange } from '../util/vector';\nimport { DataType, Dictionary } from '../type';\nimport { selectChunkArgs } from '../util/args';\nimport { DictionaryVector } from './dictionary';\nimport { AbstractVector, Vector } from '../vector';\nimport { Clonable, Sliceable, Applicative } from '../vector';\n\n/** @ignore */\ntype ChunkedDict = T extends Dictionary ? Vector : null | never;\n/** @ignore */\ntype ChunkedKeys = T extends Dictionary ? Vector | Chunked : null | never;\n\n/** @ignore */\nexport type SearchContinuation = (column: T, chunkIndex: number, valueIndex: number) => any;\n\n/** @ignore */\nexport class Chunked\n extends AbstractVector\n implements Clonable>,\n Sliceable>,\n Applicative> {\n\n /** @nocollapse */\n public static flatten(...vectors: (Vector | Vector[])[]) {\n return selectChunkArgs>(Vector, vectors);\n }\n\n /** @nocollapse */\n public static concat(...vectors: (Vector | Vector[])[]) {\n const chunks = Chunked.flatten(...vectors);\n return new Chunked(chunks[0].type, chunks);\n }\n\n protected _type: T;\n protected _length: number;\n protected _chunks: Vector[];\n protected _numChildren: number;\n protected _children?: Chunked[];\n protected _nullCount: number = -1;\n protected _chunkOffsets: Uint32Array;\n\n constructor(type: T, chunks: Vector[] = [], offsets = calculateOffsets(chunks)) {\n super();\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\n public get type() { return this._type; }\n public get length() { return this._length; }\n public get chunks() { return this._chunks; }\n public get typeId(): T['TType'] { return this._type.typeId; }\n public get VectorName() { return `Chunked<${this._type}>`; }\n public get data(): Data {\n return this._chunks[0] ? this._chunks[0].data : null;\n }\n\n public get ArrayType() { return this._type.ArrayType; }\n public get numChildren() { return this._numChildren; }\n public get stride() { return this._chunks[0] ? this._chunks[0].stride : 1; }\n public get byteLength(): number {\n return this._chunks.reduce((byteLength, chunk) => byteLength + chunk.byteLength, 0);\n }\n public 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\n protected _indices?: ChunkedKeys;\n public get indices(): ChunkedKeys | null {\n if (DataType.isDictionary(this._type)) {\n if (!this._indices) {\n const chunks = ( this._chunks) as DictionaryVector[];\n this._indices = (chunks.length === 1\n ? chunks[0].indices\n : Chunked.concat(...chunks.map((x) => x.indices))) as ChunkedKeys;\n }\n return this._indices;\n }\n return null;\n }\n public get dictionary(): ChunkedDict | null {\n if (DataType.isDictionary(this._type)) {\n return this._chunks[this._chunks.length - 1].data.dictionary as ChunkedDict;\n }\n return null;\n }\n\n public *[Symbol.iterator](): IterableIterator {\n for (const chunk of this._chunks) {\n yield* chunk;\n }\n }\n\n public clone(chunks = this._chunks): Chunked {\n return new Chunked(this._type, chunks);\n }\n\n public concat(...others: Vector[]): Chunked {\n return this.clone(Chunked.flatten(this, ...others));\n }\n\n public slice(begin?: number, end?: number): Chunked {\n return clampRange(this, begin, end, this._sliceInternal);\n }\n\n public getChildAt(index: number): Chunked | null {\n\n if (index < 0 || index >= this._numChildren) { return null; }\n\n let columns = this._children || (this._children = []);\n let child: Chunked, field: Field, chunks: Vector[];\n\n if (child = columns[index]) { return child; }\n if (field = ((this._type.children || [])[index] as Field)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Chunked(field.type, chunks));\n }\n }\n\n return null;\n }\n\n public search(index: number): [number, number] | null;\n public search>>(index: number, then?: N): ReturnType;\n public search>>(index: number, then?: N) {\n let idx = index;\n // binary search to find the child vector and value indices\n let offsets = this._chunkOffsets, rhs = offsets.length - 1;\n // return early if out of bounds, or if there's just one child\n if (idx < 0 ) { return null; }\n if (idx >= offsets[rhs]) { return null; }\n if (rhs <= 1 ) { return then ? then(this, 0, idx) : [0, idx]; }\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\n public isValid(index: number): boolean {\n return !!this.search(index, this.isValidInternal);\n }\n\n public get(index: number): T['TValue'] | null {\n return this.search(index, this.getInternal);\n }\n\n public set(index: number, value: T['TValue'] | null): void {\n this.search(index, ({ chunks }, i, j) => chunks[i].set(j, value));\n }\n\n public indexOf(element: T['TValue'], offset?: number): number {\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\n public toArray(): T['TArray'] {\n const { chunks } = this;\n const n = chunks.length;\n let ArrayType: any = this._type.ArrayType;\n if (n <= 0) { return new ArrayType(0); }\n if (n <= 1) { return chunks[0].toArray(); }\n let len = 0, 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 let dst = new ArrayType(len);\n let set: any = 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\n protected getInternal({ _chunks }: Chunked, i: number, j: number) { return _chunks[i].get(j); }\n protected isValidInternal({ _chunks }: Chunked, i: number, j: number) { return _chunks[i].isValid(j); }\n protected indexOfInternal({ _chunks }: Chunked, chunkIndex: number, fromIndex: number, element: T['TValue']) {\n let i = chunkIndex - 1, 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\n protected _sliceInternal(self: Chunked, begin: number, end: number) {\n const slices: Vector[] = [];\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) { break; }\n // If the child is to the left of of the slice boundary, exclude\n if (begin >= chunkOffset + chunkLength) { continue; }\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) as Vector);\n }\n return self.clone(slices);\n }\n}\n\n/** @ignore */\nfunction calculateOffsets(vectors: Vector[]) {\n let offsets = new Uint32Array((vectors || []).length + 1);\n let offset = offsets[0] = 0, length = offsets.length;\n for (let index = 0; ++index < length;) {\n offsets[index] = (offset += vectors[index - 1].length);\n }\n return offsets;\n}\n\n/** @ignore */\nconst typedSet = (src: TypedArray, dst: TypedArray, offset: number) => {\n dst.set(src, offset);\n return (offset + src.length);\n};\n\n/** @ignore */\nconst arraySet = (src: any[], dst: any[], offset: number) => {\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/** @ignore */\ninterface TypedArray extends ArrayBufferView {\n readonly length: number;\n readonly [n: number]: number;\n set(array: ArrayLike, offset?: number): void;\n}\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.\n\nimport { Data } from './data';\nimport { Field } from './schema';\nimport { DataType } from './type';\nimport { Vector } from './vector';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { VectorCtorArgs, VectorType as V } from './interfaces';\nimport { Chunked, SearchContinuation } from './vector/chunked';\n\nexport interface Column {\n typeId: T['TType'];\n concat(...others: Vector[]): Column;\n slice(begin?: number, end?: number): Column;\n clone(chunks?: Vector[], offsets?: Uint32Array): Column;\n}\n\nexport class Column\n extends Chunked\n implements Clonable>,\n Sliceable>,\n Applicative> {\n\n public static new(field: string | Field, ...chunks: (Vector | Vector[])[]): Column;\n public static new(field: string | Field, data: Data, ...args: VectorCtorArgs>): Column;\n /** @nocollapse */\n public static new(field: string | Field, data: Data | Vector | (Data | Vector)[], ...rest: any[]) {\n\n const chunks = Chunked.flatten(\n Array.isArray(data) ? [...data, ...rest] :\n data instanceof Vector ? [data, ...rest] :\n [Vector.new(data, ...rest)]\n );\n\n if (typeof field === 'string') {\n const type = chunks[0].data.type;\n field = new Field(field, type, true);\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\n constructor(field: Field, vectors: Vector[] = [], offsets?: Uint32Array) {\n vectors = 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\n protected _field: Field;\n protected _children?: Column[];\n\n public get field() { return this._field; }\n public get name() { return this._field.name; }\n public get nullable() { return this._field.nullable; }\n public get metadata() { return this._field.metadata; }\n\n public clone(chunks = this._chunks) {\n return new Column(this._field, chunks);\n }\n\n public getChildAt(index: number): Column | null {\n\n if (index < 0 || index >= this.numChildren) { return null; }\n\n let columns = this._children || (this._children = []);\n let column: Column, field: Field, chunks: Vector[];\n\n if (column = columns[index]) { return column; }\n if (field = ((this.type.children || [])[index] as Field)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n\n return null;\n }\n}\n\n/** @ignore */\nclass SingleChunkColumn extends Column {\n protected _chunk: Vector;\n constructor(field: Field, vector: Vector, offsets?: Uint32Array) {\n super(field, [vector], offsets);\n this._chunk = vector;\n }\n public search(index: number): [number, number] | null;\n public search>>(index: number, then?: N): ReturnType;\n public search>>(index: number, then?: N) {\n return then ? then(this, 0, index) : [0, index];\n }\n public isValid(index: number): boolean {\n return this._chunk.isValid(index);\n }\n public get(index: number): T['TValue'] | null {\n return this._chunk.get(index);\n }\n public set(index: number, value: T['TValue'] | null): void {\n this._chunk.set(index, value);\n }\n public indexOf(element: T['TValue'], offset?: number): number {\n return this._chunk.indexOf(element, offset);\n }\n}\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.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Chunked } from '../vector/chunked';\n\ntype RecordBatchCtor = typeof import('../recordbatch').RecordBatch;\n\nconst isArray = Array.isArray;\n\n/** @ignore */\nexport const selectArgs = (Ctor: any, vals: any[]) => _selectArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnArgs = (args: any[]) => {\n const [fields, values] = _selectFieldArgs(args, [[], []]);\n return values.map((x, i) =>\n x instanceof Column ? Column.new(x.field.clone(fields[i]), x) :\n x instanceof Vector ? Column.new(fields[i], x) as Column :\n Column.new(fields[i], [] as Vector[]));\n};\n\n/** @ignore */\nexport const selectFieldArgs = (args: any[]) => _selectFieldArgs(args, [[], []]);\n/** @ignore */\nexport const selectChunkArgs = (Ctor: any, vals: any[]) => _selectChunkArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectVectorChildrenArgs = (Ctor: RecordBatchCtor, vals: any[]) => _selectVectorChildrenArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnChildrenArgs = (Ctor: RecordBatchCtor, vals: any[]) => _selectColumnChildrenArgs(Ctor, vals, [], 0) as T[];\n\n/** @ignore */\nfunction _selectArgs(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectChunkArgs(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectChunkArgs(Ctor, value, res, j).length;\n } else if (value instanceof Chunked) {\n j = _selectChunkArgs(Ctor, value.chunks, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectVectorChildrenArgs(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectVectorChildrenArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) {\n j = _selectArgs(Vector, value.schema.fields.map((_, i) => value.getChildAt(i)!), res, j).length;\n } else if (value instanceof Vector) { res[j++] = value as T; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectColumnChildrenArgs(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1, n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectColumnChildrenArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) {\n j = _selectArgs(Column, value.schema.fields.map((f, i) => Column.new(f, value.getChildAt(i)!)), res, j).length;\n } else if (value instanceof Column) { res[j++] = value as T; }\n }\n return res;\n}\n\n/** @ignore */\nconst toKeysAndValues = (xs: [any[], any[]], [k, v]: [any, any], i: number) => (xs[0][i] = k, xs[1][i] = v, xs);\n\n/** @ignore */\nfunction _selectFieldArgs(vals: any[], ret: [Field[], Vector[]]): [Field[], (T[keyof T] | Vector)[]] {\n let keys: any[], n: number;\n switch (n = vals.length) {\n case 0: return ret;\n case 1:\n keys = ret[0];\n if (!(vals[0])) { return ret; }\n if (isArray(vals[0])) { return _selectFieldArgs(vals[0], ret); }\n if (!(vals[0] instanceof Data || vals[0] instanceof Vector || vals[0] instanceof 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\n let fieldIndex = -1;\n let valueIndex = -1;\n let idx = -1, len = vals.length;\n let field: number | string | Field;\n let val: Vector | Data;\n let [fields, values] = ret as [Field[], any[]];\n\n while (++idx < len) {\n val = vals[idx];\n if (val instanceof Column && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = val.field.clone(keys[idx], val.type, true);\n } else {\n ({ [idx]: field = idx } = keys);\n if (val instanceof DataType && (values[++valueIndex] = val)) {\n fields[++fieldIndex] = Field.new(field, val as DataType, true) as Field;\n } else if (val && val.type && (values[++valueIndex] = val)) {\n val instanceof Data && (values[valueIndex] = val = Vector.new(val) as Vector);\n fields[++fieldIndex] = Field.new(field, val.type, true) as Field;\n }\n }\n }\n return ret;\n}\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.\n\nimport { Data } from './data';\nimport { Vector } from './vector';\nimport { DataType } from './type';\nimport { selectArgs } from './util/args';\nimport { selectFieldArgs } from './util/args';\nimport { instance as comparer } from './visitor/typecomparator';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = T[keyof T][] | Data[] | Vector[];\n\nexport class Schema {\n\n public static from(children: T): Schema;\n public static from(children: T): Schema<{ [P in keyof T]: T[P]['type'] }>;\n public static from(children: ChildData, fields?: Fields): Schema;\n /** @nocollapse */\n public static from(...args: any[]) {\n return Schema.new(args[0], args[1]);\n }\n\n public static new(children: T): Schema;\n public static new(children: T): Schema<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): Schema;\n /** @nocollapse */\n public static new(...args: any[]) {\n return new Schema(selectFieldArgs(args)[0]);\n }\n\n public readonly fields: Field[];\n public readonly metadata: Map;\n public readonly dictionaries: Map;\n\n constructor(fields: Field[] = [],\n metadata?: Map | null,\n dictionaries?: Map | null) {\n this.fields = (fields || []) as Field[];\n this.metadata = metadata || new Map();\n if (!dictionaries) {\n dictionaries = generateDictionaryMap(fields);\n }\n this.dictionaries = dictionaries;\n }\n public get [Symbol.toStringTag]() { return 'Schema'; }\n public toString() {\n return `Schema<{ ${this.fields.map((f, i) => `${i}: ${f}`).join(', ')} }>`;\n }\n\n public compareTo(other?: Schema | null): other is Schema {\n return comparer.compareSchemas(this, other);\n }\n\n public select(...columnNames: K[]) {\n const names = columnNames.reduce((xs, x) => (xs[x] = true) && xs, Object.create(null));\n return new Schema<{ [P in K]: T[P] }>(this.fields.filter((f) => names[f.name]), this.metadata);\n }\n public selectAt(...columnIndices: number[]) {\n return new Schema<{ [key: string]: K }>(columnIndices.map((i) => this.fields[i]).filter(Boolean), this.metadata);\n }\n\n public assign(schema: Schema): Schema;\n public assign(...fields: (Field | Field[])[]): Schema;\n public assign(...args: (Schema | Field | Field[])[]) {\n\n const other = args[0] instanceof Schema ? args[0] as Schema\n : new Schema(selectArgs>(Field, args));\n\n const curFields = [...this.fields] as Field[];\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 }) as Field[];\n\n const newDictionaries = generateDictionaryMap(newFields, new Map());\n\n return new Schema(\n [...curFields, ...newFields], metadata,\n new Map([...this.dictionaries, ...newDictionaries])\n );\n }\n}\n\nexport class Field {\n\n public static new(props: { name: string | number, type: T, nullable?: boolean, metadata?: Map | null }): Field;\n public static new(name: string | number | Field, type: T, nullable?: boolean, metadata?: Map | null): Field;\n /** @nocollapse */\n public static new(...args: any[]) {\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\n public readonly type: T;\n public readonly name: string;\n public readonly nullable: boolean;\n public readonly metadata: Map;\n\n constructor(name: string, type: T, nullable = false, metadata?: Map | null) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata || new Map();\n }\n\n public get typeId() { return this.type.typeId; }\n public get [Symbol.toStringTag]() { return 'Field'; }\n public toString() { return `${this.name}: ${this.type}`; }\n public compareTo(other?: Field | null): other is Field {\n return comparer.compareField(this, other);\n }\n public clone(props: { name?: string | number, type?: R, nullable?: boolean, metadata?: Map | null }): Field;\n public clone(name?: string | number | Field, type?: R, nullable?: boolean, metadata?: Map | null): Field;\n public clone(...args: any[]) {\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}\n\n/** @ignore */\nfunction mergeMaps(m1?: Map | null, m2?: Map | null): Map {\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n\n/** @ignore */\nfunction generateDictionaryMap(fields: Field[], dictionaries = new Map()): Map {\n\n for (let i = -1, n = fields.length; ++i < n;) {\n const field = fields[i];\n const type = field.type;\n if (DataType.isDictionary(type)) {\n if (!dictionaries.has(type.id)) {\n dictionaries.set(type.id, type.dictionary);\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\n return dictionaries;\n}\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\n(Schema.prototype as any).fields = null;\n(Schema.prototype as any).metadata = null;\n(Schema.prototype as any).dictionaries = null;\n\n(Field.prototype as any).type = null;\n(Field.prototype as any).name = null;\n(Field.prototype as any).nullable = null;\n(Field.prototype as any).metadata = null;\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.\n\nimport { Run } from './run';\nimport { Field } from '../schema';\nimport { DataType, List } from '../type';\nimport { OffsetsBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions, VariableWidthBuilder } from '../builder';\n\n/** @ignore */\nexport class ListBuilder extends VariableWidthBuilder, TNull> {\n protected _run = new Run();\n protected _offsets: OffsetsBufferBuilder;\n constructor(opts: BuilderOptions, TNull>) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public addChild(child: Builder, 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 List(new Field(name, child.type, true));\n return this.numChildren - 1;\n }\n public clear() {\n this._run.clear();\n return super.clear();\n }\n protected _flushPending(pending: Map) {\n const run = this._run;\n const offsets = this._offsets;\n const setValue = this._setValue;\n let index = 0, value: Uint8Array | undefined;\n for ([index, value] of pending) {\n if (value === undefined) {\n offsets.set(index, 0);\n } else {\n offsets.set(index, value.length);\n setValue(this, index, run.bind(value));\n }\n }\n }\n}\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.\n\nimport { Run } from './run';\nimport { Field } from '../schema';\nimport { Builder } from '../builder';\nimport { DataType, FixedSizeList } from '../type';\n\n/** @ignore */\nexport class FixedSizeListBuilder extends Builder, TNull> {\n protected _run = new Run();\n public setValue(index: number, value: T['TValue']) {\n super.setValue(index, this._run.bind(value));\n }\n public addChild(child: Builder, 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 FixedSizeList(this.type.listSize, new Field(name, child.type, true));\n return childIndex;\n }\n public clear() {\n this._run.clear();\n return super.clear();\n }\n}\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.\n\nimport { Field } from '../schema';\nimport { DataType, Map_, Struct } from '../type';\nimport { Builder, VariableWidthBuilder } from '../builder';\n\n/** @ignore */ type MapValue = Map_['TValue'];\n/** @ignore */ type MapValues = Map | undefined>;\n/** @ignore */ type MapValueExt = MapValue | { [key: string]: V } | { [key: number]: V } ;\n\n/** @ignore */\nexport class MapBuilder extends VariableWidthBuilder, TNull> {\n\n protected _pending: MapValues | undefined;\n public set(index: number, value: MapValueExt | TNull) {\n return super.set(index, value as MapValue | TNull);\n }\n\n public setValue(index: number, value: MapValueExt) {\n value = value instanceof Map ? value : new Map(Object.entries(value));\n const pending = this._pending || (this._pending = new Map() as MapValues);\n const current = pending.get(index);\n current && (this._pendingLength -= current.size);\n this._pendingLength += value.size;\n pending.set(index, value);\n }\n\n public addChild(child: Builder>, 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 Map_(new Field(name, child.type, true), this.type.keysSorted);\n return this.numChildren - 1;\n }\n\n protected _flushPending(pending: MapValues) {\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 } else {\n offsets.set(index, value.size);\n setValue(this, index, value);\n }\n });\n }\n}\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.\n\nimport { Field } from '../schema';\nimport { Builder } from '../builder';\nimport { DataType, Struct } from '../type';\n\n/** @ignore */\nexport class StructBuilder extends Builder, TNull> {\n public addChild(child: Builder, name = `${this.numChildren}`) {\n const childIndex = this.children.push(child);\n this.type = new Struct([...this.type.children, new Field(name, child.type, true)]);\n return childIndex;\n }\n}\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.\n\nimport { Field } from '../schema';\nimport { DataBufferBuilder } from './buffer';\nimport { Builder, BuilderOptions } from '../builder';\nimport { Union, SparseUnion, DenseUnion } from '../type';\n\nexport interface UnionBuilderOptions extends BuilderOptions {\n valueToChildTypeId?: (builder: UnionBuilder, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport abstract class UnionBuilder extends Builder {\n\n protected _typeIds: DataBufferBuilder;\n\n constructor(options: UnionBuilderOptions) {\n super(options);\n this._typeIds = new DataBufferBuilder(new Int8Array(0), 1);\n if (typeof options['valueToChildTypeId'] === 'function') {\n this._valueToChildTypeId = options['valueToChildTypeId'];\n }\n }\n\n public get typeIdToChildIndex() { return this.type.typeIdToChildIndex; }\n\n public append(value: T['TValue'] | TNull, childTypeId?: number) {\n return this.set(this.length, value, childTypeId);\n }\n\n public set(index: number, value: T['TValue'] | TNull, childTypeId?: number) {\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\n // @ts-ignore\n public setValue(index: number, value: T['TValue'], childTypeId?: number) {\n this._typeIds.set(index, childTypeId!);\n super.setValue(index, value);\n }\n\n // @ts-ignore\n public addChild(child: Builder, name = `${this.children.length}`) {\n const childTypeId = this.children.push(child);\n const { type: { children, mode, typeIds } } = this;\n const fields = [...children, new Field(name, child.type)];\n this.type = new Union(mode, [...typeIds, childTypeId], fields);\n return childTypeId;\n }\n\n /** @ignore */\n // @ts-ignore\n protected _valueToChildTypeId(builder: UnionBuilder, value: any, offset: number): number {\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}\n\n/** @ignore */\nexport class SparseUnionBuilder extends UnionBuilder {}\n/** @ignore */\nexport class DenseUnionBuilder extends UnionBuilder {\n\n protected _offsets: DataBufferBuilder;\n\n constructor(options: UnionBuilderOptions) {\n super(options);\n this._offsets = new DataBufferBuilder(new Int32Array(0));\n }\n\n /** @ignore */\n public setValue(index: number, value: T['TValue'], childTypeId?: number) {\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}\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.\n\nimport { Data } from '../data';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { encodeUtf8 } from '../util/utf8';\nimport { VectorType } from '../interfaces';\nimport { float64ToUint16 } from '../util/math';\nimport { toArrayBufferView } from '../util/buffer';\nimport { Type, UnionMode, Precision, DateUnit, TimeUnit, IntervalUnit } from '../enum';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface SetVisitor extends Visitor {\n visit(node: T, index: number, value: T['TValue']): void;\n visitMany(nodes: T[], indices: number[], values: T['TValue'][]): void[];\n getVisitFn(node: T): (vector: VectorType, index: number, value: VectorType['TValue']) => void;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, index: number, value: VectorType['TValue']) => void;\n visitNull (vector: VectorType, index: number, value: T['TValue']): void;\n visitBool (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitInt64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUint64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat16 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat32 (vector: VectorType, index: number, value: T['TValue']): void;\n visitFloat64 (vector: VectorType, index: number, value: T['TValue']): void;\n visitUtf8 (vector: VectorType, index: number, value: T['TValue']): void;\n visitBinary (vector: VectorType, index: number, value: T['TValue']): void;\n visitFixedSizeBinary (vector: VectorType, index: number, value: T['TValue']): void;\n visitDate (vector: VectorType, index: number, value: T['TValue']): void;\n visitDateDay (vector: VectorType, index: number, value: T['TValue']): void;\n visitDateMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestamp (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampSecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampMicrosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimestampNanosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTime (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeSecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeMillisecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeMicrosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitTimeNanosecond (vector: VectorType, index: number, value: T['TValue']): void;\n visitDecimal (vector: VectorType, index: number, value: T['TValue']): void;\n visitList (vector: VectorType, index: number, value: T['TValue']): void;\n visitStruct (vector: VectorType, index: number, value: T['TValue']): void;\n visitUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitDenseUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitSparseUnion (vector: VectorType, index: number, value: T['TValue']): void;\n visitDictionary (vector: VectorType, index: number, value: T['TValue']): void;\n visitInterval (vector: VectorType, index: number, value: T['TValue']): void;\n visitIntervalDayTime (vector: VectorType, index: number, value: T['TValue']): void;\n visitIntervalYearMonth (vector: VectorType, index: number, value: T['TValue']): void;\n visitFixedSizeList (vector: VectorType, index: number, value: T['TValue']): void;\n visitMap (vector: VectorType, index: number, value: T['TValue']): void;\n}\n\n/** @ignore */\nexport class SetVisitor extends Visitor {}\n\n/** @ignore */\nconst setEpochMsToDays = (data: Int32Array, index: number, epochMs: number) => { data[index] = (epochMs / 86400000) | 0; };\n/** @ignore */\nconst setEpochMsToMillisecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = (epochMs % 4294967296) | 0;\n data[index + 1] = (epochMs / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToMicrosecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = ((epochMs * 1000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000) / 4294967296) | 0;\n};\n/** @ignore */\nconst setEpochMsToNanosecondsLong = (data: Int32Array, index: number, epochMs: number) => {\n data[index] = ((epochMs * 1000000) % 4294967296) | 0;\n data[index + 1] = ((epochMs * 1000000) / 4294967296) | 0;\n};\n\n/** @ignore */\nconst setVariableWidthBytes = (values: Uint8Array, valueOffsets: Int32Array, index: number, value: Uint8Array) => {\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\n/** @ignore */\nconst setBool = ({ offset, values }: VectorType, index: number, val: boolean) => {\n const idx = offset + index;\n val ? (values[idx >> 3] |= (1 << (idx % 8))) // true\n : (values[idx >> 3] &= ~(1 << (idx % 8))); // false\n\n};\n\n/** @ignore */ type Numeric1X = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32 | Float32 | Float64;\n/** @ignore */ type Numeric2X = Int64 | Uint64;\n\n/** @ignore */\nconst setDateDay = ({ values }: VectorType, index: number, value: T['TValue']): void => { setEpochMsToDays(values, index, value.valueOf()); };\n/** @ignore */\nconst setDateMillisecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { setEpochMsToMillisecondsLong(values, index * 2, value.valueOf()); };\n/** @ignore */\nconst setNumeric = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setFloat16 = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = float64ToUint16(value); };\n/** @ignore */\nconst setNumericX2 = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (typeof value) {\n case 'bigint': vector.values64[index] = value; break;\n case 'number': vector.values[index * vector.stride] = value; break;\n default:\n const val = value as T['TArray'];\n const { stride, ArrayType } = vector;\n const long = toArrayBufferView(ArrayType, val);\n vector.values.set(long.subarray(0, stride), stride * index);\n }\n};\n/** @ignore */\nconst setFixedSizeBinary = ({ stride, values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, stride), stride * index); };\n\n/** @ignore */\nconst setBinary = ({ values, valueOffsets }: VectorType, index: number, value: T['TValue']) => setVariableWidthBytes(values, valueOffsets, index, value);\n/** @ignore */\nconst setUtf8 = ({ values, valueOffsets }: VectorType, index: number, value: T['TValue']) => {\n setVariableWidthBytes(values, valueOffsets, index, encodeUtf8(value));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setInt = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.bitWidth < 64\n ? setNumeric(vector as VectorType, index, value as Numeric1X['TValue'])\n : setNumericX2(vector as VectorType, index, value as Numeric2X['TValue']);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setFloat = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.precision !== Precision.HALF\n ? setNumeric(vector as VectorType, index, value)\n : setFloat16(vector as VectorType, index, value);\n};\n\n/* istanbul ignore next */\nconst setDate = (vector: VectorType, index: number, value: T['TValue']): void => {\n vector.type.unit === DateUnit.DAY\n ? setDateDay(vector as VectorType, index, value)\n : setDateMillisecond(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setTimestampSecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value / 1000);\n/** @ignore */\nconst setTimestampMillisecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampMicrosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToMicrosecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampNanosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => setEpochMsToNanosecondsLong(values, index * 2, value);\n/* istanbul ignore next */\n/** @ignore */\nconst setTimestamp = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimestampSecond(vector as VectorType, index, value);\n case TimeUnit.MILLISECOND: return setTimestampMillisecond(vector as VectorType, index, value);\n case TimeUnit.MICROSECOND: return setTimestampMicrosecond(vector as VectorType, index, value);\n case TimeUnit.NANOSECOND: return setTimestampNanosecond(vector as VectorType, index, value);\n }\n};\n\n/** @ignore */\nconst setTimeSecond = ({ values, stride }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMillisecond = ({ values, stride }: VectorType, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMicrosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setTimeNanosecond = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/* istanbul ignore next */\n/** @ignore */\nconst setTime = (vector: VectorType, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimeSecond(vector as VectorType, index, value as TimeSecond['TValue']);\n case TimeUnit.MILLISECOND: return setTimeMillisecond(vector as VectorType, index, value as TimeMillisecond['TValue']);\n case TimeUnit.MICROSECOND: return setTimeMicrosecond(vector as VectorType, index, value as TimeMicrosecond['TValue']);\n case TimeUnit.NANOSECOND: return setTimeNanosecond(vector as VectorType, index, value as TimeNanosecond['TValue']);\n }\n};\n\n/** @ignore */\nconst setDecimal = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 4), 4 * index); };\n\n/** @ignore */\nconst setList = (vector: VectorType, index: number, value: T['TValue']): void => {\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\n/** @ignore */\nconst setMap = (vector: VectorType, index: number, value: T['TValue']) => {\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\n/** @ignore */ const _setStructArrayValue = (o: number, v: any[]) => (c: Vector | null, _: Field, i: number) => c && c.set(o, v[i]);\n/** @ignore */ const _setStructVectorValue = (o: number, v: Vector) => (c: Vector | null, _: Field, i: number) => c && c.set(o, v.get(i));\n/** @ignore */ const _setStructMapValue = (o: number, v: Map) => (c: Vector | null, f: Field, _: number) => c && c.set(o, v.get(f.name));\n/** @ignore */ const _setStructObjectValue = (o: number, v: { [key: string]: any }) => (c: Vector | null, f: Field, _: number) => c && c.set(o, v[f.name]);\n/** @ignore */\nconst setStruct = (vector: VectorType, index: number, value: T['TValue']) => {\n\n const setValue = value instanceof Map ? _setStructMapValue(index, value) :\n value instanceof Vector ? _setStructVectorValue(index, value) :\n Array.isArray(value) ? _setStructArrayValue(index, value) :\n _setStructObjectValue(index, value) ;\n\n vector.type.children.forEach((f: Field, i: number) => setValue(vector.getChildAt(i), f, i));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setUnion = <\n V extends VectorType | VectorType | VectorType\n>(vector: V, index: number, value: V['TValue']) => {\n vector.type.mode === UnionMode.Dense ?\n setDenseUnion(vector as VectorType, index, value) :\n setSparseUnion(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setDenseUnion = (vector: VectorType, index: number, value: T['TValue']): void => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(vector.valueOffsets[index], value);\n};\n\n/** @ignore */\nconst setSparseUnion = (vector: VectorType, index: number, value: T['TValue']): void => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n child && child.set(index, value);\n};\n\n/** @ignore */\nconst setDictionary = (vector: VectorType, index: number, value: T['TValue']): void => {\n const key = vector.getKey(index);\n if (key !== null) {\n vector.setValue(key, value);\n }\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setIntervalValue = (vector: VectorType, index: number, value: T['TValue']): void => {\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? setIntervalDayTime(vector as VectorType, index, value)\n : setIntervalYearMonth(vector as VectorType, index, value);\n};\n\n/** @ignore */\nconst setIntervalDayTime = ({ values }: VectorType, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setIntervalYearMonth = ({ values }: VectorType, index: number, value: T['TValue']): void => { values[index] = (value[0] * 12) + (value[1] % 12); };\n\n/** @ignore */\nconst setFixedSizeList = (vector: VectorType, index: number, value: T['TValue']): void => {\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};\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\n/** @ignore */\nexport const instance = new SetVisitor();\n","// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS7624605610262437867 from './Schema';\n/**\n * ----------------------------------------------------------------------\n * Arrow File metadata\n *\n *\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Footer {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Footer\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Footer {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param Footer= obj\n * @returns Footer\n */\n static getRootAsFooter(bb: flatbuffers.ByteBuffer, obj?: Footer): Footer {\n return (obj || new Footer).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns org.apache.arrow.flatbuf.MetadataVersion\n */\n version(): NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion {\n let offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1;\n }\n\n /**\n * @param org.apache.arrow.flatbuf.Schema= obj\n * @returns org.apache.arrow.flatbuf.Schema|null\n */\n schema(obj?: NS7624605610262437867.org.apache.arrow.flatbuf.Schema): NS7624605610262437867.org.apache.arrow.flatbuf.Schema | null {\n let offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new NS7624605610262437867.org.apache.arrow.flatbuf.Schema).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Block= obj\n * @returns org.apache.arrow.flatbuf.Block\n */\n dictionaries(index: number, obj?: org.apache.arrow.flatbuf.Block): org.apache.arrow.flatbuf.Block | null {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new org.apache.arrow.flatbuf.Block).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n dictionariesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param org.apache.arrow.flatbuf.Block= obj\n * @returns org.apache.arrow.flatbuf.Block\n */\n recordBatches(index: number, obj?: org.apache.arrow.flatbuf.Block): org.apache.arrow.flatbuf.Block | null {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? (obj || new org.apache.arrow.flatbuf.Block).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n recordBatchesLength(): number {\n let offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFooter(builder: flatbuffers.Builder) {\n builder.startObject(4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param org.apache.arrow.flatbuf.MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion) {\n builder.addFieldInt16(0, version, NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset schemaOffset\n */\n static addSchema(builder: flatbuffers.Builder, schemaOffset: flatbuffers.Offset) {\n builder.addFieldOffset(1, schemaOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset dictionariesOffset\n */\n static addDictionaries(builder: flatbuffers.Builder, dictionariesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(2, dictionariesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startDictionariesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(24, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset recordBatchesOffset\n */\n static addRecordBatches(builder: flatbuffers.Builder, recordBatchesOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, recordBatchesOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startRecordBatchesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(24, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFooter(builder: flatbuffers.Builder): flatbuffers.Offset {\n let offset = builder.endObject();\n return offset;\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishFooterBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset);\n }\n\n static createFooter(builder: flatbuffers.Builder, version: NS7624605610262437867.org.apache.arrow.flatbuf.MetadataVersion, schemaOffset: flatbuffers.Offset, dictionariesOffset: flatbuffers.Offset, recordBatchesOffset: flatbuffers.Offset): flatbuffers.Offset {\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 return Footer.endFooter(builder);\n }\n }\n}\n/**\n * @constructor\n */\nexport namespace org.apache.arrow.flatbuf {\n export class Block {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns Block\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): Block {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\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(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos);\n }\n\n /**\n * Length of the metadata\n *\n * @returns number\n */\n metaDataLength(): number {\n return this.bb!.readInt32(this.bb_pos + 8);\n }\n\n /**\n * Length of the data (this is aligned so there can be a gap between this and\n * the metatdata).\n *\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n return this.bb!.readInt64(this.bb_pos + 16);\n }\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: flatbuffers.Builder, offset: flatbuffers.Long, metaDataLength: number, bodyLength: flatbuffers.Long): flatbuffers.Offset {\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\n }\n}\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.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { VectorType, BuilderCtor } from '../interfaces';\nimport { BinaryBuilder } from '../builder/binary';\nimport { BoolBuilder } from '../builder/bool';\nimport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from '../builder/date';\nimport { DecimalBuilder } from '../builder/decimal';\nimport { DictionaryBuilder } from '../builder/dictionary';\nimport { FixedSizeBinaryBuilder } from '../builder/fixedsizebinary';\nimport { FixedSizeListBuilder } from '../builder/fixedsizelist';\nimport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from '../builder/float';\nimport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from '../builder/interval';\nimport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from '../builder/int';\nimport { ListBuilder } from '../builder/list';\nimport { MapBuilder } from '../builder/map';\nimport { NullBuilder } from '../builder/null';\nimport { StructBuilder } from '../builder/struct';\nimport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from '../builder/timestamp';\nimport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from '../builder/time';\nimport { UnionBuilder, DenseUnionBuilder, SparseUnionBuilder } from '../builder/union';\nimport { Utf8Builder } from '../builder/utf8';\n\n/** @ignore */\nexport interface GetBuilderCtor extends Visitor {\n visit(type: T): BuilderCtor;\n visitMany(types: T[]): BuilderCtor[];\n getVisitFn(type: T): () => BuilderCtor;\n getVisitFn(node: VectorType | Data | T): () => BuilderCtor;\n}\n\n/** @ignore */\nexport class GetBuilderCtor extends Visitor {\n public visitNull () { return NullBuilder; }\n public visitBool () { return BoolBuilder; }\n public visitInt () { return IntBuilder; }\n public visitInt8 () { return Int8Builder; }\n public visitInt16 () { return Int16Builder; }\n public visitInt32 () { return Int32Builder; }\n public visitInt64 () { return Int64Builder; }\n public visitUint8 () { return Uint8Builder; }\n public visitUint16 () { return Uint16Builder; }\n public visitUint32 () { return Uint32Builder; }\n public visitUint64 () { return Uint64Builder; }\n public visitFloat () { return FloatBuilder; }\n public visitFloat16 () { return Float16Builder; }\n public visitFloat32 () { return Float32Builder; }\n public visitFloat64 () { return Float64Builder; }\n public visitUtf8 () { return Utf8Builder; }\n public visitBinary () { return BinaryBuilder; }\n public visitFixedSizeBinary () { return FixedSizeBinaryBuilder; }\n public visitDate () { return DateBuilder; }\n public visitDateDay () { return DateDayBuilder; }\n public visitDateMillisecond () { return DateMillisecondBuilder; }\n public visitTimestamp () { return TimestampBuilder; }\n public visitTimestampSecond () { return TimestampSecondBuilder; }\n public visitTimestampMillisecond () { return TimestampMillisecondBuilder; }\n public visitTimestampMicrosecond () { return TimestampMicrosecondBuilder; }\n public visitTimestampNanosecond () { return TimestampNanosecondBuilder; }\n public visitTime () { return TimeBuilder; }\n public visitTimeSecond () { return TimeSecondBuilder; }\n public visitTimeMillisecond () { return TimeMillisecondBuilder; }\n public visitTimeMicrosecond () { return TimeMicrosecondBuilder; }\n public visitTimeNanosecond () { return TimeNanosecondBuilder; }\n public visitDecimal () { return DecimalBuilder; }\n public visitList () { return ListBuilder; }\n public visitStruct () { return StructBuilder; }\n public visitUnion () { return UnionBuilder; }\n public visitDenseUnion () { return DenseUnionBuilder; }\n public visitSparseUnion () { return SparseUnionBuilder; }\n public visitDictionary () { return DictionaryBuilder; }\n public visitInterval () { return IntervalBuilder; }\n public visitIntervalDayTime () { return IntervalDayTimeBuilder; }\n public visitIntervalYearMonth () { return IntervalYearMonthBuilder; }\n public visitFixedSizeList () { return FixedSizeListBuilder; }\n public visitMap () { return MapBuilder; }\n}\n\n/** @ignore */\nexport const instance = new GetBuilderCtor();\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.\n\n/** @ignore */\nexport { Builder, BuilderOptions } from '../builder';\nexport { BoolBuilder } from './bool';\nexport { NullBuilder } from './null';\nexport { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from './date';\nexport { DecimalBuilder } from './decimal';\nexport { DictionaryBuilder } from './dictionary';\nexport { FixedSizeBinaryBuilder } from './fixedsizebinary';\nexport { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from './float';\nexport { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from './int';\nexport { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from './time';\nexport { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from './timestamp';\nexport { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from './interval';\nexport { Utf8Builder } from './utf8';\nexport { BinaryBuilder } from './binary';\nexport { ListBuilder } from './list';\nexport { FixedSizeListBuilder } from './fixedsizelist';\nexport { MapBuilder } from './map';\nexport { StructBuilder } from './struct';\nexport { UnionBuilder, SparseUnionBuilder, DenseUnionBuilder } from './union';\n\nimport { Type } from '../enum';\nimport { Field } from '../schema';\nimport { DataType } from '../type';\nimport { Utf8Builder } from './utf8';\nimport { BuilderType as B } from '../interfaces';\nimport { Builder, BuilderOptions } from '../builder';\nimport { instance as setVisitor } from '../visitor/set';\nimport { instance as getBuilderConstructor } from '../visitor/builderctor';\n\n/** @nocollapse */\nBuilder.new = newBuilder;\n\nfunction newBuilder(options: BuilderOptions): B {\n\n const type = options.type;\n const builder = new (getBuilderConstructor.getVisitFn(type)())(options) as Builder;\n\n if (type.children && type.children.length > 0) {\n\n const children = options['children'] || [] as BuilderOptions[];\n const defaultOptions = { 'nullValues': options['nullValues'] };\n const getChildOptions = Array.isArray(children)\n ? ((_: Field, i: number) => children[i] || defaultOptions)\n : (({ name }: Field) => children[name] || defaultOptions);\n\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\n return builder as B;\n}\n\n(Object.keys(Type) as any[])\n .map((T: any) => Type[T] as any)\n .filter((T: any): T is Type => typeof T === 'number' && T !== Type.NONE)\n .forEach((typeId) => {\n const BuilderCtor = getBuilderConstructor.visit(typeId);\n BuilderCtor.prototype._setValue = setVisitor.getVisitFn(typeId);\n });\n\n(Utf8Builder.prototype as any)._setValue = setVisitor.visitBinary;\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.\n\n/* tslint:disable:class-name */\n\nimport * as File_ from '../../fb/File';\nimport { flatbuffers } from 'flatbuffers';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Block = File_.org.apache.arrow.flatbuf.Block;\nimport _Footer = File_.org.apache.arrow.flatbuf.Footer;\n\nimport { Schema } from '../../schema';\nimport { MetadataVersion } from '../../enum';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\n\n/** @ignore */\nclass Footer_ {\n\n /** @nocollapse */\n public static decode(buf: ArrayBufferViewInput) {\n buf = new ByteBuffer(toUint8Array(buf));\n const footer = _Footer.getRootAsFooter(buf);\n const schema = Schema.decode(footer.schema()!);\n return new OffHeapFooter(schema, footer) as Footer_;\n }\n\n /** @nocollapse */\n public static encode(footer: Footer_) {\n\n const b: Builder = new Builder();\n const schemaOffset = Schema.encode(b, footer.schema);\n\n _Footer.startRecordBatchesVector(b, footer.numRecordBatches);\n [...footer.recordBatches()].slice().reverse().forEach((rb) => FileBlock.encode(b, rb));\n const recordBatchesOffset = b.endVector();\n\n _Footer.startDictionariesVector(b, footer.numDictionaries);\n [...footer.dictionaryBatches()].slice().reverse().forEach((db) => FileBlock.encode(b, db));\n\n const dictionaryBatchesOffset = b.endVector();\n\n _Footer.startFooter(b);\n _Footer.addSchema(b, schemaOffset);\n _Footer.addVersion(b, MetadataVersion.V4);\n _Footer.addRecordBatches(b, recordBatchesOffset);\n _Footer.addDictionaries(b, dictionaryBatchesOffset);\n _Footer.finishFooterBuffer(b, _Footer.endFooter(b));\n\n return b.asUint8Array();\n }\n\n // @ts-ignore\n protected _recordBatches: FileBlock[];\n // @ts-ignore\n protected _dictionaryBatches: FileBlock[];\n public get numRecordBatches() { return this._recordBatches.length; }\n public get numDictionaries() { return this._dictionaryBatches.length; }\n\n constructor(public schema: Schema,\n public version: MetadataVersion = MetadataVersion.V4,\n recordBatches?: FileBlock[], dictionaryBatches?: FileBlock[]) {\n recordBatches && (this._recordBatches = recordBatches);\n dictionaryBatches && (this._dictionaryBatches = dictionaryBatches);\n }\n\n public *recordBatches(): Iterable {\n for (let block, i = -1, n = this.numRecordBatches; ++i < n;) {\n if (block = this.getRecordBatch(i)) { yield block; }\n }\n }\n\n public *dictionaryBatches(): Iterable {\n for (let block, i = -1, n = this.numDictionaries; ++i < n;) {\n if (block = this.getDictionaryBatch(i)) { yield block; }\n }\n }\n\n public getRecordBatch(index: number) {\n return index >= 0\n && index < this.numRecordBatches\n && this._recordBatches[index] || null;\n }\n\n public getDictionaryBatch(index: number) {\n return index >= 0\n && index < this.numDictionaries\n && this._dictionaryBatches[index] || null;\n }\n}\n\nexport { Footer_ as Footer };\n\n/** @ignore */\nclass OffHeapFooter extends Footer_ {\n\n public get numRecordBatches() { return this._footer.recordBatchesLength(); }\n public get numDictionaries() { return this._footer.dictionariesLength(); }\n\n constructor(schema: Schema, protected _footer: _Footer) {\n super(schema, _footer.version());\n }\n\n public getRecordBatch(index: number) {\n if (index >= 0 && index < this.numRecordBatches) {\n const fileBlock = this._footer.recordBatches(index);\n if (fileBlock) { return FileBlock.decode(fileBlock); }\n }\n return null;\n }\n\n public getDictionaryBatch(index: number) {\n if (index >= 0 && index < this.numDictionaries) {\n const fileBlock = this._footer.dictionaries(index);\n if (fileBlock) { return FileBlock.decode(fileBlock); }\n }\n return null;\n }\n}\n\n/** @ignore */\nexport class FileBlock {\n\n /** @nocollapse */\n public static decode(block: _Block) {\n return new FileBlock(block.metaDataLength(), block.bodyLength(), block.offset());\n }\n\n /** @nocollapse */\n public static encode(b: Builder, fileBlock: FileBlock) {\n const { metaDataLength } = fileBlock;\n const offset = new Long(fileBlock.offset, 0);\n const bodyLength = new Long(fileBlock.bodyLength, 0);\n return _Block.createBlock(b, offset, metaDataLength, bodyLength);\n }\n\n public offset: number;\n public bodyLength: number;\n public metaDataLength: number;\n\n constructor(metaDataLength: number, bodyLength: Long | number, offset: Long | number) {\n this.metaDataLength = metaDataLength;\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n }\n}\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.\n\nimport streamAdapters from './adapters';\nimport { decodeUtf8 } from '../util/utf8';\nimport { ITERATOR_DONE, Readable, Writable, AsyncQueue } from './interfaces';\nimport { toUint8Array, joinUint8Arrays, ArrayBufferViewInput } from '../util/buffer';\n\nimport {\n isPromise, isFetchResponse,\n isIterable, isAsyncIterable,\n isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */\nexport type WritableSink = Writable | WritableStream | NodeJS.WritableStream | null;\n/** @ignore */\nexport type ReadableSource = Readable | PromiseLike | AsyncIterable | ReadableStream | NodeJS.ReadableStream | null;\n\n/** @ignore */\nexport class AsyncByteQueue extends AsyncQueue {\n public write(value: ArrayBufferViewInput | Uint8Array) {\n if ((value = toUint8Array(value)).byteLength > 0) {\n return super.write(value as T);\n }\n }\n public toString(sync: true): string;\n public toString(sync?: false): Promise;\n public toString(sync = false) {\n return sync\n ? decodeUtf8(this.toUint8Array(true))\n : this.toUint8Array(false).then(decodeUtf8);\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise;\n public toUint8Array(sync = false) {\n return sync ? joinUint8Arrays(this._values as any[])[0] : (async () => {\n let buffers = [], byteLength = 0;\n for await (const chunk of this) {\n buffers.push(chunk);\n byteLength += chunk.byteLength;\n }\n return joinUint8Arrays(buffers, byteLength)[0];\n })();\n }\n}\n\n/** @ignore */\nexport class ByteStream implements IterableIterator {\n // @ts-ignore\n private source: ByteStreamSource;\n constructor(source?: Iterable | ArrayBufferViewInput) {\n if (source) {\n this.source = new ByteStreamSource(streamAdapters.fromIterable(source));\n }\n }\n [Symbol.iterator]() { return this; }\n public next(value?: any) { return this.source.next(value); }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public peek(size?: number | null) { return this.source.peek(size); }\n public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\nexport class AsyncByteStream implements Readable, AsyncIterableIterator {\n // @ts-ignore\n private source: AsyncByteStreamSource;\n constructor(source?: PromiseLike | Response | ReadableStream | NodeJS.ReadableStream | AsyncIterable | Iterable) {\n if (source instanceof AsyncByteStream) {\n this.source = (source as AsyncByteStream).source;\n } else if (source instanceof AsyncByteQueue) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isReadableNodeStream(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromNodeStream(source));\n } else if (isReadableDOMStream(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source));\n } else if (isFetchResponse(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromDOMStream(source.body!));\n } else if (isIterable(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromIterable(source));\n } else if (isPromise(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isAsyncIterable(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n }\n }\n [Symbol.asyncIterator]() { return this; }\n public next(value?: any) { return this.source.next(value); }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public get closed(): Promise { return this.source.closed; }\n public cancel(reason?: any) { return this.source.cancel(reason); }\n public peek(size?: number | null) { return this.source.peek(size); }\n public read(size?: number | null) { return this.source.read(size); }\n}\n\n/** @ignore */\ninterface ByteStreamSourceIterator extends IterableIterator {\n next(value?: { cmd: 'peek' | 'read', size?: number | null }): IteratorResult;\n}\n\n/** @ignore */\ninterface AsyncByteStreamSourceIterator extends AsyncIterableIterator {\n next(value?: { cmd: 'peek' | 'read', size?: number | null }): Promise>;\n}\n\n/** @ignore */\nclass ByteStreamSource {\n constructor(protected source: ByteStreamSourceIterator) {}\n public cancel(reason?: any) { this.return(reason); }\n public peek(size?: number | null): T | null { return this.next(size, 'peek').value; }\n public read(size?: number | null): T | null { return this.next(size, 'read').value; }\n public next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return this.source.next({ cmd, size }); }\n public throw(value?: any) { return Object.create((this.source.throw && this.source.throw(value)) || ITERATOR_DONE); }\n public return(value?: any) { return Object.create((this.source.return && this.source.return(value)) || ITERATOR_DONE); }\n}\n\n/** @ignore */\nclass AsyncByteStreamSource implements Readable {\n\n private _closedPromise: Promise;\n private _closedPromiseResolve?: (value?: any) => void;\n constructor (protected source: ByteStreamSourceIterator | AsyncByteStreamSourceIterator) {\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n public async cancel(reason?: any) { await this.return(reason); }\n public get closed(): Promise { return this._closedPromise; }\n public async read(size?: number | null): Promise { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise { return (await this.next(size, 'peek')).value; }\n public async next(size?: number | null, cmd: 'peek' | 'read' = 'read') { return (await this.source.next({ cmd, size })); }\n public async throw(value?: any) {\n const result = (this.source.throw && await this.source.throw(value)) || ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n public async return(value?: any) {\n const result = (this.source.return && await this.source.return(value)) || ITERATOR_DONE;\n this._closedPromiseResolve && this._closedPromiseResolve();\n this._closedPromiseResolve = undefined;\n return Object.create(result);\n }\n}\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.\n\nimport { FileHandle } from './interfaces';\nimport { ByteStream, AsyncByteStream } from './stream';\nimport { ArrayBufferViewInput, toUint8Array } from '../util/buffer';\n\n/** @ignore */\nexport class RandomAccessFile extends ByteStream {\n public size: number;\n public position: number = 0;\n protected buffer: Uint8Array | null;\n constructor(buffer: ArrayBufferViewInput, byteLength?: number) {\n super();\n this.buffer = toUint8Array(buffer);\n this.size = typeof byteLength === 'undefined' ? this.buffer.byteLength : byteLength;\n }\n public readInt32(position: number) {\n const { buffer, byteOffset } = this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n public seek(position: number) {\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n public read(nBytes?: number | null) {\n const { buffer, size, position } = this;\n if (buffer && position < size) {\n if (typeof nBytes !== 'number') { nBytes = Infinity; }\n this.position = Math.min(size,\n position + Math.min(size - position, nBytes));\n return buffer.subarray(position, this.position);\n }\n return null;\n }\n public readAt(position: number, nBytes: number) {\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 public close() { this.buffer && (this.buffer = null); }\n public throw(value?: any) { this.close(); return { done: true, value }; }\n public return(value?: any) { this.close(); return { done: true, value }; }\n}\n\n/** @ignore */\nexport class AsyncRandomAccessFile extends AsyncByteStream {\n // @ts-ignore\n public size: number;\n public position: number = 0;\n public _pending?: Promise;\n protected _handle: FileHandle | null;\n constructor(file: FileHandle, byteLength?: number) {\n super();\n this._handle = file;\n if (typeof byteLength === 'number') {\n this.size = byteLength;\n } else {\n this._pending = (async () => {\n this.size = (await file.stat()).size;\n delete this._pending;\n })();\n }\n }\n public async readInt32(position: number) {\n const { buffer, byteOffset } = await this.readAt(position, 4);\n return new DataView(buffer, byteOffset).getInt32(0, true);\n }\n public async seek(position: number) {\n this._pending && await this._pending;\n this.position = Math.min(position, this.size);\n return position < this.size;\n }\n public async read(nBytes?: number | null) {\n this._pending && await this._pending;\n const { _handle: file, size, position } = this;\n if (file && position < size) {\n if (typeof nBytes !== 'number') { nBytes = Infinity; }\n let pos = position, offset = 0, bytesRead = 0;\n let end = Math.min(size, pos + Math.min(size - pos, nBytes));\n let 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 public async readAt(position: number, nBytes: number) {\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 public async close() { const f = this._handle; this._handle = null; f && await f.close(); }\n public async throw(value?: any) { await this.close(); return { done: true, value }; }\n public async return(value?: any) { await this.close(); return { done: true, value }; }\n}\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.\n\n/** @ignore */\nconst carryBit16 = 1 << 16;\n\n/** @ignore */\nfunction intAsHex(value: number): string {\n if (value < 0) {\n value = 0xFFFFFFFF + value + 1;\n }\n return `0x${value.toString(16)}`;\n}\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\n/** @ignore */\nexport class BaseInt64 {\n constructor (protected buffer: Uint32Array) {}\n\n public high(): number { return this.buffer[1]; }\n public low (): number { return this.buffer[0]; }\n\n protected _times(other: BaseInt64) {\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\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\n let product = L[3] * R[3];\n this.buffer[0] = product & 0xFFFF;\n\n let sum = product >>> 16;\n\n product = L[2] * R[3];\n sum += product;\n\n product = (L[3] * R[2]) >>> 0;\n sum += product;\n\n this.buffer[0] += sum << 16;\n\n this.buffer[1] = (sum >>> 0 < product ? carryBit16 : 0);\n\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\n return this;\n }\n\n protected _plus(other: BaseInt64) {\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\n public lessThan(other: BaseInt64): boolean {\n return this.buffer[1] < other.buffer[1] ||\n (this.buffer[1] === other.buffer[1] && this.buffer[0] < other.buffer[0]);\n }\n\n public equals(other: BaseInt64): boolean {\n return this.buffer[1] === other.buffer[1] && this.buffer[0] == other.buffer[0];\n }\n\n public greaterThan(other: BaseInt64): boolean {\n return other.lessThan(this);\n }\n\n public hex(): string {\n return `${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n}\n\n/** @ignore */\nexport class Uint64 extends BaseInt64 {\n public times(other: Uint64): Uint64 {\n this._times(other);\n return this;\n }\n\n public plus(other: Uint64): Uint64 {\n this._plus(other);\n return this;\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(2)): Uint64 {\n return Uint64.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(2)): Uint64 {\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\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(2)): Uint64 {\n const length = str.length;\n\n let 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\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n\n return out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\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\n /** @nocollapse */\n public static multiply(left: Uint64, right: Uint64): Uint64 {\n let rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Uint64, right: Uint64): Uint64 {\n let rtrn = new Uint64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\n\n/** @ignore */\nexport class Int64 extends BaseInt64 {\n public negate(): Int64 {\n this.buffer[0] = ~this.buffer[0] + 1;\n this.buffer[1] = ~this.buffer[1];\n\n if (this.buffer[0] == 0) { ++this.buffer[1]; }\n return this;\n }\n\n public times(other: Int64): Int64 {\n this._times(other);\n return this;\n }\n\n public plus(other: Int64): Int64 {\n this._plus(other);\n return this;\n }\n\n public lessThan(other: Int64): boolean {\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\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(2)): Int64 {\n return Int64.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(2)): Int64 {\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\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(2)): Int64 {\n // TODO: Assert that out_buffer is 0 and length = 2\n const negate = str.startsWith('-');\n const length = str.length;\n\n let 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\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n return negate ? out.negate() : out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\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\n /** @nocollapse */\n public static multiply(left: Int64, right: Int64): Int64 {\n let rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Int64, right: Int64): Int64 {\n let rtrn = new Int64(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n}\n\n/** @ignore */\nexport class Int128 {\n constructor (private buffer: Uint32Array) {\n // buffer[3] MSB (high)\n // buffer[2]\n // buffer[1]\n // buffer[0] LSB (low)\n }\n\n public high(): Int64 {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n }\n\n public low(): Int64 {\n return new Int64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset, 2));\n }\n\n public negate(): Int128 {\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\n if (this.buffer[0] == 0) { ++this.buffer[1]; }\n if (this.buffer[1] == 0) { ++this.buffer[2]; }\n if (this.buffer[2] == 0) { ++this.buffer[3]; }\n return this;\n }\n\n public times(other: Int128): Int128 {\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\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\n let product = Uint64.multiply(L3, R3);\n this.buffer[0] = product.low();\n\n let sum = new Uint64(new Uint32Array([product.high(), 0]));\n\n product = Uint64.multiply(L2, R3);\n sum.plus(product);\n\n product = Uint64.multiply(L3, R2);\n sum.plus(product);\n\n this.buffer[1] = sum.low();\n\n this.buffer[3] = (sum.lessThan(product) ? 1 : 0);\n\n this.buffer[2] = sum.high();\n let high = new Uint64(new Uint32Array(this.buffer.buffer, this.buffer.byteOffset + 8, 2));\n\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\n return this;\n }\n\n public plus(other: Int128): Int128 {\n let 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\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\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\n return this;\n }\n\n public hex(): string {\n return `${intAsHex(this.buffer[3])} ${intAsHex(this.buffer[2])} ${intAsHex(this.buffer[1])} ${intAsHex(this.buffer[0])}`;\n }\n\n /** @nocollapse */\n public static multiply(left: Int128, right: Int128): Int128 {\n let rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.times(right);\n }\n\n /** @nocollapse */\n public static add(left: Int128, right: Int128): Int128 {\n let rtrn = new Int128(new Uint32Array(left.buffer));\n return rtrn.plus(right);\n }\n\n /** @nocollapse */\n public static from(val: any, out_buffer = new Uint32Array(4)): Int128 {\n return Int128.fromString(\n typeof(val) === 'string' ? val : val.toString(),\n out_buffer\n );\n }\n\n /** @nocollapse */\n public static fromNumber(num: number, out_buffer = new Uint32Array(4)): Int128 {\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\n /** @nocollapse */\n public static fromString(str: string, out_buffer = new Uint32Array(4)): Int128 {\n // TODO: Assert that out_buffer is 0 and length = 4\n const negate = str.startsWith('-');\n const length = str.length;\n\n let 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\n out.times(multiple);\n out.plus(chunk);\n\n posn += group;\n }\n\n return negate ? out.negate() : out;\n }\n\n /** @nocollapse */\n public static convertArray(values: (string|number)[]): Uint32Array {\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}\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.\n\nimport { Data } from '../data';\nimport * as type from '../type';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { packBools } from '../util/bit';\nimport { encodeUtf8 } from '../util/utf8';\nimport { Int64, Int128 } from '../util/int';\nimport { UnionMode, DateUnit } from '../enum';\nimport { toArrayBufferView } from '../util/buffer';\nimport { BufferRegion, FieldNode } from '../ipc/metadata/message';\n\n/** @ignore */\nexport interface VectorLoader extends Visitor {\n visit(node: Field | T): Data;\n visitMany(nodes: (Field | T)[]): Data[];\n}\n\n/** @ignore */\nexport class VectorLoader extends Visitor {\n private bytes: Uint8Array;\n private nodes: FieldNode[];\n private nodesIndex: number = -1;\n private buffers: BufferRegion[];\n private buffersIndex: number = -1;\n private dictionaries: Map>;\n constructor(bytes: Uint8Array, nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map>) {\n super();\n this.bytes = bytes;\n this.nodes = nodes;\n this.buffers = buffers;\n this.dictionaries = dictionaries;\n }\n\n public visit(node: Field | T): Data {\n return super.visit(node instanceof Field ? node.type : node);\n }\n\n public visitNull (type: T, { length, } = this.nextFieldNode()) { return Data.Null(type, 0, length); }\n public visitBool (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Bool(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitInt (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Int(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFloat (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Float(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitUtf8 (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Utf8(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n public visitBinary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Binary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.readData(type)); }\n public visitFixedSizeBinary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeBinary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDate (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Date(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTimestamp (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Timestamp(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTime (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Time(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDecimal (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Decimal(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitList (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.List(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n public visitStruct (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Struct(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visitMany(type.children)); }\n public visitUnion (type: T ) { return type.mode === UnionMode.Sparse ? this.visitSparseUnion(type as type.SparseUnion) : this.visitDenseUnion(type as type.DenseUnion); }\n public visitDenseUnion (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.readOffsets(type), this.visitMany(type.children)); }\n public visitSparseUnion (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Union(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readTypeIds(type), this.visitMany(type.children)); }\n public visitDictionary (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Dictionary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type.indices), this.readDictionary(type)); }\n public visitInterval (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Interval(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFixedSizeList (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeList(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visit(type.children[0])); }\n public visitMap (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Map(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readOffsets(type), this.visit(type.children[0])); }\n\n protected nextFieldNode() { return this.nodes[++this.nodesIndex]; }\n protected nextBufferRange() { return this.buffers[++this.buffersIndex]; }\n protected readNullBitmap(type: T, nullCount: number, buffer = this.nextBufferRange()) {\n return nullCount > 0 && this.readData(type, buffer) || new Uint8Array(0);\n }\n protected readOffsets(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readTypeIds(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readData(_type: T, { length, offset } = this.nextBufferRange()) {\n return this.bytes.subarray(offset, offset + length);\n }\n protected readDictionary(type: T): Vector {\n return this.dictionaries.get(type.id)!;\n }\n}\n\n/** @ignore */\nexport class JSONVectorLoader extends VectorLoader {\n private sources: any[][];\n constructor(sources: any[][], nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map>) {\n super(new Uint8Array(0), nodes, buffers, dictionaries);\n this.sources = sources;\n }\n protected readNullBitmap(_type: T, nullCount: number, { offset } = this.nextBufferRange()) {\n return nullCount <= 0 ? new Uint8Array(0) : packBools(this.sources[offset]);\n }\n protected readOffsets(_type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(Int32Array, this.sources[offset]));\n }\n protected readTypeIds(type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, this.sources[offset]));\n }\n protected readData(type: T, { offset } = this.nextBufferRange()) {\n const { sources } = this;\n if (DataType.isTimestamp(type)) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if ((DataType.isInt(type) || DataType.isTime(type)) && type.bitWidth === 64) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if (DataType.isDate(type) && type.unit === DateUnit.MILLISECOND) {\n return toArrayBufferView(Uint8Array, Int64.convertArray(sources[offset] as string[]));\n } else if (DataType.isDecimal(type)) {\n return toArrayBufferView(Uint8Array, Int128.convertArray(sources[offset] as string[]));\n } else if (DataType.isBinary(type) || DataType.isFixedSizeBinary(type)) {\n return binaryDataFromJSON(sources[offset] as string[]);\n } else if (DataType.isBool(type)) {\n return packBools(sources[offset] as number[]);\n } else if (DataType.isUtf8(type)) {\n return encodeUtf8((sources[offset] as string[]).join(''));\n }\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, sources[offset].map((x) => +x)));\n }\n}\n\n/** @ignore */\nfunction binaryDataFromJSON(values: string[]) {\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","// 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.\n\nimport { flatbuffers } from 'flatbuffers';\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport * as Schema_ from '../fb/Schema';\n\nimport * as type from '../type';\nimport { Visitor } from '../visitor';\n\nimport Null = Schema_.org.apache.arrow.flatbuf.Null;\nimport Int = Schema_.org.apache.arrow.flatbuf.Int;\nimport FloatingPoint = Schema_.org.apache.arrow.flatbuf.FloatingPoint;\nimport Binary = Schema_.org.apache.arrow.flatbuf.Binary;\nimport Bool = Schema_.org.apache.arrow.flatbuf.Bool;\nimport Utf8 = Schema_.org.apache.arrow.flatbuf.Utf8;\nimport Decimal = Schema_.org.apache.arrow.flatbuf.Decimal;\nimport Date = Schema_.org.apache.arrow.flatbuf.Date;\nimport Time = Schema_.org.apache.arrow.flatbuf.Time;\nimport Timestamp = Schema_.org.apache.arrow.flatbuf.Timestamp;\nimport Interval = Schema_.org.apache.arrow.flatbuf.Interval;\nimport List = Schema_.org.apache.arrow.flatbuf.List;\nimport Struct = Schema_.org.apache.arrow.flatbuf.Struct_;\nimport Union = Schema_.org.apache.arrow.flatbuf.Union;\nimport DictionaryEncoding = Schema_.org.apache.arrow.flatbuf.DictionaryEncoding;\nimport FixedSizeBinary = Schema_.org.apache.arrow.flatbuf.FixedSizeBinary;\nimport FixedSizeList = Schema_.org.apache.arrow.flatbuf.FixedSizeList;\nimport Map_ = Schema_.org.apache.arrow.flatbuf.Map;\n\n/** @ignore */\nexport interface TypeAssembler extends Visitor {\n visit(node: T, builder: Builder): number | undefined;\n}\n\n/** @ignore */\nexport class TypeAssembler extends Visitor {\n public visit(node: T, builder: Builder): number | undefined {\n return (node == null || builder == null) ? undefined : super.visit(node, builder);\n }\n public visitNull(_node: T, b: Builder) {\n Null.startNull(b);\n return Null.endNull(b);\n }\n public visitInt(node: T, b: Builder) {\n Int.startInt(b);\n Int.addBitWidth(b, node.bitWidth);\n Int.addIsSigned(b, node.isSigned);\n return Int.endInt(b);\n }\n public visitFloat(node: T, b: Builder) {\n FloatingPoint.startFloatingPoint(b);\n FloatingPoint.addPrecision(b, node.precision);\n return FloatingPoint.endFloatingPoint(b);\n }\n public visitBinary(_node: T, b: Builder) {\n Binary.startBinary(b);\n return Binary.endBinary(b);\n }\n public visitBool(_node: T, b: Builder) {\n Bool.startBool(b);\n return Bool.endBool(b);\n }\n public visitUtf8(_node: T, b: Builder) {\n Utf8.startUtf8(b);\n return Utf8.endUtf8(b);\n }\n public visitDecimal(node: T, b: Builder) {\n Decimal.startDecimal(b);\n Decimal.addScale(b, node.scale);\n Decimal.addPrecision(b, node.precision);\n return Decimal.endDecimal(b);\n }\n public visitDate(node: T, b: Builder) {\n Date.startDate(b);\n Date.addUnit(b, node.unit);\n return Date.endDate(b);\n }\n public visitTime(node: T, b: Builder) {\n Time.startTime(b);\n Time.addUnit(b, node.unit);\n Time.addBitWidth(b, node.bitWidth);\n return Time.endTime(b);\n }\n public visitTimestamp(node: T, b: Builder) {\n const timezone = (node.timezone && b.createString(node.timezone)) || undefined;\n Timestamp.startTimestamp(b);\n Timestamp.addUnit(b, node.unit);\n if (timezone !== undefined) {\n Timestamp.addTimezone(b, timezone);\n }\n return Timestamp.endTimestamp(b);\n }\n public visitInterval(node: T, b: Builder) {\n Interval.startInterval(b);\n Interval.addUnit(b, node.unit);\n return Interval.endInterval(b);\n }\n public visitList(_node: T, b: Builder) {\n List.startList(b);\n return List.endList(b);\n }\n public visitStruct(_node: T, b: Builder) {\n Struct.startStruct_(b);\n return Struct.endStruct_(b);\n }\n public visitUnion(node: T, b: Builder) {\n Union.startTypeIdsVector(b, node.typeIds.length);\n const typeIds = Union.createTypeIdsVector(b, node.typeIds);\n Union.startUnion(b);\n Union.addMode(b, node.mode);\n Union.addTypeIds(b, typeIds);\n return Union.endUnion(b);\n }\n public visitDictionary(node: T, b: Builder) {\n const indexType = this.visit(node.indices, b);\n DictionaryEncoding.startDictionaryEncoding(b);\n DictionaryEncoding.addId(b, new Long(node.id, 0));\n DictionaryEncoding.addIsOrdered(b, node.isOrdered);\n if (indexType !== undefined) {\n DictionaryEncoding.addIndexType(b, indexType);\n }\n return DictionaryEncoding.endDictionaryEncoding(b);\n }\n public visitFixedSizeBinary(node: T, b: Builder) {\n FixedSizeBinary.startFixedSizeBinary(b);\n FixedSizeBinary.addByteWidth(b, node.byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(b);\n }\n public visitFixedSizeList(node: T, b: Builder) {\n FixedSizeList.startFixedSizeList(b);\n FixedSizeList.addListSize(b, node.listSize);\n return FixedSizeList.endFixedSizeList(b);\n }\n public visitMap(node: T, b: Builder) {\n Map_.startMap(b);\n Map_.addKeysSorted(b, node.keysSorted);\n return Map_.endMap(b);\n }\n}\n\n/** @ignore */\nexport const instance = new TypeAssembler();\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.\n\nimport { Schema, Field } from '../../schema';\nimport {\n DataType, Dictionary, TimeBitWidth,\n Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n Bool, Null, Int, Float, Date_, Time, Interval, Timestamp, IntBitWidth, Int32, TKeys,\n} from '../../type';\n\nimport { DictionaryBatch, RecordBatch, FieldNode, BufferRegion } from './message';\nimport { TimeUnit, Precision, IntervalUnit, UnionMode, DateUnit } from '../../enum';\n\n/** @ignore */\nexport function schemaFromJSON(_schema: any, dictionaries: Map = new Map()) {\n return new Schema(\n schemaFieldsFromJSON(_schema, dictionaries),\n customMetadataFromJSON(_schema['customMetadata']),\n dictionaries\n );\n}\n\n/** @ignore */\nexport function recordBatchFromJSON(b: any) {\n return new RecordBatch(\n b['count'],\n fieldNodesFromJSON(b['columns']),\n buffersFromJSON(b['columns'])\n );\n}\n\n/** @ignore */\nexport function dictionaryBatchFromJSON(b: any) {\n return new DictionaryBatch(\n recordBatchFromJSON(b['data']),\n b['id'], b['isDelta']\n );\n}\n\n/** @ignore */\nfunction schemaFieldsFromJSON(_schema: any, dictionaries?: Map) {\n return (_schema['fields'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldChildrenFromJSON(_field: any, dictionaries?: Map): Field[] {\n return (_field['children'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldNodesFromJSON(xs: any[]): FieldNode[] {\n return (xs || []).reduce((fieldNodes, column: any) => [\n ...fieldNodes,\n new FieldNode(\n column['count'],\n nullCountFromJSON(column['VALIDITY'])\n ),\n ...fieldNodesFromJSON(column['children'])\n ], [] as FieldNode[]);\n}\n\n/** @ignore */\nfunction buffersFromJSON(xs: any[], buffers: BufferRegion[] = []): BufferRegion[] {\n for (let i = -1, n = (xs || []).length; ++i < n;) {\n const column = xs[i];\n column['VALIDITY'] && buffers.push(new BufferRegion(buffers.length, column['VALIDITY'].length));\n column['TYPE'] && buffers.push(new BufferRegion(buffers.length, column['TYPE'].length));\n column['OFFSET'] && buffers.push(new BufferRegion(buffers.length, column['OFFSET'].length));\n column['DATA'] && buffers.push(new BufferRegion(buffers.length, column['DATA'].length));\n buffers = buffersFromJSON(column['children'], buffers);\n }\n return buffers;\n}\n\n/** @ignore */\nfunction nullCountFromJSON(validity: number[]) {\n return (validity || []).reduce((sum, val) => sum + +(val === 0), 0);\n}\n\n/** @ignore */\nexport function fieldFromJSON(_field: any, dictionaries?: Map) {\n\n let id: number;\n let keys: TKeys | null;\n let field: Field | void;\n let dictMeta: any;\n let type: DataType;\n let dictType: Dictionary;\n\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = _field['dictionary'])) {\n type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries));\n field = new Field(_field['name'], type, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n // tslint:disable\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) as TKeys : new Int32();\n dictionaries.set(id, type = typeFromJSON(_field, fieldChildrenFromJSON(_field, dictionaries)));\n dictType = new Dictionary(type, keys, id, dictMeta['isOrdered']);\n field = new 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) as TKeys : new Int32();\n dictType = new Dictionary(dictionaries.get(id)!, keys, id, dictMeta['isOrdered']);\n field = new Field(_field['name'], dictType, _field['nullable'], customMetadataFromJSON(_field['customMetadata']));\n }\n return field || null;\n}\n\n/** @ignore */\nfunction customMetadataFromJSON(_metadata?: object) {\n return new Map(Object.entries(_metadata || {}));\n}\n\n/** @ignore */\nfunction indexTypeFromJSON(_type: any) {\n return new Int(_type['isSigned'], _type['bitWidth']);\n}\n\n/** @ignore */\nfunction typeFromJSON(f: any, children?: Field[]): DataType {\n\n const typeId = f['type']['name'];\n\n switch (typeId) {\n case 'NONE': return new Null();\n case 'null': return new Null();\n case 'binary': return new Binary();\n case 'utf8': return new Utf8();\n case 'bool': return new Bool();\n case 'list': return new List((children || [])[0]);\n case 'struct': return new Struct(children || []);\n case 'struct_': return new Struct(children || []);\n }\n\n switch (typeId) {\n case 'int': {\n const t = f['type'];\n return new Int(t['isSigned'], t['bitWidth'] as IntBitWidth);\n }\n case 'floatingpoint': {\n const t = f['type'];\n return new Float(Precision[t['precision']] as any);\n }\n case 'decimal': {\n const t = f['type'];\n return new Decimal(t['scale'], t['precision']);\n }\n case 'date': {\n const t = f['type'];\n return new Date_(DateUnit[t['unit']] as any);\n }\n case 'time': {\n const t = f['type'];\n return new Time(TimeUnit[t['unit']] as any, t['bitWidth'] as TimeBitWidth);\n }\n case 'timestamp': {\n const t = f['type'];\n return new Timestamp(TimeUnit[t['unit']] as any, t['timezone']);\n }\n case 'interval': {\n const t = f['type'];\n return new Interval(IntervalUnit[t['unit']] as any);\n }\n case 'union': {\n const t = f['type'];\n return new Union(UnionMode[t['mode']] as any, (t['typeIds'] || []), children || []);\n }\n case 'fixedsizebinary': {\n const t = f['type'];\n return new FixedSizeBinary(t['byteWidth']);\n }\n case 'fixedsizelist': {\n const t = f['type'];\n return new FixedSizeList(t['listSize'], (children || [])[0]);\n }\n case 'map': {\n const t = f['type'];\n return new Map_((children || [])[0], t['keysSorted']);\n }\n }\n throw new Error(`Unrecognized type: \"${typeId}\"`);\n}\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.\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as Schema_ from '../../fb/Schema';\nimport * as Message_ from '../../fb/Message';\n\nimport { Schema, Field } from '../../schema';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\nimport { MessageHeader, MetadataVersion } from '../../enum';\nimport { instance as typeAssembler } from '../../visitor/typeassembler';\nimport { fieldFromJSON, schemaFromJSON, recordBatchFromJSON, dictionaryBatchFromJSON } from './json';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Int = Schema_.org.apache.arrow.flatbuf.Int;\nimport Type = Schema_.org.apache.arrow.flatbuf.Type;\nimport _Field = Schema_.org.apache.arrow.flatbuf.Field;\nimport _Schema = Schema_.org.apache.arrow.flatbuf.Schema;\nimport _Buffer = Schema_.org.apache.arrow.flatbuf.Buffer;\nimport _Message = Message_.org.apache.arrow.flatbuf.Message;\nimport _KeyValue = Schema_.org.apache.arrow.flatbuf.KeyValue;\nimport _FieldNode = Message_.org.apache.arrow.flatbuf.FieldNode;\nimport _Endianness = Schema_.org.apache.arrow.flatbuf.Endianness;\nimport _RecordBatch = Message_.org.apache.arrow.flatbuf.RecordBatch;\nimport _DictionaryBatch = Message_.org.apache.arrow.flatbuf.DictionaryBatch;\nimport _DictionaryEncoding = Schema_.org.apache.arrow.flatbuf.DictionaryEncoding;\n\nimport {\n DataType, Dictionary, TimeBitWidth,\n Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n Bool, Null, Int, Float, Date_, Time, Interval, Timestamp, IntBitWidth, Int32, TKeys,\n} from '../../type';\n\n/**\n * @ignore\n * @private\n **/\nexport class Message {\n\n /** @nocollapse */\n public static fromJSON(msg: any, headerType: T): Message {\n const message = new Message(0, MetadataVersion.V4, headerType);\n message._createHeader = messageHeaderFromJSON(msg, headerType);\n return message;\n }\n\n /** @nocollapse */\n public static decode(buf: ArrayBufferViewInput) {\n buf = new ByteBuffer(toUint8Array(buf));\n const _message = _Message.getRootAsMessage(buf);\n const bodyLength: Long = _message.bodyLength()!;\n const version: MetadataVersion = _message.version();\n const headerType: MessageHeader = _message.headerType();\n const message = new Message(bodyLength, version, headerType);\n message._createHeader = decodeMessageHeader(_message, headerType);\n return message;\n }\n\n /** @nocollapse */\n public static encode(message: Message) {\n let b = new Builder(), headerOffset = -1;\n if (message.isSchema()) {\n headerOffset = Schema.encode(b, message.header() as Schema);\n } else if (message.isRecordBatch()) {\n headerOffset = RecordBatch.encode(b, message.header() as RecordBatch);\n } else if (message.isDictionaryBatch()) {\n headerOffset = DictionaryBatch.encode(b, message.header() as DictionaryBatch);\n }\n _Message.startMessage(b);\n _Message.addVersion(b, MetadataVersion.V4);\n _Message.addHeader(b, headerOffset);\n _Message.addHeaderType(b, message.headerType);\n _Message.addBodyLength(b, new Long(message.bodyLength, 0));\n _Message.finishMessageBuffer(b, _Message.endMessage(b));\n return b.asUint8Array();\n }\n\n /** @nocollapse */\n public static from(header: Schema | RecordBatch | DictionaryBatch, bodyLength = 0) {\n if (header instanceof Schema) {\n return new Message(0, MetadataVersion.V4, MessageHeader.Schema, header);\n }\n if (header instanceof RecordBatch) {\n return new Message(bodyLength, MetadataVersion.V4, MessageHeader.RecordBatch, header);\n }\n if (header instanceof DictionaryBatch) {\n return new Message(bodyLength, MetadataVersion.V4, MessageHeader.DictionaryBatch, header);\n }\n throw new Error(`Unrecognized Message header: ${header}`);\n }\n\n // @ts-ignore\n public body: Uint8Array;\n protected _headerType: T;\n protected _bodyLength: number;\n protected _version: MetadataVersion;\n public get type() { return this.headerType; }\n public get version() { return this._version; }\n public get headerType() { return this._headerType; }\n public get bodyLength() { return this._bodyLength; }\n // @ts-ignore\n protected _createHeader: MessageHeaderDecoder;\n public header() { return this._createHeader(); }\n public isSchema(): this is Message { return this.headerType === MessageHeader.Schema; }\n public isRecordBatch(): this is Message { return this.headerType === MessageHeader.RecordBatch; }\n public isDictionaryBatch(): this is Message { return this.headerType === MessageHeader.DictionaryBatch; }\n\n constructor(bodyLength: Long | number, version: MetadataVersion, headerType: T, header?: any) {\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}\n\n/**\n * @ignore\n * @private\n **/\nexport class RecordBatch {\n protected _length: number;\n protected _nodes: FieldNode[];\n protected _buffers: BufferRegion[];\n public get nodes() { return this._nodes; }\n public get length() { return this._length; }\n public get buffers() { return this._buffers; }\n constructor(length: Long | number, nodes: FieldNode[], buffers: BufferRegion[]) {\n this._nodes = nodes;\n this._buffers = buffers;\n this._length = typeof length === 'number' ? length : length.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class DictionaryBatch {\n\n protected _id: number;\n protected _isDelta: boolean;\n protected _data: RecordBatch;\n public get id() { return this._id; }\n public get data() { return this._data; }\n public get isDelta() { return this._isDelta; }\n public get length(): number { return this.data.length; }\n public get nodes(): FieldNode[] { return this.data.nodes; }\n public get buffers(): BufferRegion[] { return this.data.buffers; }\n\n constructor(data: RecordBatch, id: Long | number, isDelta: boolean = false) {\n this._data = data;\n this._isDelta = isDelta;\n this._id = typeof id === 'number' ? id : id.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class BufferRegion {\n public offset: number;\n public length: number;\n constructor(offset: Long | number, length: Long | number) {\n this.offset = typeof offset === 'number' ? offset : offset.low;\n this.length = typeof length === 'number' ? length : length.low;\n }\n}\n\n/**\n * @ignore\n * @private\n **/\nexport class FieldNode {\n public length: number;\n public nullCount: number;\n constructor(length: Long | number, nullCount: Long | number) {\n this.length = typeof length === 'number' ? length : length.low;\n this.nullCount = typeof nullCount === 'number' ? nullCount : nullCount.low;\n }\n}\n\n/** @ignore */\nfunction messageHeaderFromJSON(message: any, type: MessageHeader) {\n return (() => {\n switch (type) {\n case MessageHeader.Schema: return Schema.fromJSON(message);\n case MessageHeader.RecordBatch: return RecordBatch.fromJSON(message);\n case MessageHeader.DictionaryBatch: return DictionaryBatch.fromJSON(message);\n }\n throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);\n }) as MessageHeaderDecoder;\n}\n\n/** @ignore */\nfunction decodeMessageHeader(message: _Message, type: MessageHeader) {\n return (() => {\n switch (type) {\n case MessageHeader.Schema: return Schema.decode(message.header(new _Schema())!);\n case MessageHeader.RecordBatch: return RecordBatch.decode(message.header(new _RecordBatch())!, message.version());\n case MessageHeader.DictionaryBatch: return DictionaryBatch.decode(message.header(new _DictionaryBatch())!, message.version());\n }\n throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);\n }) as MessageHeaderDecoder;\n}\n\nField['encode'] = encodeField;\nField['decode'] = decodeField;\nField['fromJSON'] = fieldFromJSON;\n\nSchema['encode'] = encodeSchema;\nSchema['decode'] = decodeSchema;\nSchema['fromJSON'] = schemaFromJSON;\n\nRecordBatch['encode'] = encodeRecordBatch;\nRecordBatch['decode'] = decodeRecordBatch;\nRecordBatch['fromJSON'] = recordBatchFromJSON;\n\nDictionaryBatch['encode'] = encodeDictionaryBatch;\nDictionaryBatch['decode'] = decodeDictionaryBatch;\nDictionaryBatch['fromJSON'] = dictionaryBatchFromJSON;\n\nFieldNode['encode'] = encodeFieldNode;\nFieldNode['decode'] = decodeFieldNode;\n\nBufferRegion['encode'] = encodeBufferRegion;\nBufferRegion['decode'] = decodeBufferRegion;\n\ndeclare module '../../schema' {\n namespace Field {\n export { encodeField as encode };\n export { decodeField as decode };\n export { fieldFromJSON as fromJSON };\n }\n namespace Schema {\n export { encodeSchema as encode };\n export { decodeSchema as decode };\n export { schemaFromJSON as fromJSON };\n }\n}\n\ndeclare module './message' {\n namespace RecordBatch {\n export { encodeRecordBatch as encode };\n export { decodeRecordBatch as decode };\n export { recordBatchFromJSON as fromJSON };\n }\n namespace DictionaryBatch {\n export { encodeDictionaryBatch as encode };\n export { decodeDictionaryBatch as decode };\n export { dictionaryBatchFromJSON as fromJSON };\n }\n namespace FieldNode {\n export { encodeFieldNode as encode };\n export { decodeFieldNode as decode };\n }\n namespace BufferRegion {\n export { encodeBufferRegion as encode };\n export { decodeBufferRegion as decode };\n }\n}\n\n/** @ignore */\nfunction decodeSchema(_schema: _Schema, dictionaries: Map = new Map()) {\n const fields = decodeSchemaFields(_schema, dictionaries);\n return new Schema(fields, decodeCustomMetadata(_schema), dictionaries);\n}\n\n/** @ignore */\nfunction decodeRecordBatch(batch: _RecordBatch, version = MetadataVersion.V4) {\n return new RecordBatch(batch.length(), decodeFieldNodes(batch), decodeBuffers(batch, version));\n}\n\n/** @ignore */\nfunction decodeDictionaryBatch(batch: _DictionaryBatch, version = MetadataVersion.V4) {\n return new DictionaryBatch(RecordBatch.decode(batch.data()!, version), batch.id(), batch.isDelta());\n}\n\n/** @ignore */\nfunction decodeBufferRegion(b: _Buffer) {\n return new BufferRegion(b.offset(), b.length());\n}\n\n/** @ignore */\nfunction decodeFieldNode(f: _FieldNode) {\n return new FieldNode(f.length(), f.nullCount());\n}\n\n/** @ignore */\nfunction decodeFieldNodes(batch: _RecordBatch) {\n const nodes = [] as FieldNode[];\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\n/** @ignore */\nfunction decodeBuffers(batch: _RecordBatch, version: MetadataVersion) {\n const bufferRegions = [] as BufferRegion[];\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 < MetadataVersion.V4) {\n b.bb_pos += (8 * (i + 1));\n }\n bufferRegions[++j] = BufferRegion.decode(b);\n }\n }\n return bufferRegions;\n}\n\n/** @ignore */\nfunction decodeSchemaFields(schema: _Schema, dictionaries?: Map) {\n const fields = [] as Field[];\n for (let f, i = -1, j = -1, n = schema.fieldsLength(); ++i < n;) {\n if (f = schema.fields(i)) {\n fields[++j] = Field.decode(f, dictionaries);\n }\n }\n return fields;\n}\n\n/** @ignore */\nfunction decodeFieldChildren(field: _Field, dictionaries?: Map): Field[] {\n const children = [] as Field[];\n for (let f, i = -1, j = -1, n = field.childrenLength(); ++i < n;) {\n if (f = field.children(i)) {\n children[++j] = Field.decode(f, dictionaries);\n }\n }\n return children;\n}\n\n/** @ignore */\nfunction decodeField(f: _Field, dictionaries?: Map) {\n\n let id: number;\n let field: Field | void;\n let type: DataType;\n let keys: _Int | TKeys | null;\n let dictType: Dictionary;\n let dictMeta: _DictionaryEncoding | null;\n\n // If no dictionary encoding\n if (!dictionaries || !(dictMeta = f.dictionary())) {\n type = decodeFieldType(f, decodeFieldChildren(f, dictionaries));\n field = new Field(f.name()!, type, f.nullable(), decodeCustomMetadata(f));\n }\n // tslint:disable\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) as TKeys : new Int32();\n dictionaries.set(id, type = decodeFieldType(f, decodeFieldChildren(f, dictionaries)));\n dictType = new Dictionary(type, keys, id, dictMeta.isOrdered());\n field = new 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) as TKeys : new Int32();\n dictType = new Dictionary(dictionaries.get(id)!, keys, id, dictMeta.isOrdered());\n field = new Field(f.name()!, dictType, f.nullable(), decodeCustomMetadata(f));\n }\n return field || null;\n}\n\n/** @ignore */\nfunction decodeCustomMetadata(parent?: _Schema | _Field | null) {\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\n/** @ignore */\nfunction decodeIndexType(_type: _Int) {\n return new Int(_type.isSigned(), _type.bitWidth() as IntBitWidth);\n}\n\n/** @ignore */\nfunction decodeFieldType(f: _Field, children?: Field[]): DataType {\n\n const typeId = f.typeType();\n\n switch (typeId) {\n case Type.NONE: return new Null();\n case Type.Null: return new Null();\n case Type.Binary: return new Binary();\n case Type.Utf8: return new Utf8();\n case Type.Bool: return new Bool();\n case Type.List: return new List((children || [])[0]);\n case Type.Struct_: return new Struct(children || []);\n }\n\n switch (typeId) {\n case Type.Int: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Int())!;\n return new Int(t.isSigned(), t.bitWidth());\n }\n case Type.FloatingPoint: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FloatingPoint())!;\n return new Float(t.precision());\n }\n case Type.Decimal: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Decimal())!;\n return new Decimal(t.scale(), t.precision());\n }\n case Type.Date: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Date())!;\n return new Date_(t.unit());\n }\n case Type.Time: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Time())!;\n return new Time(t.unit(), t.bitWidth() as TimeBitWidth);\n }\n case Type.Timestamp: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Timestamp())!;\n return new Timestamp(t.unit(), t.timezone());\n }\n case Type.Interval: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Interval())!;\n return new Interval(t.unit());\n }\n case Type.Union: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Union())!;\n return new Union(t.mode(), t.typeIdsArray() || [], children || []);\n }\n case Type.FixedSizeBinary: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FixedSizeBinary())!;\n return new FixedSizeBinary(t.byteWidth());\n }\n case Type.FixedSizeList: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.FixedSizeList())!;\n return new FixedSizeList(t.listSize(), (children || [])[0]);\n }\n case Type.Map: {\n const t = f.type(new Schema_.org.apache.arrow.flatbuf.Map())!;\n return new Map_((children || [])[0], t.keysSorted());\n }\n }\n throw new Error(`Unrecognized type: \"${Type[typeId]}\" (${typeId})`);\n}\n\n/** @ignore */\nfunction encodeSchema(b: Builder, schema: Schema) {\n\n const fieldOffsets = schema.fields.map((f) => Field.encode(b, f));\n\n _Schema.startFieldsVector(b, fieldOffsets.length);\n\n const fieldsVectorOffset = _Schema.createFieldsVector(b, fieldOffsets);\n\n const metadataOffset = !(schema.metadata && schema.metadata.size > 0) ? -1 :\n _Schema.createCustomMetadataVector(b, [...schema.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n _KeyValue.startKeyValue(b);\n _KeyValue.addKey(b, key);\n _KeyValue.addValue(b, val);\n return _KeyValue.endKeyValue(b);\n }));\n\n _Schema.startSchema(b);\n _Schema.addFields(b, fieldsVectorOffset);\n _Schema.addEndianness(b, platformIsLittleEndian ? _Endianness.Little : _Endianness.Big);\n\n if (metadataOffset !== -1) { _Schema.addCustomMetadata(b, metadataOffset); }\n\n return _Schema.endSchema(b);\n}\n\n/** @ignore */\nfunction encodeField(b: Builder, field: Field) {\n\n let nameOffset = -1;\n let typeOffset = -1;\n let dictionaryOffset = -1;\n\n let type = field.type;\n let typeId: Type = field.typeId;\n\n if (!DataType.isDictionary(type)) {\n typeOffset = typeAssembler.visit(type, b)!;\n } else {\n typeId = type.dictionary.typeId;\n dictionaryOffset = typeAssembler.visit(type, b)!;\n typeOffset = typeAssembler.visit(type.dictionary, b)!;\n }\n\n const childOffsets = (type.children || []).map((f: Field) => Field.encode(b, f));\n const childrenVectorOffset = _Field.createChildrenVector(b, childOffsets);\n\n const metadataOffset = !(field.metadata && field.metadata.size > 0) ? -1 :\n _Field.createCustomMetadataVector(b, [...field.metadata].map(([k, v]) => {\n const key = b.createString(`${k}`);\n const val = b.createString(`${v}`);\n _KeyValue.startKeyValue(b);\n _KeyValue.addKey(b, key);\n _KeyValue.addValue(b, val);\n return _KeyValue.endKeyValue(b);\n }));\n\n if (field.name) {\n nameOffset = b.createString(field.name);\n }\n\n _Field.startField(b);\n _Field.addType(b, typeOffset);\n _Field.addTypeType(b, typeId);\n _Field.addChildren(b, childrenVectorOffset);\n _Field.addNullable(b, !!field.nullable);\n\n if (nameOffset !== -1) { _Field.addName(b, nameOffset); }\n if (dictionaryOffset !== -1) { _Field.addDictionary(b, dictionaryOffset); }\n if (metadataOffset !== -1) { _Field.addCustomMetadata(b, metadataOffset); }\n\n return _Field.endField(b);\n}\n\n/** @ignore */\nfunction encodeRecordBatch(b: Builder, recordBatch: RecordBatch) {\n\n const nodes = recordBatch.nodes || [];\n const buffers = recordBatch.buffers || [];\n\n _RecordBatch.startNodesVector(b, nodes.length);\n nodes.slice().reverse().forEach((n) => FieldNode.encode(b, n));\n\n const nodesVectorOffset = b.endVector();\n\n _RecordBatch.startBuffersVector(b, buffers.length);\n buffers.slice().reverse().forEach((b_) => BufferRegion.encode(b, b_));\n\n const buffersVectorOffset = b.endVector();\n\n _RecordBatch.startRecordBatch(b);\n _RecordBatch.addLength(b, new Long(recordBatch.length, 0));\n _RecordBatch.addNodes(b, nodesVectorOffset);\n _RecordBatch.addBuffers(b, buffersVectorOffset);\n return _RecordBatch.endRecordBatch(b);\n}\n\n/** @ignore */\nfunction encodeDictionaryBatch(b: Builder, dictionaryBatch: DictionaryBatch) {\n const dataOffset = RecordBatch.encode(b, dictionaryBatch.data);\n _DictionaryBatch.startDictionaryBatch(b);\n _DictionaryBatch.addId(b, new Long(dictionaryBatch.id, 0));\n _DictionaryBatch.addIsDelta(b, dictionaryBatch.isDelta);\n _DictionaryBatch.addData(b, dataOffset);\n return _DictionaryBatch.endDictionaryBatch(b);\n}\n\n/** @ignore */\nfunction encodeFieldNode(b: Builder, node: FieldNode) {\n return _FieldNode.createFieldNode(b, new Long(node.length, 0), new Long(node.nullCount, 0));\n}\n\n/** @ignore */\nfunction encodeBufferRegion(b: Builder, node: BufferRegion) {\n return _Buffer.createBuffer(b, new Long(node.offset, 0), new Long(node.length, 0));\n}\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/** @ignore */\ntype MessageHeaderDecoder = () => T extends MessageHeader.Schema ? Schema\n : T extends MessageHeader.RecordBatch ? RecordBatch\n : T extends MessageHeader.DictionaryBatch ? DictionaryBatch : never;\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.\n\nimport { MessageHeader } from '../enum';\nimport { flatbuffers } from 'flatbuffers';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { Message } from './metadata/message';\nimport { isFileHandle } from '../util/compat';\nimport { AsyncRandomAccessFile } from '../io/file';\nimport { toUint8Array, ArrayBufferViewInput } from '../util/buffer';\nimport { ByteStream, ReadableSource, AsyncByteStream } from '../io/stream';\nimport { ArrowJSON, ArrowJSONLike, ITERATOR_DONE, FileHandle } from '../io/interfaces';\n\n/** @ignore */ const invalidMessageType = (type: MessageHeader) => `Expected ${MessageHeader[type]} Message in stream, but was null or length 0.`;\n/** @ignore */ const nullMessage = (type: MessageHeader) => `Header pointer of flatbuffer-encoded ${MessageHeader[type]} Message is null or length 0.`;\n/** @ignore */ const invalidMessageMetadata = (expected: number, actual: number) => `Expected to read ${expected} metadata bytes, but only read ${actual}.`;\n/** @ignore */ const invalidMessageBodyLength = (expected: number, actual: number) => `Expected to read ${expected} bytes for message body, but only read ${actual}.`;\n\n/** @ignore */\nexport class MessageReader implements IterableIterator {\n protected source: ByteStream;\n constructor(source: ByteStream | ArrayBufferViewInput | Iterable) {\n this.source = source instanceof ByteStream ? source : new ByteStream(source);\n }\n public [Symbol.iterator](): IterableIterator { return this as IterableIterator; }\n public next(): IteratorResult {\n let r;\n if ((r = this.readMetadataLength()).done) { return ITERATOR_DONE; }\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) { return ITERATOR_DONE; }\n if ((r = this.readMetadata(r.value)).done) { return ITERATOR_DONE; }\n return ( r) as IteratorResult;\n }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public readMessageBody(bodyLength: number): Uint8Array {\n if (bodyLength <= 0) { return new Uint8Array(0); }\n const buf = 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 public readSchema(throwIfNull = false) {\n const type = 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 protected readMetadataLength(): IteratorResult {\n const buf = this.source.read(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 protected readMetadata(metadataLength: number): IteratorResult {\n const buf = this.source.read(metadataLength);\n if (!buf) { return ITERATOR_DONE; }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: Message.decode(buf) };\n }\n}\n\n/** @ignore */\nexport class AsyncMessageReader implements AsyncIterableIterator {\n protected source: AsyncByteStream;\n constructor(source: ReadableSource);\n constructor(source: FileHandle, byteLength?: number);\n constructor(source: any, byteLength?: number) {\n this.source = source instanceof AsyncByteStream ? source\n : isFileHandle(source)\n ? new AsyncRandomAccessFile(source, byteLength!)\n : new AsyncByteStream(source);\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator { return this as AsyncIterableIterator; }\n public async next(): Promise> {\n let r;\n if ((r = await this.readMetadataLength()).done) { return ITERATOR_DONE; }\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) { return ITERATOR_DONE; }\n if ((r = await this.readMetadata(r.value)).done) { return ITERATOR_DONE; }\n return ( r) as IteratorResult;\n }\n public async throw(value?: any) { return await this.source.throw(value); }\n public async return(value?: any) { return await this.source.return(value); }\n public async readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = await this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public async readMessageBody(bodyLength: number): Promise {\n if (bodyLength <= 0) { return new Uint8Array(0); }\n const buf = 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 public async readSchema(throwIfNull = false) {\n const type = 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 protected async readMetadataLength(): Promise> {\n const buf = await this.source.read(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 protected async readMetadata(metadataLength: number): Promise> {\n const buf = await this.source.read(metadataLength);\n if (!buf) { return ITERATOR_DONE; }\n if (buf.byteLength < metadataLength) {\n throw new Error(invalidMessageMetadata(metadataLength, buf.byteLength));\n }\n return { done: false, value: Message.decode(buf) };\n }\n}\n\n/** @ignore */\nexport class JSONMessageReader extends MessageReader {\n private _schema = false;\n private _json: ArrowJSON;\n private _body: any[] = [];\n private _batchIndex = 0;\n private _dictionaryIndex = 0;\n constructor(source: ArrowJSON | ArrowJSONLike) {\n super(new Uint8Array(0));\n this._json = source instanceof ArrowJSON ? source : new ArrowJSON(source);\n }\n public next() {\n const { _json } = this;\n if (!this._schema) {\n this._schema = true;\n const message = Message.fromJSON(_json.schema, 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.fromJSON(batch, 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.fromJSON(batch, MessageHeader.RecordBatch);\n return { done: false, value: message };\n }\n this._body = [];\n return ITERATOR_DONE;\n }\n public readMessageBody(_bodyLength?: number) {\n return flattenDataSources(this._body) as any;\n function flattenDataSources(xs: any[]): any[][] {\n return (xs || []).reduce((buffers, column: any) => [\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 ], [] as any[][]);\n }\n }\n public readMessage(type?: T | null) {\n let r: IteratorResult>;\n if ((r = this.next()).done) { return null; }\n if ((type != null) && r.value.headerType !== type) {\n throw new Error(invalidMessageType(type));\n }\n return r.value;\n }\n public readSchema() {\n const type = 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}\n\n/** @ignore */\nexport const PADDING = 4;\n/** @ignore */\nexport const MAGIC_STR = 'ARROW1';\n/** @ignore */\nexport const MAGIC = new Uint8Array(MAGIC_STR.length);\n\nfor (let i = 0; i < MAGIC_STR.length; i += 1 | 0) {\n MAGIC[i] = MAGIC_STR.charCodeAt(i);\n}\n\n/** @ignore */\nexport function checkForMagicArrowString(buffer: Uint8Array, index = 0) {\n for (let i = -1, n = MAGIC.length; ++i < n;) {\n if (MAGIC[i] !== buffer[index + i]) {\n return false;\n }\n }\n return true;\n}\n\n/** @ignore */\nexport const magicLength = MAGIC.length;\n/** @ignore */\nexport const magicAndPadding = magicLength + PADDING;\n/** @ignore */\nexport const magicX2AndPadding = magicLength * 2 + PADDING;\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.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { Type, UnionMode } from '../enum';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { rebaseValueOffsets } from '../util/buffer';\nimport { packBools, truncateBitmap } from '../util/bit';\nimport { selectVectorChildrenArgs } from '../util/args';\nimport { BufferRegion, FieldNode } from '../ipc/metadata/message';\nimport {\n DataType, Dictionary,\n Float, Int, Date_, Interval, Time, Timestamp, Union,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n} from '../type';\n\n/** @ignore */\nexport interface VectorAssembler extends Visitor {\n visit(node: T): this;\n visitMany(nodes: T[]): this[];\n getVisitFn(node: T): (vector: V) => this;\n getVisitFn(node: V | Data | T): (vector: V) => this;\n\n visitBool (vector: V): this;\n visitInt (vector: V): this;\n visitFloat (vector: V): this;\n visitUtf8 (vector: V): this;\n visitBinary (vector: V): this;\n visitFixedSizeBinary (vector: V): this;\n visitDate (vector: V): this;\n visitTimestamp (vector: V): this;\n visitTime (vector: V): this;\n visitDecimal (vector: V): this;\n visitList (vector: V): this;\n visitStruct (vector: V): this;\n visitUnion (vector: V): this;\n visitInterval (vector: V): this;\n visitFixedSizeList (vector: V): this;\n visitMap (vector: V): this;\n}\n\n/** @ignore */\nexport class VectorAssembler extends Visitor {\n\n /** @nocollapse */\n public static assemble(...args: (T | T[])[]) {\n const assembler = new VectorAssembler();\n const vectorChildren = selectVectorChildrenArgs(RecordBatch, args);\n const [assembleResult = assembler] = assembler.visitMany(vectorChildren);\n return assembleResult;\n }\n\n private constructor() { super(); }\n\n public visit(vector: T): this {\n if (!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 (!DataType.isNull(vector.type)) {\n addBuffer.call(this, nullCount <= 0\n ? new Uint8Array(0) // placeholder validity buffer\n : truncateBitmap(data.offset, length, data.nullBitmap)\n );\n }\n this.nodes.push(new FieldNode(length, nullCount));\n }\n return super.visit(vector);\n }\n\n public visitNull(_nullV: V) {\n return this;\n }\n public visitDictionary(vector: V) {\n // Assemble the indices here, Dictionary assembled separately.\n return this.visit(vector.indices);\n }\n\n public get nodes() { return this._nodes; }\n public get buffers() { return this._buffers; }\n public get byteLength() { return this._byteLength; }\n public get bufferRegions() { return this._bufferRegions; }\n\n protected _byteLength = 0;\n protected _nodes: FieldNode[] = [];\n protected _buffers: ArrayBufferView[] = [];\n protected _bufferRegions: BufferRegion[] = [];\n}\n\n/** @ignore */\nfunction addBuffer(this: VectorAssembler, values: ArrayBufferView) {\n const byteLength = (values.byteLength + 7) & ~7; // Round up to a multiple of 8\n this.buffers.push(values);\n this.bufferRegions.push(new BufferRegion(this._byteLength, byteLength));\n this._byteLength += byteLength;\n return this;\n}\n\n/** @ignore */\nfunction assembleUnion(this: VectorAssembler, vector: V) {\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 === UnionMode.Sparse) {\n return assembleNestedVector.call(this, vector);\n } else if (type.mode === 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 } 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 = 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: Vector | null, 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\n/** @ignore */\nfunction assembleBoolVector(this: VectorAssembler, vector: V) {\n // Bool vector is a special case of FlatVector, as its data buffer needs to stay packed\n let values: Uint8Array;\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 } else if ((values = vector.values) instanceof Uint8Array) {\n // If values is already a Uint8Array, slice the bitmap (fast path)\n return addBuffer.call(this, 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, packBools(vector));\n}\n\n/** @ignore */\nfunction assembleFlatVector(this: VectorAssembler, vector: V) {\n return addBuffer.call(this, vector.values.subarray(0, vector.length * vector.stride));\n}\n\n/** @ignore */\nfunction assembleFlatListVector(this: VectorAssembler, vector: V) {\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, 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\n/** @ignore */\nfunction assembleListVector(this: VectorAssembler, vector: V) {\n const { length, valueOffsets } = vector;\n // If we have valueOffsets (MapVector, ListVector), push that buffer first\n if (valueOffsets) {\n addBuffer.call(this, rebaseValueOffsets(valueOffsets[0], length, valueOffsets));\n }\n // Then insert the List's values child\n return this.visit(vector.getChildAt(0)!);\n}\n\n/** @ignore */\nfunction assembleNestedVector(this: VectorAssembler, vector: V) {\n return this.visitMany(vector.type.children.map((_, i) => vector.getChildAt(i)!).filter(Boolean))[0];\n}\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","// 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.\n\nimport { Table } from '../table';\nimport { MAGIC } from './message';\nimport { Vector } from '../vector';\nimport { Column } from '../column';\nimport { DataType } from '../type';\nimport { Schema, Field } from '../schema';\nimport { Message } from './metadata/message';\nimport * as metadata from './metadata/message';\nimport { FileBlock, Footer } from './metadata/file';\nimport { MessageHeader, MetadataVersion } from '../enum';\nimport { WritableSink, AsyncByteQueue } from '../io/stream';\nimport { VectorAssembler } from '../visitor/vectorassembler';\nimport { JSONTypeAssembler } from '../visitor/jsontypeassembler';\nimport { JSONVectorAssembler } from '../visitor/jsonvectorassembler';\nimport { ArrayBufferViewInput, toUint8Array } from '../util/buffer';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from '../recordbatch';\nimport { Writable, ReadableInterop, ReadableDOMStreamOptions } from '../io/interfaces';\nimport { isPromise, isAsyncIterable, isWritableDOMStream, isWritableNodeStream, isIterable, isObject } from '../util/compat';\n\nexport interface RecordBatchStreamWriterOptions {\n /**\n *\n */\n autoDestroy?: boolean;\n /**\n * A flag indicating whether the RecordBatchWriter should construct pre-0.15.0\n * encapsulated IPC Messages, which reserves 4 bytes for the Message metadata\n * length instead of 8.\n * @see https://issues.apache.org/jira/browse/ARROW-6313\n */\n writeLegacyIpcFormat?: boolean;\n}\n\nexport class RecordBatchWriter extends ReadableInterop implements Writable> {\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options?: import('stream').DuplexOptions & { autoDestroy: boolean }): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n public static throughDOM(\n // @ts-ignore\n writableStrategy?: QueuingStrategy> & { autoDestroy: boolean },\n // @ts-ignore\n readableStrategy?: { highWaterMark?: number, size?: any }\n ): { writable: WritableStream | RecordBatch>, readable: ReadableStream } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n constructor(options?: RecordBatchStreamWriterOptions) {\n super();\n 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\n protected _position = 0;\n protected _started = false;\n protected _autoDestroy: boolean;\n protected _writeLegacyIpcFormat: boolean;\n // @ts-ignore\n protected _sink = new AsyncByteQueue();\n protected _schema: Schema | null = null;\n protected _dictionaryBlocks: FileBlock[] = [];\n protected _recordBatchBlocks: FileBlock[] = [];\n protected _dictionaryDeltaOffsets = new Map();\n\n public toString(sync: true): string;\n public toString(sync?: false): Promise;\n public toString(sync: any = false) {\n return this._sink.toString(sync) as Promise | string;\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise;\n public toUint8Array(sync: any = false) {\n return this._sink.toUint8Array(sync) as Promise | Uint8Array;\n }\n\n public writeAll(input: Table | Iterable>): this;\n public writeAll(input: AsyncIterable>): Promise;\n public writeAll(input: PromiseLike>>): Promise;\n public writeAll(input: PromiseLike | Iterable>>): Promise;\n public writeAll(input: PromiseLike | Table | Iterable> | AsyncIterable>) {\n if (isPromise(input)) {\n return input.then((x) => this.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(this, input);\n }\n return writeAll(this, input);\n }\n\n public get closed() { return this._sink.closed; }\n public [Symbol.asyncIterator]() { return this._sink[Symbol.asyncIterator](); }\n public toDOMStream(options?: ReadableDOMStreamOptions) { return this._sink.toDOMStream(options); }\n public toNodeStream(options?: import('stream').ReadableOptions) { return this._sink.toNodeStream(options); }\n\n public close() {\n return this.reset()._sink.close();\n }\n public abort(reason?: any) {\n return this.reset()._sink.abort(reason);\n }\n public finish() {\n this._autoDestroy ? this.close() : this.reset(this._sink, this._schema);\n return this;\n }\n public reset(sink: WritableSink = this._sink, schema: Schema | null = null) {\n\n if ((sink === this._sink) || (sink instanceof AsyncByteQueue)) {\n this._sink = sink as AsyncByteQueue;\n } else {\n this._sink = new AsyncByteQueue();\n if (sink && isWritableDOMStream(sink)) {\n this.toDOMStream({ type: 'bytes' }).pipeTo(sink);\n } else if (sink && isWritableNodeStream(sink)) {\n this.toNodeStream({ objectMode: false }).pipe(sink);\n }\n }\n\n if (this._started && this._schema) {\n this._writeFooter(this._schema);\n }\n\n this._started = false;\n this._dictionaryBlocks = [];\n this._recordBatchBlocks = [];\n this._dictionaryDeltaOffsets = new Map();\n\n if (!schema || !(schema.compareTo(this._schema))) {\n if (schema === null) {\n this._position = 0;\n this._schema = null;\n } else {\n this._started = true;\n this._schema = schema;\n this._writeSchema(schema);\n }\n }\n\n return this;\n }\n\n public write(payload?: Table | RecordBatch | Iterable> | null) {\n\n let schema: Schema | null = null;\n\n if (!this._sink) {\n throw new Error(`RecordBatchWriter is closed`);\n } else if (payload === null || payload === undefined) {\n return this.finish() && undefined;\n } else if (payload instanceof Table && !(schema = payload.schema)) {\n return this.finish() && undefined;\n } else if (payload instanceof RecordBatch && !(schema = payload.schema)) {\n return this.finish() && undefined;\n }\n\n if (schema && !schema.compareTo(this._schema)) {\n if (this._started && this._autoDestroy) {\n return this.close();\n }\n this.reset(this._sink, schema);\n }\n\n if (payload instanceof RecordBatch) {\n if (!(payload instanceof _InternalEmptyPlaceholderRecordBatch)) {\n this._writeRecordBatch(payload);\n }\n } else if (payload instanceof Table) {\n this.writeAll(payload.chunks);\n } else if (isIterable(payload)) {\n this.writeAll(payload);\n }\n }\n\n protected _writeMessage(message: Message, alignment = 8) {\n\n const a = alignment - 1;\n const buffer = 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\n if (message.headerType === MessageHeader.RecordBatch) {\n this._recordBatchBlocks.push(new FileBlock(alignedSize, message.bodyLength, this._position));\n } else if (message.headerType === MessageHeader.DictionaryBatch) {\n this._dictionaryBlocks.push(new FileBlock(alignedSize, message.bodyLength, this._position));\n }\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) { this._write(buffer); }\n // Write any padding\n return this._writePadding(nPaddingBytes);\n }\n\n protected _write(chunk: ArrayBufferViewInput) {\n if (this._started) {\n const buffer = 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\n protected _writeSchema(schema: Schema) {\n return this._writeMessage(Message.from(schema));\n }\n\n // @ts-ignore\n protected _writeFooter(schema: Schema) {\n // eos bytes\n return this._writeLegacyIpcFormat\n ? this._write(Int32Array.of(0))\n : this._write(Int32Array.of(-1, 0));\n }\n\n protected _writeMagic() {\n return this._write(MAGIC);\n }\n\n protected _writePadding(nBytes: number) {\n return nBytes > 0 ? this._write(new Uint8Array(nBytes)) : this;\n }\n\n protected _writeRecordBatch(batch: RecordBatch) {\n const { byteLength, nodes, bufferRegions, buffers } = VectorAssembler.assemble(batch);\n const recordBatch = new metadata.RecordBatch(batch.length, nodes, bufferRegions);\n const message = Message.from(recordBatch, byteLength);\n return this\n ._writeDictionaries(batch)\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n\n protected _writeDictionaryBatch(dictionary: Vector, id: number, isDelta = false) {\n this._dictionaryDeltaOffsets.set(id, dictionary.length + (this._dictionaryDeltaOffsets.get(id) || 0));\n const { byteLength, nodes, bufferRegions, buffers } = 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.from(dictionaryBatch, byteLength);\n return this\n ._writeMessage(message)\n ._writeBodyBuffers(buffers);\n }\n\n protected _writeBodyBuffers(buffers: ArrayBufferView[]) {\n let buffer: ArrayBufferView;\n let size: number, padding: number;\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\n protected _writeDictionaries(batch: RecordBatch) {\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 as any).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}\n\n/** @ignore */\nexport class RecordBatchStreamWriter extends RecordBatchWriter {\n public static writeAll(input: Table | Iterable>, options?: RecordBatchStreamWriterOptions): RecordBatchStreamWriter;\n public static writeAll(input: AsyncIterable>, options?: RecordBatchStreamWriterOptions): Promise>;\n public static writeAll(input: PromiseLike>>, options?: RecordBatchStreamWriterOptions): Promise>;\n public static writeAll(input: PromiseLike | Iterable>>, options?: RecordBatchStreamWriterOptions): Promise>;\n /** @nocollapse */\n public static writeAll(input: any, options?: RecordBatchStreamWriterOptions) {\n const writer = new RecordBatchStreamWriter(options);\n if (isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n}\n\n/** @ignore */\nexport class RecordBatchFileWriter extends RecordBatchWriter {\n public static writeAll(input: Table | Iterable>): RecordBatchFileWriter;\n public static writeAll(input: AsyncIterable>): Promise>;\n public static writeAll(input: PromiseLike>>): Promise>;\n public static writeAll(input: PromiseLike | Iterable>>): Promise>;\n /** @nocollapse */\n public static writeAll(input: any) {\n const writer = new RecordBatchFileWriter();\n if (isPromise(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n\n constructor() {\n super();\n this._autoDestroy = true;\n }\n\n // @ts-ignore\n protected _writeSchema(schema: Schema) {\n return this._writeMagic()._writePadding(2);\n }\n\n protected _writeFooter(schema: Schema) {\n const buffer = Footer.encode(new Footer(\n schema, MetadataVersion.V4,\n this._recordBatchBlocks, this._dictionaryBlocks\n ));\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}\n\n/** @ignore */\nexport class RecordBatchJSONWriter extends RecordBatchWriter {\n\n public static writeAll(this: typeof RecordBatchWriter, input: Table | Iterable>): RecordBatchJSONWriter;\n // @ts-ignore\n public static writeAll(this: typeof RecordBatchWriter, input: AsyncIterable>): Promise>;\n public static writeAll(this: typeof RecordBatchWriter, input: PromiseLike>>): Promise>;\n public static writeAll(this: typeof RecordBatchWriter, input: PromiseLike | Iterable>>): Promise>;\n /** @nocollapse */\n public static writeAll(this: typeof RecordBatchWriter, input: any) {\n return new RecordBatchJSONWriter().writeAll(input as any);\n }\n\n private _recordBatches: RecordBatch[];\n private _dictionaries: RecordBatch[];\n\n constructor() {\n super();\n this._autoDestroy = true;\n this._recordBatches = [];\n this._dictionaries = [];\n }\n\n protected _writeMessage() { return this; }\n // @ts-ignore\n protected _writeFooter(schema: Schema) { return this; }\n protected _writeSchema(schema: Schema) {\n return this._write(`{\\n \"schema\": ${\n JSON.stringify({ fields: schema.fields.map(fieldToJSON) }, null, 2)\n }`);\n }\n protected _writeDictionaries(batch: RecordBatch) {\n if (batch.dictionaries.size > 0) {\n this._dictionaries.push(batch);\n }\n return this;\n }\n protected _writeDictionaryBatch(dictionary: Vector, id: number, 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 FileBlock(0, 0, 0));\n return this;\n }\n protected _writeRecordBatch(batch: RecordBatch) {\n this._writeDictionaries(batch);\n this._recordBatches.push(batch);\n return this;\n }\n public close() {\n\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\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 FileBlock(0, 0, 0));\n }\n this._write(`\\n ]`);\n }\n\n if (this._schema) {\n this._write(`\\n}`);\n }\n\n this._dictionaries = [];\n this._recordBatches = [];\n\n return super.close();\n }\n}\n\n/** @ignore */\nfunction writeAll(writer: RecordBatchWriter, input: Table | Iterable>) {\n let chunks = input as Iterable>;\n if (input instanceof 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\n/** @ignore */\nasync function writeAllAsync(writer: RecordBatchWriter, batches: AsyncIterable>) {\n for await (const batch of batches) {\n writer.write(batch);\n }\n return writer.finish();\n}\n\n/** @ignore */\nfunction fieldToJSON({ name, type, nullable }: Field): object {\n const assembler = new JSONTypeAssembler();\n return {\n 'name': name, 'nullable': nullable,\n 'type': assembler.visit(type),\n 'children': (type.children || []).map(fieldToJSON),\n 'dictionary': !DataType.isDictionary(type) ? undefined : {\n 'id': type.id,\n 'isOrdered': type.isOrdered,\n 'indexType': assembler.visit(type.indices)\n }\n };\n}\n\n/** @ignore */\nfunction dictionaryBatchToJSON(dictionary: Vector, id: number, isDelta = false) {\n const field = new Field(`${id}`, dictionary.type, dictionary.nullCount > 0);\n const columns = JSONVectorAssembler.assemble(new 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\n/** @ignore */\nfunction recordBatchToJSON(records: RecordBatch) {\n return JSON.stringify({\n 'count': records.length,\n 'columns': JSONVectorAssembler.assemble(records)\n }, null, 2);\n}\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.\n\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Data, Buffers } from '../data';\nimport { Schema, Field } from '../schema';\nimport { Chunked } from '../vector/chunked';\nimport { RecordBatch } from '../recordbatch';\n\nconst noopBuf = new Uint8Array(0);\nconst nullBufs = (bitmapLength: number) => [\n noopBuf, noopBuf, new Uint8Array(bitmapLength), noopBuf\n] as Buffers;\n\n/** @ignore */\nexport function ensureSameLengthData(\n schema: Schema,\n chunks: Data[],\n batchLength = chunks.reduce((l, c) => Math.max(l, c.length), 0)\n) {\n let data: Data;\n let field: Field;\n let i = -1, n = chunks.length;\n const fields = [...schema.fields];\n const batchData = [] as Data[];\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = chunks[i]) && data.length === batchLength) {\n batchData[i] = data;\n } else {\n (field = fields[i]).nullable || (fields[i] = fields[i].clone({ nullable: true }) as Field);\n batchData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data;\n }\n }\n return [new Schema(fields), batchLength, batchData] as [Schema, number, Data[]];\n}\n\n/** @ignore */\nexport function distributeColumnsIntoRecordBatches(columns: Column[]): [Schema, RecordBatch[]] {\n return distributeVectorsIntoRecordBatches(new Schema(columns.map(({ field }) => field)), columns);\n}\n\n/** @ignore */\nexport function distributeVectorsIntoRecordBatches(schema: Schema, vecs: (Vector | Chunked)[]): [Schema, RecordBatch[]] {\n return uniformlyDistributeChunksAcrossRecordBatches(schema, vecs.map((v) => v instanceof Chunked ? v.chunks.map((c) => c.data) : [v.data]));\n}\n\n/** @ignore */\nfunction uniformlyDistributeChunksAcrossRecordBatches(schema: Schema, columns: Data[][]): [Schema, RecordBatch[]] {\n\n const fields = [...schema.fields];\n const batchArgs = [] as [number, Data[]][];\n const memo = { numBatches: columns.reduce((n, c) => Math.max(n, c.length), 0) };\n\n let numBatches = 0, batchLength = 0;\n let i: number = -1, numColumns = columns.length;\n let child: Data, childData: Data[] = [];\n\n while (memo.numBatches-- > 0) {\n\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\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(fields, schema.metadata),\n batchArgs.map((xs) => new RecordBatch(schema, ...xs))\n ];\n}\n\n/** @ignore */\nfunction distributeChildData(fields: Field[], batchLength: number, childData: Data[], columns: Data[][], memo: { numBatches: number }) {\n let data: Data;\n let field: Field;\n let length = 0, i = -1, 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 } 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 } else {\n (field = fields[i]).nullable || (fields[i] = field.clone({ nullable: true }) as Field);\n childData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data;\n }\n }\n return childData;\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\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.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Chunked } from './chunked';\nimport { clampRange } from '../util/vector';\nimport { VectorType as V } from '../interfaces';\nimport { AbstractVector, Vector, Clonable, Sliceable, Applicative } from '../vector';\n\n/** @ignore */\nexport interface BaseVector extends Clonable>, Sliceable>, Applicative> {\n slice(begin?: number, end?: number): V;\n concat(...others: Vector[]): Chunked;\n clone(data: Data, children?: Vector[]): V;\n}\n\n/** @ignore */\nexport abstract class BaseVector extends AbstractVector\n implements Clonable>, Sliceable>, Applicative> {\n\n protected _children?: Vector[];\n\n constructor(data: Data, children?: Vector[]) {\n super();\n this._children = children;\n this.numChildren = data.childData.length;\n this._bindDataAccessors(this.data = data);\n }\n\n public readonly data: Data;\n public readonly numChildren: number;\n\n public get type() { return this.data.type; }\n public get typeId() { return this.data.typeId; }\n public get length() { return this.data.length; }\n public get offset() { return this.data.offset; }\n public get stride() { return this.data.stride; }\n public get nullCount() { return this.data.nullCount; }\n public get byteLength() { return this.data.byteLength; }\n public get VectorName() { return `${Type[this.typeId]}Vector`; }\n\n public get ArrayType(): T['ArrayType'] { return this.type.ArrayType; }\n\n public get values() { return this.data.values; }\n public get typeIds() { return this.data.typeIds; }\n public get nullBitmap() { return this.data.nullBitmap; }\n public get valueOffsets() { return this.data.valueOffsets; }\n\n public get [Symbol.toStringTag]() { return `${this.VectorName}<${this.type[Symbol.toStringTag]}>`; }\n\n public clone(data: Data, children = this._children) {\n return Vector.new(data, children) as any;\n }\n\n public concat(...others: Vector[]) {\n return Chunked.concat(this, ...others);\n }\n\n public slice(begin?: number, end?: number) {\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 clampRange(this, begin, end, this._sliceInternal);\n }\n\n public isValid(index: number): boolean {\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\n public getChildAt(index: number): Vector | null {\n return index < 0 || index >= this.numChildren ? null : (\n (this._children || (this._children = []))[index] ||\n (this._children[index] = Vector.new(this.data.childData[index] as Data))\n ) as Vector;\n }\n\n public toJSON(): any { return [...this]; }\n\n protected _sliceInternal(self: this, begin: number, end: number) {\n return self.clone(self.data.slice(begin, end - begin), null!);\n }\n\n // @ts-ignore\n protected _bindDataAccessors(data: Data) {\n // Implementation in src/vectors/index.ts due to circular dependency/packaging shenanigans\n }\n}\n\n(BaseVector.prototype as any)[Symbol.isConcatSpreadable] = true;\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.\n\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { Binary, Utf8 } from '../type';\n\n/** @ignore */\nexport class BinaryVector extends BaseVector {\n public asUtf8() {\n return Vector.new(this.data.clone(new Utf8()));\n }\n}\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.\n\nimport { Bool } from '../type';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\n\n/** @ignore */\nexport class BoolVector extends BaseVector {\n public static from(input: Iterable): BoolVector;\n public static from(input: AsyncIterable): Promise;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n return vectorFromValuesWithType(() => new Bool(), input);\n }\n}\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.\n\nimport { DateUnit } from '../enum';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorType as V } from '../interfaces';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { Date_, DateDay, DateMillisecond } from '../type';\n\n/** @ignore */\ntype FromArgs = [Iterable, T['unit']];\n\n/** @ignore */\nexport class DateVector extends BaseVector {\n public static from(...args: FromArgs): V;\n public static from(...args: FromArgs): V;\n public static from(input: Iterable): V;\n public static from(input: AsyncIterable): Promise>;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(...args: FromArgs | [Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync]) {\n if (args.length === 2) {\n return vectorFromValuesWithType(() => args[1] === DateUnit.DAY ? new DateDay() : new DateMillisecond() as T, args[0]);\n }\n return vectorFromValuesWithType(() => new DateMillisecond() as T, args[0]);\n }\n}\n\n/** @ignore */\nexport class DateDayVector extends DateVector {}\n\n/** @ignore */\nexport class DateMillisecondVector extends DateVector {}\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.\n\nimport { Decimal } from '../type';\nimport { BaseVector } from './base';\n\n/** @ignore */\nexport class DecimalVector extends BaseVector {}\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.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { VectorType as V } from '../interfaces';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { DataType, Dictionary, TKeys } from '../type';\n\n/** @ignore */\ntype FromArgs = [Vector, TKey, ArrayLike | TKey['TArray']];\n\n/** @ignore */\nexport class DictionaryVector extends BaseVector> {\n public static from(...args: FromArgs): V>;\n public static from(input: VectorBuilderOptions>): Vector>;\n public static from(input: VectorBuilderOptionsAsync>): Promise>>;\n /** @nocollapse */\n public static from(...args: any[]) {\n if (args.length === 3) {\n const [values, indices, keys] = args as FromArgs;\n const type = new Dictionary(values.type, indices, null, null);\n return Vector.new(Data.Dictionary(type, 0, keys.length, 0, null, keys, values));\n }\n return vectorFromValuesWithType(() => args[0].type, args[0]);\n }\n\n constructor(data: Data>) {\n super(data);\n this.indices = Vector.new(data.clone(this.type.indices));\n }\n\n public readonly indices: V;\n\n public get dictionary() { return > this.data.dictionary; }\n public reverseLookup(value: T) { return this.dictionary.indexOf(value); }\n public getKey(idx: number): TKey['TValue'] | null { return this.indices.get(idx); }\n public getValue(key: number): T['TValue'] | null { return this.dictionary.get(key); }\n public setKey(idx: number, key: TKey['TValue'] | null) { return this.indices.set(idx, key); }\n public setValue(key: number, value: T['TValue'] | null) { return this.dictionary.set(key, value); }\n}\n\n(DictionaryVector.prototype as any).indices = null;\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.\n\nimport { BaseVector } from './base';\nimport { FixedSizeBinary } from '../type';\n\n/** @ignore */\nexport class FixedSizeBinaryVector extends BaseVector {}\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.\n\nimport { BaseVector } from './base';\nimport { DataType, FixedSizeList } from '../type';\n\n/** @ignore */\nexport class FixedSizeListVector extends BaseVector> {}\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.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { Float, Float16, Float32, Float64, FloatArray } from '../type';\nimport { VectorType as V, TypedArrayConstructor } from '../interfaces';\n\n/** @ignore */\ntype FloatVectorConstructors =\n typeof FloatVector |\n typeof Float16Vector |\n typeof Float32Vector |\n typeof Float64Vector ;\n\n/** @ignore */\ntype FromInput =\n FloatArray |\n Iterable |\n AsyncIterable |\n VectorBuilderOptions |\n VectorBuilderOptionsAsync ;\n\n/** @ignore */\ntype FloatArrayCtor = TypedArrayConstructor;\n\n/** @ignore */\nexport class FloatVector extends BaseVector {\n\n // Guaranteed zero-copy variants\n public static from(this: typeof FloatVector, input: Uint16Array): Float16Vector;\n public static from(this: typeof FloatVector, input: Float32Array): Float32Vector;\n public static from(this: typeof FloatVector, input: Float64Array): Float64Vector;\n\n // Zero-copy if input is a TypedArray of the same type as the\n // Vector that from is called on, otherwise uses the Builders\n public static from(this: typeof Float16Vector, input: FromInput): Float16Vector;\n public static from(this: typeof Float32Vector, input: FromInput): Float32Vector;\n public static from(this: typeof Float64Vector, input: FromInput): Float64Vector;\n\n // Not zero-copy\n public static from(this: typeof FloatVector, input: Iterable): V;\n public static from(this: typeof FloatVector, input: AsyncIterable): Promise>;\n public static from(this: typeof FloatVector, input: VectorBuilderOptions): Chunked;\n public static from(this: typeof FloatVector, input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(this: FloatVectorConstructors, input: FromInput) {\n\n let ArrowType = vectorTypeToDataType(this);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n let InputType = arrayTypeToDataType(input.constructor as FloatArrayCtor) || 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 let type = new ArrowType();\n let 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.new(Data.Float(type, 0, length, 0, null, input as FloatArray));\n }\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 vectorFromValuesWithType(() => new ArrowType!() as T, input);\n }\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\n throw new TypeError('Unrecognized FloatVector input');\n }\n}\n\n/** @ignore */\nexport class 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 public toFloat32Array() { return new Float32Array(this as Iterable); }\n public toFloat64Array() { return new Float64Array(this as Iterable); }\n}\n\n/** @ignore */\nexport class Float32Vector extends FloatVector {}\n/** @ignore */\nexport class Float64Vector extends FloatVector {}\n\nconst convertTo16Bit = (typeCtor: any, dataCtor: any) => {\n return (typeCtor === Float16) && (dataCtor !== Uint16Array);\n};\n\n/** @ignore */\nconst arrayTypeToDataType = (ctor: FloatArrayCtor) => {\n switch (ctor) {\n case Uint16Array: return Float16;\n case Float32Array: return Float32;\n case Float64Array: return Float64;\n default: return null;\n }\n};\n\n/** @ignore */\nconst vectorTypeToDataType = (ctor: FloatVectorConstructors) => {\n switch (ctor) {\n case Float16Vector: return Float16;\n case Float32Vector: return Float32;\n case Float64Vector: return Float64;\n default: return null;\n }\n};\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.\n\nimport { BaseVector } from './base';\nimport { Interval, IntervalDayTime, IntervalYearMonth } from '../type';\n\n/** @ignore */\nexport class IntervalVector extends BaseVector {}\n/** @ignore */\nexport class IntervalDayTimeVector extends IntervalVector {}\n/** @ignore */\nexport class IntervalYearMonthVector extends IntervalVector {}\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.\n\nimport { Data } from '../data';\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\nimport { BigInt64Array, BigUint64Array } from '../util/compat';\nimport { toBigInt64Array, toBigUint64Array } from '../util/buffer';\nimport { Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64, IntArray } from '../type';\nimport { VectorType as V, TypedArrayConstructor, BigIntArrayConstructor, BigIntArray } from '../interfaces';\n\n/** @ignore */\ntype IntVectorConstructors =\n typeof IntVector |\n typeof Int8Vector |\n typeof Int16Vector |\n typeof Int32Vector |\n typeof Uint8Vector |\n typeof Uint16Vector |\n typeof Uint32Vector |\n typeof Int64Vector |\n typeof Uint64Vector ;\n\n/** @ignore */\ntype FromInput =\n IntArray | BigIntArray |\n Iterable |\n AsyncIterable |\n VectorBuilderOptions |\n VectorBuilderOptionsAsync ;\n\n/** @ignore */\ntype FromArgs = [FromInput, boolean?];\n\n/** @ignore */\ntype IntArrayCtor = TypedArrayConstructor | BigIntArrayConstructor;\n\n/** @ignore */\nexport class IntVector extends BaseVector {\n\n // Guaranteed zero-copy variants\n public static from(this: typeof IntVector, input: Int8Array): Int8Vector;\n public static from(this: typeof IntVector, input: Int16Array): Int16Vector;\n public static from(this: typeof IntVector, input: Int32Array): Int32Vector;\n public static from(this: typeof IntVector, input: BigInt64Array): Int64Vector;\n public static from(this: typeof IntVector, input: Int32Array, is64bit: true): Int64Vector;\n public static from(this: typeof IntVector, input: Uint8Array): Uint8Vector;\n public static from(this: typeof IntVector, input: Uint16Array): Uint16Vector;\n public static from(this: typeof IntVector, input: Uint32Array): Uint32Vector;\n public static from(this: typeof IntVector, input: BigUint64Array): Uint64Vector;\n public static from(this: typeof IntVector, input: Uint32Array, is64bit: true): Uint64Vector;\n\n // Zero-copy if input is a TypedArray of the same type as the\n // Vector that from is called on, otherwise uses the Builders\n public static from(this: typeof Int8Vector, input: FromInput): Int8Vector;\n public static from(this: typeof Int16Vector, input: FromInput): Int16Vector;\n public static from(this: typeof Int32Vector, input: FromInput): Int32Vector;\n public static from(this: typeof Int64Vector, input: FromInput): Int64Vector;\n public static from(this: typeof Uint8Vector, input: FromInput): Uint8Vector;\n public static from(this: typeof Uint16Vector, input: FromInput): Uint16Vector;\n public static from(this: typeof Uint32Vector, input: FromInput): Uint32Vector;\n public static from(this: typeof Uint64Vector, input: FromInput): Uint64Vector;\n\n // Not zero-copy\n public static from(this: typeof IntVector, input: Iterable): V;\n public static from(this: typeof IntVector, input: AsyncIterable): Promise>;\n public static from(this: typeof IntVector, input: VectorBuilderOptions): Chunked;\n public static from(this: typeof IntVector, input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(this: IntVectorConstructors, ...args: FromArgs) {\n\n let [input, is64bit = false] = args;\n let ArrowType = vectorTypeToDataType(this, is64bit);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n let InputType = arrayTypeToDataType(input.constructor as IntArrayCtor, 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 let 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.new(Data.Int(type, 0, length, 0, null, input as IntArray));\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 vectorFromValuesWithType(() => new ArrowType!() as T, input);\n }\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\n throw new TypeError('Unrecognized IntVector input');\n }\n}\n\n/** @ignore */\nexport class Int8Vector extends IntVector {}\n/** @ignore */\nexport class Int16Vector extends IntVector {}\n/** @ignore */\nexport class Int32Vector extends IntVector {}\n/** @ignore */\nexport class Int64Vector extends IntVector {\n public toBigInt64Array() {\n return toBigInt64Array(this.values);\n }\n // @ts-ignore\n private _values64: BigInt64Array;\n public get values64(): BigInt64Array {\n return this._values64 || (this._values64 = this.toBigInt64Array());\n }\n}\n\n/** @ignore */\nexport class Uint8Vector extends IntVector {}\n/** @ignore */\nexport class Uint16Vector extends IntVector {}\n/** @ignore */\nexport class Uint32Vector extends IntVector {}\n/** @ignore */\nexport class Uint64Vector extends IntVector {\n public toBigUint64Array() {\n return toBigUint64Array(this.values);\n }\n // @ts-ignore\n private _values64: BigUint64Array;\n public get values64(): BigUint64Array {\n return this._values64 || (this._values64 = this.toBigUint64Array());\n }\n}\n\nconst convert32To64Bit = (typeCtor: any, dataCtor: any) => {\n return (typeCtor === Int64 || typeCtor === Uint64) &&\n (dataCtor === Int32Array || dataCtor === Uint32Array);\n};\n\n/** @ignore */\nconst arrayTypeToDataType = (ctor: IntArrayCtor, is64bit: boolean) => {\n switch (ctor) {\n case Int8Array: return Int8;\n case Int16Array: return Int16;\n case Int32Array: return is64bit ? Int64 : Int32;\n case BigInt64Array: return Int64;\n case Uint8Array: return Uint8;\n case Uint16Array: return Uint16;\n case Uint32Array: return is64bit ? Uint64 : Uint32;\n case BigUint64Array: return Uint64;\n default: return null;\n }\n};\n\n/** @ignore */\nconst vectorTypeToDataType = (ctor: IntVectorConstructors, is64bit: boolean) => {\n switch (ctor) {\n case Int8Vector: return Int8;\n case Int16Vector: return Int16;\n case Int32Vector: return is64bit ? Int64 : Int32;\n case Int64Vector: return Int64;\n case Uint8Vector: return Uint8;\n case Uint16Vector: return Uint16;\n case Uint32Vector: return is64bit ? Uint64 : Uint32;\n case Uint64Vector: return Uint64;\n default: return null;\n }\n};\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.\n\nimport { BaseVector } from './base';\nimport { DataType, List } from '../type';\n\n/** @ignore */\nexport class ListVector extends BaseVector> {}\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.\n\nimport { MapRow } from './row';\nimport { Field } from '../schema';\nimport { Vector } from '../vector';\nimport { BaseVector } from './base';\nimport { DataType, Map_, Struct, List } from '../type';\n\n/** @ignore */\nexport class MapVector extends BaseVector> {\n public asList() {\n const child = this.type.children[0] as Field>;\n return Vector.new(this.data.clone(new List>(child)));\n }\n public bind(index: number): Map_['TValue'] {\n const child = this.getChildAt>(0);\n const { [index]: begin, [index + 1]: end } = this.valueOffsets;\n return new MapRow(child!.slice(begin, end));\n }\n}\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.\n\nimport { Null } from '../type';\nimport { BaseVector } from './base';\n\n/** @ignore */\nexport class NullVector extends BaseVector {}\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.\n\nimport { StructRow } from './row';\nimport { BaseVector } from './base';\nimport { DataType, Struct } from '../type';\n\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */\nexport class StructVector extends BaseVector> {\n // @ts-ignore\n private _row: StructRow;\n public bind(index: number): Struct['TValue'] {\n const proto = this._row || (this._row = new StructRow(this));\n const bound = Object.create(proto);\n bound[kRowIndex] = index;\n return bound;\n }\n}\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.\n\nimport { BaseVector } from './base';\nimport { Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond } from '../type';\n\n/** @ignore */\nexport class TimestampVector extends BaseVector {}\n/** @ignore */\nexport class TimestampSecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampMillisecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampMicrosecondVector extends TimestampVector {}\n/** @ignore */\nexport class TimestampNanosecondVector extends TimestampVector {}\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.\n\nimport { BaseVector } from './base';\nimport { Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond } from '../type';\n\n/** @ignore */\nexport class TimeVector extends BaseVector {}\n/** @ignore */\nexport class TimeSecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeMillisecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeMicrosecondVector extends TimeVector {}\n/** @ignore */\nexport class TimeNanosecondVector extends TimeVector {}\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.\n\nimport { BaseVector } from './base';\nimport { Union, DenseUnion, SparseUnion} from '../type';\n\n/** @ignore */\nexport class UnionVector extends BaseVector {\n public get typeIdToChildIndex() { return this.data.type.typeIdToChildIndex; }\n}\n\n/** @ignore */\nexport class DenseUnionVector extends UnionVector {\n public get valueOffsets() { return this.data.valueOffsets!; }\n}\n\n/** @ignore */\nexport class SparseUnionVector extends UnionVector {}\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.\n\nimport { Vector } from '../vector';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { Binary, Utf8 } from '../type';\nimport { VectorBuilderOptions } from './index';\nimport { vectorFromValuesWithType } from './index';\nimport { VectorBuilderOptionsAsync } from './index';\n\n/** @ignore */\nexport class Utf8Vector extends BaseVector {\n public static from(input: Iterable): Utf8Vector;\n public static from(input: AsyncIterable): Promise;\n public static from(input: VectorBuilderOptions): Chunked;\n public static from(input: VectorBuilderOptionsAsync): Promise>;\n /** @nocollapse */\n public static from(input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n return vectorFromValuesWithType(() => new Utf8(), input);\n }\n public asBinary() {\n return Vector.new(this.data.clone(new Binary()));\n }\n}\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.\n\n/** @ignore */\nexport function partial0(visit: (node: T) => any) {\n return function(this: T) { return visit(this); };\n}\n\n/** @ignore */\nexport function partial1(visit: (node: T, a: any) => any) {\n return function(this: T, a: any) { return visit(this, a); };\n}\n\n/** @ignore */\nexport function partial2(visit: (node: T, a: any, b: any) => any) {\n return function(this: T, a: any, b: any) { return visit(this, a, b); };\n}\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.\n\nimport { Data } from '../data';\nimport { BN } from '../util/bn';\nimport { Visitor } from '../visitor';\nimport { decodeUtf8 } from '../util/utf8';\nimport { VectorType } from '../interfaces';\nimport { uint16ToFloat64 } from '../util/math';\nimport { Type, UnionMode, Precision, DateUnit, TimeUnit, IntervalUnit } from '../enum';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface GetVisitor extends Visitor {\n visit (node: T, index: number): T['TValue'];\n visitMany (nodes: T[], indices: number[]): T['TValue'][];\n getVisitFn (node: T): (vector: VectorType, index: number) => VectorType['TValue'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, index: number) => VectorType['TValue'];\n visitNull (vector: VectorType, index: number): T['TValue'];\n visitBool (vector: VectorType, index: number): T['TValue'];\n visitInt (vector: VectorType, index: number): T['TValue'];\n visitInt8 (vector: VectorType, index: number): T['TValue'];\n visitInt16 (vector: VectorType, index: number): T['TValue'];\n visitInt32 (vector: VectorType, index: number): T['TValue'];\n visitInt64 (vector: VectorType, index: number): T['TValue'];\n visitUint8 (vector: VectorType, index: number): T['TValue'];\n visitUint16 (vector: VectorType, index: number): T['TValue'];\n visitUint32 (vector: VectorType, index: number): T['TValue'];\n visitUint64 (vector: VectorType, index: number): T['TValue'];\n visitFloat (vector: VectorType, index: number): T['TValue'];\n visitFloat16 (vector: VectorType, index: number): T['TValue'];\n visitFloat32 (vector: VectorType, index: number): T['TValue'];\n visitFloat64 (vector: VectorType, index: number): T['TValue'];\n visitUtf8 (vector: VectorType, index: number): T['TValue'];\n visitBinary (vector: VectorType, index: number): T['TValue'];\n visitFixedSizeBinary (vector: VectorType, index: number): T['TValue'];\n visitDate (vector: VectorType, index: number): T['TValue'];\n visitDateDay (vector: VectorType, index: number): T['TValue'];\n visitDateMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimestamp (vector: VectorType, index: number): T['TValue'];\n visitTimestampSecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampMicrosecond (vector: VectorType, index: number): T['TValue'];\n visitTimestampNanosecond (vector: VectorType, index: number): T['TValue'];\n visitTime (vector: VectorType, index: number): T['TValue'];\n visitTimeSecond (vector: VectorType, index: number): T['TValue'];\n visitTimeMillisecond (vector: VectorType, index: number): T['TValue'];\n visitTimeMicrosecond (vector: VectorType, index: number): T['TValue'];\n visitTimeNanosecond (vector: VectorType, index: number): T['TValue'];\n visitDecimal (vector: VectorType, index: number): T['TValue'];\n visitList (vector: VectorType, index: number): T['TValue'];\n visitStruct (vector: VectorType, index: number): T['TValue'];\n visitUnion (vector: VectorType, index: number): T['TValue'];\n visitDenseUnion (vector: VectorType, index: number): T['TValue'];\n visitSparseUnion (vector: VectorType, index: number): T['TValue'];\n visitDictionary (vector: VectorType, index: number): T['TValue'];\n visitInterval (vector: VectorType, index: number): T['TValue'];\n visitIntervalDayTime (vector: VectorType, index: number): T['TValue'];\n visitIntervalYearMonth (vector: VectorType, index: number): T['TValue'];\n visitFixedSizeList (vector: VectorType, index: number): T['TValue'];\n visitMap (vector: VectorType, index: number): T['TValue'];\n}\n\n/** @ignore */\nexport class GetVisitor extends Visitor {}\n\n/** @ignore */const epochDaysToMs = (data: Int32Array, index: number) => 86400000 * data[index];\n/** @ignore */const epochMillisecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1]) + (data[index] >>> 0);\n/** @ignore */const epochMicrosecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1] / 1000) + ((data[index] >>> 0) / 1000);\n/** @ignore */const epochNanosecondsLongToMs = (data: Int32Array, index: number) => 4294967296 * (data[index + 1] / 1000000) + ((data[index] >>> 0) / 1000000);\n\n/** @ignore */const epochMillisecondsToDate = (epochMs: number) => new Date(epochMs);\n/** @ignore */const epochDaysToDate = (data: Int32Array, index: number) => epochMillisecondsToDate(epochDaysToMs(data, index));\n/** @ignore */const epochMillisecondsLongToDate = (data: Int32Array, index: number) => epochMillisecondsToDate(epochMillisecondsLongToMs(data, index));\n\n/** @ignore */\nconst getNull = (_vector: VectorType, _index: number): T['TValue'] => null;\n/** @ignore */\nconst getVariableWidthBytes = (values: Uint8Array, valueOffsets: Int32Array, index: number) => {\n const { [index]: x, [index + 1]: y } = valueOffsets;\n return x != null && y != null ? values.subarray(x, y) : null as any;\n};\n\n/** @ignore */\nconst getBool = ({ offset, values }: VectorType, index: number): T['TValue'] => {\n const idx = offset + index;\n const byte = values[idx >> 3];\n return (byte & 1 << (idx % 8)) !== 0;\n};\n\n/** @ignore */\ntype Numeric1X = Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32 | Float32 | Float64;\n/** @ignore */\ntype Numeric2X = Int64 | Uint64;\n\n/** @ignore */\nconst getDateDay = ({ values }: VectorType, index: number): T['TValue'] => epochDaysToDate(values, index);\n/** @ignore */\nconst getDateMillisecond = ({ values }: VectorType, index: number): T['TValue'] => epochMillisecondsLongToDate(values, index * 2);\n/** @ignore */\nconst getNumeric = ({ stride, values }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getFloat16 = ({ stride, values }: VectorType, index: number): T['TValue'] => uint16ToFloat64(values[stride * index]);\n/** @ignore */\nconst getBigInts = ({ stride, values, type }: VectorType, index: number): T['TValue'] => BN.new(values.subarray(stride * index, stride * (index + 1)), type.isSigned);\n/** @ignore */\nconst getFixedSizeBinary = ({ stride, values }: VectorType, index: number): T['TValue'] => values.subarray(stride * index, stride * (index + 1));\n\n/** @ignore */\nconst getBinary = ({ values, valueOffsets }: VectorType, index: number): T['TValue'] => getVariableWidthBytes(values, valueOffsets, index);\n/** @ignore */\nconst getUtf8 = ({ values, valueOffsets }: VectorType, index: number): T['TValue'] => {\n const bytes = getVariableWidthBytes(values, valueOffsets, index);\n return bytes !== null ? decodeUtf8(bytes) : null as any;\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInt = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.bitWidth < 64\n ? getNumeric(vector as VectorType, index)\n : getBigInts(vector as VectorType, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getFloat = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.precision !== Precision.HALF\n ? getNumeric(vector as VectorType, index)\n : getFloat16(vector as VectorType, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getDate = (vector: VectorType, index: number): T['TValue'] => (\n vector.type.unit === DateUnit.DAY\n ? getDateDay(vector as VectorType, index)\n : getDateMillisecond(vector as VectorType, index)\n);\n\n/** @ignore */\nconst getTimestampSecond = ({ values }: VectorType, index: number): T['TValue'] => 1000 * epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMillisecond = ({ values }: VectorType, index: number): T['TValue'] => epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMicrosecond = ({ values }: VectorType, index: number): T['TValue'] => epochMicrosecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampNanosecond = ({ values }: VectorType, index: number): T['TValue'] => epochNanosecondsLongToMs(values, index * 2);\n/* istanbul ignore next */\n/** @ignore */\nconst getTimestamp = (vector: VectorType, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimestampSecond(vector as VectorType, index);\n case TimeUnit.MILLISECOND: return getTimestampMillisecond(vector as VectorType, index);\n case TimeUnit.MICROSECOND: return getTimestampMicrosecond(vector as VectorType, index);\n case TimeUnit.NANOSECOND: return getTimestampNanosecond(vector as VectorType, index);\n }\n};\n\n/** @ignore */\nconst getTimeSecond = ({ values, stride }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMillisecond = ({ values, stride }: VectorType, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMicrosecond = ({ values }: VectorType, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/** @ignore */\nconst getTimeNanosecond = ({ values }: VectorType, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/* istanbul ignore next */\n/** @ignore */\nconst getTime = (vector: VectorType, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimeSecond(vector as VectorType, index);\n case TimeUnit.MILLISECOND: return getTimeMillisecond(vector as VectorType, index);\n case TimeUnit.MICROSECOND: return getTimeMicrosecond(vector as VectorType, index);\n case TimeUnit.NANOSECOND: return getTimeNanosecond(vector as VectorType, index);\n }\n};\n\n/** @ignore */\nconst getDecimal = ({ values }: VectorType, index: number): T['TValue'] => BN.decimal(values.subarray(4 * index, 4 * (index + 1)));\n\n/** @ignore */\nconst getList = (vector: VectorType, index: number): T['TValue'] => {\n const child = vector.getChildAt(0)!, { valueOffsets, stride } = vector;\n return child.slice(valueOffsets[index * stride], valueOffsets[(index * stride) + 1]) as T['TValue'];\n};\n\n/** @ignore */\nconst getMap = (vector: VectorType, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/** @ignore */\nconst getStruct = (vector: VectorType, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getUnion = <\n V extends VectorType | VectorType | VectorType\n>(vector: V, index: number): V['TValue'] => {\n return vector.type.mode === UnionMode.Dense ?\n getDenseUnion(vector as VectorType, index) :\n getSparseUnion(vector as VectorType, index);\n};\n\n/** @ignore */\nconst getDenseUnion = (vector: VectorType, index: number): T['TValue'] => {\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\n/** @ignore */\nconst getSparseUnion = (vector: VectorType, index: number): T['TValue'] => {\n const childIndex = vector.typeIdToChildIndex[vector.typeIds[index]];\n const child = vector.getChildAt(childIndex);\n return child ? child.get(index) : null;\n};\n\n/** @ignore */\nconst getDictionary = (vector: VectorType, index: number): T['TValue'] => {\n return vector.getValue(vector.getKey(index)!);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInterval = (vector: VectorType, index: number): T['TValue'] =>\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? getIntervalDayTime(vector as VectorType, index)\n : getIntervalYearMonth(vector as VectorType, index);\n\n/** @ignore */\nconst getIntervalDayTime = ({ values }: VectorType, index: number): T['TValue'] => values.subarray(2 * index, 2 * (index + 1));\n\n/** @ignore */\nconst getIntervalYearMonth = ({ values }: VectorType, index: number): T['TValue'] => {\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\n/** @ignore */\nconst getFixedSizeList = (vector: VectorType, index: number): T['TValue'] => {\n const child = vector.getChildAt(0)!, { stride } = vector;\n return child.slice(index * stride, (index + 1) * stride) as T['TValue'];\n};\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\n/** @ignore */\nexport const instance = new GetVisitor();\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.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { getBool, iterateBits } from '../util/bit';\nimport { createElementComparator } from '../util/vector';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IndexOfVisitor extends Visitor {\n visit (node: T, value: T['TValue'] | null, index?: number): number;\n visitMany (nodes: T[], values: (T['TValue'] | null)[], indices: (number | undefined)[]): number[];\n getVisitFn (node: T): (vector: VectorType, value: VectorType['TValue'] | null, index?: number) => number;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType, value: T['TValue'] | null, index?: number) => number;\n visitNull (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitBool (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInt64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUint64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat16 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat32 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFloat64 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUtf8 (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitBinary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeBinary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDate (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDateDay (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDateMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestamp (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampSecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampMicrosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimestampNanosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTime (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeSecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeMillisecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeMicrosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitTimeNanosecond (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDecimal (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitList (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitStruct (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDenseUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitSparseUnion (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitDictionary (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitInterval (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitIntervalDayTime (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitIntervalYearMonth (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeList (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n visitMap (vector: VectorType, value: T['TValue'] | null, index?: number): number;\n}\n\n/** @ignore */\nexport class IndexOfVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullIndexOf(vector: VectorType, searchElement?: null) {\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\n/** @ignore */\nfunction indexOfNull(vector: VectorType, fromIndex?: number): number {\n const { nullBitmap } = vector;\n if (!nullBitmap || vector.nullCount <= 0) {\n return -1;\n }\n let i = 0;\n for (const isValid of iterateBits(nullBitmap, vector.data.offset + (fromIndex || 0), vector.length, nullBitmap, getBool)) {\n if (!isValid) { return i; }\n ++i;\n }\n return -1;\n}\n\n/** @ignore */\nfunction indexOfValue(vector: VectorType, searchElement?: T['TValue'] | null, fromIndex?: number): number {\n if (searchElement === undefined) { return -1; }\n if (searchElement === null) { return indexOfNull(vector, fromIndex); }\n const compare = 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\n/** @ignore */\nfunction indexOfUnion(vector: VectorType, searchElement?: T['TValue'] | null, fromIndex?: number): number {\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 = 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\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\n/** @ignore */\nexport const instance = new IndexOfVisitor();\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.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { iterateBits } from '../util/bit';\nimport { instance as getVisitor } from './get';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IteratorVisitor extends Visitor {\n visit(node: T): IterableIterator;\n visitMany (nodes: T[]): IterableIterator[];\n getVisitFn(node: T): (vector: VectorType) => IterableIterator['TValue'] | null>;\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => IterableIterator['TValue'] | null>;\n visitNull (vector: VectorType): IterableIterator;\n visitBool (vector: VectorType): IterableIterator;\n visitInt (vector: VectorType): IterableIterator;\n visitInt8 (vector: VectorType): IterableIterator;\n visitInt16 (vector: VectorType): IterableIterator;\n visitInt32 (vector: VectorType): IterableIterator;\n visitInt64 (vector: VectorType): IterableIterator;\n visitUint8 (vector: VectorType): IterableIterator;\n visitUint16 (vector: VectorType): IterableIterator;\n visitUint32 (vector: VectorType): IterableIterator;\n visitUint64 (vector: VectorType): IterableIterator;\n visitFloat (vector: VectorType): IterableIterator;\n visitFloat16 (vector: VectorType): IterableIterator;\n visitFloat32 (vector: VectorType): IterableIterator;\n visitFloat64 (vector: VectorType): IterableIterator;\n visitUtf8 (vector: VectorType): IterableIterator;\n visitBinary (vector: VectorType): IterableIterator;\n visitFixedSizeBinary (vector: VectorType): IterableIterator;\n visitDate (vector: VectorType): IterableIterator;\n visitDateDay (vector: VectorType): IterableIterator;\n visitDateMillisecond (vector: VectorType): IterableIterator;\n visitTimestamp (vector: VectorType): IterableIterator;\n visitTimestampSecond (vector: VectorType): IterableIterator;\n visitTimestampMillisecond (vector: VectorType): IterableIterator;\n visitTimestampMicrosecond (vector: VectorType): IterableIterator;\n visitTimestampNanosecond (vector: VectorType): IterableIterator;\n visitTime (vector: VectorType): IterableIterator;\n visitTimeSecond (vector: VectorType): IterableIterator;\n visitTimeMillisecond (vector: VectorType): IterableIterator;\n visitTimeMicrosecond (vector: VectorType): IterableIterator;\n visitTimeNanosecond (vector: VectorType): IterableIterator;\n visitDecimal (vector: VectorType): IterableIterator;\n visitList (vector: VectorType): IterableIterator;\n visitStruct (vector: VectorType): IterableIterator;\n visitUnion (vector: VectorType): IterableIterator;\n visitDenseUnion (vector: VectorType): IterableIterator;\n visitSparseUnion (vector: VectorType): IterableIterator;\n visitDictionary (vector: VectorType): IterableIterator;\n visitInterval (vector: VectorType): IterableIterator;\n visitIntervalDayTime (vector: VectorType): IterableIterator;\n visitIntervalYearMonth (vector: VectorType): IterableIterator;\n visitFixedSizeList (vector: VectorType): IterableIterator;\n visitMap (vector: VectorType): IterableIterator;\n}\n\n/** @ignore */\nexport class IteratorVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullableIterator(vector: VectorType): IterableIterator {\n const getFn = getVisitor.getVisitFn(vector);\n return iterateBits(\n vector.nullBitmap, vector.offset, vector.length, vector,\n (vec: VectorType, idx: number, nullByte: number, nullBit: number) =>\n ((nullByte & 1 << nullBit) !== 0) ? getFn(vec, idx) : null\n );\n}\n\n/** @ignore */\nfunction vectorIterator(vector: VectorType): IterableIterator {\n\n // If nullable, iterate manually\n if (vector.nullCount > 0) {\n return nullableIterator(vector);\n }\n\n const { type, typeId, length } = vector;\n\n // Fast case, defer to native iterators if possible\n if (vector.stride === 1 && (\n (typeId === Type.Timestamp) ||\n (typeId === Type.Int && (type as Int).bitWidth !== 64) ||\n (typeId === Type.Time && (type as Time).bitWidth !== 64) ||\n (typeId === Type.Float && (type as Float).precision > 0 /* Precision.HALF */)\n )) {\n return vector.values.subarray(0, length)[Symbol.iterator]();\n }\n\n // Otherwise, iterate manually\n return (function* (getFn) {\n for (let index = -1; ++index < length;) {\n yield getFn(vector, index);\n }\n })(getVisitor.getVisitFn(vector));\n}\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\n/** @ignore */\nexport const instance = new IteratorVisitor();\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.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { instance as iteratorVisitor } from './iterator';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface ToArrayVisitor extends Visitor {\n visit(node: T): T['TArray'];\n visitMany(nodes: T[]): T['TArray'][];\n getVisitFn(node: T): (vector: VectorType) => VectorType['TArray'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => VectorType['TArray'];\n visitNull (vector: VectorType): VectorType['TArray'];\n visitBool (vector: VectorType): VectorType['TArray'];\n visitInt (vector: VectorType): VectorType['TArray'];\n visitInt8 (vector: VectorType): VectorType['TArray'];\n visitInt16 (vector: VectorType): VectorType['TArray'];\n visitInt32 (vector: VectorType): VectorType['TArray'];\n visitInt64 (vector: VectorType): VectorType['TArray'];\n visitUint8 (vector: VectorType): VectorType['TArray'];\n visitUint16 (vector: VectorType): VectorType['TArray'];\n visitUint32 (vector: VectorType): VectorType['TArray'];\n visitUint64 (vector: VectorType): VectorType['TArray'];\n visitFloat (vector: VectorType): VectorType['TArray'];\n visitFloat16 (vector: VectorType): VectorType['TArray'];\n visitFloat32 (vector: VectorType): VectorType['TArray'];\n visitFloat64 (vector: VectorType): VectorType['TArray'];\n visitUtf8 (vector: VectorType): VectorType['TArray'];\n visitBinary (vector: VectorType): VectorType['TArray'];\n visitFixedSizeBinary (vector: VectorType): VectorType['TArray'];\n visitDate (vector: VectorType): VectorType['TArray'];\n visitDateDay (vector: VectorType): VectorType['TArray'];\n visitDateMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestamp (vector: VectorType): VectorType['TArray'];\n visitTimestampSecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimestampNanosecond (vector: VectorType): VectorType['TArray'];\n visitTime (vector: VectorType): VectorType['TArray'];\n visitTimeSecond (vector: VectorType): VectorType['TArray'];\n visitTimeMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimeMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimeNanosecond (vector: VectorType): VectorType['TArray'];\n visitDecimal (vector: VectorType): VectorType['TArray'];\n visitList > (vector: VectorType): VectorType['TArray'];\n visitStruct (vector: VectorType): VectorType['TArray'];\n visitUnion (vector: VectorType): VectorType['TArray'];\n visitDenseUnion (vector: VectorType): VectorType['TArray'];\n visitSparseUnion (vector: VectorType): VectorType['TArray'];\n visitDictionary > (vector: VectorType): VectorType['TArray'];\n visitInterval (vector: VectorType): VectorType['TArray'];\n visitIntervalDayTime (vector: VectorType): VectorType['TArray'];\n visitIntervalYearMonth (vector: VectorType): VectorType['TArray'];\n visitFixedSizeList > (vector: VectorType): VectorType['TArray'];\n visitMap (vector: VectorType): VectorType['TArray'];\n}\n\n/** @ignore */\nexport class ToArrayVisitor extends Visitor {}\n\n/** @ignore */\nfunction arrayOfVector(vector: VectorType): T['TArray'] {\n\n const { type, length, stride } = vector;\n\n // Fast case, return subarray if possible\n switch (type.typeId) {\n case Type.Int:\n case Type.Float: case Type.Decimal:\n case Type.Time: case Type.Timestamp:\n return vector.values.subarray(0, length * stride);\n }\n\n // Otherwise if not primitive, slow copy\n return [...iteratorVisitor.visit(vector)] as T['TArray'];\n}\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\n/** @ignore */\nexport const instance = new ToArrayVisitor();\n","/* istanbul ignore file */\n\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.\n\nimport { Data } from '../data';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { Type, TimeUnit } from '../enum';\nimport { Schema, Field } from '../schema';\nimport {\n DataType, Dictionary,\n Float, Int, Date_, Interval, Time, Timestamp,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary,\n List, FixedSizeList, Map_, Struct, Union,\n} from '../type';\n\n/** @ignore */ const sum = (x: number, y: number) => x + y;\n/** @ignore */ const variableWidthColumnErrorMessage = (type: DataType) => `Cannot compute the byte width of variable-width column ${type}`;\n\n/** @ignore */\nexport interface ByteWidthVisitor extends Visitor {\n visit(node: T): number;\n visitMany(nodes: T[]): number[];\n getVisitFn (node: T): (type: DataType) => number;\n getVisitFn(node: VectorType | Data | T): (type: T) => number;\n}\n\n/** @ignore */\nexport class ByteWidthVisitor extends Visitor {\n public visitNull (____: Null ) { return 0; }\n public visitInt (type: Int ) { return type.bitWidth / 8; }\n public visitFloat (type: Float ) { return type.ArrayType.BYTES_PER_ELEMENT; }\n public visitBinary (type: Binary ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitUtf8 (type: Utf8 ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitBool (____: Bool ) { return 1 / 8; }\n public visitDecimal (____: Decimal ) { return 16; }\n public visitDate (type: Date_ ) { return (type.unit + 1) * 4; }\n public visitTime (type: Time ) { return type.bitWidth / 8; }\n public visitTimestamp (type: Timestamp ) { return type.unit === TimeUnit.SECOND ? 4 : 8; }\n public visitInterval (type: Interval ) { return (type.unit + 1) * 4; }\n public visitList (type: List ) { throw new Error(variableWidthColumnErrorMessage(type)); }\n public visitStruct (type: Struct ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitUnion (type: Union ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitFixedSizeBinary (type: FixedSizeBinary ) { return type.byteWidth; }\n public visitFixedSizeList (type: FixedSizeList ) { return type.listSize * this.visitFields(type.children).reduce(sum, 0); }\n public visitMap (type: Map_ ) { return this.visitFields(type.children).reduce(sum, 0); }\n public visitDictionary (type: Dictionary ) { return this.visit(type.indices); }\n public visitFields (fields: Field[] ) { return (fields || []).map((field) => this.visit(field.type)); }\n public visitSchema (schema: Schema ) { return this.visitFields(schema.fields).reduce(sum, 0); }\n}\n\n/** @ignore */\nexport const instance = new ByteWidthVisitor();\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.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { DataType } from '../type';\nimport { Visitor } from '../visitor';\nimport { VectorType, VectorCtor } from '../interfaces';\n\nimport { BinaryVector } from '../vector/binary';\nimport { BoolVector } from '../vector/bool';\nimport { DateVector, DateDayVector, DateMillisecondVector } from '../vector/date';\nimport { DecimalVector } from '../vector/decimal';\nimport { DictionaryVector } from '../vector/dictionary';\nimport { FixedSizeBinaryVector } from '../vector/fixedsizebinary';\nimport { FixedSizeListVector } from '../vector/fixedsizelist';\nimport { FloatVector, Float16Vector, Float32Vector, Float64Vector } from '../vector/float';\nimport { IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector } from '../vector/interval';\nimport { IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector } from '../vector/int';\nimport { ListVector } from '../vector/list';\nimport { MapVector } from '../vector/map';\nimport { NullVector } from '../vector/null';\nimport { StructVector } from '../vector/struct';\nimport { TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector } from '../vector/timestamp';\nimport { TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector } from '../vector/time';\nimport { UnionVector, DenseUnionVector, SparseUnionVector } from '../vector/union';\nimport { Utf8Vector } from '../vector/utf8';\n\n/** @ignore */\nexport interface GetVectorConstructor extends Visitor {\n visit(node: T): VectorCtor;\n visitMany (nodes: T[]): VectorCtor[];\n getVisitFn(node: T): () => VectorCtor;\n getVisitFn(node: VectorType | Data | T): () => VectorCtor;\n}\n\n/** @ignore */\nexport class GetVectorConstructor extends Visitor {\n public visitNull () { return NullVector; }\n public visitBool () { return BoolVector; }\n public visitInt () { return IntVector; }\n public visitInt8 () { return Int8Vector; }\n public visitInt16 () { return Int16Vector; }\n public visitInt32 () { return Int32Vector; }\n public visitInt64 () { return Int64Vector; }\n public visitUint8 () { return Uint8Vector; }\n public visitUint16 () { return Uint16Vector; }\n public visitUint32 () { return Uint32Vector; }\n public visitUint64 () { return Uint64Vector; }\n public visitFloat () { return FloatVector; }\n public visitFloat16 () { return Float16Vector; }\n public visitFloat32 () { return Float32Vector; }\n public visitFloat64 () { return Float64Vector; }\n public visitUtf8 () { return Utf8Vector; }\n public visitBinary () { return BinaryVector; }\n public visitFixedSizeBinary () { return FixedSizeBinaryVector; }\n public visitDate () { return DateVector; }\n public visitDateDay () { return DateDayVector; }\n public visitDateMillisecond () { return DateMillisecondVector; }\n public visitTimestamp () { return TimestampVector; }\n public visitTimestampSecond () { return TimestampSecondVector; }\n public visitTimestampMillisecond () { return TimestampMillisecondVector; }\n public visitTimestampMicrosecond () { return TimestampMicrosecondVector; }\n public visitTimestampNanosecond () { return TimestampNanosecondVector; }\n public visitTime () { return TimeVector; }\n public visitTimeSecond () { return TimeSecondVector; }\n public visitTimeMillisecond () { return TimeMillisecondVector; }\n public visitTimeMicrosecond () { return TimeMicrosecondVector; }\n public visitTimeNanosecond () { return TimeNanosecondVector; }\n public visitDecimal () { return DecimalVector; }\n public visitList () { return ListVector; }\n public visitStruct () { return StructVector; }\n public visitUnion () { return UnionVector; }\n public visitDenseUnion () { return DenseUnionVector; }\n public visitSparseUnion () { return SparseUnionVector; }\n public visitDictionary () { return DictionaryVector; }\n public visitInterval () { return IntervalVector; }\n public visitIntervalDayTime () { return IntervalDayTimeVector; }\n public visitIntervalYearMonth () { return IntervalYearMonthVector; }\n public visitFixedSizeList () { return FixedSizeListVector; }\n public visitMap () { return MapVector; }\n}\n\n/** @ignore */\nexport const instance = new GetVectorConstructor();\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.\n\nexport { Vector } from '../vector';\nexport { BaseVector } from './base';\nexport { BinaryVector } from './binary';\nexport { BoolVector } from './bool';\nexport { Chunked } from './chunked';\nexport { DateVector, DateDayVector, DateMillisecondVector } from './date';\nexport { DecimalVector } from './decimal';\nexport { DictionaryVector } from './dictionary';\nexport { FixedSizeBinaryVector } from './fixedsizebinary';\nexport { FixedSizeListVector } from './fixedsizelist';\nexport { FloatVector, Float16Vector, Float32Vector, Float64Vector } from './float';\nexport { IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector } from './interval';\nexport { IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector } from './int';\nexport { ListVector } from './list';\nexport { MapVector } from './map';\nexport { NullVector } from './null';\nexport { StructVector } from './struct';\nexport { TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector } from './timestamp';\nexport { TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector } from './time';\nexport { UnionVector, DenseUnionVector, SparseUnionVector } from './union';\nexport { Utf8Vector } from './utf8';\nexport { MapRow, StructRow } from './row';\n\nimport * as fn from '../util/fn';\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { Chunked } from './chunked';\nimport { BaseVector } from './base';\nimport { setBool } from '../util/bit';\nimport { isIterable, isAsyncIterable } from '../util/compat';\nimport { Builder, IterableBuilderOptions } from '../builder';\nimport { VectorType as V, VectorCtorArgs } from '../interfaces';\nimport { instance as getVisitor } from '../visitor/get';\nimport { instance as setVisitor } from '../visitor/set';\nimport { instance as indexOfVisitor } from '../visitor/indexof';\nimport { instance as toArrayVisitor } from '../visitor/toarray';\nimport { instance as iteratorVisitor } from '../visitor/iterator';\nimport { instance as byteWidthVisitor } from '../visitor/bytewidth';\nimport { instance as getVectorConstructor } from '../visitor/vectorctor';\n\ndeclare module '../vector' {\n namespace Vector {\n export { newVector as new };\n export { vectorFrom as from };\n }\n}\n\ndeclare module './base' {\n namespace BaseVector {\n export { vectorFrom as from };\n }\n interface BaseVector {\n get(index: number): T['TValue'] | null;\n set(index: number, value: T['TValue'] | null): void;\n indexOf(value: T['TValue'] | null, fromIndex?: number): number;\n toArray(): T['TArray'];\n getByteWidth(): number;\n [Symbol.iterator](): IterableIterator;\n }\n}\n\n/** @nocollapse */\nVector.new = newVector;\n\n/** @nocollapse */\nVector.from = vectorFrom;\n\n/** @ignore */\nfunction newVector(data: Data, ...args: VectorCtorArgs>): V {\n return new (getVectorConstructor.getVisitFn(data)())(data, ...args) as V;\n}\n\n/** @ignore */\nexport interface VectorBuilderOptions extends IterableBuilderOptions { values: Iterable; }\n/** @ignore */\nexport interface VectorBuilderOptionsAsync extends IterableBuilderOptions { values: AsyncIterable; }\n\n/** @ignore */\nexport function vectorFromValuesWithType(newDataType: () => T, input: Iterable | AsyncIterable | VectorBuilderOptions | VectorBuilderOptionsAsync) {\n if (isIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as V;\n } else if (isAsyncIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as Promise>;\n }\n const {\n 'values': values = [],\n 'type': type = newDataType(),\n 'nullValues': nullValues = [null, undefined],\n } = { ...input };\n return isIterable(values)\n ? Vector.from({ nullValues, ...input, type } as VectorBuilderOptions)\n : Vector.from({ nullValues, ...input, type } as VectorBuilderOptionsAsync);\n}\n\n/** @ignore */\nfunction vectorFrom(input: VectorBuilderOptions): Vector;\nfunction vectorFrom(input: VectorBuilderOptionsAsync): Promise>;\nfunction vectorFrom(input: VectorBuilderOptions | VectorBuilderOptionsAsync) {\n const { 'values': values = [], ...options } = { 'nullValues': [null, undefined], ...input } as VectorBuilderOptions | VectorBuilderOptionsAsync;\n if (isIterable(values)) {\n const chunks = [...Builder.throughIterable(options)(values)];\n return chunks.length === 1 ? chunks[0] : Chunked.concat(chunks);\n }\n return (async (chunks: V[]) => {\n const transform = Builder.throughAsyncIterable(options);\n for await (const chunk of transform(values)) {\n chunks.push(chunk);\n }\n return chunks.length === 1 ? chunks[0] : Chunked.concat(chunks);\n })([]);\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//\n\nBaseVector.prototype.get = function baseVectorGet(this: BaseVector, index: number): T['TValue'] | null {\n return getVisitor.visit(this, index);\n};\n\nBaseVector.prototype.set = function baseVectorSet(this: BaseVector, index: number, value: T['TValue'] | null): void {\n return setVisitor.visit(this, index, value);\n};\n\nBaseVector.prototype.indexOf = function baseVectorIndexOf(this: BaseVector, value: T['TValue'] | null, fromIndex?: number): number {\n return indexOfVisitor.visit(this, value, fromIndex);\n};\n\nBaseVector.prototype.toArray = function baseVectorToArray(this: BaseVector): T['TArray'] {\n return toArrayVisitor.visit(this);\n};\n\nBaseVector.prototype.getByteWidth = function baseVectorGetByteWidth(this: BaseVector): number {\n return byteWidthVisitor.visit(this.type);\n};\n\nBaseVector.prototype[Symbol.iterator] = function baseVectorSymbolIterator(this: BaseVector): IterableIterator {\n return iteratorVisitor.visit(this);\n};\n\n(BaseVector.prototype as any)._bindDataAccessors = bindBaseVectorDataAccessors;\n\n// Perf: bind and assign the operator Visitor methods to each of the Vector subclasses for each Type\n(Object.keys(Type) as any[])\n .map((T: any) => Type[T] as any)\n .filter((T: any): T is Type => typeof T === 'number')\n .filter((typeId) => typeId !== Type.NONE)\n .forEach((typeId) => {\n const VectorCtor = getVectorConstructor.visit(typeId);\n VectorCtor.prototype['get'] = fn.partial1(getVisitor.getVisitFn(typeId));\n VectorCtor.prototype['set'] = fn.partial2(setVisitor.getVisitFn(typeId));\n VectorCtor.prototype['indexOf'] = fn.partial2(indexOfVisitor.getVisitFn(typeId));\n VectorCtor.prototype['toArray'] = fn.partial0(toArrayVisitor.getVisitFn(typeId));\n VectorCtor.prototype['getByteWidth'] = partialType0(byteWidthVisitor.getVisitFn(typeId));\n VectorCtor.prototype[Symbol.iterator] = fn.partial0(iteratorVisitor.getVisitFn(typeId));\n });\n\n/** @ignore */\nfunction partialType0(visit: (node: T['type']) => any) {\n return function(this: T) { return visit(this.type); };\n}\n\n/** @ignore */\nfunction wrapNullableGet, F extends (i: number) => any>(fn: F): (...args: Parameters) => ReturnType {\n return function(this: V, i: number) { return this.isValid(i) ? fn.call(this, i) : null; };\n}\n\n/** @ignore */\nfunction wrapNullableSet, F extends (i: number, a: any) => void>(fn: F): (...args: Parameters) => void {\n return function(this: V, i: number, a: any) {\n if (setBool(this.nullBitmap, this.offset + i, !(a === null || a === undefined))) {\n fn.call(this, i, a);\n }\n };\n}\n\n/** @ignore */\nfunction bindBaseVectorDataAccessors(this: BaseVector) {\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","// 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.\n\nimport { Data } from './data';\nimport { Column } from './column';\nimport { Schema, Field } from './schema';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from './recordbatch';\nimport { DataFrame } from './compute/dataframe';\nimport { RecordBatchReader } from './ipc/reader';\nimport { DataType, RowLike, Struct } from './type';\nimport { selectColumnArgs, selectArgs } from './util/args';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { isPromise, isIterable, isAsyncIterable } from './util/compat';\nimport { RecordBatchFileWriter, RecordBatchStreamWriter } from './ipc/writer';\nimport { distributeColumnsIntoRecordBatches, distributeVectorsIntoRecordBatches } from './util/recordbatch';\nimport { Vector, Chunked, StructVector, VectorBuilderOptions, VectorBuilderOptionsAsync } from './vector/index';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = Data[] | Vector[];\ntype Columns = Column[] | Column[][];\n\nexport interface Table {\n\n get(index: number): Struct['TValue'];\n [Symbol.iterator](): IterableIterator>;\n\n slice(begin?: number, end?: number): Table;\n concat(...others: Vector>[]): Table;\n clone(chunks?: RecordBatch[], offsets?: Uint32Array): Table;\n\n scan(next: import('./compute/dataframe').NextFunc, bind?: import('./compute/dataframe').BindFunc): void;\n scanReverse(next: import('./compute/dataframe').NextFunc, bind?: import('./compute/dataframe').BindFunc): void;\n countBy(name: import('./compute/predicate').Col | string): import('./compute/dataframe').CountByResult;\n filter(predicate: import('./compute/predicate').Predicate): import('./compute/dataframe').FilteredDataFrame;\n}\n\nexport class Table\n extends Chunked>\n implements DataFrame,\n Clonable>,\n Sliceable>,\n Applicative, Table> {\n\n /** @nocollapse */\n public static empty(schema = new Schema([])) { return new Table(schema, []); }\n\n public static from(): Table<{}>;\n public static from(source: RecordBatchReader): Table;\n public static from(source: import('./ipc/reader').FromArg0): Table;\n public static from(source: import('./ipc/reader').FromArg2): Table;\n public static from(source: import('./ipc/reader').FromArg1): Promise>;\n public static from(source: import('./ipc/reader').FromArg3): Promise>;\n public static from(source: import('./ipc/reader').FromArg4): Promise>;\n public static from(source: import('./ipc/reader').FromArg5): Promise>;\n public static from(source: PromiseLike>): Promise>;\n public static from(options: VectorBuilderOptions, TNull>): Table;\n public static from(options: VectorBuilderOptionsAsync, TNull>): Promise>;\n /** @nocollapse */\n public static from(input?: any) {\n\n if (!input) { return Table.empty(); }\n\n if (typeof input === 'object') {\n let table = isIterable(input['values']) ? tableFromIterable(input)\n : isAsyncIterable(input['values']) ? tableFromAsyncIterable(input)\n : null;\n if (table !== null) { return table; }\n }\n\n let reader = RecordBatchReader.from(input) as RecordBatchReader | Promise>;\n\n if (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: RecordBatch[] = [];\n if (schema) {\n for await (let batch of reader) {\n batches.push(batch);\n }\n return new Table(schema, batches);\n }\n return Table.empty();\n })(reader.open());\n }\n\n /** @nocollapse */\n public static async fromAsync(source: import('./ipc/reader').FromArgs): Promise> {\n return await Table.from(source as any);\n }\n\n /** @nocollapse */\n public static fromStruct(vector: Vector>) {\n return Table.new(vector.data.childData as Data[], vector.type.children);\n }\n\n /**\n * @summary Create a new Table from a collection of Columns or Vectors,\n * with an optional list of names or Fields.\n *\n *\n * `Table.new` accepts an Object of\n * Columns or Vectors, where the keys will be used as the field names\n * for the Schema:\n * ```ts\n * const i32s = Int32Vector.from([1, 2, 3]);\n * const f32s = Float32Vector.from([.1, .2, .3]);\n * const table = Table.new({ i32: i32s, f32: f32s });\n * assert(table.schema.fields[0].name === 'i32');\n * ```\n *\n * It also accepts a a list of Vectors with an optional list of names or\n * Fields for the resulting Schema. If the list is omitted or a name is\n * missing, the numeric index of each Vector will be used as the name:\n * ```ts\n * const i32s = Int32Vector.from([1, 2, 3]);\n * const f32s = Float32Vector.from([.1, .2, .3]);\n * const table = Table.new([i32s, f32s], ['i32']);\n * assert(table.schema.fields[0].name === 'i32');\n * assert(table.schema.fields[1].name === '1');\n * ```\n *\n * If the supplied arguments are Columns, `Table.new` will infer the Schema\n * from the Columns:\n * ```ts\n * const i32s = Column.new('i32', Int32Vector.from([1, 2, 3]));\n * const f32s = Column.new('f32', Float32Vector.from([.1, .2, .3]));\n * const table = Table.new(i32s, f32s);\n * assert(table.schema.fields[0].name === 'i32');\n * assert(table.schema.fields[1].name === 'f32');\n * ```\n *\n * If the supplied Vector or Column lengths are unequal, `Table.new` will\n * extend the lengths of the shorter Columns, allocating additional bytes\n * to represent the additional null slots. The memory required to allocate\n * these additional bitmaps can be computed as:\n * ```ts\n * let additionalBytes = 0;\n * for (let vec in shorter_vectors) {\n * additionalBytes += (((longestLength - vec.length) + 63) & ~63) >> 3;\n * }\n * ```\n *\n * For example, an additional null bitmap for one million null values would require\n * 125,000 bytes (`((1e6 + 63) & ~63) >> 3`), or approx. `0.11MiB`\n */\n public static new(...columns: Columns): Table;\n public static new(children: T): Table<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): Table;\n /** @nocollapse */\n public static new(...cols: any[]) {\n return new Table(...distributeColumnsIntoRecordBatches(selectColumnArgs(cols)));\n }\n\n constructor(batches: RecordBatch[]);\n constructor(...batches: RecordBatch[]);\n constructor(schema: Schema, batches: RecordBatch[]);\n constructor(schema: Schema, ...batches: RecordBatch[]);\n constructor(...args: any[]) {\n\n let schema: Schema = null!;\n\n if (args[0] instanceof Schema) { schema = args.shift(); }\n\n let chunks = selectArgs>(RecordBatch, args);\n\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\n chunks[0] || (chunks[0] = new _InternalEmptyPlaceholderRecordBatch(schema));\n\n super(new Struct(schema.fields), chunks);\n\n this._schema = schema;\n this._chunks = chunks;\n }\n\n protected _schema: Schema;\n // List of inner RecordBatches\n protected _chunks: RecordBatch[];\n protected _children?: Column[];\n\n public get schema() { return this._schema; }\n public get length() { return this._length; }\n public get chunks() { return this._chunks; }\n public get numCols() { return this._numChildren; }\n\n public clone(chunks = this._chunks) {\n return new Table(this._schema, chunks);\n }\n\n public getColumn(name: R): Column {\n return this.getColumnAt(this.getColumnIndex(name)) as Column;\n }\n public getColumnAt(index: number): Column | null {\n return this.getChildAt(index);\n }\n public getColumnIndex(name: R) {\n return this._schema.fields.findIndex((f) => f.name === name);\n }\n public getChildAt(index: number): Column | null {\n if (index < 0 || index >= this.numChildren) { return null; }\n let field: Field, child: Column;\n const fields = (this._schema as Schema).fields;\n const columns = this._children || (this._children = []) as Column[];\n if (child = columns[index]) { return child as Column; }\n if (field = fields[index]) {\n const chunks = this._chunks\n .map((chunk) => chunk.getChildAt(index))\n .filter((vec): vec is Vector => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column(field, chunks));\n }\n }\n return null;\n }\n\n // @ts-ignore\n public serialize(encoding = 'binary', stream = true) {\n const Writer = !stream\n ? RecordBatchFileWriter\n : RecordBatchStreamWriter;\n return Writer.writeAll(this).toUint8Array(true);\n }\n public count(): number {\n return this._length;\n }\n public select(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt(...columnIndices: number[]) {\n const schema = this._schema.selectAt(...columnIndices);\n return new Table(schema, this._chunks.map(({ length, data: { childData } }) => {\n return new RecordBatch(schema, length, columnIndices.map((i) => childData[i]).filter(Boolean));\n }));\n }\n public assign(other: Table) {\n\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 }, [[], []] as number[][]);\n\n const schema = this._schema.assign(other.schema);\n const columns = [\n ...fields.map((_f, i, _fs, j = oldToNew[i]) =>\n (j === undefined ? this.getColumnAt(i) : other.getColumnAt(j))!),\n ...indices.map((i) => other.getColumnAt(i)!)\n ].filter(Boolean) as Column<(T & R)[keyof T | keyof R]>[];\n\n return new Table(...distributeVectorsIntoRecordBatches(schema, columns));\n }\n}\n\nfunction tableFromIterable(input: VectorBuilderOptions, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return Table.fromStruct(StructVector.from(input as VectorBuilderOptions, TNull>));\n }\n return null;\n}\n\nfunction tableFromAsyncIterable(input: VectorBuilderOptionsAsync, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return StructVector.from(input as VectorBuilderOptionsAsync, TNull>).then((vector) => Table.fromStruct(vector));\n }\n return null;\n}\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.\n\nimport { Data } from './data';\nimport { Table } from './table';\nimport { Vector } from './vector';\nimport { Visitor } from './visitor';\nimport { Schema, Field } from './schema';\nimport { isIterable } from './util/compat';\nimport { Chunked } from './vector/chunked';\nimport { selectFieldArgs } from './util/args';\nimport { DataType, Struct, Dictionary } from './type';\nimport { ensureSameLengthData } from './util/recordbatch';\nimport { Clonable, Sliceable, Applicative } from './vector';\nimport { StructVector, VectorBuilderOptions, VectorBuilderOptionsAsync } from './vector/index';\n\ntype VectorMap = { [key: string]: Vector };\ntype Fields = (keyof T)[] | Field[];\ntype ChildData = (Data | Vector)[];\n\nexport interface RecordBatch {\n concat(...others: Vector>[]): Table;\n slice(begin?: number, end?: number): RecordBatch;\n clone(data: Data>, children?: Vector[]): RecordBatch;\n}\n\nexport class RecordBatch\n extends StructVector\n implements Clonable>,\n Sliceable>,\n Applicative, Table> {\n\n public static from(options: VectorBuilderOptions, TNull>): Table;\n public static from(options: VectorBuilderOptionsAsync, TNull>): Promise>;\n /** @nocollapse */\n public static from(options: VectorBuilderOptions, TNull> | VectorBuilderOptionsAsync, TNull>) {\n if (isIterable<(Struct)['TValue'] | TNull>(options['values'])) {\n return Table.from(options as VectorBuilderOptions, TNull>);\n }\n return Table.from(options as VectorBuilderOptionsAsync, TNull>);\n }\n\n public static new(children: T): RecordBatch<{ [P in keyof T]: T[P]['type'] }>;\n public static new(children: ChildData, fields?: Fields): RecordBatch;\n /** @nocollapse */\n public static new(...args: any[]) {\n const [fs, xs] = selectFieldArgs(args);\n const vs = xs.filter((x): x is Vector => x instanceof Vector);\n return new RecordBatch(...ensureSameLengthData(new Schema(fs), vs.map((x) => x.data)));\n }\n\n protected _schema: Schema;\n protected _dictionaries?: Map;\n\n constructor(schema: Schema, length: number, children: (Data | Vector)[]);\n constructor(schema: Schema, data: Data>, children?: Vector[]);\n constructor(...args: any[]) {\n let data: Data>;\n let schema = args[0] as Schema;\n let children: Vector[] | undefined;\n if (args[1] instanceof Data) {\n [, data, children] = (args as [any, Data>, Vector[]?]);\n } else {\n const fields = schema.fields as Field[];\n const [, length, childData] = args as [any, number, Data[]];\n data = Data.Struct(new Struct(fields), 0, length, 0, null, childData);\n }\n super(data, children);\n this._schema = schema;\n }\n\n public clone(data: Data>, children = this._children) {\n return new RecordBatch(this._schema, data, children);\n }\n\n public concat(...others: Vector>[]): Table {\n const schema = this._schema, chunks = Chunked.flatten(this, ...others);\n return new Table(schema, chunks.map(({ data }) => new RecordBatch(schema, data)));\n }\n\n public get schema() { return this._schema; }\n public get numCols() { return this._schema.fields.length; }\n public get dictionaries() {\n return this._dictionaries || (this._dictionaries = DictionaryCollector.collect(this));\n }\n\n public select(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt(...columnIndices: number[]) {\n const schema = this._schema.selectAt(...columnIndices);\n const childData = columnIndices.map((i) => this.data.childData[i]).filter(Boolean);\n return new RecordBatch<{ [key: string]: K }>(schema, this.length, childData);\n }\n}\n\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/* tslint:disable:class-name */\nexport class _InternalEmptyPlaceholderRecordBatch extends RecordBatch {\n constructor(schema: Schema) {\n super(schema, 0, schema.fields.map((f) => Data.new(f.type, 0, 0, 0)));\n }\n}\n\n/** @ignore */\nclass DictionaryCollector extends Visitor {\n public dictionaries = new Map();\n public static collect(batch: T) {\n return new DictionaryCollector().visit(\n batch.data, new Struct(batch.schema.fields)\n ).dictionaries;\n }\n public visit(data: Data, type: DataType) {\n if (DataType.isDictionary(type)) {\n return this.visitDictionary(data, type);\n } else {\n data.childData.forEach((child, i) =>\n this.visit(child, type.children[i].type));\n }\n return this;\n }\n public visitDictionary(data: Data, type: Dictionary) {\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","// 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.\n\nimport { Vector } from '../vector';\nimport { DataType } from '../type';\nimport { MessageHeader } from '../enum';\nimport { Footer } from './metadata/file';\nimport { Schema, Field } from '../schema';\nimport streamAdapters from '../io/adapters';\nimport { Message } from './metadata/message';\nimport * as metadata from './metadata/message';\nimport { ArrayBufferViewInput } from '../util/buffer';\nimport { ByteStream, AsyncByteStream } from '../io/stream';\nimport { RandomAccessFile, AsyncRandomAccessFile } from '../io/file';\nimport { VectorLoader, JSONVectorLoader } from '../visitor/vectorloader';\nimport { RecordBatch, _InternalEmptyPlaceholderRecordBatch } from '../recordbatch';\nimport {\n FileHandle,\n ArrowJSONLike,\n ITERATOR_DONE,\n ReadableInterop,\n} from '../io/interfaces';\nimport {\n MessageReader, AsyncMessageReader, JSONMessageReader,\n checkForMagicArrowString, magicLength, magicAndPadding, magicX2AndPadding\n} from './message';\nimport {\n isPromise,\n isIterable, isAsyncIterable,\n isIteratorResult, isArrowJSON,\n isFileHandle, isFetchResponse,\n isReadableDOMStream, isReadableNodeStream\n} from '../util/compat';\n\n/** @ignore */ export type FromArg0 = ArrowJSONLike;\n/** @ignore */ export type FromArg1 = PromiseLike;\n/** @ignore */ export type FromArg2 = Iterable | ArrayBufferViewInput;\n/** @ignore */ export type FromArg3 = PromiseLike | ArrayBufferViewInput>;\n/** @ignore */ export type FromArg4 = Response | NodeJS.ReadableStream | ReadableStream | AsyncIterable;\n/** @ignore */ export type FromArg5 = FileHandle | PromiseLike | PromiseLike;\n/** @ignore */ export type FromArgs = FromArg0 | FromArg1 | FromArg2 | FromArg3 | FromArg4 | FromArg5;\n\n/** @ignore */ type OpenOptions = { autoDestroy?: boolean; };\n/** @ignore */ type RecordBatchReaders = RecordBatchFileReader | RecordBatchStreamReader;\n/** @ignore */ type AsyncRecordBatchReaders = AsyncRecordBatchFileReader | AsyncRecordBatchStreamReader;\n/** @ignore */ type RecordBatchFileReaders = RecordBatchFileReader | AsyncRecordBatchFileReader;\n/** @ignore */ type RecordBatchStreamReaders = RecordBatchStreamReader | AsyncRecordBatchStreamReader;\n\nexport class RecordBatchReader extends ReadableInterop> {\n\n protected _impl: RecordBatchReaderImpls;\n protected constructor(impl: RecordBatchReaderImpls) {\n super();\n this._impl = impl;\n }\n\n public get closed() { return this._impl.closed; }\n public get schema() { return this._impl.schema; }\n public get autoDestroy() { return this._impl.autoDestroy; }\n public get dictionaries() { return this._impl.dictionaries; }\n public get numDictionaries() { return this._impl.numDictionaries; }\n public get numRecordBatches() { return this._impl.numRecordBatches; }\n public get footer() { return this._impl.isFile() ? this._impl.footer : null; }\n\n public isSync(): this is RecordBatchReaders { return this._impl.isSync(); }\n public isAsync(): this is AsyncRecordBatchReaders { return this._impl.isAsync(); }\n public isFile(): this is RecordBatchFileReaders { return this._impl.isFile(); }\n public isStream(): this is RecordBatchStreamReaders { return this._impl.isStream(); }\n\n public next() {\n return this._impl.next();\n }\n public throw(value?: any) {\n return this._impl.throw(value);\n }\n public return(value?: any) {\n return this._impl.return(value);\n }\n public cancel() {\n return this._impl.cancel();\n }\n public reset(schema?: Schema | null): this {\n this._impl.reset(schema);\n this._DOMStream = undefined;\n this._nodeStream = undefined;\n return this;\n }\n public open(options?: OpenOptions) {\n const opening = this._impl.open(options);\n return isPromise(opening) ? opening.then(() => this) : this;\n }\n public readRecordBatch(index: number): RecordBatch | null | Promise | null> {\n return this._impl.isFile() ? this._impl.readRecordBatch(index) : null;\n }\n public [Symbol.iterator](): IterableIterator> {\n return (>> this._impl)[Symbol.iterator]();\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator> {\n return (>> this._impl)[Symbol.asyncIterator]();\n }\n public toDOMStream() {\n return streamAdapters.toDOMStream>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable>));\n }\n public toNodeStream() {\n return streamAdapters.toNodeStream>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable>),\n { objectMode: true });\n }\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode(options?: import('stream').DuplexOptions & { autoDestroy: boolean }): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n public static throughDOM(\n // @ts-ignore\n writableStrategy?: ByteLengthQueuingStrategy,\n // @ts-ignore\n readableStrategy?: { autoDestroy: boolean }\n ): { writable: WritableStream, readable: ReadableStream> } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n public static from(source: T): T;\n public static from(source: FromArg0): RecordBatchStreamReader;\n public static from(source: FromArg1): Promise>;\n public static from(source: FromArg2): RecordBatchFileReader | RecordBatchStreamReader;\n public static from(source: FromArg3): Promise | RecordBatchStreamReader>;\n public static from(source: FromArg4): Promise | AsyncRecordBatchReaders>;\n public static from(source: FromArg5): Promise | AsyncRecordBatchStreamReader>;\n /** @nocollapse */\n public static from(source: any) {\n if (source instanceof RecordBatchReader) {\n return source;\n } else if (isArrowJSON(source)) {\n return fromArrowJSON(source);\n } else if (isFileHandle(source)) {\n return fromFileHandle(source);\n } else if (isPromise(source)) {\n return (async () => await RecordBatchReader.from(await source))();\n } else if (isFetchResponse(source) || isReadableDOMStream(source) || isReadableNodeStream(source) || isAsyncIterable(source)) {\n return fromAsyncByteStream(new AsyncByteStream(source));\n }\n return fromByteStream(new ByteStream(source));\n }\n\n public static readAll(source: T): T extends RecordBatchReaders ? IterableIterator : AsyncIterableIterator;\n public static readAll(source: FromArg0): IterableIterator>;\n public static readAll(source: FromArg1): AsyncIterableIterator>;\n public static readAll(source: FromArg2): IterableIterator | RecordBatchStreamReader>;\n public static readAll(source: FromArg3): AsyncIterableIterator | RecordBatchStreamReader>;\n public static readAll(source: FromArg4): AsyncIterableIterator | AsyncRecordBatchReaders>;\n public static readAll(source: FromArg5): AsyncIterableIterator | AsyncRecordBatchStreamReader>;\n /** @nocollapse */\n public static readAll(source: any) {\n if (source instanceof RecordBatchReader) {\n return source.isSync() ? readAllSync(source) : readAllAsync(source as AsyncRecordBatchReaders);\n } else if (isArrowJSON(source) || ArrayBuffer.isView(source) || isIterable(source) || isIteratorResult(source)) {\n return readAllSync(source) as IterableIterator>;\n }\n return readAllAsync(source) as AsyncIterableIterator | AsyncRecordBatchReaders>;\n }\n}\n\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\n/** @ignore */\nexport class RecordBatchStreamReader extends RecordBatchReader {\n constructor(protected _impl: RecordBatchStreamReaderImpl) { super (_impl); }\n public [Symbol.iterator]() { return (this._impl as IterableIterator>)[Symbol.iterator](); }\n public async *[Symbol.asyncIterator](): AsyncIterableIterator> { yield* this[Symbol.iterator](); }\n}\n/** @ignore */\nexport class AsyncRecordBatchStreamReader extends RecordBatchReader {\n constructor(protected _impl: AsyncRecordBatchStreamReaderImpl) { super (_impl); }\n public [Symbol.iterator](): IterableIterator> { throw new Error(`AsyncRecordBatchStreamReader is not Iterable`); }\n public [Symbol.asyncIterator]() { return (this._impl as AsyncIterableIterator>)[Symbol.asyncIterator](); }\n}\n/** @ignore */\nexport class RecordBatchFileReader extends RecordBatchStreamReader {\n constructor(protected _impl: RecordBatchFileReaderImpl) { super (_impl); }\n}\n/** @ignore */\nexport class AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n constructor(protected _impl: AsyncRecordBatchFileReaderImpl) { super (_impl); }\n}\n\n//\n// Now override the return types for each sync/async RecordBatchReader variant\n//\n\n/** @ignore */\nexport interface RecordBatchStreamReader extends RecordBatchReader {\n open(options?: OpenOptions | undefined): this;\n cancel(): void;\n throw(value?: any): IteratorResult;\n return(value?: any): IteratorResult;\n next(value?: any): IteratorResult>;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchStreamReader extends RecordBatchReader {\n open(options?: OpenOptions | undefined): Promise;\n cancel(): Promise;\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(value?: any): Promise>>;\n}\n\n/** @ignore */\nexport interface RecordBatchFileReader extends RecordBatchStreamReader {\n footer: Footer;\n readRecordBatch(index: number): RecordBatch | null;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchFileReader extends AsyncRecordBatchStreamReader {\n footer: Footer;\n readRecordBatch(index: number): Promise | null>;\n}\n\n/** @ignore */\ntype RecordBatchReaderImpls =\n RecordBatchJSONReaderImpl |\n RecordBatchFileReaderImpl |\n RecordBatchStreamReaderImpl |\n AsyncRecordBatchFileReaderImpl |\n AsyncRecordBatchStreamReaderImpl;\n\n/** @ignore */\ninterface RecordBatchReaderImpl {\n\n closed: boolean;\n schema: Schema;\n autoDestroy: boolean;\n dictionaries: Map;\n\n isFile(): this is RecordBatchFileReaders;\n isStream(): this is RecordBatchStreamReaders;\n isSync(): this is RecordBatchReaders;\n isAsync(): this is AsyncRecordBatchReaders;\n\n reset(schema?: Schema | null): this;\n}\n\n/** @ignore */\ninterface RecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n\n open(options?: OpenOptions): this;\n cancel(): void;\n\n throw(value?: any): IteratorResult;\n return(value?: any): IteratorResult;\n next(value?: any): IteratorResult>;\n\n [Symbol.iterator](): IterableIterator>;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl {\n\n open(options?: OpenOptions): Promise;\n cancel(): Promise;\n\n throw(value?: any): Promise>;\n return(value?: any): Promise>;\n next(value?: any): Promise>>;\n\n [Symbol.asyncIterator](): AsyncIterableIterator>;\n}\n\n/** @ignore */\ninterface RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n readRecordBatch(index: number): RecordBatch | null;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl {\n readRecordBatch(index: number): Promise | null>;\n}\n\n/** @ignore */\nabstract class RecordBatchReaderImpl implements RecordBatchReaderImpl {\n\n // @ts-ignore\n public schema: Schema;\n public closed = false;\n public autoDestroy = true;\n public dictionaries: Map;\n\n protected _dictionaryIndex = 0;\n protected _recordBatchIndex = 0;\n public get numDictionaries() { return this._dictionaryIndex; }\n public get numRecordBatches() { return this._recordBatchIndex; }\n\n constructor(dictionaries = new Map()) {\n this.dictionaries = dictionaries;\n }\n\n public isSync(): this is RecordBatchReaders { return false; }\n public isAsync(): this is AsyncRecordBatchReaders { return false; }\n public isFile(): this is RecordBatchFileReaders { return false; }\n public isStream(): this is RecordBatchStreamReaders { return false; }\n\n public reset(schema?: Schema | null) {\n this._dictionaryIndex = 0;\n this._recordBatchIndex = 0;\n this.schema = schema;\n this.dictionaries = new Map();\n return this;\n }\n\n protected _loadRecordBatch(header: metadata.RecordBatch, body: any) {\n return new RecordBatch(this.schema, header.length, this._loadVectors(header, body, this.schema.fields));\n }\n protected _loadDictionaryBatch(header: metadata.DictionaryBatch, body: any) {\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(\n Vector.new(this._loadVectors(data, body, [type])[0])) :\n Vector.new(this._loadVectors(data, body, [type])[0])) as Vector;\n }\n return dictionary;\n }\n protected _loadVectors(header: metadata.RecordBatch, body: any, types: (Field | DataType)[]) {\n return new VectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\n}\n\n/** @ignore */\nclass RecordBatchStreamReaderImpl extends RecordBatchReaderImpl implements IterableIterator> {\n\n protected _reader: MessageReader;\n protected _handle: ByteStream | ArrowJSONLike;\n\n constructor(source: ByteStream | ArrowJSONLike, dictionaries?: Map) {\n super(dictionaries);\n this._reader = !isArrowJSON(source)\n ? new MessageReader(this._handle = source)\n : new JSONMessageReader(this._handle = source);\n }\n\n public isSync(): this is RecordBatchReaders { return true; }\n public isStream(): this is RecordBatchStreamReaders { return true; }\n public [Symbol.iterator](): IterableIterator> {\n return this as IterableIterator>;\n }\n public cancel() {\n if (!this.closed && (this.closed = true)) {\n this.reset()._reader.return();\n this._reader = null;\n this.dictionaries = null;\n }\n }\n public open(options?: OpenOptions) {\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 public throw(value?: any): IteratorResult {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.throw(value);\n }\n return ITERATOR_DONE;\n }\n public return(value?: any): IteratorResult {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return this.reset()._reader.return(value);\n }\n return ITERATOR_DONE;\n }\n public next(): IteratorResult> {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null, { _reader: reader } = this;\n while (message = this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n this.reset(message.header());\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 } 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 _InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return this.return();\n }\n protected _readNextMessageAndValidate(type?: T | null) {\n return this._reader.readMessage(type);\n }\n}\n\n/** @ignore */\nclass AsyncRecordBatchStreamReaderImpl extends RecordBatchReaderImpl implements AsyncIterableIterator> {\n\n protected _handle: AsyncByteStream;\n protected _reader: AsyncMessageReader;\n\n constructor(source: AsyncByteStream, dictionaries?: Map) {\n super(dictionaries);\n this._reader = new AsyncMessageReader(this._handle = source);\n }\n public isAsync(): this is AsyncRecordBatchReaders { return true; }\n public isStream(): this is RecordBatchStreamReaders { return true; }\n public [Symbol.asyncIterator](): AsyncIterableIterator> {\n return this as AsyncIterableIterator>;\n }\n public 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 public async open(options?: OpenOptions) {\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 public async throw(value?: any): Promise> {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.throw(value);\n }\n return ITERATOR_DONE;\n }\n public async return(value?: any): Promise> {\n if (!this.closed && this.autoDestroy && (this.closed = true)) {\n return await this.reset()._reader.return(value);\n }\n return ITERATOR_DONE;\n }\n public async next() {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null, { _reader: reader } = this;\n while (message = await this._readNextMessageAndValidate()) {\n if (message.isSchema()) {\n await this.reset(message.header());\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 } 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 _InternalEmptyPlaceholderRecordBatch(this.schema) };\n }\n return await this.return();\n }\n protected async _readNextMessageAndValidate(type?: T | null) {\n return await this._reader.readMessage(type);\n }\n}\n\n/** @ignore */\nclass RecordBatchFileReaderImpl extends RecordBatchStreamReaderImpl {\n\n // @ts-ignore\n protected _footer?: Footer;\n // @ts-ignore\n protected _handle: RandomAccessFile;\n public get footer() { return this._footer!; }\n public get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n public get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n\n constructor(source: RandomAccessFile | ArrayBufferViewInput, dictionaries?: Map) {\n super(source instanceof RandomAccessFile ? source : new RandomAccessFile(source), dictionaries);\n }\n public isSync(): this is RecordBatchReaders { return true; }\n public isFile(): this is RecordBatchFileReaders { return true; }\n public open(options?: OpenOptions) {\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 public readRecordBatch(index: number) {\n if (this.closed) { return null; }\n if (!this._footer) { this.open(); }\n const block = this._footer && this._footer.getRecordBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(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 protected _readDictionaryBatch(index: number) {\n const block = this._footer && this._footer.getDictionaryBatch(index);\n if (block && this._handle.seek(block.offset)) {\n const message = this._reader.readMessage(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 protected _readFooter() {\n const { _handle } = this;\n const offset = _handle.size - magicAndPadding;\n const length = _handle.readInt32(offset);\n const buffer = _handle.readAt(offset - length, length);\n return Footer.decode(buffer);\n }\n protected _readNextMessageAndValidate(type?: T | null): Message | null {\n if (!this._footer) { this.open(); }\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\n/** @ignore */\nclass AsyncRecordBatchFileReaderImpl extends AsyncRecordBatchStreamReaderImpl\n implements AsyncRecordBatchFileReaderImpl {\n\n protected _footer?: Footer;\n // @ts-ignore\n protected _handle: AsyncRandomAccessFile;\n public get footer() { return this._footer!; }\n public get numDictionaries() { return this._footer ? this._footer.numDictionaries : 0; }\n public get numRecordBatches() { return this._footer ? this._footer.numRecordBatches : 0; }\n\n constructor(source: FileHandle, byteLength?: number, dictionaries?: Map);\n constructor(source: FileHandle | AsyncRandomAccessFile, dictionaries?: Map);\n constructor(source: FileHandle | AsyncRandomAccessFile, ...rest: any[]) {\n const byteLength = typeof rest[0] !== 'number' ? rest.shift() : undefined;\n const dictionaries = rest[0] instanceof Map ? > rest.shift() : undefined;\n super(source instanceof AsyncRandomAccessFile ? source : new AsyncRandomAccessFile(source, byteLength), dictionaries);\n }\n public isFile(): this is RecordBatchFileReaders { return true; }\n public isAsync(): this is AsyncRecordBatchReaders { return true; }\n public async open(options?: OpenOptions) {\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 public async readRecordBatch(index: number) {\n if (this.closed) { return null; }\n if (!this._footer) { await this.open(); }\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(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 protected async _readDictionaryBatch(index: number) {\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(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 protected async _readFooter() {\n const { _handle } = this;\n _handle._pending && await _handle._pending;\n const offset = _handle.size - magicAndPadding;\n const length = await _handle.readInt32(offset);\n const buffer = await _handle.readAt(offset - length, length);\n return Footer.decode(buffer);\n }\n protected async _readNextMessageAndValidate(type?: T | null): Promise | null> {\n if (!this._footer) { await this.open(); }\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\n/** @ignore */\nclass RecordBatchJSONReaderImpl extends RecordBatchStreamReaderImpl {\n constructor(source: ArrowJSONLike, dictionaries?: Map) {\n super(source, dictionaries);\n }\n protected _loadVectors(header: metadata.RecordBatch, body: any, types: (Field | DataType)[]) {\n return new JSONVectorLoader(body, header.nodes, header.buffers, this.dictionaries).visitMany(types);\n }\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\n/** @ignore */\nfunction shouldAutoDestroy(self: { autoDestroy: boolean }, options?: OpenOptions) {\n return options && (typeof options['autoDestroy'] === 'boolean') ? options['autoDestroy'] : self['autoDestroy'];\n}\n\n/** @ignore */\nfunction* readAllSync(source: RecordBatchReaders | FromArg0 | FromArg2) {\n const reader = RecordBatchReader.from( source) as RecordBatchReaders;\n try {\n if (!reader.open({ autoDestroy: false }).closed) {\n do { yield reader; } while (!(reader.reset().open()).closed);\n }\n } finally { reader.cancel(); }\n}\n\n/** @ignore */\nasync function* readAllAsync(source: AsyncRecordBatchReaders | FromArg1 | FromArg3 | FromArg4 | FromArg5) {\n const reader = await RecordBatchReader.from( source) as RecordBatchReader;\n try {\n if (!(await reader.open({ autoDestroy: false })).closed) {\n do { yield reader; } while (!(await reader.reset().open()).closed);\n }\n } finally { await reader.cancel(); }\n}\n\n/** @ignore */\nfunction fromArrowJSON(source: ArrowJSONLike) {\n return new RecordBatchStreamReader(new RecordBatchJSONReaderImpl(source));\n}\n\n/** @ignore */\nfunction fromByteStream(source: ByteStream) {\n const bytes = source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(source.read()))\n : new RecordBatchStreamReader(new RecordBatchStreamReaderImpl(function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromAsyncByteStream(source: AsyncByteStream) {\n const bytes = await source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl(await source.read()))\n : new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(async function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromFileHandle(source: FileHandle) {\n const { size } = await source.stat();\n const file = new AsyncRandomAccessFile(source, size);\n if (size >= magicX2AndPadding) {\n if (checkForMagicArrowString(await file.readAt(0, (magicLength + 7) & ~7))) {\n return new AsyncRecordBatchFileReader(new AsyncRecordBatchFileReaderImpl(file));\n }\n }\n return new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl(file));\n}\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.\n\nimport { DataType } from '../../type';\nimport { Vector } from '../../vector';\nimport { VectorType as V } from '../../interfaces';\nimport { Builder, BuilderOptions } from '../../builder/index';\n\n/** @ignore */\nexport interface BuilderTransformOptions extends BuilderOptions {\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n readableStrategy?: { highWaterMark?: number, size?: any, type?: 'bytes'; };\n writableStrategy?: { highWaterMark?: number, size?: any, type?: 'bytes'; };\n valueToChildTypeId?: (builder: Builder, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport function builderThroughDOMStream(options: BuilderTransformOptions) {\n return new BuilderTransform(options);\n}\n\n/** @ignore */\nexport class BuilderTransform {\n\n public readable: ReadableStream>;\n public writable: WritableStream;\n public _controller: ReadableStreamDefaultController> | null;\n\n private _numChunks = 0;\n private _finished = false;\n private _bufferedSize = 0;\n private _builder: Builder;\n private _getSize: (builder: Builder) => number;\n\n constructor(options: BuilderTransformOptions) {\n\n // Access properties by string indexers to defeat closure compiler\n\n const {\n ['readableStrategy']: readableStrategy,\n ['writableStrategy']: writableStrategy,\n ['queueingStrategy']: queueingStrategy = 'count',\n ...builderOptions\n } = options;\n\n this._controller = null;\n this._builder = Builder.new(builderOptions);\n this._getSize = queueingStrategy !== 'bytes' ? chunkLength : chunkByteLength;\n\n const { ['highWaterMark']: readableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...readableStrategy };\n const { ['highWaterMark']: writableHighWaterMark = queueingStrategy === 'bytes' ? 2 ** 14 : 1000 } = { ...writableStrategy };\n\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\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: T['TValue'] | TNull) => this._writeValueAndReturnChunkSize(value),\n });\n }\n\n private _writeValueAndReturnChunkSize(value: T['TValue'] | TNull) {\n const bufferedSize = this._bufferedSize;\n this._bufferedSize = this._getSize(this._builder.append(value));\n return this._bufferedSize - bufferedSize;\n }\n\n private _maybeFlush(builder: Builder, controller: ReadableStreamDefaultController> | null) {\n if (controller === null) { return; }\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\n private _enqueue(controller: ReadableStreamDefaultController>, chunk: V | null) {\n this._bufferedSize = 0;\n this._controller = null;\n chunk === null ? controller.close() : controller.enqueue(chunk);\n }\n}\n\n/** @ignore */ const chunkLength = (chunk: Vector | Builder) => chunk.length;\n/** @ignore */ const chunkByteLength = (chunk: Vector | Builder) => chunk.byteLength;\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.\n\nimport { Vector } from '../vector';\nimport { RecordBatch } from '../recordbatch';\nimport { DictionaryVector } from '../vector/dictionary';\n\n/** @ignore */\nexport type ValueFunc = (idx: number, cols: RecordBatch) => T | null;\n/** @ignore */\nexport type PredicateFunc = (idx: number, cols: RecordBatch) => boolean;\n\n/** @ignore */\nexport abstract class Value {\n eq(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new Equals(this, other);\n }\n le(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new LTeq(this, other);\n }\n ge(other: Value | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new GTeq(this, other);\n }\n lt(other: Value | T): Predicate {\n return new Not(this.ge(other));\n }\n gt(other: Value | T): Predicate {\n return new Not(this.le(other));\n }\n ne(other: Value | T): Predicate {\n return new Not(this.eq(other));\n }\n}\n\n/** @ignore */\nexport class Literal extends Value {\n constructor(public v: T) { super(); }\n}\n\n/** @ignore */\nexport class Col extends Value {\n // @ts-ignore\n public vector: Vector;\n // @ts-ignore\n public colidx: number;\n\n constructor(public name: string) { super(); }\n bind(batch: RecordBatch): (idx: number, batch?: RecordBatch) => any {\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) { throw new Error(`Failed to bind Col \"${this.name}\"`); }\n }\n\n const vec = this.vector = batch.getChildAt(this.colidx)!;\n return (idx: number) => vec.get(idx);\n }\n}\n\n/** @ignore */\nexport abstract class Predicate {\n abstract bind(batch: RecordBatch): PredicateFunc;\n and(...expr: Predicate[]): And { return new And(this, ...expr); }\n or(...expr: Predicate[]): Or { return new Or(this, ...expr); }\n not(): Predicate { return new Not(this); }\n}\n\n/** @ignore */\nexport abstract class ComparisonPredicate extends Predicate {\n constructor(public readonly left: Value, public readonly right: Value) {\n super();\n }\n\n bind(batch: RecordBatch) {\n if (this.left instanceof Literal) {\n if (this.right instanceof Literal) {\n return this._bindLitLit(batch, this.left, this.right);\n } else { // right is a Col\n\n return this._bindLitCol(batch, this.left, this.right as Col);\n }\n } else { // left is a Col\n if (this.right instanceof Literal) {\n return this._bindColLit(batch, this.left as Col, this.right);\n } else { // right is a Col\n return this._bindColCol(batch, this.left as Col, this.right as Col);\n }\n }\n }\n\n protected abstract _bindLitLit(batch: RecordBatch, left: Literal, right: Literal): PredicateFunc;\n protected abstract _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc;\n protected abstract _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc;\n protected abstract _bindLitCol(batch: RecordBatch, lit: Literal, col: Col): PredicateFunc;\n}\n\n/** @ignore */\nexport abstract class CombinationPredicate extends Predicate {\n readonly children: Predicate[];\n constructor(...children: Predicate[]) {\n super();\n this.children = children;\n }\n}\n// add children to prototype so it doesn't get mangled in es2015/umd\n( CombinationPredicate.prototype).children = Object.freeze([]); // freeze for safety\n\n/** @ignore */\nexport class And extends CombinationPredicate {\n constructor(...children: Predicate[]) {\n // Flatten any Ands\n children = children.reduce((accum: Predicate[], p: Predicate): Predicate[] => {\n return accum.concat(p instanceof And ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch: RecordBatch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx: number, batch: RecordBatch) => bound.every((p) => p(idx, batch));\n }\n}\n\n/** @ignore */\nexport class Or extends CombinationPredicate {\n constructor(...children: Predicate[]) {\n // Flatten any Ors\n children = children.reduce((accum: Predicate[], p: Predicate): Predicate[] => {\n return accum.concat(p instanceof Or ? p.children : p);\n }, []);\n super(...children);\n }\n bind(batch: RecordBatch) {\n const bound = this.children.map((p) => p.bind(batch));\n return (idx: number, batch: RecordBatch) => bound.some((p) => p(idx, batch));\n }\n}\n\n/** @ignore */\nexport class Equals extends ComparisonPredicate {\n // Helpers used to cache dictionary reverse lookups between calls to bind\n private lastDictionary: Vector|undefined;\n private lastKey: number|undefined;\n\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v == right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, batch: RecordBatch) => left_func(idx, batch) == right_func(idx, batch);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n if (col.vector instanceof DictionaryVector) {\n let key: any;\n const vector = col.vector as DictionaryVector;\n if (vector.dictionary !== this.lastDictionary) {\n key = vector.reverseLookup(lit.v);\n this.lastDictionary = vector.dictionary;\n this.lastKey = key;\n } else {\n key = this.lastKey;\n }\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 } else {\n return (idx: number) => {\n return vector.getKey(idx) === key;\n };\n }\n } else {\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) == lit.v;\n }\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n // Equals is commutative\n return this._bindColLit(batch, col, lit);\n }\n}\n\n/** @ignore */\nexport class LTeq extends ComparisonPredicate {\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v <= right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, cols: RecordBatch) => left_func(idx, cols) <= right_func(idx, cols);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) <= lit.v;\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => lit.v <= col_func(idx, cols);\n }\n}\n\n/** @ignore */\nexport class GTeq extends ComparisonPredicate {\n protected _bindLitLit(_batch: RecordBatch, left: Literal, right: Literal): PredicateFunc {\n const rtrn: boolean = left.v >= right.v;\n return () => rtrn;\n }\n\n protected _bindColCol(batch: RecordBatch, left: Col, right: Col): PredicateFunc {\n const left_func = left.bind(batch);\n const right_func = right.bind(batch);\n return (idx: number, cols: RecordBatch) => left_func(idx, cols) >= right_func(idx, cols);\n }\n\n protected _bindColLit(batch: RecordBatch, col: Col, lit: Literal): PredicateFunc {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => col_func(idx, cols) >= lit.v;\n }\n\n protected _bindLitCol(batch: RecordBatch, lit: Literal, col: Col) {\n const col_func = col.bind(batch);\n return (idx: number, cols: RecordBatch) => lit.v >= col_func(idx, cols);\n }\n}\n\n/** @ignore */\nexport class Not extends Predicate {\n constructor(public readonly child: Predicate) {\n super();\n }\n\n bind(batch: RecordBatch) {\n const func = this.child.bind(batch);\n return (idx: number, batch: RecordBatch) => !func(idx, batch);\n }\n}\n\n/** @ignore */\nexport class CustomPredicate extends Predicate {\n constructor(private next: PredicateFunc, private bind_: (batch: RecordBatch) => void) {\n super();\n }\n\n bind(batch: RecordBatch) {\n this.bind_(batch);\n return this.next;\n }\n}\n\nexport function lit(v: any): Value { return new Literal(v); }\nexport function col(n: string): Col { return new Col(n); }\nexport function and(...p: Predicate[]): And { return new And(...p); }\nexport function or(...p: Predicate[]): Or { return new Or(...p); }\nexport function custom(next: PredicateFunc, bind: (batch: RecordBatch) => void) {\n return new CustomPredicate(next, bind);\n}\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.\n\nimport { Table } from '../table';\nimport { Vector } from '../vector';\nimport { IntVector } from '../vector/int';\nimport { Field, Schema } from '../schema';\nimport { Predicate, Col } from './predicate';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { DataType, Int, Struct, Dictionary } from '../type';\n\n/** @ignore */\nexport type BindFunc = (batch: RecordBatch) => void;\n/** @ignore */\nexport type NextFunc = (idx: number, batch: RecordBatch) => void;\n\nTable.prototype.countBy = function(this: Table, name: Col | string) { return new DataFrame(this.chunks).countBy(name); };\nTable.prototype.scan = function(this: Table, next: NextFunc, bind?: BindFunc) { return new DataFrame(this.chunks).scan(next, bind); };\nTable.prototype.scanReverse = function(this: Table, next: NextFunc, bind?: BindFunc) { return new DataFrame(this.chunks).scanReverse(next, bind); };\nTable.prototype.filter = function(this: Table, predicate: Predicate): FilteredDataFrame { return new DataFrame(this.chunks).filter(predicate); };\n\nexport class DataFrame extends Table {\n public filter(predicate: Predicate): FilteredDataFrame {\n return new FilteredDataFrame(this.chunks, predicate);\n }\n public scan(next: NextFunc, bind?: BindFunc) {\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) { bind(batch); }\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n next(index, batch);\n }\n }\n }\n public scanReverse(next: NextFunc, bind?: BindFunc) {\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) { bind(batch); }\n // yield all indices\n for (let index = batch.length; --index >= 0;) {\n next(index, batch);\n }\n }\n }\n public countBy(name: Col | string) {\n const batches = this.chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new Col(name) : name as Col;\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 as V;\n if (!DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\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\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 as V).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n let key = keys.get(index);\n if (key !== null) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\n\n/** @ignore */\nexport class CountByResult extends Table<{ values: T, counts: TCount }> {\n constructor(values: Vector, counts: V) {\n type R = { values: T, counts: TCount };\n const schema = new Schema([\n new Field('values', values.type),\n new Field('counts', counts.type)\n ]);\n super(new RecordBatch(schema, counts.length, [values, counts]));\n }\n public toJSON(): Object {\n const values = this.getColumnAt(0)!;\n const counts = this.getColumnAt(1)!;\n const result = {} as { [k: string]: number | null };\n for (let i = -1; ++i < this.length;) {\n result[values.get(i)] = counts.get(i);\n }\n return result;\n }\n}\n\n/** @ignore */\nexport class FilteredDataFrame extends DataFrame {\n private _predicate: Predicate;\n constructor (batches: RecordBatch[], predicate: Predicate) {\n super(batches);\n this._predicate = predicate;\n }\n public scan(next: NextFunc, bind?: BindFunc) {\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 public scanReverse(next: NextFunc, bind?: BindFunc) {\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 public count(): number {\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 // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { ++sum; }\n }\n }\n return sum;\n }\n public *[Symbol.iterator](): IterableIterator['TValue']> {\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 // TODO: bind batches lazily\n // If predicate doesn't match anything in the batch we don't need\n // to bind the callback\n const predicate = this._predicate.bind(batch);\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { yield batch.get(index) as any; }\n }\n }\n }\n public filter(predicate: Predicate): FilteredDataFrame {\n return new FilteredDataFrame(\n this._chunks,\n this._predicate.and(predicate)\n );\n }\n public countBy(name: Col | string) {\n const batches = this._chunks, numBatches = batches.length;\n const count_by = typeof name === 'string' ? new Col(name) : name as Col;\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 as V;\n if (!DataType.isDictionary(vector.type)) {\n throw new Error('countBy currently only supports dictionary-encoded columns');\n }\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\n const counts = new CountsArrayType(vector.dictionary.length);\n\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 as V).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n let key = keys.get(index);\n if (key !== null && predicate(index, batch)) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\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.\n\nexport { ArrowType, DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType } from './enum';\nexport { Data } from './data';\nexport {\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8,\n Binary,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth,\n FixedSizeList,\n Map_,\n} from './type';\n\nexport { Table } from './table';\nexport { Column } from './column';\nexport { Visitor } from './visitor';\nexport { Schema, Field } from './schema';\nexport {\n Vector,\n BaseVector,\n BinaryVector,\n BoolVector,\n Chunked,\n DateVector, DateDayVector, DateMillisecondVector,\n DecimalVector,\n DictionaryVector,\n FixedSizeBinaryVector,\n FixedSizeListVector,\n FloatVector, Float16Vector, Float32Vector, Float64Vector,\n IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector,\n IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector,\n ListVector,\n MapVector,\n NullVector,\n StructVector,\n TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector,\n TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector,\n UnionVector, DenseUnionVector, SparseUnionVector,\n Utf8Vector,\n} from './vector/index';\n\nexport {\n Builder,\n BinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder,\n} from './builder/index';\n\nexport { ByteStream, AsyncByteStream, AsyncByteQueue, ReadableSource, WritableSink } from './io/stream';\nexport { RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader } from './ipc/reader';\nexport { RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter } from './ipc/writer';\nexport { MessageReader, AsyncMessageReader, JSONMessageReader } from './ipc/message';\nexport { Message } from './ipc/metadata/message';\nexport { RecordBatch } from './recordbatch';\nexport { ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions } from './io/interfaces';\nexport { DataFrame, FilteredDataFrame, CountByResult, BindFunc, NextFunc } from './compute/dataframe';\n\nimport * as util_bn_ from './util/bn';\nimport * as util_int_ from './util/int';\nimport * as util_bit_ from './util/bit';\nimport * as util_math_ from './util/math';\nimport * as util_buffer_ from './util/buffer';\nimport * as util_vector_ from './util/vector';\nimport * as predicate from './compute/predicate';\n\nexport { predicate };\n/** @ignore */\nexport const util = {\n ...util_bn_,\n ...util_int_,\n ...util_bit_,\n ...util_math_,\n ...util_buffer_,\n ...util_vector_\n};\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.\n\nimport streamAdapters from './io/adapters';\nimport { Builder } from './builder/index';\nimport { RecordBatchReader } from './ipc/reader';\nimport { RecordBatchWriter } from './ipc/writer';\nimport { toDOMStream } from './io/whatwg/iterable';\nimport { builderThroughDOMStream } from './io/whatwg/builder';\nimport { recordBatchReaderThroughDOMStream } from './io/whatwg/reader';\nimport { recordBatchWriterThroughDOMStream } from './io/whatwg/writer';\n\nstreamAdapters.toDOMStream = toDOMStream;\nBuilder['throughDOM'] = builderThroughDOMStream;\nRecordBatchReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\n\nexport {\n ArrowType, DateUnit, IntervalUnit, MessageHeader, MetadataVersion, Precision, TimeUnit, Type, UnionMode, BufferType,\n Data,\n DataType,\n Null,\n Bool,\n Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64,\n Float, Float16, Float32, Float64,\n Utf8,\n Binary,\n FixedSizeBinary,\n Date_, DateDay, DateMillisecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Decimal,\n List,\n Struct,\n Union, DenseUnion, SparseUnion,\n Dictionary,\n Interval, IntervalDayTime, IntervalYearMonth,\n FixedSizeList,\n Map_,\n Table,\n Column,\n Schema, Field,\n Visitor,\n Vector,\n BaseVector,\n BinaryVector,\n BoolVector,\n Chunked,\n DateVector, DateDayVector, DateMillisecondVector,\n DecimalVector,\n DictionaryVector,\n FixedSizeBinaryVector,\n FixedSizeListVector,\n FloatVector, Float16Vector, Float32Vector, Float64Vector,\n IntervalVector, IntervalDayTimeVector, IntervalYearMonthVector,\n IntVector, Int8Vector, Int16Vector, Int32Vector, Int64Vector, Uint8Vector, Uint16Vector, Uint32Vector, Uint64Vector,\n ListVector,\n MapVector,\n NullVector,\n StructVector,\n TimestampVector, TimestampSecondVector, TimestampMillisecondVector, TimestampMicrosecondVector, TimestampNanosecondVector,\n TimeVector, TimeSecondVector, TimeMillisecondVector, TimeMicrosecondVector, TimeNanosecondVector,\n UnionVector, DenseUnionVector, SparseUnionVector,\n Utf8Vector,\n ByteStream, AsyncByteStream, AsyncByteQueue, ReadableSource, WritableSink,\n RecordBatchReader, RecordBatchFileReader, RecordBatchStreamReader, AsyncRecordBatchFileReader, AsyncRecordBatchStreamReader,\n RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, RecordBatchJSONWriter,\n MessageReader, AsyncMessageReader, JSONMessageReader,\n Message,\n RecordBatch,\n ArrowJSONLike, FileHandle, Readable, Writable, ReadableWritable, ReadableDOMStreamOptions,\n DataFrame, FilteredDataFrame, CountByResult, BindFunc, NextFunc,\n predicate,\n util,\n Builder,\n BinaryBuilder,\n BoolBuilder,\n DateBuilder, DateDayBuilder, DateMillisecondBuilder,\n DecimalBuilder,\n DictionaryBuilder,\n FixedSizeBinaryBuilder,\n FixedSizeListBuilder,\n FloatBuilder, Float16Builder, Float32Builder, Float64Builder,\n IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder,\n IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder,\n ListBuilder,\n MapBuilder,\n NullBuilder,\n StructBuilder,\n TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder,\n TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder,\n UnionBuilder, DenseUnionBuilder, SparseUnionBuilder,\n Utf8Builder,\n} from './Arrow';\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.\n\nimport { toUint8Array } from '../../util/buffer';\nimport { ReadableDOMStreamOptions } from '../../io/interfaces';\nimport { isIterable, isAsyncIterable } from '../../util/compat';\n\n/** @ignore */\nexport function toDOMStream(source: Iterable | AsyncIterable, options?: ReadableDOMStreamOptions): ReadableStream {\n if (isAsyncIterable(source)) { return asyncIterableAsReadableDOMStream(source, options); }\n if (isIterable(source)) { return iterableAsReadableDOMStream(source, options); }\n /* istanbul ignore next */\n throw new Error(`toDOMStream() must be called with an Iterable or AsyncIterable`);\n}\n\n/** @ignore */\nfunction iterableAsReadableDOMStream(source: Iterable, options?: ReadableDOMStreamOptions) {\n\n let it: Iterator | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream({\n ...options as any,\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\n function next(controller: ReadableStreamDefaultController, it: Iterator) {\n let buf: Uint8Array;\n let r: IteratorResult | null = null;\n let size = controller.desiredSize || null;\n while (!(r = it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = 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) { return; }\n }\n controller.close();\n }\n}\n\n/** @ignore */\nfunction asyncIterableAsReadableDOMStream(source: AsyncIterable, options?: ReadableDOMStreamOptions) {\n\n let it: AsyncIterator | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream({\n ...options as any,\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\n async function next(controller: ReadableStreamDefaultController, it: AsyncIterator) {\n let buf: Uint8Array;\n let r: IteratorResult | null = null;\n let size = controller.desiredSize || null;\n while (!(r = await it.next(bm ? size : null)).done) {\n if (ArrayBuffer.isView(r.value) && (buf = 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) { return; }\n }\n controller.close();\n }\n}\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.\n\nimport { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteQueue } from '../../io/stream';\nimport { RecordBatchReader } from '../../ipc/reader';\n\n/** @ignore */\nexport function recordBatchReaderThroughDOMStream(writableStrategy?: ByteLengthQueuingStrategy, readableStrategy?: { autoDestroy: boolean }) {\n\n const queue = new AsyncByteQueue();\n let reader: RecordBatchReader | null = null;\n\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\n return { writable: new WritableStream(queue, { 'highWaterMark': 2 ** 14, ...writableStrategy }), readable };\n\n async function open() {\n return await (await RecordBatchReader.from(queue)).open(readableStrategy);\n }\n\n async function next(controller: ReadableStreamDefaultController>, reader: RecordBatchReader) {\n let size = controller.desiredSize;\n let r: IteratorResult> | null = 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}\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.\n\nimport { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteStream } from '../../io/stream';\nimport { RecordBatchWriter } from '../../ipc/writer';\n\n/** @ignore */\nexport function recordBatchWriterThroughDOMStream(\n this: typeof RecordBatchWriter,\n writableStrategy?: QueuingStrategy> & { autoDestroy: boolean },\n readableStrategy?: { highWaterMark?: number, size?: any }\n) {\n\n const writer = new this(writableStrategy);\n const reader = new 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\n return { writable: new WritableStream(writer, writableStrategy), readable };\n\n async function next(controller: ReadableStreamDefaultController) {\n let buf: Uint8Array | null = 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) { return; }\n }\n controller.close();\n }\n}\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * 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, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Table, Type } from \"apache-arrow\";\nvar ArrowTable = /** @class */ (function () {\n function ArrowTable(dataBuffer, indexBuffer, columnsBuffer, styler) {\n var _this = this;\n this.getCell = function (rowIndex, columnIndex) {\n var isBlankCell = rowIndex < _this.headerRows && columnIndex < _this.headerColumns;\n var isIndexCell = rowIndex >= _this.headerRows && columnIndex < _this.headerColumns;\n var isColumnsCell = rowIndex < _this.headerRows && columnIndex >= _this.headerColumns;\n if (isBlankCell) {\n var classNames = [\"blank\"];\n if (columnIndex > 0) {\n classNames.push(\"level\" + rowIndex);\n }\n return {\n type: \"blank\",\n classNames: classNames.join(\" \"),\n content: \"\"\n };\n }\n else if (isColumnsCell) {\n var dataColumnIndex = columnIndex - _this.headerColumns;\n var classNames = [\n \"col_heading\",\n \"level\" + rowIndex,\n \"col\" + dataColumnIndex\n ];\n return {\n type: \"columns\",\n classNames: classNames.join(\" \"),\n content: _this.getContent(_this.columnsTable, dataColumnIndex, rowIndex)\n };\n }\n else if (isIndexCell) {\n var dataRowIndex = rowIndex - _this.headerRows;\n var classNames = [\n \"row_heading\",\n \"level\" + columnIndex,\n \"row\" + dataRowIndex\n ];\n return {\n type: \"index\",\n id: \"T_\" + _this.uuid + \"level\" + columnIndex + \"_row\" + dataRowIndex,\n classNames: classNames.join(\" \"),\n content: _this.getContent(_this.indexTable, dataRowIndex, columnIndex)\n };\n }\n else {\n var dataRowIndex = rowIndex - _this.headerRows;\n var dataColumnIndex = columnIndex - _this.headerColumns;\n var classNames = [\n \"data\",\n \"row\" + dataRowIndex,\n \"col\" + dataColumnIndex\n ];\n var content = _this.styler\n ? _this.getContent(_this.styler.displayValuesTable, dataRowIndex, dataColumnIndex)\n : _this.getContent(_this.dataTable, dataRowIndex, dataColumnIndex);\n return {\n type: \"data\",\n id: \"T_\" + _this.uuid + \"row\" + dataRowIndex + \"_col\" + dataColumnIndex,\n classNames: classNames.join(\" \"),\n content: content\n };\n }\n };\n this.getContent = function (table, rowIndex, columnIndex) {\n var column = table.getColumnAt(columnIndex);\n if (column === null) {\n return \"\";\n }\n var columnTypeId = _this.getColumnTypeId(table, columnIndex);\n switch (columnTypeId) {\n case Type.Timestamp: {\n return _this.nanosToDate(column.get(rowIndex));\n }\n default: {\n return column.get(rowIndex);\n }\n }\n };\n this.dataTable = Table.from(dataBuffer);\n this.indexTable = Table.from(indexBuffer);\n this.columnsTable = Table.from(columnsBuffer);\n this.styler = styler\n ? {\n caption: styler.caption,\n displayValuesTable: Table.from(styler.displayValues),\n styles: styler.styles,\n uuid: styler.uuid\n }\n : undefined;\n }\n Object.defineProperty(ArrowTable.prototype, \"rows\", {\n get: function () {\n return this.indexTable.length + this.columnsTable.numCols;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"columns\", {\n get: function () {\n return this.indexTable.numCols + this.columnsTable.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"headerRows\", {\n get: function () {\n return this.rows - this.dataRows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"headerColumns\", {\n get: function () {\n return this.columns - this.dataColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"dataRows\", {\n get: function () {\n return this.dataTable.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"dataColumns\", {\n get: function () {\n return this.dataTable.numCols;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"uuid\", {\n get: function () {\n return this.styler && this.styler.uuid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"caption\", {\n get: function () {\n return this.styler && this.styler.caption;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"styles\", {\n get: function () {\n return this.styler && this.styler.styles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"table\", {\n get: function () {\n return this.dataTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"index\", {\n get: function () {\n return this.indexTable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ArrowTable.prototype, \"columnTable\", {\n get: function () {\n return this.columnsTable;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Serialize arrow table.\n */\n ArrowTable.prototype.serialize = function () {\n return {\n data: this.dataTable.serialize(),\n index: this.indexTable.serialize(),\n columns: this.columnsTable.serialize()\n };\n };\n /**\n * Returns apache-arrow specific typeId of column.\n */\n ArrowTable.prototype.getColumnTypeId = function (table, columnIndex) {\n return table.schema.fields[columnIndex].type.typeId;\n };\n ArrowTable.prototype.nanosToDate = function (nanos) {\n return new Date(nanos / 1e6);\n };\n return ArrowTable;\n}());\nexport { ArrowTable };\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * 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, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Safari doesn't support the EventTarget class, so we use a shim.\nimport { EventTarget } from \"event-target-shim\";\nimport { ArrowTable } from \"./ArrowTable\";\n/** Messages from Component -> Streamlit */\nvar ComponentMessageType;\n(function (ComponentMessageType) {\n // A component sends this message when it's ready to receive messages\n // from Streamlit. Streamlit won't send any messages until it gets this.\n // Data: { apiVersion: number }\n ComponentMessageType[\"COMPONENT_READY\"] = \"streamlit:componentReady\";\n // The component has a new widget value. Send it back to Streamlit, which\n // will then re-run the app.\n // Data: { value: any }\n ComponentMessageType[\"SET_COMPONENT_VALUE\"] = \"streamlit:setComponentValue\";\n // The component has a new height for its iframe.\n // Data: { height: number }\n ComponentMessageType[\"SET_FRAME_HEIGHT\"] = \"streamlit:setFrameHeight\";\n})(ComponentMessageType || (ComponentMessageType = {}));\n/**\n * Streamlit communication API.\n *\n * Components can send data to Streamlit via the functions defined here,\n * and receive data from Streamlit via the `events` property.\n */\nvar Streamlit = /** @class */ (function () {\n function Streamlit() {\n }\n /**\n * The Streamlit component API version we're targetting.\n * There's currently only 1!\n */\n Streamlit.API_VERSION = 1;\n Streamlit.RENDER_EVENT = \"streamlit:render\";\n /** Dispatches events received from Streamlit. */\n Streamlit.events = new EventTarget();\n Streamlit.registeredMessageListener = false;\n /**\n * Tell Streamlit that the component is ready to start receiving data.\n * Streamlit will defer emitting RENDER events until it receives the\n * COMPONENT_READY message.\n */\n Streamlit.setComponentReady = function () {\n if (!Streamlit.registeredMessageListener) {\n // Register for message events if we haven't already\n window.addEventListener(\"message\", Streamlit.onMessageEvent);\n Streamlit.registeredMessageListener = true;\n }\n Streamlit.sendBackMsg(ComponentMessageType.COMPONENT_READY, {\n apiVersion: Streamlit.API_VERSION\n });\n };\n /**\n * Report the component's height to Streamlit.\n * This should be called every time the component changes its DOM - that is,\n * when it's first loaded, and any time it updates.\n */\n Streamlit.setFrameHeight = function (height) {\n if (height === undefined) {\n // `height` is optional. If undefined, it defaults to scrollHeight,\n // which is the entire height of the element minus its border,\n // scrollbar, and margin.\n height = document.body.scrollHeight;\n }\n if (height === Streamlit.lastFrameHeight) {\n // Don't bother updating if our height hasn't changed.\n return;\n }\n Streamlit.lastFrameHeight = height;\n Streamlit.sendBackMsg(ComponentMessageType.SET_FRAME_HEIGHT, { height: height });\n };\n /**\n * Set the component's value. This value will be returned to the Python\n * script, and the script will be re-run.\n *\n * For example:\n *\n * JavaScript:\n * Streamlit.setComponentValue(\"ahoy!\")\n *\n * Python:\n * value = st.my_component(...)\n * st.write(value) # -> \"ahoy!\"\n *\n * The value must be an ArrowTable, a typed array, an ArrayBuffer, or be\n * serializable to JSON.\n */\n Streamlit.setComponentValue = function (value) {\n var dataType;\n if (value instanceof ArrowTable) {\n dataType = \"dataframe\";\n value = value.serialize();\n }\n else if (isTypedArray(value)) {\n // All typed arrays get sent as Uint8Array, because that's what our\n // protobuf library uses for the \"bytes\" field type.\n dataType = \"bytes\";\n value = new Uint8Array(value.buffer);\n }\n else if (value instanceof ArrayBuffer) {\n dataType = \"bytes\";\n value = new Uint8Array(value);\n }\n else {\n dataType = \"json\";\n }\n Streamlit.sendBackMsg(ComponentMessageType.SET_COMPONENT_VALUE, {\n value: value,\n dataType: dataType\n });\n };\n /** Receive a ForwardMsg from the Streamlit app */\n Streamlit.onMessageEvent = function (event) {\n var type = event.data[\"type\"];\n switch (type) {\n case Streamlit.RENDER_EVENT:\n Streamlit.onRenderMessage(event.data);\n break;\n }\n };\n /**\n * Handle an untyped Streamlit render event and redispatch it as a\n * StreamlitRenderEvent.\n */\n Streamlit.onRenderMessage = function (data) {\n var args = data[\"args\"];\n if (args == null) {\n console.error(\"Got null args in onRenderMessage. This should never happen\");\n args = {};\n }\n // Parse our dataframe arguments with arrow, and merge them into our args dict\n var dataframeArgs = data[\"dfs\"] && data[\"dfs\"].length > 0\n ? Streamlit.argsDataframeToObject(data[\"dfs\"])\n : {};\n args = __assign(__assign({}, args), dataframeArgs);\n var disabled = Boolean(data[\"disabled\"]);\n var theme = data[\"theme\"];\n if (theme) {\n _injectTheme(theme);\n }\n // Dispatch a render event!\n var eventData = { disabled: disabled, args: args, theme: theme };\n var event = new CustomEvent(Streamlit.RENDER_EVENT, {\n detail: eventData\n });\n Streamlit.events.dispatchEvent(event);\n };\n Streamlit.argsDataframeToObject = function (argsDataframe) {\n var argsDataframeArrow = argsDataframe.map(function (_a) {\n var key = _a.key, value = _a.value;\n return [key, Streamlit.toArrowTable(value)];\n });\n return Object.fromEntries(argsDataframeArrow);\n };\n Streamlit.toArrowTable = function (df) {\n var _a = df.data, data = _a.data, index = _a.index, columns = _a.columns, styler = _a.styler;\n return new ArrowTable(data, index, columns, styler);\n };\n /** Post a message to the Streamlit app. */\n Streamlit.sendBackMsg = function (type, data) {\n window.parent.postMessage(__assign({ isStreamlitMessage: true, type: type }, data), \"*\");\n };\n return Streamlit;\n}());\nexport { Streamlit };\nvar _injectTheme = function (theme) {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n style.innerHTML = \"\\n :root {\\n --primary-color: \" + theme.primaryColor + \";\\n --background-color: \" + theme.backgroundColor + \";\\n --secondary-background-color: \" + theme.secondaryBackgroundColor + \";\\n --text-color: \" + theme.textColor + \";\\n --font: \" + theme.font + \";\\n }\\n\\n body {\\n background-color: var(--background-color);\\n color: var(--text-color);\\n }\\n \";\n};\n/** True if the value is a TypedArray. */\nfunction isTypedArray(value) {\n var isBigIntArray = false;\n try {\n isBigIntArray =\n value instanceof BigInt64Array || value instanceof BigUint64Array;\n }\n catch (e) {\n // Ignore cause Safari does not support this\n // https://caniuse.com/mdn-javascript_builtins_bigint64array\n }\n return (value instanceof Int8Array ||\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int16Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float32Array ||\n value instanceof Float64Array ||\n isBigIntArray);\n}\n","/**\n * @license\n * Copyright 2018-2021 Streamlit Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * 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, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\nimport React from \"react\";\nimport { Streamlit } from \"./streamlit\";\n/**\n * Optional Streamlit React-based component base class.\n *\n * You are not required to extend this base class to create a Streamlit\n * component. If you decide not to extend it, you should implement the\n * `componentDidMount` and `componentDidUpdate` functions in your own class,\n * so that your plugin properly resizes.\n */\nvar StreamlitComponentBase = /** @class */ (function (_super) {\n __extends(StreamlitComponentBase, _super);\n function StreamlitComponentBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StreamlitComponentBase.prototype.componentDidMount = function () {\n // After we're rendered for the first time, tell Streamlit that our height\n // has changed.\n Streamlit.setFrameHeight();\n };\n StreamlitComponentBase.prototype.componentDidUpdate = function () {\n // After we're updated, tell Streamlit that our height may have changed.\n Streamlit.setFrameHeight();\n };\n return StreamlitComponentBase;\n}(React.PureComponent));\nexport { StreamlitComponentBase };\n/**\n * Wrapper for React-based Streamlit components.\n *\n * Bootstraps the communication interface between Streamlit and the component.\n */\nexport function withStreamlitConnection(WrappedComponent) {\n var ComponentWrapper = /** @class */ (function (_super) {\n __extends(ComponentWrapper, _super);\n function ComponentWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this.componentDidMount = function () {\n // Set up event listeners, and signal to Streamlit that we're ready.\n // We won't render the component until we receive the first RENDER_EVENT.\n Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, _this.onRenderEvent);\n Streamlit.setComponentReady();\n };\n _this.componentDidUpdate = function () {\n // If our child threw an error, we display it in render(). In this\n // case, the child won't be mounted and therefore won't call\n // `setFrameHeight` on its own. We do it here so that the rendered\n // error will be visible.\n if (_this.state.componentError != null) {\n Streamlit.setFrameHeight();\n }\n };\n _this.componentWillUnmount = function () {\n Streamlit.events.removeEventListener(Streamlit.RENDER_EVENT, _this.onRenderEvent);\n };\n /**\n * Streamlit is telling this component to redraw.\n * We save the render data in State, so that it can be passed to the\n * component in our own render() function.\n */\n _this.onRenderEvent = function (event) {\n // Update our state with the newest render data\n var renderEvent = event;\n _this.setState({ renderData: renderEvent.detail });\n };\n _this.render = function () {\n // If our wrapped component threw an error, display it.\n if (_this.state.componentError != null) {\n return (React.createElement(\"div\", null,\n React.createElement(\"h1\", null, \"Component Error\"),\n React.createElement(\"span\", null, _this.state.componentError.message)));\n }\n // Don't render until we've gotten our first RENDER_EVENT from Streamlit.\n if (_this.state.renderData == null) {\n return null;\n }\n return (React.createElement(WrappedComponent, { width: window.innerWidth, disabled: _this.state.renderData.disabled, args: _this.state.renderData.args, theme: _this.state.renderData.theme }));\n };\n _this.state = {\n renderData: undefined,\n componentError: undefined\n };\n return _this;\n }\n /**\n * Error boundary function. This will be called if our wrapped\n * component throws an error. We store the caught error in our state,\n * and display it in the next render().\n */\n ComponentWrapper.getDerivedStateFromError = function (error) {\n return { componentError: error };\n };\n return ComponentWrapper;\n }(React.PureComponent));\n return hoistNonReactStatics(ComponentWrapper, WrappedComponent);\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React from 'react'\r\nimport styles from './styles.module.css'\r\nimport PropTypes from 'prop-types' // ES6\r\n\r\n// export const AudioReactRecorder = ({ text }) => {\r\n// return
BULLSWEET: {text}
\r\n// }\r\n\r\nexport const RecordState = Object.freeze({\r\n START: 'start',\r\n PAUSE: 'pause',\r\n STOP: 'stop',\r\n NONE: 'none'\r\n})\r\n\r\nexport default class AudioReactRecorder extends React.Component {\r\n //0 - constructor\r\n constructor(props) {\r\n super(props)\r\n\r\n this.canvasRef = React.createRef()\r\n }\r\n\r\n //TODO: add the props definitions\r\n static propTypes = {\r\n state: PropTypes.string,\r\n type: PropTypes.string.isRequired,\r\n backgroundColor: PropTypes.string,\r\n foregroundColor: PropTypes.string,\r\n canvasWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n canvasHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n\r\n //method calls\r\n onStop: PropTypes.func\r\n }\r\n static defaultProps = {\r\n state: RecordState.NONE,\r\n type: 'audio/wav',\r\n backgroundColor: 'rgb(200, 200, 200)',\r\n foregroundColor: 'rgb(0, 0, 0)',\r\n canvasWidth: 500,\r\n canvasHeight: 300\r\n }\r\n\r\n //2 - mount\r\n componentDidMount() {\r\n this.init()\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const { state } = this.props\r\n\r\n this.checkState(prevProps.state, state)\r\n }\r\n\r\n checkState(previousState) {\r\n switch (previousState) {\r\n case RecordState.START:\r\n this.doIfState(RecordState.PAUSE, this.pause)\r\n this.doIfState(RecordState.STOP, this.stop)\r\n break\r\n case RecordState.PAUSE:\r\n this.doIfState(RecordState.START, this.resume)\r\n this.doIfState(RecordState.STOP, this.stop)\r\n break\r\n case RecordState.STOP:\r\n this.doIfState(RecordState.START, this.start)\r\n break\r\n default:\r\n this.doIfState(RecordState.START, this.start)\r\n break\r\n }\r\n }\r\n\r\n doIfState(state, cb) {\r\n if (this.props.state == state) {\r\n cb && cb()\r\n }\r\n }\r\n\r\n //TODO: destroy request animation frame\r\n componentWillUnmount() {}\r\n\r\n //TODO: change to state some conditionals\r\n init = async () => {\r\n this.leftchannel = []\r\n this.rightchannel = []\r\n this.recorder = null\r\n this.recording = false\r\n this.recordingLength = 0\r\n this.volume = null\r\n this.audioInput = null\r\n this.sampleRate = null\r\n this.AudioContext = window.AudioContext || window.webkitAudioContext\r\n this.context = null\r\n this.analyser = null\r\n this.canvas = this.canvasRef.current\r\n this.canvasCtx = this.canvas.getContext('2d')\r\n this.stream = null\r\n this.tested = false\r\n\r\n navigator.getUserMedia =\r\n navigator.getUserMedia ||\r\n navigator.webkitGetUserMedia ||\r\n navigator.mozGetUserMedia\r\n }\r\n\r\n //get mic stream\r\n getStream = (constraints) => {\r\n if (!constraints) {\r\n constraints = { audio: true, video: false }\r\n }\r\n\r\n return navigator.mediaDevices.getUserMedia(constraints)\r\n }\r\n\r\n setUpRecording = () => {\r\n this.context = new this.AudioContext()\r\n this.sampleRate = this.context.sampleRate\r\n\r\n // creates a gain node\r\n this.volume = this.context.createGain()\r\n\r\n // creates an audio node from teh microphone incoming stream\r\n this.audioInput = this.context.createMediaStreamSource(this.stream)\r\n\r\n // Create analyser\r\n this.analyser = this.context.createAnalyser()\r\n\r\n // connect audio input to the analyser\r\n this.audioInput.connect(this.analyser)\r\n\r\n // connect analyser to the volume control\r\n // analyser.connect(volume);\r\n\r\n let bufferSize = 2048\r\n this.recorder = this.context.createScriptProcessor(bufferSize, 2, 2)\r\n\r\n // we connect the volume control to the processor\r\n // volume.connect(recorder);\r\n\r\n this.analyser.connect(this.recorder)\r\n\r\n // finally connect the processor to the output\r\n this.recorder.connect(this.context.destination)\r\n\r\n const self = this\r\n this.recorder.onaudioprocess = function (e) {\r\n // Check\r\n if (!self.recording) return\r\n // Do something with the data, i.e Convert this to WAV\r\n let left = e.inputBuffer.getChannelData(0)\r\n let right = e.inputBuffer.getChannelData(1)\r\n if (!self.tested) {\r\n self.tested = true\r\n // if this reduces to 0 we are not getting any sound\r\n if (!left.reduce((a, b) => a + b)) {\r\n console.log('Error: There seems to be an issue with your Mic')\r\n // clean up;\r\n self.stop()\r\n self.stream.getTracks().forEach(function (track) {\r\n track.stop()\r\n })\r\n self.context.close()\r\n }\r\n }\r\n // we clone the samples\r\n self.leftchannel.push(new Float32Array(left))\r\n self.rightchannel.push(new Float32Array(right))\r\n self.recordingLength += bufferSize\r\n }\r\n this.visualize()\r\n }\r\n\r\n mergeBuffers = (channelBuffer, recordingLength) => {\r\n let result = new Float32Array(recordingLength)\r\n let offset = 0\r\n let lng = channelBuffer.length\r\n for (let i = 0; i < lng; i++) {\r\n let buffer = channelBuffer[i]\r\n result.set(buffer, offset)\r\n offset += buffer.length\r\n }\r\n return result\r\n }\r\n\r\n interleave = (leftChannel, rightChannel) => {\r\n let length = leftChannel.length + rightChannel.length\r\n let result = new Float32Array(length)\r\n\r\n let inputIndex = 0\r\n\r\n for (let index = 0; index < length; ) {\r\n result[index++] = leftChannel[inputIndex]\r\n result[index++] = rightChannel[inputIndex]\r\n inputIndex++\r\n }\r\n return result\r\n }\r\n\r\n writeUTFBytes = (view, offset, string) => {\r\n let lng = string.length\r\n for (let i = 0; i < lng; i++) {\r\n view.setUint8(offset + i, string.charCodeAt(i))\r\n }\r\n }\r\n\r\n visualize = () => {\r\n const { backgroundColor, foregroundColor } = this.props\r\n\r\n this.WIDTH = this.canvas.width\r\n this.HEIGHT = this.canvas.height\r\n this.CENTERX = this.canvas.width / 2\r\n this.CENTERY = this.canvas.height / 2\r\n\r\n if (!this.analyser) return\r\n\r\n this.analyser.fftSize = 2048\r\n const bufferLength = this.analyser.fftSize\r\n const dataArray = new Uint8Array(bufferLength)\r\n\r\n this.canvasCtx.clearRect(0, 0, this.WIDTH, this.HEIGHT)\r\n\r\n //reference this using self\r\n let self = this\r\n const draw = function () {\r\n self.drawVisual = requestAnimationFrame(draw)\r\n\r\n self.analyser.getByteTimeDomainData(dataArray)\r\n\r\n self.canvasCtx.fillStyle = backgroundColor\r\n self.canvasCtx.fillRect(0, 0, self.WIDTH, self.HEIGHT)\r\n\r\n self.canvasCtx.lineWidth = 2\r\n self.canvasCtx.strokeStyle = foregroundColor\r\n\r\n self.canvasCtx.beginPath()\r\n\r\n var sliceWidth = (self.WIDTH * 1.0) / bufferLength\r\n var x = 0\r\n\r\n for (var i = 0; i < bufferLength; i++) {\r\n var v = dataArray[i] / 128.0\r\n var y = (v * self.HEIGHT) / 2\r\n\r\n if (i === 0) {\r\n self.canvasCtx.moveTo(x, y)\r\n } else {\r\n self.canvasCtx.lineTo(x, y)\r\n }\r\n\r\n x += sliceWidth\r\n }\r\n\r\n self.canvasCtx.lineTo(self.canvas.width, self.canvas.height / 2)\r\n self.canvasCtx.stroke()\r\n }\r\n\r\n draw()\r\n }\r\n\r\n setupMic = async () => {\r\n //TODO: only get stream after clicking start\r\n try {\r\n window.stream = this.stream = await this.getStream()\r\n //TODO: on got stream\r\n } catch (err) {\r\n //TODO: error getting stream\r\n console.log('Error: Issue getting mic', err)\r\n }\r\n\r\n this.setUpRecording()\r\n }\r\n\r\n start = async () => {\r\n await this.setupMic()\r\n\r\n this.recording = true\r\n // reset the buffers for the new recording\r\n this.leftchannel.length = this.rightchannel.length = 0\r\n this.recordingLength = 0\r\n }\r\n\r\n stop = () => {\r\n const { onStop, type } = this.props\r\n\r\n this.recording = false\r\n this.closeMic()\r\n\r\n // we flat the left and right channels down\r\n this.leftBuffer = this.mergeBuffers(this.leftchannel, this.recordingLength)\r\n this.rightBuffer = this.mergeBuffers(\r\n this.rightchannel,\r\n this.recordingLength\r\n )\r\n // we interleave both channels together\r\n let interleaved = this.interleave(this.leftBuffer, this.rightBuffer)\r\n\r\n ///////////// WAV Encode /////////////////\r\n // from http://typedarray.org/from-microphone-to-wav-with-getusermedia-and-web-audio/\r\n //\r\n\r\n // we create our wav file\r\n let buffer = new ArrayBuffer(44 + interleaved.length * 2)\r\n let view = new DataView(buffer)\r\n\r\n // RIFF chunk descriptor\r\n this.writeUTFBytes(view, 0, 'RIFF')\r\n view.setUint32(4, 44 + interleaved.length * 2, true)\r\n this.writeUTFBytes(view, 8, 'WAVE')\r\n // FMT sub-chunk\r\n this.writeUTFBytes(view, 12, 'fmt ')\r\n view.setUint32(16, 16, true)\r\n view.setUint16(20, 1, true)\r\n // stereo (2 channels)\r\n view.setUint16(22, 2, true)\r\n view.setUint32(24, this.sampleRate, true)\r\n view.setUint32(28, this.sampleRate * 4, true)\r\n view.setUint16(32, 4, true)\r\n view.setUint16(34, 16, true)\r\n // data sub-chunk\r\n this.writeUTFBytes(view, 36, 'data')\r\n view.setUint32(40, interleaved.length * 2, true)\r\n\r\n // write the PCM samples\r\n let lng = interleaved.length\r\n let index = 44\r\n let volume = 1\r\n for (let i = 0; i < lng; i++) {\r\n view.setInt16(index, interleaved[i] * (0x7fff * volume), true)\r\n index += 2\r\n }\r\n\r\n // our final binary blob\r\n const blob = new Blob([view], { type: type })\r\n const audioUrl = URL.createObjectURL(blob)\r\n\r\n onStop &&\r\n onStop({\r\n blob: blob,\r\n url: audioUrl,\r\n type\r\n })\r\n }\r\n\r\n pause = () => {\r\n this.recording = false\r\n this.closeMic()\r\n }\r\n\r\n resume = () => {\r\n this.setupMic()\r\n this.recording = true\r\n }\r\n\r\n closeMic = () => {\r\n this.stream.getAudioTracks().forEach((track) => {\r\n track.stop()\r\n })\r\n this.audioInput.disconnect(0)\r\n this.analyser.disconnect(0)\r\n this.recorder.disconnect(0)\r\n }\r\n\r\n //1 - render\r\n render() {\r\n const { canvasWidth, canvasHeight } = this.props\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n"],"sourceRoot":""}