@duckdb/duckdb-wasm 0.0.41-dev283.0 → 0.0.41-dev323.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/duckdb-browser-async-next-coi.pthread.worker.js +3 -3
  2. package/dist/duckdb-browser-async-next-coi.pthread.worker.js.map +2 -2
  3. package/dist/duckdb-browser-async-next-coi.worker.js +3 -3
  4. package/dist/duckdb-browser-async-next-coi.worker.js.map +2 -2
  5. package/dist/duckdb-browser-async-next.worker.js +3 -3
  6. package/dist/duckdb-browser-async-next.worker.js.map +1 -1
  7. package/dist/duckdb-browser-async.js +2 -2
  8. package/dist/duckdb-browser-async.js.map +1 -1
  9. package/dist/duckdb-browser-async.worker.js +3 -3
  10. package/dist/duckdb-browser-async.worker.js.map +2 -2
  11. package/dist/duckdb-browser-sync-next.js +3 -3
  12. package/dist/duckdb-browser-sync-next.js.map +1 -1
  13. package/dist/duckdb-browser-sync.js +3 -3
  14. package/dist/duckdb-browser-sync.js.map +2 -2
  15. package/dist/duckdb-esm.js +1 -1
  16. package/dist/duckdb-esm.js.map +1 -1
  17. package/dist/duckdb-next-coi.wasm +0 -0
  18. package/dist/duckdb-next.wasm +0 -0
  19. package/dist/duckdb-node-async-next.worker.js +3 -3
  20. package/dist/duckdb-node-async-next.worker.js.map +2 -2
  21. package/dist/duckdb-node-async.js +1 -1
  22. package/dist/duckdb-node-async.js.map +1 -1
  23. package/dist/duckdb-node-async.worker.js +2 -2
  24. package/dist/duckdb-node-async.worker.js.map +2 -2
  25. package/dist/duckdb-node-sync-next.js +3 -3
  26. package/dist/duckdb-node-sync-next.js.map +2 -2
  27. package/dist/duckdb-node-sync.js +2 -2
  28. package/dist/duckdb-node-sync.js.map +2 -2
  29. package/dist/duckdb.wasm +0 -0
  30. package/dist/tests-browser.js +6 -5
  31. package/dist/tests-browser.js.map +2 -2
  32. package/dist/tests-node.js +48 -48
  33. package/dist/tests-node.js.map +2 -2
  34. package/dist/types/src/bindings/config.d.ts +1 -0
  35. package/package.json +5 -4
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../node_modules/flatbuffers/js/flatbuffers.js", "../../../node_modules/text-encoding-utf-8/lib/encoding.lib.js", "../../../node_modules/apache-arrow/util/util/utf8.ts", "../../../node_modules/apache-arrow/io/io/interfaces.ts", "../../../node_modules/apache-arrow/util/util/compat.ts", "../../../node_modules/apache-arrow/util/util/buffer.ts", "../../../node_modules/apache-arrow/io/io/adapters.ts", "../../../node_modules/apache-arrow/vector.ts", "../../../node_modules/apache-arrow/fb/fb/Schema.ts", "../../../node_modules/apache-arrow/fb/fb/Message.ts", "../../../node_modules/apache-arrow/enum.ts", "../../../node_modules/apache-arrow/util/util/bit.ts", "../../../node_modules/apache-arrow/type.ts", "../../../node_modules/apache-arrow/data.ts", "../../../node_modules/apache-arrow/util/util/pretty.ts", "../../../node_modules/apache-arrow/builder/builder/valid.ts", "../../../node_modules/apache-arrow/builder/builder/buffer.ts", "../../../node_modules/apache-arrow/builder.ts", "../../../node_modules/apache-arrow/builder/builder/bool.ts", "../../../node_modules/apache-arrow/builder/builder/null.ts", "../../../node_modules/apache-arrow/builder/builder/date.ts", "../../../node_modules/apache-arrow/builder/builder/decimal.ts", "../../../node_modules/apache-arrow/builder/builder/dictionary.ts", "../../../node_modules/apache-arrow/builder/builder/fixedsizebinary.ts", "../../../node_modules/apache-arrow/util/util/math.ts", "../../../node_modules/apache-arrow/builder/builder/float.ts", "../../../node_modules/apache-arrow/util/util/bn.ts", "../../../node_modules/apache-arrow/builder/builder/int.ts", "../../../node_modules/apache-arrow/builder/builder/time.ts", "../../../node_modules/apache-arrow/builder/builder/timestamp.ts", "../../../node_modules/apache-arrow/builder/builder/interval.ts", "../../../node_modules/apache-arrow/builder/builder/binary.ts", "../../../node_modules/apache-arrow/builder/builder/utf8.ts", "../../../node_modules/apache-arrow/builder/builder/run.ts", "../../../node_modules/apache-arrow/schema.ts", "../../../node_modules/apache-arrow/builder/builder/list.ts", "../../../node_modules/apache-arrow/builder/builder/fixedsizelist.ts", "../../../node_modules/apache-arrow/builder/builder/map.ts", "../../../node_modules/apache-arrow/builder/builder/struct.ts", "../../../node_modules/apache-arrow/builder/builder/union.ts", "../../../node_modules/apache-arrow/visitor.ts", "../../../node_modules/apache-arrow/visitor/visitor/set.ts", "../../../node_modules/apache-arrow/visitor/visitor/builderctor.ts", "../../../node_modules/apache-arrow/builder/builder/index.ts", "../../../node_modules/apache-arrow/fb/fb/File.ts", "../../../node_modules/apache-arrow/ipc/metadata/ipc/metadata/file.ts", "../../../node_modules/apache-arrow/io/io/stream.ts", "../../../node_modules/apache-arrow/io/io/file.ts", "../../../node_modules/apache-arrow/util/util/int.ts", "../../../node_modules/apache-arrow/visitor/visitor/vectorloader.ts", "../../../node_modules/apache-arrow/vector/vector/row.ts", "../../../node_modules/apache-arrow/util/util/vector.ts", "../../../node_modules/apache-arrow/util/util/args.ts", "../../../node_modules/apache-arrow/vector/vector/chunked.ts", "../../../node_modules/apache-arrow/column.ts", "../../../node_modules/apache-arrow/visitor/visitor/typeassembler.ts", "../../../node_modules/apache-arrow/ipc/metadata/ipc/metadata/json.ts", "../../../node_modules/apache-arrow/ipc/metadata/ipc/metadata/message.ts", "../../../node_modules/apache-arrow/ipc/ipc/message.ts", "../../../node_modules/apache-arrow/visitor/visitor/typecomparator.ts", "../../../node_modules/apache-arrow/visitor/visitor/vectorassembler.ts", "../../../node_modules/apache-arrow/visitor/visitor/jsontypeassembler.ts", "../../../node_modules/apache-arrow/visitor/visitor/jsonvectorassembler.ts", "../../../node_modules/apache-arrow/ipc/ipc/writer.ts", "../../../node_modules/apache-arrow/util/util/recordbatch.ts", "../../../node_modules/apache-arrow/vector/vector/base.ts", "../../../node_modules/apache-arrow/vector/vector/binary.ts", "../../../node_modules/apache-arrow/vector/vector/bool.ts", "../../../node_modules/apache-arrow/vector/vector/date.ts", "../../../node_modules/apache-arrow/vector/vector/decimal.ts", "../../../node_modules/apache-arrow/vector/vector/dictionary.ts", "../../../node_modules/apache-arrow/vector/vector/fixedsizebinary.ts", "../../../node_modules/apache-arrow/vector/vector/fixedsizelist.ts", "../../../node_modules/apache-arrow/vector/vector/float.ts", "../../../node_modules/apache-arrow/vector/vector/interval.ts", "../../../node_modules/apache-arrow/vector/vector/int.ts", "../../../node_modules/apache-arrow/vector/vector/list.ts", "../../../node_modules/apache-arrow/vector/vector/map.ts", "../../../node_modules/apache-arrow/vector/vector/null.ts", "../../../node_modules/apache-arrow/vector/vector/struct.ts", "../../../node_modules/apache-arrow/vector/vector/timestamp.ts", "../../../node_modules/apache-arrow/vector/vector/time.ts", "../../../node_modules/apache-arrow/vector/vector/union.ts", "../../../node_modules/apache-arrow/vector/vector/utf8.ts", "../../../node_modules/apache-arrow/util/util/fn.ts", "../../../node_modules/apache-arrow/visitor/visitor/get.ts", "../../../node_modules/apache-arrow/visitor/visitor/indexof.ts", "../../../node_modules/apache-arrow/visitor/visitor/iterator.ts", "../../../node_modules/apache-arrow/visitor/visitor/toarray.ts", "../../../node_modules/apache-arrow/visitor/visitor/bytewidth.ts", "../../../node_modules/apache-arrow/visitor/visitor/vectorctor.ts", "../../../node_modules/apache-arrow/vector/vector/index.ts", "../../../node_modules/apache-arrow/table.ts", "../../../node_modules/apache-arrow/recordbatch.ts", "../../../node_modules/apache-arrow/ipc/ipc/reader.ts", "../../../node_modules/apache-arrow/io/whatwg/io/whatwg/iterable.ts", "../../../node_modules/apache-arrow/io/whatwg/io/whatwg/builder.ts", "../../../node_modules/apache-arrow/io/whatwg/io/whatwg/reader.ts", "../../../node_modules/apache-arrow/io/whatwg/io/whatwg/writer.ts", "../../../node_modules/apache-arrow/compute/compute/predicate.ts", "../../../node_modules/apache-arrow/compute/compute/dataframe.ts", "../../../node_modules/apache-arrow/Arrow.ts", "../../../node_modules/apache-arrow/Arrow.dom.ts", "../src/targets/duckdb-browser-async.ts", "../src/log.ts", "../src/status.ts", "../src/parallel/async_connection.ts", "../src/parallel/worker_request.ts", "../src/flat_arrow.ts", "../src/parallel/async_bindings.ts", "../src/parallel/worker_dispatcher.ts", "../../../node_modules/wasm-feature-detect/dist/esm/index.js", "../src/version.ts", "../src/platform.ts"],
4
4
  "sourcesContent": ["/// @file\n/// @addtogroup flatbuffers_javascript_api\n/// @{\n/// @cond FLATBUFFERS_INTERNAL\n\n/**\n * @fileoverview\n *\n * Need to suppress 'global this' error so the Node.js export line doesn't cause\n * closure compile to error out.\n * @suppress {globalThis}\n */\n\n/**\n * @const\n * @namespace\n */\nvar flatbuffers = {};\n\n/**\n * @typedef {number}\n */\nflatbuffers.Offset;\n\n/**\n * @typedef {{\n * bb: flatbuffers.ByteBuffer,\n * bb_pos: number\n * }}\n */\nflatbuffers.Table;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_SHORT = 2;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZEOF_INT = 4;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.FILE_IDENTIFIER_LENGTH = 4;\n\n/**\n * @type {number}\n * @const\n */\nflatbuffers.SIZE_PREFIX_LENGTH = 4;\n\n/**\n * @enum {number}\n */\nflatbuffers.Encoding = {\n UTF8_BYTES: 1,\n UTF16_STRING: 2\n};\n\n/**\n * @type {Int32Array}\n * @const\n */\nflatbuffers.int32 = new Int32Array(2);\n\n/**\n * @type {Float32Array}\n * @const\n */\nflatbuffers.float32 = new Float32Array(flatbuffers.int32.buffer);\n\n/**\n * @type {Float64Array}\n * @const\n */\nflatbuffers.float64 = new Float64Array(flatbuffers.int32.buffer);\n\n/**\n * @type {boolean}\n * @const\n */\nflatbuffers.isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @constructor\n * @param {number} low\n * @param {number} high\n */\nflatbuffers.Long = function(low, high) {\n /**\n * @type {number}\n * @const\n */\n this.low = low | 0;\n\n /**\n * @type {number}\n * @const\n */\n this.high = high | 0;\n};\n\n/**\n * @param {number} low\n * @param {number} high\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.Long.create = function(low, high) {\n // Special-case zero to avoid GC overhead for default values\n return low == 0 && high == 0 ? flatbuffers.Long.ZERO : new flatbuffers.Long(low, high);\n};\n\n/**\n * @returns {number}\n */\nflatbuffers.Long.prototype.toFloat64 = function() {\n return (this.low >>> 0) + this.high * 0x100000000;\n};\n\n/**\n * @param {flatbuffers.Long} other\n * @returns {boolean}\n */\nflatbuffers.Long.prototype.equals = function(other) {\n return this.low == other.low && this.high == other.high;\n};\n\n/**\n * @type {!flatbuffers.Long}\n * @const\n */\nflatbuffers.Long.ZERO = new flatbuffers.Long(0, 0);\n\n/// @endcond\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a FlatBufferBuilder.\n *\n * @constructor\n * @param {number=} opt_initial_size\n */\nflatbuffers.Builder = function(opt_initial_size) {\n if (!opt_initial_size) {\n var initial_size = 1024;\n } else {\n var initial_size = opt_initial_size;\n }\n\n /**\n * @type {flatbuffers.ByteBuffer}\n * @private\n */\n this.bb = flatbuffers.ByteBuffer.allocate(initial_size);\n\n /**\n * Remaining space in the ByteBuffer.\n *\n * @type {number}\n * @private\n */\n this.space = initial_size;\n\n /**\n * Minimum alignment encountered so far.\n *\n * @type {number}\n * @private\n */\n this.minalign = 1;\n\n /**\n * The vtable for the current table.\n *\n * @type {Array.<number>}\n * @private\n */\n this.vtable = null;\n\n /**\n * The amount of fields we're actually using.\n *\n * @type {number}\n * @private\n */\n this.vtable_in_use = 0;\n\n /**\n * Whether we are currently serializing a table.\n *\n * @type {boolean}\n * @private\n */\n this.isNested = false;\n\n /**\n * Starting offset of the current struct/table.\n *\n * @type {number}\n * @private\n */\n this.object_start = 0;\n\n /**\n * List of offsets of all vtables.\n *\n * @type {Array.<number>}\n * @private\n */\n this.vtables = [];\n\n /**\n * For the current vector being built.\n *\n * @type {number}\n * @private\n */\n this.vector_num_elems = 0;\n\n /**\n * False omits default values from the serialized data\n *\n * @type {boolean}\n * @private\n */\n this.force_defaults = false;\n};\n\nflatbuffers.Builder.prototype.clear = function() {\n this.bb.clear();\n this.space = this.bb.capacity();\n this.minalign = 1;\n this.vtable = null;\n this.vtable_in_use = 0;\n this.isNested = false;\n this.object_start = 0;\n this.vtables = [];\n this.vector_num_elems = 0;\n this.force_defaults = false;\n};\n\n/**\n * In order to save space, fields that are set to their default value\n * don't get serialized into the buffer. Forcing defaults provides a\n * way to manually disable this optimization.\n *\n * @param {boolean} forceDefaults true always serializes default values\n */\nflatbuffers.Builder.prototype.forceDefaults = function(forceDefaults) {\n this.force_defaults = forceDefaults;\n};\n\n/**\n * Get the ByteBuffer representing the FlatBuffer. Only call this after you've\n * called finish(). The actual data starts at the ByteBuffer's current position,\n * not necessarily at 0.\n *\n * @returns {flatbuffers.ByteBuffer}\n */\nflatbuffers.Builder.prototype.dataBuffer = function() {\n return this.bb;\n};\n\n/**\n * Get the bytes representing the FlatBuffer. Only call this after you've\n * called finish().\n *\n * @returns {!Uint8Array}\n */\nflatbuffers.Builder.prototype.asUint8Array = function() {\n return this.bb.bytes().subarray(this.bb.position(), this.bb.position() + this.offset());\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Prepare to write an element of `size` after `additional_bytes` have been\n * written, e.g. if you write a string, you need to align such the int length\n * field is aligned to 4 bytes, and the string data follows it directly. If all\n * you need to do is alignment, `additional_bytes` will be 0.\n *\n * @param {number} size This is the of the new element to write\n * @param {number} additional_bytes The padding size\n */\nflatbuffers.Builder.prototype.prep = function(size, additional_bytes) {\n // Track the biggest thing we've ever aligned to.\n if (size > this.minalign) {\n this.minalign = size;\n }\n\n // Find the amount of alignment needed such that `size` is properly\n // aligned after `additional_bytes`\n var align_size = ((~(this.bb.capacity() - this.space + additional_bytes)) + 1) & (size - 1);\n\n // Reallocate the buffer if needed.\n while (this.space < align_size + size + additional_bytes) {\n var old_buf_size = this.bb.capacity();\n this.bb = flatbuffers.Builder.growByteBuffer(this.bb);\n this.space += this.bb.capacity() - old_buf_size;\n }\n\n this.pad(align_size);\n};\n\n/**\n * @param {number} byte_size\n */\nflatbuffers.Builder.prototype.pad = function(byte_size) {\n for (var i = 0; i < byte_size; i++) {\n this.bb.writeInt8(--this.space, 0);\n }\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt8 = function(value) {\n this.bb.writeInt8(this.space -= 1, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt16 = function(value) {\n this.bb.writeInt16(this.space -= 2, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeInt32 = function(value) {\n this.bb.writeInt32(this.space -= 4, value);\n};\n\n/**\n * @param {flatbuffers.Long} value\n */\nflatbuffers.Builder.prototype.writeInt64 = function(value) {\n this.bb.writeInt64(this.space -= 8, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat32 = function(value) {\n this.bb.writeFloat32(this.space -= 4, value);\n};\n\n/**\n * @param {number} value\n */\nflatbuffers.Builder.prototype.writeFloat64 = function(value) {\n this.bb.writeFloat64(this.space -= 8, value);\n};\n/// @endcond\n\n/**\n * Add an `int8` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int8` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt8 = function(value) {\n this.prep(1, 0);\n this.writeInt8(value);\n};\n\n/**\n * Add an `int16` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int16` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt16 = function(value) {\n this.prep(2, 0);\n this.writeInt16(value);\n};\n\n/**\n * Add an `int32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `int32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt32 = function(value) {\n this.prep(4, 0);\n this.writeInt32(value);\n};\n\n/**\n * Add an `int64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {flatbuffers.Long} value The `int64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addInt64 = function(value) {\n this.prep(8, 0);\n this.writeInt64(value);\n};\n\n/**\n * Add a `float32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float32` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat32 = function(value) {\n this.prep(4, 0);\n this.writeFloat32(value);\n};\n\n/**\n * Add a `float64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param {number} value The `float64` to add the the buffer.\n */\nflatbuffers.Builder.prototype.addFloat64 = function(value) {\n this.prep(8, 0);\n this.writeFloat64(value);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt8 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt8(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt16 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt16(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addInt32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Long} value\n * @param {flatbuffers.Long} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldInt64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || !value.equals(defaultValue)) {\n this.addInt64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat32 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat32(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {number} value\n * @param {number} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldFloat64 = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addFloat64(value);\n this.slot(voffset);\n }\n};\n\n/**\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldOffset = function(voffset, value, defaultValue) {\n if (this.force_defaults || value != defaultValue) {\n this.addOffset(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structs are stored inline, so nothing additional is being added. `d` is always 0.\n *\n * @param {number} voffset\n * @param {flatbuffers.Offset} value\n * @param {flatbuffers.Offset} defaultValue\n */\nflatbuffers.Builder.prototype.addFieldStruct = function(voffset, value, defaultValue) {\n if (value != defaultValue) {\n this.nested(value);\n this.slot(voffset);\n }\n};\n\n/**\n * Structures are always stored inline, they need to be created right\n * where they're used. You'll get this assertion failure if you\n * created it elsewhere.\n *\n * @param {flatbuffers.Offset} obj The offset of the created object\n */\nflatbuffers.Builder.prototype.nested = function(obj) {\n if (obj != this.offset()) {\n throw new Error('FlatBuffers: struct must be serialized inline.');\n }\n};\n\n/**\n * Should not be creating any other object, string or vector\n * while an object is being constructed\n */\nflatbuffers.Builder.prototype.notNested = function() {\n if (this.isNested) {\n throw new Error('FlatBuffers: object serialization must not be nested.');\n }\n};\n\n/**\n * Set the current vtable at `voffset` to the current location in the buffer.\n *\n * @param {number} voffset\n */\nflatbuffers.Builder.prototype.slot = function(voffset) {\n this.vtable[voffset] = this.offset();\n};\n\n/**\n * @returns {flatbuffers.Offset} Offset relative to the end of the buffer.\n */\nflatbuffers.Builder.prototype.offset = function() {\n return this.bb.capacity() - this.space;\n};\n\n/**\n * Doubles the size of the backing ByteBuffer and copies the old data towards\n * the end of the new buffer (since we build the buffer backwards).\n *\n * @param {flatbuffers.ByteBuffer} bb The current buffer with the existing data\n * @returns {!flatbuffers.ByteBuffer} A new byte buffer with the old data copied\n * to it. The data is located at the end of the buffer.\n *\n * uint8Array.set() formally takes {Array<number>|ArrayBufferView}, so to pass\n * it a uint8Array we need to suppress the type check:\n * @suppress {checkTypes}\n */\nflatbuffers.Builder.growByteBuffer = function(bb) {\n var old_buf_size = bb.capacity();\n\n // Ensure we don't grow beyond what fits in an int.\n if (old_buf_size & 0xC0000000) {\n throw new Error('FlatBuffers: cannot grow buffer beyond 2 gigabytes.');\n }\n\n var new_buf_size = old_buf_size << 1;\n var nbb = flatbuffers.ByteBuffer.allocate(new_buf_size);\n nbb.setPosition(new_buf_size - old_buf_size);\n nbb.bytes().set(bb.bytes(), new_buf_size - old_buf_size);\n return nbb;\n};\n/// @endcond\n\n/**\n * Adds on offset, relative to where it will be written.\n *\n * @param {flatbuffers.Offset} offset The offset to add.\n */\nflatbuffers.Builder.prototype.addOffset = function(offset) {\n this.prep(flatbuffers.SIZEOF_INT, 0); // Ensure alignment is already done.\n this.writeInt32(this.offset() - offset + flatbuffers.SIZEOF_INT);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Start encoding a new object in the buffer. Users will not usually need to\n * call this directly. The FlatBuffers compiler will generate helper methods\n * that call this method internally.\n *\n * @param {number} numfields\n */\nflatbuffers.Builder.prototype.startObject = function(numfields) {\n this.notNested();\n if (this.vtable == null) {\n this.vtable = [];\n }\n this.vtable_in_use = numfields;\n for (var i = 0; i < numfields; i++) {\n this.vtable[i] = 0; // This will push additional elements as needed\n }\n this.isNested = true;\n this.object_start = this.offset();\n};\n\n/**\n * Finish off writing the object that is under construction.\n *\n * @returns {flatbuffers.Offset} The offset to the object inside `dataBuffer`\n */\nflatbuffers.Builder.prototype.endObject = function() {\n if (this.vtable == null || !this.isNested) {\n throw new Error('FlatBuffers: endObject called without startObject');\n }\n\n this.addInt32(0);\n var vtableloc = this.offset();\n\n // Trim trailing zeroes.\n var i = this.vtable_in_use - 1;\n for (; i >= 0 && this.vtable[i] == 0; i--) {}\n var trimmed_size = i + 1;\n\n // Write out the current vtable.\n for (; i >= 0; i--) {\n // Offset relative to the start of the table.\n this.addInt16(this.vtable[i] != 0 ? vtableloc - this.vtable[i] : 0);\n }\n\n var standard_fields = 2; // The fields below:\n this.addInt16(vtableloc - this.object_start);\n var len = (trimmed_size + standard_fields) * flatbuffers.SIZEOF_SHORT;\n this.addInt16(len);\n\n // Search for an existing vtable that matches the current one.\n var existing_vtable = 0;\n var vt1 = this.space;\nouter_loop:\n for (i = 0; i < this.vtables.length; i++) {\n var vt2 = this.bb.capacity() - this.vtables[i];\n if (len == this.bb.readInt16(vt2)) {\n for (var j = flatbuffers.SIZEOF_SHORT; j < len; j += flatbuffers.SIZEOF_SHORT) {\n if (this.bb.readInt16(vt1 + j) != this.bb.readInt16(vt2 + j)) {\n continue outer_loop;\n }\n }\n existing_vtable = this.vtables[i];\n break;\n }\n }\n\n if (existing_vtable) {\n // Found a match:\n // Remove the current vtable.\n this.space = this.bb.capacity() - vtableloc;\n\n // Point table to existing vtable.\n this.bb.writeInt32(this.space, existing_vtable - vtableloc);\n } else {\n // No match:\n // Add the location of the current vtable to the list of vtables.\n this.vtables.push(this.offset());\n\n // Point table to current vtable.\n this.bb.writeInt32(this.bb.capacity() - vtableloc, this.offset() - vtableloc);\n }\n\n this.isNested = false;\n return vtableloc;\n};\n/// @endcond\n\n/**\n * Finalize a buffer, poiting to the given `root_table`.\n *\n * @param {flatbuffers.Offset} root_table\n * @param {string=} opt_file_identifier\n * @param {boolean=} opt_size_prefix\n */\nflatbuffers.Builder.prototype.finish = function(root_table, opt_file_identifier, opt_size_prefix) {\n var size_prefix = opt_size_prefix ? flatbuffers.SIZE_PREFIX_LENGTH : 0;\n if (opt_file_identifier) {\n var file_identifier = opt_file_identifier;\n this.prep(this.minalign, flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH + size_prefix);\n if (file_identifier.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = flatbuffers.FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) {\n this.writeInt8(file_identifier.charCodeAt(i));\n }\n }\n this.prep(this.minalign, flatbuffers.SIZEOF_INT + size_prefix);\n this.addOffset(root_table);\n if (size_prefix) {\n this.addInt32(this.bb.capacity() - this.space);\n }\n this.bb.setPosition(this.space);\n};\n\n/**\n * Finalize a size prefixed buffer, pointing to the given `root_table`.\n *\n * @param {flatbuffers.Offset} root_table\n * @param {string=} opt_file_identifier\n */\nflatbuffers.Builder.prototype.finishSizePrefixed = function (root_table, opt_file_identifier) {\n this.finish(root_table, opt_file_identifier, true);\n};\n\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * This checks a required field has been set in a given table that has\n * just been constructed.\n *\n * @param {flatbuffers.Offset} table\n * @param {number} field\n */\nflatbuffers.Builder.prototype.requiredField = function(table, field) {\n var table_start = this.bb.capacity() - table;\n var vtable_start = table_start - this.bb.readInt32(table_start);\n var ok = this.bb.readInt16(vtable_start + field) != 0;\n\n // If this fails, the caller will show what field needs to be set.\n if (!ok) {\n throw new Error('FlatBuffers: field ' + field + ' must be set');\n }\n};\n\n/**\n * Start a new array/vector of objects. Users usually will not call\n * this directly. The FlatBuffers compiler will create a start/end\n * method for vector types in generated code.\n *\n * @param {number} elem_size The size of each element in the array\n * @param {number} num_elems The number of elements in the array\n * @param {number} alignment The alignment of the array\n */\nflatbuffers.Builder.prototype.startVector = function(elem_size, num_elems, alignment) {\n this.notNested();\n this.vector_num_elems = num_elems;\n this.prep(flatbuffers.SIZEOF_INT, elem_size * num_elems);\n this.prep(alignment, elem_size * num_elems); // Just in case alignment > int.\n};\n\n/**\n * Finish off the creation of an array and all its elements. The array must be\n * created with `startVector`.\n *\n * @returns {flatbuffers.Offset} The offset at which the newly created array\n * starts.\n */\nflatbuffers.Builder.prototype.endVector = function() {\n this.writeInt32(this.vector_num_elems);\n return this.offset();\n};\n/// @endcond\n\n/**\n * Encode the string `s` in the buffer using UTF-8. If a Uint8Array is passed\n * instead of a string, it is assumed to contain valid UTF-8 encoded data.\n *\n * @param {string|Uint8Array} s The string to encode\n * @return {flatbuffers.Offset} The offset in the buffer where the encoded string starts\n */\nflatbuffers.Builder.prototype.createString = function(s) {\n if (s instanceof Uint8Array) {\n var utf8 = s;\n } else {\n var utf8 = [];\n var i = 0;\n\n while (i < s.length) {\n var codePoint;\n\n // Decode UTF-16\n var a = s.charCodeAt(i++);\n if (a < 0xD800 || a >= 0xDC00) {\n codePoint = a;\n } else {\n var b = s.charCodeAt(i++);\n codePoint = (a << 10) + b + (0x10000 - (0xD800 << 10) - 0xDC00);\n }\n\n // Encode UTF-8\n if (codePoint < 0x80) {\n utf8.push(codePoint);\n } else {\n if (codePoint < 0x800) {\n utf8.push(((codePoint >> 6) & 0x1F) | 0xC0);\n } else {\n if (codePoint < 0x10000) {\n utf8.push(((codePoint >> 12) & 0x0F) | 0xE0);\n } else {\n utf8.push(\n ((codePoint >> 18) & 0x07) | 0xF0,\n ((codePoint >> 12) & 0x3F) | 0x80);\n }\n utf8.push(((codePoint >> 6) & 0x3F) | 0x80);\n }\n utf8.push((codePoint & 0x3F) | 0x80);\n }\n }\n }\n\n this.addInt8(0);\n this.startVector(1, utf8.length, 1);\n this.bb.setPosition(this.space -= utf8.length);\n for (var i = 0, offset = this.space, bytes = this.bb.bytes(); i < utf8.length; i++) {\n bytes[offset++] = utf8[i];\n }\n return this.endVector();\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.Builder.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n////////////////////////////////////////////////////////////////////////////////\n/// @cond FLATBUFFERS_INTERNAL\n/**\n * Create a new ByteBuffer with a given array of bytes (`Uint8Array`).\n *\n * @constructor\n * @param {Uint8Array} bytes\n */\nflatbuffers.ByteBuffer = function(bytes) {\n /**\n * @type {Uint8Array}\n * @private\n */\n this.bytes_ = bytes;\n\n /**\n * @type {number}\n * @private\n */\n this.position_ = 0;\n};\n\n/**\n * Create and allocate a new ByteBuffer with a given size.\n *\n * @param {number} byte_size\n * @returns {!flatbuffers.ByteBuffer}\n */\nflatbuffers.ByteBuffer.allocate = function(byte_size) {\n return new flatbuffers.ByteBuffer(new Uint8Array(byte_size));\n};\n\nflatbuffers.ByteBuffer.prototype.clear = function() {\n this.position_ = 0;\n};\n\n/**\n * Get the underlying `Uint8Array`.\n *\n * @returns {Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.bytes = function() {\n return this.bytes_;\n};\n\n/**\n * Get the buffer's position.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.position = function() {\n return this.position_;\n};\n\n/**\n * Set the buffer's position.\n *\n * @param {number} position\n */\nflatbuffers.ByteBuffer.prototype.setPosition = function(position) {\n this.position_ = position;\n};\n\n/**\n * Get the buffer's capacity.\n *\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.capacity = function() {\n return this.bytes_.length;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt8 = function(offset) {\n return this.readUint8(offset) << 24 >> 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint8 = function(offset) {\n return this.bytes_[offset];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt16 = function(offset) {\n return this.readUint16(offset) << 16 >> 16;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint16 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readInt32 = function(offset) {\n return this.bytes_[offset] | this.bytes_[offset + 1] << 8 | this.bytes_[offset + 2] << 16 | this.bytes_[offset + 3] << 24;\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readUint32 = function(offset) {\n return this.readInt32(offset) >>> 0;\n};\n\n/**\n * @param {number} offset\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readInt64 = function(offset) {\n return new flatbuffers.Long(this.readInt32(offset), this.readInt32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.readUint64 = function(offset) {\n return new flatbuffers.Long(this.readUint32(offset), this.readUint32(offset + 4));\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat32 = function(offset) {\n flatbuffers.int32[0] = this.readInt32(offset);\n return flatbuffers.float32[0];\n};\n\n/**\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.readFloat64 = function(offset) {\n flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1] = this.readInt32(offset);\n flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0] = this.readInt32(offset + 4);\n return flatbuffers.float64[0];\n};\n\n/**\n * @param {number} offset\n * @param {number|boolean} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt8 = function(offset, value) {\n this.bytes_[offset] = /** @type {number} */(value);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint8 = function(offset, value) {\n this.bytes_[offset] = value;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint16 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint32 = function(offset, value) {\n this.bytes_[offset] = value;\n this.bytes_[offset + 1] = value >> 8;\n this.bytes_[offset + 2] = value >> 16;\n this.bytes_[offset + 3] = value >> 24;\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeInt64 = function(offset, value) {\n this.writeInt32(offset, value.low);\n this.writeInt32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {flatbuffers.Long} value\n */\nflatbuffers.ByteBuffer.prototype.writeUint64 = function(offset, value) {\n this.writeUint32(offset, value.low);\n this.writeUint32(offset + 4, value.high);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat32 = function(offset, value) {\n flatbuffers.float32[0] = value;\n this.writeInt32(offset, flatbuffers.int32[0]);\n};\n\n/**\n * @param {number} offset\n * @param {number} value\n */\nflatbuffers.ByteBuffer.prototype.writeFloat64 = function(offset, value) {\n flatbuffers.float64[0] = value;\n this.writeInt32(offset, flatbuffers.int32[flatbuffers.isLittleEndian ? 0 : 1]);\n this.writeInt32(offset + 4, flatbuffers.int32[flatbuffers.isLittleEndian ? 1 : 0]);\n};\n\n/**\n * Return the file identifier. Behavior is undefined for FlatBuffers whose\n * schema does not include a file_identifier (likely points at padding or the\n * start of a the root vtable).\n * @returns {string}\n */\nflatbuffers.ByteBuffer.prototype.getBufferIdentifier = function() {\n if (this.bytes_.length < this.position_ + flatbuffers.SIZEOF_INT +\n flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error(\n 'FlatBuffers: ByteBuffer is too short to contain an identifier.');\n }\n var result = \"\";\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n result += String.fromCharCode(\n this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i));\n }\n return result;\n};\n\n/**\n * Look up a field in the vtable, return an offset into the object, or 0 if the\n * field is not present.\n *\n * @param {number} bb_pos\n * @param {number} vtable_offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__offset = function(bb_pos, vtable_offset) {\n var vtable = bb_pos - this.readInt32(bb_pos);\n return vtable_offset < this.readInt16(vtable) ? this.readInt16(vtable + vtable_offset) : 0;\n};\n\n/**\n * Initialize any Table-derived type to point to the union at the given offset.\n *\n * @param {flatbuffers.Table} t\n * @param {number} offset\n * @returns {flatbuffers.Table}\n */\nflatbuffers.ByteBuffer.prototype.__union = function(t, offset) {\n t.bb_pos = offset + this.readInt32(offset);\n t.bb = this;\n return t;\n};\n\n/**\n * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer.\n * This allocates a new string and converts to wide chars upon each access.\n *\n * To avoid the conversion to UTF-16, pass flatbuffers.Encoding.UTF8_BYTES as\n * the \"optionalEncoding\" argument. This is useful for avoiding conversion to\n * and from UTF-16 when the data will just be packaged back up in another\n * FlatBuffer later on.\n *\n * @param {number} offset\n * @param {flatbuffers.Encoding=} opt_encoding Defaults to UTF16_STRING\n * @returns {string|!Uint8Array}\n */\nflatbuffers.ByteBuffer.prototype.__string = function(offset, opt_encoding) {\n offset += this.readInt32(offset);\n\n var length = this.readInt32(offset);\n var result = '';\n var i = 0;\n\n offset += flatbuffers.SIZEOF_INT;\n\n if (opt_encoding === flatbuffers.Encoding.UTF8_BYTES) {\n return this.bytes_.subarray(offset, offset + length);\n }\n\n while (i < length) {\n var codePoint;\n\n // Decode UTF-8\n var a = this.readUint8(offset + i++);\n if (a < 0xC0) {\n codePoint = a;\n } else {\n var b = this.readUint8(offset + i++);\n if (a < 0xE0) {\n codePoint =\n ((a & 0x1F) << 6) |\n (b & 0x3F);\n } else {\n var c = this.readUint8(offset + i++);\n if (a < 0xF0) {\n codePoint =\n ((a & 0x0F) << 12) |\n ((b & 0x3F) << 6) |\n (c & 0x3F);\n } else {\n var d = this.readUint8(offset + i++);\n codePoint =\n ((a & 0x07) << 18) |\n ((b & 0x3F) << 12) |\n ((c & 0x3F) << 6) |\n (d & 0x3F);\n }\n }\n }\n\n // Encode UTF-16\n if (codePoint < 0x10000) {\n result += String.fromCharCode(codePoint);\n } else {\n codePoint -= 0x10000;\n result += String.fromCharCode(\n (codePoint >> 10) + 0xD800,\n (codePoint & ((1 << 10) - 1)) + 0xDC00);\n }\n }\n\n return result;\n};\n\n/**\n * Retrieve the relative offset stored at \"offset\"\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__indirect = function(offset) {\n return offset + this.readInt32(offset);\n};\n\n/**\n * Get the start of data of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector = function(offset) {\n return offset + this.readInt32(offset) + flatbuffers.SIZEOF_INT; // data starts after the length\n};\n\n/**\n * Get the length of a vector whose offset is stored at \"offset\" in this object.\n *\n * @param {number} offset\n * @returns {number}\n */\nflatbuffers.ByteBuffer.prototype.__vector_len = function(offset) {\n return this.readInt32(offset + this.readInt32(offset));\n};\n\n/**\n * @param {string} ident\n * @returns {boolean}\n */\nflatbuffers.ByteBuffer.prototype.__has_identifier = function(ident) {\n if (ident.length != flatbuffers.FILE_IDENTIFIER_LENGTH) {\n throw new Error('FlatBuffers: file identifier must be length ' +\n flatbuffers.FILE_IDENTIFIER_LENGTH);\n }\n for (var i = 0; i < flatbuffers.FILE_IDENTIFIER_LENGTH; i++) {\n if (ident.charCodeAt(i) != this.readInt8(this.position_ + flatbuffers.SIZEOF_INT + i)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * A helper function to avoid generated code depending on this file directly.\n *\n * @param {number} low\n * @param {number} high\n * @returns {!flatbuffers.Long}\n */\nflatbuffers.ByteBuffer.prototype.createLong = function(low, high) {\n return flatbuffers.Long.create(low, high);\n};\n\n// Exports for Node.js and RequireJS\nthis.flatbuffers = 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.<number>} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 \u2264 c \u2264 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 \u2264 c \u2264 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n\u22121, 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\u22121:\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 \u2264 d \u2264 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.<number>} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.<number>|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.<number>} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.<number>)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.<number>}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.<number>)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.<number>}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.<number>)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.<number>)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // \u2212 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 \u2212 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 \u2212 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 \u00D7 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 \u2212 0x80) << (6 \u00D7 (utf-8 bytes\n // needed \u2212 utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 \u00D7 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 \u00D7 (count \u2212 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexports.TextEncoder = TextEncoder;\nexports.TextDecoder = TextDecoder;", "// 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 TextDecoder as TextDecoderPolyfill,\n TextEncoder as TextEncoderPolyfill,\n} from 'text-encoding-utf-8';\n\nconst decoder = new (typeof TextDecoder !== 'undefined' ? TextDecoder : TextDecoderPolyfill)('utf-8');\n/** @ignore */\nexport const decodeUtf8 = (buffer?: ArrayBuffer | ArrayBufferView) => decoder.decode(buffer);\n\nconst encoder = new (typeof TextEncoder !== 'undefined' ? TextEncoder : TextEncoderPolyfill)();\n/** @ignore */\nexport const encodeUtf8 = (value?: string) => encoder.encode(value);\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 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<T> {\n\n readonly closed: Promise<void>;\n cancel(reason?: any): Promise<void>;\n\n read(size?: number | null): Promise<T | null>;\n peek(size?: number | null): Promise<T | null>;\n throw(value?: any): Promise<IteratorResult<any>>;\n return(value?: any): Promise<IteratorResult<any>>;\n next(size?: number | null): Promise<IteratorResult<T>>;\n}\n\n/** @ignore */\nexport interface Writable<T> {\n readonly closed: Promise<void>;\n close(): void;\n write(chunk: T): void;\n abort(reason?: any): void;\n}\n\n/** @ignore */\nexport interface ReadableWritable<TReadable, TWritable> extends Readable<TReadable>, Writable<TWritable> {\n [Symbol.asyncIterator](): AsyncIterableIterator<TReadable>;\n toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream<TReadable>;\n toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n}\n\n/** @ignore */\nexport abstract class ReadableInterop<T> {\n\n public abstract toDOMStream(options?: ReadableDOMStreamOptions): ReadableStream<T>;\n public abstract toNodeStream(options?: import('stream').ReadableOptions): import('stream').Readable;\n\n public tee(): [ReadableStream<T>, ReadableStream<T>] {\n return this._getDOMStream().tee();\n }\n public pipe<R extends NodeJS.WritableStream>(writable: R, options?: { end?: boolean }) {\n return this._getNodeStream().pipe(writable, options);\n }\n public pipeTo(writable: WritableStream<T>, options?: PipeOptions) { return this._getDOMStream().pipeTo(writable, options); }\n public pipeThrough<R extends ReadableStream<any>>(duplex: { writable: WritableStream<T>; readable: R }, options?: PipeOptions) {\n return this._getDOMStream().pipeThrough(duplex, options);\n }\n\n protected _DOMStream?: ReadableStream<T>;\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<T> = { resolve: (value?: T | PromiseLike<T>) => void; reject: (reason?: any) => void };\n\n/** @ignore */\nexport class AsyncQueue<TReadable = Uint8Array, TWritable = TReadable> extends ReadableInterop<TReadable>\n implements AsyncIterableIterator<TReadable>, ReadableWritable<TReadable, TWritable> {\n\n protected _values: TWritable[] = [];\n protected _error?: { error: any };\n protected _closedPromise: Promise<void>;\n protected _closedPromiseResolve?: (value?: any) => void;\n protected resolvers: Resolution<IteratorResult<TReadable>>[] = [];\n\n constructor() {\n super();\n this._closedPromise = new Promise((r) => this._closedPromiseResolve = r);\n }\n\n public get closed(): Promise<void> { 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<TReadable>)\n : (this._values as any) as Iterable<TReadable>,\n options);\n }\n public toNodeStream(options?: import('stream').ReadableOptions) {\n return streamAdapters.toNodeStream(\n (this._closedPromiseResolve || this._error)\n ? (this as AsyncIterable<TReadable>)\n : (this._values as any) as Iterable<TReadable>,\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<TReadable | null> { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise<TReadable | null> { return (await this.next(size, 'peek')).value; }\n public next(..._args: any[]): Promise<IteratorResult<TReadable>> {\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<IteratorResult<TReadable>>((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<T> {\n closed?: boolean;\n next: (value: T) => void;\n error: (err: any) => void;\n complete: () => void;\n}\n\n/** @ignore */\nexport interface Observable<T> {\n subscribe: (observer: Observer<T>) => 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] : [<any> 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] : [<any> 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] : [<any> 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 */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isObject = (x: any): x is Object => x != null && Object(x) === x;\n\n/** @ignore */\nexport const isPromise = <T = any>(x: any): x is PromiseLike<T> => {\n return isObject(x) && isFunction(x.then);\n};\n\n/** @ignore */\nexport const isObservable = <T = any>(x: any): x is Observable<T> => {\n return isObject(x) && isFunction(x.subscribe);\n};\n\n/** @ignore */\nexport const isIterable = <T = any>(x: any): x is Iterable<T> => {\n return isObject(x) && isFunction(x[Symbol.iterator]);\n};\n\n/** @ignore */\nexport const isAsyncIterable = <T = any>(x: any): x is AsyncIterable<T> => {\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 = <T = any>(x: any): x is ArrayLike<T> => {\n return isObject(x) && isNumber(x['length']);\n};\n\n/** @ignore */\nexport const isIteratorResult = <T = any>(x: any): x is IteratorResult<T> => {\n return isObject(x) && ('done' in x) && ('value' in x);\n};\n\n/** @ignore */\nexport const isUnderlyingSink = <T = any>(x: any): x is UnderlyingSink<T> => {\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((<any> 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 = <T = any>(x: any): x is WritableStream<T> => {\n return isObject(x) &&\n isFunction(x['abort']) &&\n isFunction(x['getWriter']) &&\n !(x instanceof ReadableInterop);\n};\n\n/** @ignore */\nexport const isReadableDOMStream = <T = any>(x: any): x is ReadableStream<T> => {\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 const 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<TTarget extends ArrayBufferView, TSource extends ArrayBufferView>(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 const result = collapseContiguousByteRanges(chunks);\n const byteLength = result.reduce((x, b) => x + b.byteLength, 0);\n let source: Uint8Array, sliced: Uint8Array, buffer: Uint8Array | void;\n let offset = 0, index = -1;\n const length = Math.min(size || Infinity, byteLength);\n for (let n = result.length; ++index < n;) {\n source = result[index];\n sliced = source.subarray(0, Math.min(source.length, length - offset));\n if (length <= (offset + sliced.length)) {\n if (sliced.length < source.length) {\n result[index] = source.subarray(sliced.length);\n } 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<number> | ArrayLike<number> | ByteBuffer | string | null | undefined |\n IteratorResult<ArrayBufferView | ArrayBufferLike | ArrayBufferView | Iterable<number> | ArrayLike<number> | ByteBuffer | string | null | undefined> |\n ReadableStreamReadResult<ArrayBufferView | ArrayBufferLike | ArrayBufferView | Iterable<number> | ArrayLike<number> | ByteBuffer | string | null | undefined> ;\n\n/** @ignore */\nexport function toArrayBufferView<T extends TypedArray>(ArrayBufferViewCtor: TypedArrayConstructor<T>, input: ArrayBufferViewInput): T;\nexport function toArrayBufferView<T extends BigIntArray>(ArrayBufferViewCtor: BigIntArrayConstructor<T>, 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> | ArrayBufferViewInput;\n\n/** @ignore */\nconst pump = <T extends Iterator<any> | AsyncIterator<any>>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nexport function* toArrayBufferViewIterator<T extends TypedArray>(ArrayCtor: TypedArrayConstructor<T>, source: ArrayBufferViewIteratorInput) {\n\n const wrap = function*<T>(x: T) { yield x; };\n const buffers: Iterable<ArrayBufferViewInput> =\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<ArrayBufferViewInput>(source) ? wrap(source) : source;\n\n yield* pump((function* (it: Iterator<ArrayBufferViewInput, any, number | undefined>): Generator<T, void, number | undefined> {\n let r: IteratorResult<any> = <any> null;\n do {\n r = it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.iterator]()));\n return new ArrayCtor();\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<ArrayBufferViewInput> | Iterable<ArrayBufferViewInput> | PromiseLike<ArrayBufferViewInput> | ArrayBufferViewInput;\n\n/** @ignore */\nexport async function* toArrayBufferViewAsyncIterator<T extends TypedArray>(ArrayCtor: TypedArrayConstructor<T>, source: ArrayBufferViewAsyncIteratorInput): AsyncGenerator<T, T, number | undefined> {\n\n // if a Promise, unwrap the Promise and iterate the resolved value\n if (isPromise<ArrayBufferViewInput>(source)) {\n return yield* toArrayBufferViewAsyncIterator(ArrayCtor, await source);\n }\n\n const wrap = async function*<T>(x: T) { yield await x; };\n const emit = async function* <T extends Iterable<any>>(source: T) {\n yield* pump((function*(it: Iterator<any>) {\n let r: IteratorResult<any> = <any> 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<ArrayBufferViewInput> =\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<ArrayBufferViewInput>(source) ? emit(source) // If Iterable, wrap in an AsyncIterableIterator and compose the `next` values\n : !isAsyncIterable<ArrayBufferViewInput>(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: AsyncIterator<ArrayBufferViewInput, any, number | undefined>): AsyncGenerator<T, void, number | undefined> {\n let r: IteratorResult<any> = <any> null;\n do {\n r = await it.next(yield toArrayBufferView(ArrayCtor, r));\n } while (!r.done);\n })(buffers[Symbol.asyncIterator]()));\n return new ArrayCtor();\n}\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<T extends ArrayLike<any>>(a: T, b: T) {\n let i = 0;\n const 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\ninterface ReadableStreamReadResult<T> { done: boolean; value: T }\ntype Uint8ArrayGenerator = Generator<Uint8Array, null, { cmd: 'peek' | 'read'; size: number }>;\ntype AsyncUint8ArrayGenerator = AsyncGenerator<Uint8Array, null, { cmd: 'peek' | 'read'; size: number }>;\n\n/** @ignore */\nexport default {\n fromIterable<T extends ArrayBufferViewInput>(source: Iterable<T> | T): Uint8ArrayGenerator {\n return pump(fromIterable<T>(source));\n },\n fromAsyncIterable<T extends ArrayBufferViewInput>(source: AsyncIterable<T> | PromiseLike<T>): AsyncUint8ArrayGenerator {\n return pump(fromAsyncIterable<T>(source));\n },\n fromDOMStream<T extends ArrayBufferViewInput>(source: ReadableStream<T>): AsyncUint8ArrayGenerator {\n return pump(fromDOMStream<T>(source));\n },\n fromNodeStream(stream: NodeJS.ReadableStream): AsyncUint8ArrayGenerator {\n return pump(fromNodeStream(stream));\n },\n // @ts-ignore\n toDOMStream<T>(source: Iterable<T> | AsyncIterable<T>, options?: ReadableDOMStreamOptions): ReadableStream<T> {\n throw new Error(`\"toDOMStream\" not available in this environment`);\n },\n // @ts-ignore\n toNodeStream<T>(source: Iterable<T> | AsyncIterable<T>, options?: import('stream').ReadableOptions): import('stream').Readable {\n throw new Error(`\"toNodeStream\" not available in this environment`);\n },\n};\n\n/** @ignore */\nconst pump = <T extends Uint8ArrayGenerator | AsyncUint8ArrayGenerator>(iterator: T) => { iterator.next(); return iterator; };\n\n/** @ignore */\nfunction* fromIterable<T extends ArrayBufferViewInput>(source: Iterable<T> | T): Uint8ArrayGenerator {\n\n let done: boolean | undefined, 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 <any> null);\n\n // initialize the iterator\n const 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(null!));\n }\n return null;\n}\n\n/** @ignore */\nasync function* fromAsyncIterable<T extends ArrayBufferViewInput>(source: AsyncIterable<T> | PromiseLike<T>): AsyncUint8ArrayGenerator {\n\n let done: boolean | undefined, 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 <any> null)!);\n\n // initialize the iterator\n const 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(new Uint8Array(0)));\n }\n return null;\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<T extends ArrayBufferViewInput>(source: ReadableStream<T>): AsyncUint8ArrayGenerator {\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 <any> null);\n\n // initialize the reader and lock the stream\n const 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 return null;\n}\n\n/** @ignore */\nclass AdaptiveByteReader<T extends ArrayBufferViewInput> {\n\n private supportsBYOB: boolean;\n private byobReader: ReadableStreamBYOBReader | null = null;\n private defaultReader: ReadableStreamDefaultReader<T> | null = null;\n private reader: ReadableStreamBYOBReader | ReadableStreamDefaultReader<T> | null;\n\n constructor(private source: ReadableStream<T>) {\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<void> {\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<void> {\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<ReadableStreamReadResult<Uint8Array>> {\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<Uint8Array>));\n return result as ReadableStreamReadResult<Uint8Array>;\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<ReadableStreamReadResult<Uint8Array>> {\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 = <T extends string>(stream: NodeJS.ReadableStream, event: T) => {\n const 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): AsyncUint8ArrayGenerator {\n\n const 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 <any> null);\n\n // ignore stdin if it's a TTY\n if ((stream as any)['isTTY']) {\n yield new Uint8Array(0);\n return null;\n }\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 return null;\n\n function cleanup<T extends Error | null | void>(events: Event[], err?: T) {\n buffer = buffers = <any> null;\n return new Promise<T>((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", "// 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<R extends AbstractVector> {\n clone(...args: any[]): R;\n}\n\n/** @ignore */\nexport interface Sliceable<R extends AbstractVector> {\n slice(begin?: number, end?: number): R;\n}\n\n/** @ignore */\nexport interface Applicative<T extends DataType, R extends Chunked> {\n concat(...others: Vector<T>[]): R;\n readonly [Symbol.isConcatSpreadable]: boolean;\n}\n\nexport interface AbstractVector<T extends DataType = any>\n extends Clonable<AbstractVector<T>>,\n Sliceable<AbstractVector<T>>,\n Applicative<T, Chunked<T>> {\n\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\nexport abstract class AbstractVector<T extends DataType = any> implements Iterable<T['TValue'] | null> {\n\n public abstract readonly data: Data<T>;\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<T['TValue'] | null>;\n\n public abstract toArray(): T['TArray'];\n public abstract getChildAt<R extends DataType = any>(index: number): Vector<R> | null;\n}\n\n(AbstractVector.prototype as any).data = null;\n\nexport { AbstractVector as Vector };\n", "// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\n/**\n * Logical types, vector layouts, and schemas\n *\n * @enum {number}\n */\nexport enum MetadataVersion {\n /**\n * 0.1.0 (October 2016).\n */\n V1 = 0,\n\n /**\n * 0.2.0 (February 2017). Non-backwards compatible with V1.\n */\n V2 = 1,\n\n /**\n * 0.3.0 -> 0.7.1 (May - December 2017). Non-backwards compatible with V2.\n */\n V3 = 2,\n\n /**\n * >= 0.8.0 (December 2017). Non-backwards compatible with V3.\n */\n V4 = 3,\n\n /**\n * >= 1.0.0 (July 2020. Backwards compatible with V4 (V5 readers can read V4\n * metadata and IPC messages). Implementations are recommended to provide a\n * V4 compatibility mode with V5 format changes disabled.\n *\n * Incompatible changes between V4 and V5:\n * - Union buffer layout has changed. In V5, Unions don't have a validity\n * bitmap buffer.\n */\n V5 = 4\n}\n\n/**\n * Represents Arrow Features that might not have full support\n * within implementations. This is intended to be used in\n * two scenarios:\n * 1. A mechanism for readers of Arrow Streams\n * and files to understand that the stream or file makes\n * use of a feature that isn't supported or unknown to\n * the implementation (and therefore can meet the Arrow\n * forward compatibility guarantees).\n * 2. A means of negotiating between a client and server\n * what features a stream is allowed to use. The enums\n * values here are intented to represent higher level\n * features, additional details maybe negotiated\n * with key-value pairs specific to the protocol.\n *\n * Enums added to this list should be assigned power-of-two values\n * to facilitate exchanging and comparing bitmaps for supported\n * features.\n *\n * @enum {number}\n */\nexport enum Feature {\n /**\n * Needed to make flatbuffers happy.\n */\n UNUSED = 0,\n\n /**\n * The stream makes use of multiple full dictionaries with the\n * same ID and assumes clients implement dictionary replacement\n * correctly.\n */\n DICTIONARY_REPLACEMENT = 1,\n\n /**\n * The stream makes use of compressed bodies as described\n * in Message.fbs.\n */\n COMPRESSED_BODY = 2\n}\n\n/**\n * @enum {number}\n */\nexport enum UnionMode {\n Sparse = 0,\n Dense = 1\n}\n\n/**\n * @enum {number}\n */\nexport enum Precision {\n HALF = 0,\n SINGLE = 1,\n DOUBLE = 2\n}\n\n/**\n * @enum {number}\n */\nexport enum DateUnit {\n DAY = 0,\n MILLISECOND = 1\n}\n\n/**\n * @enum {number}\n */\nexport enum TimeUnit {\n SECOND = 0,\n MILLISECOND = 1,\n MICROSECOND = 2,\n NANOSECOND = 3\n}\n\n/**\n * @enum {number}\n */\nexport enum IntervalUnit {\n YEAR_MONTH = 0,\n DAY_TIME = 1\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 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 * Dictionary encoding metadata\n * Maintained for forwards compatibility, in the future\n * Dictionaries might be explicit maps between integers and values\n * allowing for non-contiguous index values\n *\n * @enum {number}\n */\nexport enum DictionaryKind {\n DenseArray = 0\n}\n\n/**\n * ----------------------------------------------------------------------\n * Endianness of the platform producing the data\n *\n * @enum {number}\n */\nexport enum Endianness {\n Little = 0,\n Big = 1\n}\n\n/**\n * These are stored in the flatbuffer in the Type union below\n *\n * @constructor\n */\nexport 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.ByteBuffer bb\n * @param Null= obj\n * @returns Null\n */\n static getSizePrefixedRootAsNull(bb: flatbuffers.ByteBuffer, obj?: Null): Null {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * 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 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.ByteBuffer bb\n * @param Struct_= obj\n * @returns Struct_\n */\n static getSizePrefixedRootAsStruct_(bb: flatbuffers.ByteBuffer, obj?: Struct_): Struct_ {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * @constructor\n */\nexport 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.ByteBuffer bb\n * @param List= obj\n * @returns List\n */\n static getSizePrefixedRootAsList(bb: flatbuffers.ByteBuffer, obj?: List): List {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * Same as List, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport 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.ByteBuffer bb\n * @param LargeList= obj\n * @returns LargeList\n */\n static getSizePrefixedRootAsLargeList(bb: flatbuffers.ByteBuffer, obj?: LargeList): LargeList {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeList= obj\n * @returns FixedSizeList\n */\n static getSizePrefixedRootAsFixedSizeList(bb: flatbuffers.ByteBuffer, obj?: FixedSizeList): FixedSizeList {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 const 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 * A Map is a logical nested type that is represented as\n *\n * List<entries: Struct<key: K, value: V>>\n *\n * In this layout, the keys and values are each respectively contiguous. We do\n * not constrain the key and value types, so the application is responsible\n * for ensuring that the keys are hashable and unique. Whether the keys are sorted\n * may be set in the metadata for this field.\n *\n * In a field with Map type, the field has a child Struct field, which then\n * has two children: key type and the second the value type. The names of the\n * child fields may be respectively \"entries\", \"key\", and \"value\", but this is\n * not enforced.\n *\n * Map\n * - child[0] entries: Struct\n * - child[0] key: K\n * - child[1] value: V\n *\n * Neither the \"entries\" field nor the \"key\" field may be nullable.\n *\n * The metadata is structured so that Arrow systems without special handling\n * for Map can make Map an alias for List. The \"layout\" attribute for the Map\n * field must have the same contents as a List.\n *\n * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param Map= obj\n * @returns Map\n */\n static getSizePrefixedRootAsMap(bb: flatbuffers.ByteBuffer, obj?: Map): Map {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 const 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 * 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 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 * @param flatbuffers.ByteBuffer bb\n * @param Union= obj\n * @returns Union\n */\n static getSizePrefixedRootAsUnion(bb: flatbuffers.ByteBuffer, obj?: Union): Union {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Union()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns UnionMode\n */\n mode(): UnionMode {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : UnionMode.Sparse;\n }\n\n /**\n * @param number index\n * @returns number\n */\n typeIds(index: number): number | null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb!.__vector(this.bb_pos + offset) + index * 4) : 0;\n }\n\n /**\n * @returns number\n */\n typeIdsLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @returns Int32Array\n */\n typeIdsArray(): Int32Array | null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? new Int32Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n }\n\n /**\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 UnionMode mode\n */\n static addMode(builder: flatbuffers.Builder, mode: UnionMode) {\n builder.addFieldInt16(0, mode, 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.<number> 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 const offset = builder.endObject();\n return offset;\n }\n\n static createUnion(builder: flatbuffers.Builder, mode: 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 * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param Int= obj\n * @returns Int\n */\n static getSizePrefixedRootAsInt(bb: flatbuffers.ByteBuffer, obj?: Int): Int {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Int()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n const 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 const 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 const 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 * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param FloatingPoint= obj\n * @returns FloatingPoint\n */\n static getSizePrefixedRootAsFloatingPoint(bb: flatbuffers.ByteBuffer, obj?: FloatingPoint): FloatingPoint {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new FloatingPoint()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns Precision\n */\n precision(): Precision {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : Precision.HALF;\n }\n\n /**\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 Precision precision\n */\n static addPrecision(builder: flatbuffers.Builder, precision: Precision) {\n builder.addFieldInt16(0, precision, Precision.HALF);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endFloatingPoint(builder: flatbuffers.Builder): flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n }\n\n static createFloatingPoint(builder: flatbuffers.Builder, precision: Precision): flatbuffers.Offset {\n FloatingPoint.startFloatingPoint(builder);\n FloatingPoint.addPrecision(builder, precision);\n return FloatingPoint.endFloatingPoint(builder);\n }\n}\n/**\n * Unicode with UTF-8 encoding\n *\n * @constructor\n */\nexport 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.ByteBuffer bb\n * @param Utf8= obj\n * @returns Utf8\n */\n static getSizePrefixedRootAsUtf8(bb: flatbuffers.ByteBuffer, obj?: Utf8): Utf8 {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * Opaque binary data\n *\n * @constructor\n */\nexport 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.ByteBuffer bb\n * @param Binary= obj\n * @returns Binary\n */\n static getSizePrefixedRootAsBinary(bb: flatbuffers.ByteBuffer, obj?: Binary): Binary {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * Same as Utf8, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport 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.ByteBuffer bb\n * @param LargeUtf8= obj\n * @returns LargeUtf8\n */\n static getSizePrefixedRootAsLargeUtf8(bb: flatbuffers.ByteBuffer, obj?: LargeUtf8): LargeUtf8 {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * Same as Binary, but with 64-bit offsets, allowing to represent\n * extremely large data values.\n *\n * @constructor\n */\nexport 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.ByteBuffer bb\n * @param LargeBinary= obj\n * @returns LargeBinary\n */\n static getSizePrefixedRootAsLargeBinary(bb: flatbuffers.ByteBuffer, obj?: LargeBinary): LargeBinary {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param FixedSizeBinary= obj\n * @returns FixedSizeBinary\n */\n static getSizePrefixedRootAsFixedSizeBinary(bb: flatbuffers.ByteBuffer, obj?: FixedSizeBinary): FixedSizeBinary {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 const 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 * @constructor\n */\nexport 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.ByteBuffer bb\n * @param Bool= obj\n * @returns Bool\n */\n static getSizePrefixedRootAsBool(bb: flatbuffers.ByteBuffer, obj?: Bool): Bool {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 * Exact decimal value represented as an integer value in two's\n * complement. Currently only 128-bit (16-byte) and 256-bit (32-byte) integers\n * are used. The representation uses the endianness indicated\n * in the Schema.\n *\n * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param Decimal= obj\n * @returns Decimal\n */\n static getSizePrefixedRootAsDecimal(bb: flatbuffers.ByteBuffer, obj?: Decimal): Decimal {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0;\n }\n\n /**\n * Number of bits per value. The only accepted widths are 128 and 256.\n * We use bitWidth for consistency with Int::bitWidth.\n *\n * @returns number\n */\n bitWidth(): number {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.readInt32(this.bb_pos + offset) : 128;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDecimal(builder: flatbuffers.Builder) {\n builder.startObject(3);\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 * @param number bitWidth\n */\n static addBitWidth(builder: flatbuffers.Builder, bitWidth: number) {\n builder.addFieldInt32(2, bitWidth, 128);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDecimal(builder: flatbuffers.Builder): flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n }\n\n static createDecimal(builder: flatbuffers.Builder, precision: number, scale: number, bitWidth: number): flatbuffers.Offset {\n Decimal.startDecimal(builder);\n Decimal.addPrecision(builder, precision);\n Decimal.addScale(builder, scale);\n Decimal.addBitWidth(builder, bitWidth);\n return Decimal.endDecimal(builder);\n }\n}\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 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 * @param flatbuffers.ByteBuffer bb\n * @param Date= obj\n * @returns Date\n */\n static getSizePrefixedRootAsDate(bb: flatbuffers.ByteBuffer, obj?: Date): Date {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Date()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns DateUnit\n */\n unit(): DateUnit {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : DateUnit.MILLISECOND;\n }\n\n /**\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 DateUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: DateUnit) {\n builder.addFieldInt16(0, unit, DateUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDate(builder: flatbuffers.Builder): flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n }\n\n static createDate(builder: flatbuffers.Builder, unit: DateUnit): flatbuffers.Offset {\n Date.startDate(builder);\n Date.addUnit(builder, unit);\n return Date.endDate(builder);\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 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 * @param flatbuffers.ByteBuffer bb\n * @param Time= obj\n * @returns Time\n */\n static getSizePrefixedRootAsTime(bb: flatbuffers.ByteBuffer, obj?: Time): Time {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Time()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns TimeUnit\n */\n unit(): TimeUnit {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : TimeUnit.MILLISECOND;\n }\n\n /**\n * @returns number\n */\n bitWidth(): number {\n const 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 TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: TimeUnit) {\n builder.addFieldInt16(0, unit, 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 const offset = builder.endObject();\n return offset;\n }\n\n static createTime(builder: flatbuffers.Builder, unit: 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 * 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 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 * @param flatbuffers.ByteBuffer bb\n * @param Timestamp= obj\n * @returns Timestamp\n */\n static getSizePrefixedRootAsTimestamp(bb: flatbuffers.ByteBuffer, obj?: Timestamp): Timestamp {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Timestamp()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns TimeUnit\n */\n unit(): TimeUnit {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : 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 const 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 TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: TimeUnit) {\n builder.addFieldInt16(0, unit, 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 const offset = builder.endObject();\n return offset;\n }\n\n static createTimestamp(builder: flatbuffers.Builder, unit: 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 * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param Interval= obj\n * @returns Interval\n */\n static getSizePrefixedRootAsInterval(bb: flatbuffers.ByteBuffer, obj?: Interval): Interval {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Interval()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns IntervalUnit\n */\n unit(): IntervalUnit {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : IntervalUnit.YEAR_MONTH;\n }\n\n /**\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 IntervalUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: IntervalUnit) {\n builder.addFieldInt16(0, unit, 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 const offset = builder.endObject();\n return offset;\n }\n\n static createInterval(builder: flatbuffers.Builder, unit: IntervalUnit): flatbuffers.Offset {\n Interval.startInterval(builder);\n Interval.addUnit(builder, unit);\n return Interval.endInterval(builder);\n }\n}\n/**\n * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param Duration= obj\n * @returns Duration\n */\n static getSizePrefixedRootAsDuration(bb: flatbuffers.ByteBuffer, obj?: Duration): Duration {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Duration()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns TimeUnit\n */\n unit(): TimeUnit {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : TimeUnit.MILLISECOND;\n }\n\n /**\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 TimeUnit unit\n */\n static addUnit(builder: flatbuffers.Builder, unit: TimeUnit) {\n builder.addFieldInt16(0, unit, TimeUnit.MILLISECOND);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDuration(builder: flatbuffers.Builder): flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n }\n\n static createDuration(builder: flatbuffers.Builder, unit: TimeUnit): flatbuffers.Offset {\n Duration.startDuration(builder);\n Duration.addUnit(builder, unit);\n return Duration.endDuration(builder);\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 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.ByteBuffer bb\n * @param KeyValue= obj\n * @returns KeyValue\n */\n static getSizePrefixedRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 const 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 const 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 * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding\n */\n static getSizePrefixedRootAsDictionaryEncoding(bb: flatbuffers.ByteBuffer, obj?: DictionaryEncoding): DictionaryEncoding {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * The dictionary indices are constrained to be non-negative integers. If\n * this field is null, the indices must be signed int32. To maximize\n * cross-language compatibility and performance, implementations are\n * recommended to prefer signed integer types over unsigned integer types\n * and to avoid uint64 indices unless they are required by an application.\n *\n * @param Int= obj\n * @returns Int|null\n */\n indexType(obj?: Int): Int | null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new Int()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\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 const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @returns DictionaryKind\n */\n dictionaryKind(): DictionaryKind {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : DictionaryKind.DenseArray;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startDictionaryEncoding(builder: flatbuffers.Builder) {\n builder.startObject(4);\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 * @param DictionaryKind dictionaryKind\n */\n static addDictionaryKind(builder: flatbuffers.Builder, dictionaryKind: DictionaryKind) {\n builder.addFieldInt16(3, dictionaryKind, DictionaryKind.DenseArray);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endDictionaryEncoding(builder: flatbuffers.Builder): flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n }\n\n static createDictionaryEncoding(builder: flatbuffers.Builder, id: flatbuffers.Long, indexTypeOffset: flatbuffers.Offset, isOrdered: boolean, dictionaryKind: DictionaryKind): flatbuffers.Offset {\n DictionaryEncoding.startDictionaryEncoding(builder);\n DictionaryEncoding.addId(builder, id);\n DictionaryEncoding.addIndexType(builder, indexTypeOffset);\n DictionaryEncoding.addIsOrdered(builder, isOrdered);\n DictionaryEncoding.addDictionaryKind(builder, dictionaryKind);\n return DictionaryEncoding.endDictionaryEncoding(builder);\n }\n}\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 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 * @param flatbuffers.ByteBuffer bb\n * @param Field= obj\n * @returns Field\n */\n static getSizePrefixedRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const 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 const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n }\n\n /**\n * @returns Type\n */\n typeType(): Type {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : Type.NONE;\n }\n\n /**\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<T extends flatbuffers.Table>(obj: T): T | null {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * Present only if the field is dictionary encoded.\n *\n * @param DictionaryEncoding= obj\n * @returns DictionaryEncoding|null\n */\n dictionary(obj?: DictionaryEncoding): DictionaryEncoding | null {\n const offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new DictionaryEncoding()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * children apply only to nested data types like Struct, List and Union. For\n * primitive types children will have length 0.\n *\n * @param number index\n * @param Field= obj\n * @returns Field\n */\n children(index: number, obj?: Field): Field | null {\n const offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? (obj || new Field()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n childrenLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * User-defined metadata\n *\n * @param number index\n * @param KeyValue= obj\n * @returns KeyValue\n */\n customMetadata(index: number, obj?: KeyValue): KeyValue | null {\n const offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\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 Type typeType\n */\n static addTypeType(builder: flatbuffers.Builder, typeType: Type) {\n builder.addFieldInt8(2, typeType, 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.<flatbuffers.Offset> 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.<flatbuffers.Offset> 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 const offset = builder.endObject();\n return offset;\n }\n\n static createField(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, nullable: boolean, typeType: 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 * A Buffer represents a single contiguous memory segment\n *\n * @constructor\n */\nexport 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). When building\n * messages using the encapsulated IPC message, padding bytes may be written\n * after a buffer, but such padding bytes do not need to be accounted for in\n * the size here.\n *\n * @returns flatbuffers.Long\n */\n length(): 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 * A Schema describes the columns in a row batch\n *\n * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param Schema= obj\n * @returns Schema\n */\n static getSizePrefixedRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 Endianness\n */\n endianness(): Endianness {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : Endianness.Little;\n }\n\n /**\n * @param number index\n * @param Field= obj\n * @returns Field\n */\n fields(index: number, obj?: Field): Field | null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new Field()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n fieldsLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param KeyValue= obj\n * @returns KeyValue\n */\n customMetadata(index: number, obj?: KeyValue): KeyValue | null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * Features used in the stream/file.\n *\n * @param number index\n * @returns flatbuffers.Long\n */\n features(index: number): flatbuffers.Long | null {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? /** */ (this.bb!.readInt64(this.bb!.__vector(this.bb_pos + offset) + index * 8)) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @returns number\n */\n featuresLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startSchema(builder: flatbuffers.Builder) {\n builder.startObject(4);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Endianness endianness\n */\n static addEndianness(builder: flatbuffers.Builder, endianness: Endianness) {\n builder.addFieldInt16(0, endianness, 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.<flatbuffers.Offset> 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.<flatbuffers.Offset> 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 * @param flatbuffers.Offset featuresOffset\n */\n static addFeatures(builder: flatbuffers.Builder, featuresOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, featuresOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param Array.<flatbuffers.Long> data\n * @returns flatbuffers.Offset\n */\n static createFeaturesVector(builder: flatbuffers.Builder, data: flatbuffers.Long[]): flatbuffers.Offset {\n builder.startVector(8, data.length, 8);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt64(data[i]);\n }\n return builder.endVector();\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param number numElems\n */\n static startFeaturesVector(builder: flatbuffers.Builder, numElems: number) {\n builder.startVector(8, numElems, 8);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endSchema(builder: flatbuffers.Builder): flatbuffers.Offset {\n const 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 /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSizePrefixedSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset, undefined, true);\n }\n\n static createSchema(builder: flatbuffers.Builder, endianness: Endianness, fieldsOffset: flatbuffers.Offset, customMetadataOffset: flatbuffers.Offset, featuresOffset: flatbuffers.Offset): flatbuffers.Offset {\n Schema.startSchema(builder);\n Schema.addEndianness(builder, endianness);\n Schema.addFields(builder, fieldsOffset);\n Schema.addCustomMetadata(builder, customMetadataOffset);\n Schema.addFeatures(builder, featuresOffset);\n return Schema.endSchema(builder);\n }\n}\n", "// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS13596923344997147894 from './Schema';\n/**\n * @enum {number}\n */\nexport enum CompressionType {\n LZ4_FRAME = 0,\n ZSTD = 1\n}\n\n/**\n * Provided for forward compatibility in case we need to support different\n * strategies for compressing the IPC message body (like whole-body\n * compression rather than buffer-level) in the future\n *\n * @enum {number}\n */\nexport enum BodyCompressionMethod {\n /**\n * Each constituent buffer is first compressed with the indicated\n * compressor, and then written with the uncompressed length in the first 8\n * bytes as a 64-bit little-endian signed integer followed by the compressed\n * buffer bytes (and then padding as required by the protocol). The\n * uncompressed length may be set to -1 to indicate that the data that\n * follows is not compressed, which can be useful for cases where\n * compression does not yield appreciable savings.\n */\n BUFFER = 0\n}\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 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 * Data structures for describing a table row batch (a collection of\n * equal-length Arrow arrays)\n * Metadata about a field at some level of a nested type tree (but not\n * its children).\n *\n * For example, a List<Int16> with values [[1, 2, 3], null, [4], [5, 6], null]\n * would have {length: 5, null_count: 2} for its List node, and {length: 6,\n * null_count: 0} for its Int16 node, as separate FieldNode structs\n *\n * @constructor\n */\nexport 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 * Optional compression for the memory buffers constituting IPC message\n * bodies. Intended for use with RecordBatch but could be used for other\n * message types\n *\n * @constructor\n */\nexport class BodyCompression {\n bb: flatbuffers.ByteBuffer | null = null;\n\n bb_pos: number = 0;\n /**\n * @param number i\n * @param flatbuffers.ByteBuffer bb\n * @returns BodyCompression\n */\n __init(i: number, bb: flatbuffers.ByteBuffer): BodyCompression {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param BodyCompression= obj\n * @returns BodyCompression\n */\n static getRootAsBodyCompression(bb: flatbuffers.ByteBuffer, obj?: BodyCompression): BodyCompression {\n return (obj || new BodyCompression()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @param flatbuffers.ByteBuffer bb\n * @param BodyCompression= obj\n * @returns BodyCompression\n */\n static getSizePrefixedRootAsBodyCompression(bb: flatbuffers.ByteBuffer, obj?: BodyCompression): BodyCompression {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new BodyCompression()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * Compressor library\n *\n * @returns CompressionType\n */\n codec(): CompressionType {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt8(this.bb_pos + offset)) : CompressionType.LZ4_FRAME;\n }\n\n /**\n * Indicates the way the record batch body was compressed\n *\n * @returns BodyCompressionMethod\n */\n method(): BodyCompressionMethod {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? /** */ (this.bb!.readInt8(this.bb_pos + offset)) : BodyCompressionMethod.BUFFER;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startBodyCompression(builder: flatbuffers.Builder) {\n builder.startObject(2);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param CompressionType codec\n */\n static addCodec(builder: flatbuffers.Builder, codec: CompressionType) {\n builder.addFieldInt8(0, codec, CompressionType.LZ4_FRAME);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param BodyCompressionMethod method\n */\n static addMethod(builder: flatbuffers.Builder, method: BodyCompressionMethod) {\n builder.addFieldInt8(1, method, BodyCompressionMethod.BUFFER);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endBodyCompression(builder: flatbuffers.Builder): flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n }\n\n static createBodyCompression(builder: flatbuffers.Builder, codec: CompressionType, method: BodyCompressionMethod): flatbuffers.Offset {\n BodyCompression.startBodyCompression(builder);\n BodyCompression.addCodec(builder, codec);\n BodyCompression.addMethod(builder, method);\n return BodyCompression.endBodyCompression(builder);\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 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 * @param flatbuffers.ByteBuffer bb\n * @param RecordBatch= obj\n * @returns RecordBatch\n */\n static getSizePrefixedRootAsRecordBatch(bb: flatbuffers.ByteBuffer, obj?: RecordBatch): RecordBatch {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * Nodes correspond to the pre-ordered flattened logical schema\n *\n * @param number index\n * @param FieldNode= obj\n * @returns FieldNode\n */\n nodes(index: number, obj?: FieldNode): FieldNode | null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new FieldNode()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n nodesLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * Buffers correspond to the pre-ordered flattened buffer tree\n *\n * The number of buffers appended to this list depends on the schema. For\n * example, most primitive arrays will have 2 buffers, 1 for the validity\n * bitmap and 1 for the values. For struct arrays, there will only be a\n * single buffer for the validity (nulls) bitmap\n *\n * @param number index\n * @param Buffer= obj\n * @returns Buffer\n */\n buffers(index: number, obj?: NS13596923344997147894.Buffer): NS13596923344997147894.Buffer | null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new NS13596923344997147894.Buffer()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 16, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n buffersLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * Optional compression of the message body\n *\n * @param BodyCompression= obj\n * @returns BodyCompression|null\n */\n compression(obj?: BodyCompression): BodyCompression | null {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? (obj || new BodyCompression()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startRecordBatch(builder: flatbuffers.Builder) {\n builder.startObject(4);\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 * @param flatbuffers.Offset compressionOffset\n */\n static addCompression(builder: flatbuffers.Builder, compressionOffset: flatbuffers.Offset) {\n builder.addFieldOffset(3, compressionOffset, 0);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @returns flatbuffers.Offset\n */\n static endRecordBatch(builder: flatbuffers.Builder): flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n }\n\n static createRecordBatch(builder: flatbuffers.Builder, length: flatbuffers.Long, nodesOffset: flatbuffers.Offset, buffersOffset: flatbuffers.Offset, compressionOffset: flatbuffers.Offset): flatbuffers.Offset {\n RecordBatch.startRecordBatch(builder);\n RecordBatch.addLength(builder, length);\n RecordBatch.addNodes(builder, nodesOffset);\n RecordBatch.addBuffers(builder, buffersOffset);\n RecordBatch.addCompression(builder, compressionOffset);\n return RecordBatch.endRecordBatch(builder);\n }\n}\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 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 * @param flatbuffers.ByteBuffer bb\n * @param DictionaryBatch= obj\n * @returns DictionaryBatch\n */\n static getSizePrefixedRootAsDictionaryBatch(bb: flatbuffers.ByteBuffer, obj?: DictionaryBatch): DictionaryBatch {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\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 const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @param RecordBatch= obj\n * @returns RecordBatch|null\n */\n data(obj?: RecordBatch): RecordBatch | null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new RecordBatch()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * If isDelta is true the values in the dictionary are to be appended to a\n * dictionary with the indicated id. If isDelta is false this dictionary\n * should replace the existing dictionary.\n *\n * @returns boolean\n */\n isDelta(): boolean {\n const 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 const 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 * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param Message= obj\n * @returns Message\n */\n static getSizePrefixedRootAsMessage(bb: flatbuffers.ByteBuffer, obj?: Message): Message {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Message()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns MetadataVersion\n */\n version(): NS13596923344997147894.MetadataVersion {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS13596923344997147894.MetadataVersion.V1;\n }\n\n /**\n * @returns MessageHeader\n */\n headerType(): MessageHeader {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? /** */ (this.bb!.readUint8(this.bb_pos + offset)) : MessageHeader.NONE;\n }\n\n /**\n * @param flatbuffers.Table obj\n * @returns ?flatbuffers.Table\n */\n header<T extends flatbuffers.Table>(obj: T): T | null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n }\n\n /**\n * @returns flatbuffers.Long\n */\n bodyLength(): flatbuffers.Long {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.readInt64(this.bb_pos + offset) : this.bb!.createLong(0, 0);\n }\n\n /**\n * @param number index\n * @param KeyValue= obj\n * @returns KeyValue\n */\n customMetadata(index: number, obj?: NS13596923344997147894.KeyValue): NS13596923344997147894.KeyValue | null {\n const offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new NS13596923344997147894.KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\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 MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS13596923344997147894.MetadataVersion) {\n builder.addFieldInt16(0, version, NS13596923344997147894.MetadataVersion.V1);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param MessageHeader headerType\n */\n static addHeaderType(builder: flatbuffers.Builder, headerType: MessageHeader) {\n builder.addFieldInt8(1, headerType, 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.<flatbuffers.Offset> 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 const 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 /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSizePrefixedMessageBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset, undefined, true);\n }\n\n static createMessage(builder: flatbuffers.Builder, version: NS13596923344997147894.MetadataVersion, headerType: 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", "// 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 {\n DateUnit,\n TimeUnit,\n Precision,\n UnionMode,\n IntervalUnit,\n MetadataVersion,\n} from './fb/Schema';\n\nexport { MessageHeader } from './fb/Message';\n\n/**\n * Main data type enumeration.\n *\n * Data types in this library are all *logical*. They can be expressed as\n * either a primitive physical type (bytes or bits of some fixed size), a\n * nested type consisting of other data types, or another data type (e.g. a\n * timestamp encoded as an int64).\n *\n * **Note**: Only enum values 0-17 (NONE through Map) are written to an Arrow\n * IPC payload.\n *\n * The rest of the values are specified here so TypeScript can narrow the type\n * signatures further beyond the base Arrow Types. The Arrow DataTypes include\n * metadata like `bitWidth` that impact the type signatures of the values we\n * accept and return.\n *\n * For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an\n * `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`\n * reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the\n * underlying `Int32Array`.\n *\n * Library consumers benefit by knowing the narrowest type, since we can ensure\n * the types across all public methods are propagated, and never bail to `any`.\n * These values are _never_ used at runtime, and they will _never_ be written\n * to the flatbuffers metadata of serialized Arrow IPC payloads.\n */\nexport enum Type {\n /** The default placeholder type */\n NONE = 0,\n /** A NULL type having no physical storage */\n Null = 1,\n /** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */\n Int = 2,\n /** 2, 4, or 8-byte floating point value */\n Float = 3,\n /** Variable-length bytes (no guarantee of UTF8-ness) */\n Binary = 4,\n /** UTF8 variable-length string as List<Char> */\n Utf8 = 5,\n /** Boolean as 1 bit, LSB bit-packed ordering */\n Bool = 6,\n /** Precision-and-scale-based decimal type. Storage type depends on the parameters. */\n Decimal = 7,\n /** int32_t days or int64_t milliseconds since the UNIX epoch */\n Date = 8,\n /** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */\n Time = 9,\n /** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */\n Timestamp = 10,\n /** YEAR_MONTH or DAY_TIME interval in SQL style */\n Interval = 11,\n /** A list of some logical data type */\n List = 12,\n /** Struct of logical types */\n Struct = 13,\n /** Union of logical types */\n Union = 14,\n /** Fixed-size binary. Each value occupies the same number of bytes */\n FixedSizeBinary = 15,\n /** Fixed-size list. Each value occupies the same number of bytes */\n FixedSizeList = 16,\n /** Map of named logical types */\n Map = 17,\n\n /** Dictionary aka Category type */\n Dictionary = -1,\n Int8 = -2,\n Int16 = -3,\n Int32 = -4,\n Int64 = -5,\n Uint8 = -6,\n Uint16 = -7,\n Uint32 = -8,\n Uint64 = -9,\n Float16 = -10,\n Float32 = -11,\n Float64 = -12,\n DateDay = -13,\n DateMillisecond = -14,\n TimestampSecond = -15,\n TimestampMillisecond = -16,\n TimestampMicrosecond = -17,\n TimestampNanosecond = -18,\n TimeSecond = -19,\n TimeMillisecond = -20,\n TimeMicrosecond = -21,\n TimeNanosecond = -22,\n DenseUnion = -23,\n SparseUnion = -24,\n IntervalDayTime = -25,\n IntervalYearMonth = -26,\n}\n\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(new BitIterator(bitmap, offset, length, null, getBool)).subarray(0, alignedSize));\n return bytes;\n }\n return bitmap;\n}\n\n/** @ignore */\nexport function packBools(values: Iterable<any>) {\n const 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 const b = new Uint8Array((xs.length + 7) & ~7);\n b.set(xs);\n return b;\n}\n\n/** @ignore */\nexport class BitIterator<T> implements IterableIterator<T> {\n bit: number;\n byte: number;\n byteIndex: number;\n index: number;\n\n constructor(\n private bytes: Uint8Array,\n begin: number,\n private length: number,\n private context: any,\n private get: (context: any, index: number, byte: number, bit: number) => T\n ) {\n this.bit = begin % 8;\n this.byteIndex = begin >> 3;\n this.byte = bytes[this.byteIndex++];\n this.index = 0;\n }\n\n next(): IteratorResult<T> {\n if (this.index < this.length) {\n if (this.bit === 8) {\n this.bit = 0;\n this.byte = this.bytes[this.byteIndex++];\n }\n return {\n value: this.get(this.context, this.index++, this.byte, this.bit++)\n };\n }\n return { done: true, value: null };\n }\n\n [Symbol.iterator]() {\n return this;\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 new BitIterator(data, lhs, rhs - lhs, data, getBit)) {\n sum += bit;\n }\n return sum;\n }\n // Get the next lowest multiple of 8 from the right hand side\n const rhsInside = rhs >> 3 << 3;\n // Get the next highest multiple of 8 from the left hand side\n const lhsInside = lhs + (lhs % 8 === 0 ? 0 : 8 - lhs % 8);\n return (\n // Get the popcnt of bits between the left hand side, and the next highest multiple of 8\n popcnt_bit_range(data, lhs, lhsInside) +\n // Get the popcnt of bits between the right hand side, and the next lowest multiple of 8\n popcnt_bit_range(data, rhsInside, rhs) +\n // Get the popcnt of all bits between the left and right hand sides' multiples of 8\n popcnt_array(data, lhsInside >> 3, (rhsInside - lhsInside) >> 3)\n );\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", "// 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/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { Field } from './schema';\nimport { flatbuffers } from 'flatbuffers';\nimport { VectorType as V } from './interfaces';\nimport { TypedArrayConstructor } from './interfaces';\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<T extends { [key: string]: DataType }> =\n ( Iterable<[string, T[keyof T]['TValue'] | null]> )\n & { [P in keyof T]: T[P]['TValue'] | null }\n & { get<K extends keyof T>(key: K): T[K]['TValue'] | null }\n & { set<K extends keyof T>(key: K, val: T[K]['TValue'] | null): void }\n ;\n\n/** @ignore */\nexport type MapLike<K extends DataType = any, V extends DataType = any> =\n { [P in K['TValue']]: V['TValue'] | null }\n & ( Map<K['TValue'], V['TValue'] | null> )\n ;\n\nexport interface DataType<TType extends Type = Type, TChildren extends { [key: string]: DataType } = any> {\n readonly TType: TType;\n readonly TArray: any;\n readonly TValue: any;\n readonly ArrayType: any;\n readonly children: Field<TChildren[keyof TChildren]>[];\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<TType extends Type = Type, TChildren extends { [key: string]: DataType } = any> {\n\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 <any> Type.NONE; }\n\n protected static [Symbol.toStringTag] = ((proto: DataType) => {\n (<any> proto).children = null;\n (<any> proto).ArrayType = Array;\n return proto[Symbol.toStringTag] = 'DataType';\n })(DataType.prototype);\n}\n\n/** @ignore */\nexport interface Null extends DataType<Type.Null> { TArray: void; TValue: null }\n/** @ignore */\nexport class Null extends DataType<Type.Null> {\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_<T extends Ints = Ints> extends DataType<T> { TArray: IType[T]['TArray']; TValue: IType[T]['TValue'] }\n/** @ignore */\nclass Int_<T extends Ints = Ints> extends DataType<T> {\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<IType[T]['TArray']> {\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 (<any> proto).isSigned = null;\n (<any> 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_<Type.Int8> { constructor() { super(true, 8); } }\n/** @ignore */\nexport class Int16 extends Int_<Type.Int16> { constructor() { super(true, 16); } }\n/** @ignore */\nexport class Int32 extends Int_<Type.Int32> { constructor() { super(true, 32); } }\n/** @ignore */\nexport class Int64 extends Int_<Type.Int64> { constructor() { super(true, 64); } }\n/** @ignore */\nexport class Uint8 extends Int_<Type.Uint8> { constructor() { super(false, 8); } }\n/** @ignore */\nexport class Uint16 extends Int_<Type.Uint16> { constructor() { super(false, 16); } }\n/** @ignore */\nexport class Uint32 extends Int_<Type.Uint32> { constructor() { super(false, 32); } }\n/** @ignore */\nexport class Uint64 extends Int_<Type.Uint64> { 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<T extends Floats = Floats> extends DataType<T> { TArray: FType[T]['TArray']; TValue: number }\n/** @ignore */\nexport class Float<T extends Floats = Floats> extends DataType<T> {\n constructor(public readonly precision: Precision) {\n super();\n }\n public get typeId() { return Type.Float as T; }\n public get ArrayType(): TypedArrayConstructor<FType[T]['TArray']> {\n switch (this.precision) {\n case Precision.HALF: return Uint16Array;\n case Precision.SINGLE: return Float32Array;\n case Precision.DOUBLE: return Float64Array;\n }\n // @ts-ignore\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 (<any> proto).precision = null;\n return proto[Symbol.toStringTag] = 'Float';\n })(Float.prototype);\n}\n\n/** @ignore */\nexport class Float16 extends Float<Type.Float16> { constructor() { super(Precision.HALF); } }\n/** @ignore */\nexport class Float32 extends Float<Type.Float32> { constructor() { super(Precision.SINGLE); } }\n/** @ignore */\nexport class Float64 extends Float<Type.Float64> { 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<Type.Binary> { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor<Uint8Array> }\n/** @ignore */\nexport class Binary extends DataType<Type.Binary> {\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 (<any> proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Binary';\n })(Binary.prototype);\n}\n\n/** @ignore */\nexport interface Utf8 extends DataType<Type.Utf8> { TArray: Uint8Array; TValue: string; ArrayType: TypedArrayConstructor<Uint8Array> }\n/** @ignore */\nexport class Utf8 extends DataType<Type.Utf8> {\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 (<any> proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Utf8';\n })(Utf8.prototype);\n}\n\n/** @ignore */\nexport interface Bool extends DataType<Type.Bool> { TArray: Uint8Array; TValue: boolean; ArrayType: TypedArrayConstructor<Uint8Array> }\n/** @ignore */\nexport class Bool extends DataType<Type.Bool> {\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 (<any> proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'Bool';\n })(Bool.prototype);\n}\n\n/** @ignore */\nexport interface Decimal extends DataType<Type.Decimal> { TArray: Uint32Array; TValue: Uint32Array; ArrayType: TypedArrayConstructor<Uint32Array> }\n/** @ignore */\nexport class Decimal extends DataType<Type.Decimal> {\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 (<any> proto).scale = null;\n (<any> proto).precision = null;\n (<any> 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_<T extends Dates = Dates> extends DataType<T> { TArray: Int32Array; TValue: Date; ArrayType: TypedArrayConstructor<Int32Array> }\n/** @ignore */\nexport class Date_<T extends Dates = Dates> extends DataType<T> {\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 (<any> proto).unit = null;\n (<any> proto).ArrayType = Int32Array;\n return proto[Symbol.toStringTag] = 'Date';\n })(Date_.prototype);\n}\n\n/** @ignore */\nexport class DateDay extends Date_<Type.DateDay> { constructor() { super(DateUnit.DAY); } }\n/** @ignore */\nexport class DateMillisecond extends Date_<Type.DateMillisecond> { 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_<T extends Times = Times> extends DataType<T> { TArray: Int32Array; TValue: TimesType[T]['TValue']; ArrayType: TypedArrayConstructor<Int32Array> }\n/** @ignore */\nclass Time_<T extends Times = Times> extends DataType<T> {\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 (<any> proto).unit = null;\n (<any> proto).bitWidth = null;\n (<any> 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_<Type.TimeSecond> { constructor() { super(TimeUnit.SECOND, 32); } }\n/** @ignore */\nexport class TimeMillisecond extends Time_<Type.TimeMillisecond> { constructor() { super(TimeUnit.MILLISECOND, 32); } }\n/** @ignore */\nexport class TimeMicrosecond extends Time_<Type.TimeMicrosecond> { constructor() { super(TimeUnit.MICROSECOND, 64); } }\n/** @ignore */\nexport class TimeNanosecond extends Time_<Type.TimeNanosecond> { constructor() { super(TimeUnit.NANOSECOND, 64); } }\n\n/** @ignore */\ntype Timestamps = Type.Timestamp | Type.TimestampSecond | Type.TimestampMillisecond | Type.TimestampMicrosecond | Type.TimestampNanosecond;\n/** @ignore */\ninterface Timestamp_<T extends Timestamps = Timestamps> extends DataType<T> { TArray: Int32Array; TValue: number; ArrayType: TypedArrayConstructor<Int32Array> }\n/** @ignore */\nclass Timestamp_<T extends Timestamps = Timestamps> extends DataType<T> {\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 (<any> proto).unit = null;\n (<any> proto).timezone = null;\n (<any> 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_<Type.TimestampSecond> { constructor(timezone?: string | null) { super(TimeUnit.SECOND, timezone); } }\n/** @ignore */\nexport class TimestampMillisecond extends Timestamp_<Type.TimestampMillisecond> { constructor(timezone?: string | null) { super(TimeUnit.MILLISECOND, timezone); } }\n/** @ignore */\nexport class TimestampMicrosecond extends Timestamp_<Type.TimestampMicrosecond> { constructor(timezone?: string | null) { super(TimeUnit.MICROSECOND, timezone); } }\n/** @ignore */\nexport class TimestampNanosecond extends Timestamp_<Type.TimestampNanosecond> { constructor(timezone?: string | null) { super(TimeUnit.NANOSECOND, timezone); } }\n\n/** @ignore */\ntype Intervals = Type.Interval | Type.IntervalDayTime | Type.IntervalYearMonth;\n/** @ignore */\ninterface Interval_<T extends Intervals = Intervals> extends DataType<T> { TArray: Int32Array; TValue: Int32Array; ArrayType: TypedArrayConstructor<Int32Array> }\n/** @ignore */\nclass Interval_<T extends Intervals = Intervals> extends DataType<T> {\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 (<any> proto).unit = null;\n (<any> 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_<Type.IntervalDayTime> { constructor() { super(IntervalUnit.DAY_TIME); } }\n/** @ignore */\nexport class IntervalYearMonth extends Interval_<Type.IntervalYearMonth> { constructor() { super(IntervalUnit.YEAR_MONTH); } }\n\n/** @ignore */\nexport interface List<T extends DataType = any> extends DataType<Type.List, { [0]: T }> { TArray: IterableArrayLike<T>; TValue: V<T> }\n/** @ignore */\nexport class List<T extends DataType = any> extends DataType<Type.List, { [0]: T }> {\n constructor(child: Field<T>) {\n super();\n this.children = [child];\n }\n public readonly children: Field<T>[];\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<T> { return this.children[0] as Field<T>; }\n public get ArrayType(): T['ArrayType'] { return this.valueType.ArrayType; }\n protected static [Symbol.toStringTag] = ((proto: List) => {\n (<any> proto).children = null;\n return proto[Symbol.toStringTag] = 'List';\n })(List.prototype);\n}\n\n/** @ignore */\nexport interface Struct<T extends { [key: string]: DataType } = any> extends DataType<Type.Struct> { TArray: IterableArrayLike<RowLike<T>>; TValue: RowLike<T>; dataTypes: T }\n/** @ignore */\nexport class Struct<T extends { [key: string]: DataType } = any> extends DataType<Type.Struct, T> {\n public readonly children: Field<T[keyof T]>[];\n constructor(children: Field<T[keyof T]>[]) {\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 (<any> 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_<T extends Unions = Unions> extends DataType<T> { TArray: Int8Array; TValue: any; ArrayType: TypedArrayConstructor<Int8Array> }\n/** @ignore */\nclass Union_<T extends Unions = Unions> extends DataType<T> {\n public readonly mode: UnionMode;\n public readonly typeIds: Int32Array;\n public readonly children: Field<any>[];\n public readonly typeIdToChildIndex: { [key: number]: number };\n constructor(mode: UnionMode,\n typeIds: number[] | Int32Array,\n children: Field<any>[]) {\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() {\n return `${this[Symbol.toStringTag]}<${\n this.children.map((x) => `${x.type}`).join(` | `)\n }>`;\n}\n protected static [Symbol.toStringTag] = ((proto: Union_) => {\n (<any> proto).mode = null;\n (<any> proto).typeIds = null;\n (<any> proto).children = null;\n (<any> proto).typeIdToChildIndex = null;\n (<any> 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_<Type.DenseUnion> {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Dense, typeIds, children);\n }\n}\n\n/** @ignore */\nexport class SparseUnion extends Union_<Type.SparseUnion> {\n constructor(typeIds: number[] | Int32Array, children: Field[]) {\n super(UnionMode.Sparse, typeIds, children);\n }\n}\n\n/** @ignore */\nexport interface FixedSizeBinary extends DataType<Type.FixedSizeBinary> { TArray: Uint8Array; TValue: Uint8Array; ArrayType: TypedArrayConstructor<Uint8Array> }\n/** @ignore */\nexport class FixedSizeBinary extends DataType<Type.FixedSizeBinary> {\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 (<any> proto).byteWidth = null;\n (<any> proto).ArrayType = Uint8Array;\n return proto[Symbol.toStringTag] = 'FixedSizeBinary';\n })(FixedSizeBinary.prototype);\n}\n\n/** @ignore */\nexport interface FixedSizeList<T extends DataType = any> extends DataType<Type.FixedSizeList> { TArray: IterableArrayLike<T['TArray']>; TValue: V<T> }\n/** @ignore */\nexport class FixedSizeList<T extends DataType = any> extends DataType<Type.FixedSizeList, { [0]: T }> {\n public readonly children: Field<T>[];\n constructor(public readonly listSize: number, child: Field<T>) {\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<T> { return this.children[0] as Field<T>; }\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 (<any> proto).children = null;\n (<any> proto).listSize = null;\n return proto[Symbol.toStringTag] = 'FixedSizeList';\n })(FixedSizeList.prototype);\n}\n\n/** @ignore */\nexport interface Map_<TKey extends DataType = any, TValue extends DataType = any> extends DataType<Type.Map> {\n TArray: IterableArrayLike<Map<TKey['TValue'], TValue['TValue'] | null>>;\n TChild: Struct<{ key: TKey; value: TValue }>;\n TValue: MapLike<TKey, TValue>;\n}\n\n/** @ignore */\nexport class Map_<TKey extends DataType = any, TValue extends DataType = any> extends DataType<Type.Map> {\n constructor(child: Field<Struct<{ key: TKey; value: TValue }>>, keysSorted = false) {\n super();\n this.children = [child];\n this.keysSorted = keysSorted;\n }\n public readonly keysSorted: boolean;\n public readonly children: Field<Struct<{ key: TKey; value: TValue }>>[];\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 (<any> proto).children = null;\n (<any> 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<T extends DataType = any, TKey extends TKeys = TKeys> extends DataType<Type.Dictionary> { TArray: TKey['TArray']; TValue: T['TValue'] }\n/** @ignore */\nexport class Dictionary<T extends DataType = any, TKey extends TKeys = TKeys> extends DataType<Type.Dictionary> {\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 (<any> proto).id = null;\n (<any> proto).indices = null;\n (<any> proto).isOrdered = null;\n (<any> proto).dictionary = null;\n return proto[Symbol.toStringTag] = 'Dictionary';\n })(Dictionary.prototype);\n}\n\n/** @ignore */\nexport interface IterableArrayLike<T = any> extends ArrayLike<T>, Iterable<T> {}\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 const 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<number> | Iterable<number> | undefined;\n/** @ignore */ export type ValueOffsetsBuffer = Int32Array | ArrayLike<number> | Iterable<number> | undefined;\n/** @ignore */ export type DataBuffer<T extends DataType> = T['TArray'] | ArrayLike<number> | Iterable<number> | undefined;\n\n/** @ignore */\nexport interface Buffers<T extends DataType> {\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<T extends DataType = DataType> {\n readonly TType: T['TType'];\n readonly TArray: T['TArray'];\n readonly TValue: T['TValue'];\n}\n\n/** @ignore */\nexport class Data<T extends DataType = DataType> {\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<T>[BufferType.DATA];\n public readonly typeIds!: Buffers<T>[BufferType.TYPE];\n public readonly nullBitmap!: Buffers<T>[BufferType.VALIDITY];\n public readonly valueOffsets!: Buffers<T>[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<T>;\n }\n public get byteLength(): number {\n let byteLength = 0;\n const { valueOffsets, values, nullBitmap, typeIds } = this;\n valueOffsets && (byteLength += valueOffsets.byteLength);\n values && (byteLength += values.byteLength);\n nullBitmap && (byteLength += nullBitmap.byteLength);\n typeIds && (byteLength += typeIds.byteLength);\n return this.childData.reduce((byteLength, child) => byteLength + child.byteLength, byteLength);\n }\n\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<Buffers<T>> | Data<T>, 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<T>[keyof Buffers<T>];\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<T>)[0]) && (this.valueOffsets = buffer);\n (buffer = (buffers as Buffers<T>)[1]) && (this.values = buffer);\n (buffer = (buffers as Buffers<T>)[2]) && (this.nullBitmap = buffer);\n (buffer = (buffers as Buffers<T>)[3]) && (this.typeIds = buffer);\n }\n }\n }\n\n public clone<R extends DataType>(type: R, offset = this.offset, length = this.length, nullCount = this._nullCount, buffers: Buffers<R> = <any> 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<T> {\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<T>(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<T> {\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<T> {\n let arr: any;\n const { 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<T extends DataType>(type: T, offset: number, length: number, nullCount?: number, buffers?: Partial<Buffers<T>> | Data<T>, childData?: (Data | Vector)[], dictionary?: Vector): Data<T> {\n if (buffers instanceof Data) { buffers = buffers.buffers; } else if (!buffers) { buffers = [] as Partial<Buffers<T>>; }\n switch (type.typeId) {\n case Type.Null: return <unknown> Data.Null( <unknown> type as Null, offset, length) as Data<T>;\n case Type.Int: return <unknown> Data.Int( <unknown> type as Int, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Dictionary: return <unknown> Data.Dictionary( <unknown> type as Dictionary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || [], dictionary!) as Data<T>;\n case Type.Float: return <unknown> Data.Float( <unknown> type as Float, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Bool: return <unknown> Data.Bool( <unknown> type as Bool, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Decimal: return <unknown> Data.Decimal( <unknown> type as Decimal, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Date: return <unknown> Data.Date( <unknown> type as Date_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Time: return <unknown> Data.Time( <unknown> type as Time, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Timestamp: return <unknown> Data.Timestamp( <unknown> type as Timestamp, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Interval: return <unknown> Data.Interval( <unknown> type as Interval, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.FixedSizeBinary: return <unknown> Data.FixedSizeBinary( <unknown> type as FixedSizeBinary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Binary: return <unknown> Data.Binary( <unknown> type as Binary, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.Utf8: return <unknown> Data.Utf8( <unknown> type as Utf8, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], buffers[BufferType.DATA] || []) as Data<T>;\n case Type.List: return <unknown> Data.List( <unknown> type as List, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data<T>;\n case Type.FixedSizeList: return <unknown> Data.FixedSizeList( <unknown> type as FixedSizeList, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], (childData || [])[0]) as Data<T>;\n case Type.Struct: return <unknown> Data.Struct( <unknown> type as Struct, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], childData || []) as Data<T>;\n case Type.Map: return <unknown> Data.Map( <unknown> type as Map_, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.OFFSET] || [], (childData || [])[0]) as Data<T>;\n case Type.Union: return <unknown> Data.Union( <unknown> type as Union, offset, length, nullCount || 0, buffers[BufferType.VALIDITY], buffers[BufferType.TYPE] || [], buffers[BufferType.OFFSET] || childData, childData) as Data<T>;\n }\n throw new Error(`Unrecognized typeId ${type.typeId}`);\n }\n\n /** @nocollapse */\n public static Null<T extends Null>(type: T, offset: number, length: number) {\n return new Data(type, offset, length, 0);\n }\n /** @nocollapse */\n public static Int<T extends Int>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Dictionary<T extends Dictionary>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>, dictionary: Vector<T['dictionary']>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView<T['TArray']>(type.indices.ArrayType, data), toUint8Array(nullBitmap)], [], dictionary);\n }\n /** @nocollapse */\n public static Float<T extends Float>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Bool<T extends Bool>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Decimal<T extends Decimal>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Date<T extends Date_>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Time<T extends Time>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Timestamp<T extends Timestamp>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Interval<T extends Interval>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static FixedSizeBinary<T extends FixedSizeBinary>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [undefined, toArrayBufferView(type.ArrayType, data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Binary<T extends Binary>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static Utf8<T extends Utf8>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, data: DataBuffer<T>) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), toUint8Array(data), toUint8Array(nullBitmap)]);\n }\n /** @nocollapse */\n public static List<T extends List>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, valueOffsets: ValueOffsetsBuffer, child: Data<T['valueType']> | Vector<T['valueType']>) {\n return new Data(type, offset, length, nullCount, [toInt32Array(valueOffsets), undefined, toUint8Array(nullBitmap)], child ? [child] : []);\n }\n /** @nocollapse */\n public static FixedSizeList<T extends FixedSizeList>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, child: Data<T['valueType']> | Vector<T['valueType']>) {\n return new Data(type, offset, length, nullCount, [undefined, undefined, toUint8Array(nullBitmap)], child ? [child] : []);\n }\n /** @nocollapse */\n public static Struct<T extends 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<T extends 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 ? [child] : []);\n }\n public static Union<T extends SparseUnion>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, children: (Data | Vector)[], _?: any): Data<T>;\n public static Union<T extends DenseUnion>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsets: ValueOffsetsBuffer, children: (Data | Vector)[]): Data<T>;\n public static Union<T extends Union>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]): Data<T>;\n /** @nocollapse */\n public static Union<T extends Union>(type: T, offset: number, length: number, nullCount: number, nullBitmap: NullBuffer, typeIds: TypeIdsBuffer, valueOffsetsOrChildren: ValueOffsetsBuffer | (Data | Vector)[], children?: (Data | Vector)[]) {\n const buffers = <unknown> [\n undefined, undefined,\n toUint8Array(nullBitmap),\n toArrayBufferView(type.ArrayType, typeIds)\n ] as Partial<Buffers<T>>;\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(<ValueOffsetsBuffer> 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<T extends DataType = any, TNull = any>(nullValues?: ReadonlyArray<TNull>) {\n\n if (!nullValues || nullValues.length <= 0) {\n // @ts-ignore\n return function isValid(value: any) { return true; };\n }\n\n let fnBody = '';\n const 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> = T extends TypedArray ? number : T extends BigIntArray ? WideValue<T> : T;\n/** @ignore */ type WideValue<T extends BigIntArray> = T extends BigIntArray ? bigint | Int32Array | Uint32Array : never;\n/** @ignore */ type ArrayCtor<T extends TypedArray | BigIntArray> =\n T extends TypedArray ? TypedArrayConstructor<T> :\n T extends BigIntArray ? BigIntArrayConstructor<T> :\n any;\n\n/** @ignore */\nconst roundLengthUpToNearest64Bytes = (len: number, BPE: number) => ((((len * BPE) + 63) & ~63) || 64) / BPE;\n/** @ignore */\nconst sliceOrExtendArray = <T extends TypedArray | BigIntArray>(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<T extends TypedArray | BigIntArray = any, TValue = DataValue<T>> {\n readonly offset: number;\n}\n\n/** @ignore */\nexport class BufferBuilder<T extends TypedArray | BigIntArray = any, TValue = DataValue<T>> {\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<T>;\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<T>;\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<T>(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 = <T> memcpy(new this.ArrayType(newLength), this.buffer);\n }\n}\n\n(BufferBuilder.prototype as any).offset = 0;\n\n/** @ignore */\nexport class DataBufferBuilder<T extends TypedArray> extends BufferBuilder<T, number> {\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<Uint8Array> {\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<Int32Array> {\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<T extends TypedArray, R extends BigIntArray> extends BufferBuilder<T, DataValue<T>> {\n public buffer64!: R;\n protected _ArrayType64!: BigIntArrayConstructor<R>;\n public get ArrayType64() {\n return this._ArrayType64 || (this._ArrayType64 = <BigIntArrayConstructor<R>> (this.buffer instanceof Int32Array ? BigInt64Array : BigUint64Array));\n }\n public set(index: number, value: DataValue<T>) {\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<T extends DataType = any, TNull = any> {\n type: T;\n nullValues?: TNull[] | ReadonlyArray<TNull> | 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<T extends DataType = any, TNull = any> extends BuilderOptions<T, TNull> {\n highWaterMark?: number;\n queueingStrategy?: 'bytes' | 'count';\n dictionaryHashFunction?: (value: any) => string | number;\n valueToChildTypeId?: (builder: Builder<T, TNull>, 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<T>` is returned.\n * Alternatively, `Builder.prototype.toVector()` will flush the `Builder` and return\n * an instance of `Vector<T>` instead.\n *\n * When there are no more values to write, use `Builder.prototype.finish()` to\n * finalize the `Builder`. This does not reset the internal state, so it is\n * necessary to call `Builder.prototype.flush()` or `toVector()` one last time\n * if there are still values queued to be flushed.\n *\n * Note: calling `Builder.prototype.finish()` is required when using a `DictionaryBuilder`,\n * because this is when it flushes the values that have been enqueued in its internal\n * dictionary's `Builder`, and creates the `dictionaryVector` for the `Dictionary` `DataType`.\n *\n * ```ts\n * import { Builder, Utf8 } from 'apache-arrow';\n *\n * const utf8Builder = Builder.new({\n * type: new Utf8(),\n * nullValues: [null, 'n/a']\n * });\n *\n * utf8Builder\n * .append('hello')\n * .append('n/a')\n * .append('world')\n * .append(null);\n *\n * const utf8Vector = utf8Builder.finish().toVector();\n *\n * console.log(utf8Vector.toJSON());\n * // > [\"hello\", null, \"world\", null]\n * ```\n *\n * @typeparam T The `DataType` of this `Builder`.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n */\nexport abstract class Builder<T extends DataType = any, TNull = any> {\n\n /**\n * Create a `Builder` instance based on the `type` property of the supplied `options` object.\n * @param {BuilderOptions<T, TNull>} options An object with a required `DataType` instance\n * and other optional parameters to be passed to the `Builder` subclass for the given `type`.\n *\n * @typeparam T The `DataType` of the `Builder` to create.\n * @typeparam TNull The type(s) of values which will be considered null-value sentinels.\n * @nocollapse\n */\n // @ts-ignore\n public static new<T extends DataType = any, TNull = any>(options: BuilderOptions<T, TNull>): B<T, TNull> {}\n\n /** @nocollapse */\n // @ts-ignore\n public static throughNode<T extends DataType = any, TNull = any>(options: import('./io/node/builder').BuilderDuplexOptions<T, TNull>): import('stream').Duplex {\n throw new Error(`\"throughNode\" not available in this environment`);\n }\n /** @nocollapse */\n // @ts-ignore\n public static throughDOM<T extends DataType = any, TNull = any>(options: import('./io/whatwg/builder').BuilderTransformOptions<T, TNull>): import('./io/whatwg/builder').BuilderTransform<T, TNull> {\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<T> following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `Iterable` of values to\n * transform. When called, this function returns an Iterator of `Vector<T>`.\n *\n * The resulting `Iterator<Vector<T>>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `Iterator<Vector<T>>`\n * will flush the underlying `Builder` (and yield a new `Vector<T>`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `Iterator<Vector<T>>` will flush\n * the underlying `Builder` (and yield a new `Vector<T>`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions<T, TNull>} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `Iterable` of values to\n * write, and returns an `Iterator` that yields Vectors according\n * to the chunking semantics defined in the `options` argument.\n * @nocollapse\n */\n public static throughIterable<T extends DataType = any, TNull = any>(options: IterableBuilderOptions<T, TNull>) {\n return throughIterable(options);\n }\n\n /**\n * Transform an `AsyncIterable` of arbitrary JavaScript values into a\n * sequence of Arrow Vector<T> following the chunking semantics defined in\n * the supplied `options` argument.\n *\n * This function returns a function that accepts an `AsyncIterable` of values to\n * transform. When called, this function returns an AsyncIterator of `Vector<T>`.\n *\n * The resulting `AsyncIterator<Vector<T>>` yields Vectors based on the\n * `queueingStrategy` and `highWaterMark` specified in the `options` argument.\n *\n * * If `queueingStrategy` is `\"count\"` (or omitted), The `AsyncIterator<Vector<T>>`\n * will flush the underlying `Builder` (and yield a new `Vector<T>`) once the\n * Builder's `length` reaches or exceeds the supplied `highWaterMark`.\n * * If `queueingStrategy` is `\"bytes\"`, the `AsyncIterator<Vector<T>>` will flush\n * the underlying `Builder` (and yield a new `Vector<T>`) once its `byteLength`\n * reaches or exceeds the supplied `highWaterMark`.\n *\n * @param {IterableBuilderOptions<T, TNull>} options An object of properties which determine the `Builder` to create and the chunking semantics to use.\n * @returns A function which accepts a JavaScript `AsyncIterable` of values\n * to write, and returns an `AsyncIterator` that yields Vectors\n * according to the chunking semantics defined in the `options`\n * argument.\n * @nocollapse\n */\n public static throughAsyncIterable<T extends DataType = any, TNull = any>(options: IterableBuilderOptions<T, TNull>) {\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<T, TNull>) {\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<TNull> | null;\n\n /**\n * Flush the `Builder` and return a `Vector<T>`.\n * @returns {Vector<T>} A `Vector<T>` 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 protected _offsets!: DataBufferBuilder<Int32Array>;\n public get valueOffsets() { return this._offsets ? this._offsets.buffer : null; }\n\n protected _values!: BufferBuilder<T['TArray'], any>;\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 protected _typeIds!: DataBufferBuilder<Int8Array>;\n public get typeIds() { return this._typeIds ? this._typeIds.buffer : null; }\n\n protected _isValid!: (value: T['TValue'] | TNull) => boolean;\n protected _setValue!: (inst: Builder<T>, 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 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 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<R extends DataType = any>(index: number): Builder<R> | 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<T>` 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<T>(\n this.type, 0, length, nullCount, buffers as Buffers<T>,\n this.children.map((child) => child.flush())) as Data<T>;\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<T extends Int | Float | FixedSizeBinary | Date_ | Timestamp | Time | Decimal | Interval = any, TNull = any> extends Builder<T, TNull> {\n constructor(opts: BuilderOptions<T, TNull>) {\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<T extends Binary | Utf8 | List | Map_, TNull = any> extends Builder<T, TNull> {\n protected _pendingLength = 0;\n protected _offsets: OffsetsBufferBuilder;\n protected _pending: Map<number, any> | undefined;\n constructor(opts: BuilderOptions<T, TNull>) {\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<number, any>, pendingLength: number): void;\n}\n\n/** @ignore */\ntype ThroughIterable<T extends DataType = any, TNull = any> = (source: Iterable<T['TValue'] | TNull>) => IterableIterator<V<T>>;\n\n/** @ignore */\nfunction throughIterable<T extends DataType = any, TNull = any>(options: IterableBuilderOptions<T, TNull>) {\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<T['TValue'] | TNull>) {\n let numChunks = 0;\n const builder = Builder.new(options);\n for (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n } as ThroughIterable<T, TNull>;\n}\n\n/** @ignore */\ntype ThroughAsyncIterable<T extends DataType = any, TNull = any> = (source: Iterable<T['TValue'] | TNull> | AsyncIterable<T['TValue'] | TNull>) => AsyncIterableIterator<V<T>>;\n\n/** @ignore */\nfunction throughAsyncIterable<T extends DataType = any, TNull = any>(options: IterableBuilderOptions<T, TNull>) {\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<T['TValue'] | TNull> | AsyncIterable<T['TValue'] | TNull>) {\n let numChunks = 0;\n const builder = Builder.new(options);\n for await (const value of source) {\n if (builder.append(value)[sizeProperty] >= highWaterMark) {\n ++numChunks && (yield builder.toVector());\n }\n }\n if (builder.finish().length > 0 || numChunks === 0) {\n yield builder.toVector();\n }\n } as ThroughAsyncIterable<T, TNull>;\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<TNull = any> extends Builder<Bool, TNull> {\n constructor(options: BuilderOptions<Bool, TNull>) {\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<TNull = any> extends Builder<Null, TNull> {\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<T extends Date_ = Date_, TNull = any> extends FixedWidthBuilder<T, TNull> {}\n/** @ignore */\nexport class DateDayBuilder<TNull = any> extends DateBuilder<DateDay, TNull> {}\n/** @ignore */\nexport class DateMillisecondBuilder<TNull = any> extends DateBuilder<DateMillisecond, TNull> {}\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<TNull = any> extends FixedWidthBuilder<Decimal, TNull> {}\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<T extends DataType = any, TNull = any> extends BuilderOptions<T, TNull> {\n dictionaryHashFunction?: DictionaryHashFunction;\n}\n\n/** @ignore */\nexport class DictionaryBuilder<T extends Dictionary, TNull = any> extends Builder<T, TNull> {\n\n protected _dictionaryOffset: number;\n protected _dictionary?: Vector<T['dictionary']>;\n protected _keysToIndices: { [key: string]: number };\n public readonly indices: IntBuilder<T['indices']>;\n public readonly dictionary: Builder<T['dictionary']>;\n\n constructor({ 'type': type, 'nullValues': nulls, 'dictionaryHashFunction': hashFn }: DictionaryBuilderOptions<T, TNull>) {\n super({ type: new Dictionary(type.dictionary, type.indices, type.id, type.isOrdered) as T });\n this._nulls = <any> null;\n this._dictionaryOffset = 0;\n this._keysToIndices = Object.create(null);\n this.indices = Builder.new({ 'type': this.type.indices, 'nullValues': nulls }) as IntBuilder<T['indices']>;\n this.dictionary = Builder.new({ 'type': this.type.dictionary, 'nullValues': null }) as Builder<T['dictionary']>;\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 const keysToIndices = this._keysToIndices;\n const key = this.valueToKey(value);\n let idx = keysToIndices[key];\n if (idx === undefined) {\n keysToIndices[key] = idx = this._dictionaryOffset + this.dictionary.append(value).length - 1;\n }\n return this.indices.setValue(index, idx);\n }\n 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<T['dictionary']>;\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<TNull = any> extends FixedWidthBuilder<FixedSizeBinary, TNull> {}\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 const expo = (h & 0x7C00) >> 10;\n const sigf = (h & 0x03FF) / 1024;\n const sign = (-1) ** ((h & 0x8000) >> 15);\n switch (expo) {\n case 0x1F: return sign * (sigf ? NaN : 1 / 0);\n case 0x00: return sign * (sigf ? 6.103515625e-5 * sigf : 0);\n }\n return sign * (2 ** (expo - 15)) * (1 + sigf);\n}\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 const 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<T extends Float = Float, TNull = any> extends FixedWidthBuilder<T, TNull> {}\n\n/** @ignore */\nexport class Float16Builder<TNull = any> extends FloatBuilder<Float16, TNull> {\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<TNull = any> extends FloatBuilder<Float32, TNull> {\n public setValue(index: number, value: number) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Float64Builder<TNull = any> extends FloatBuilder<Float64, TNull> {\n public setValue(index: number, value: number) {\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 { 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<T extends BN<BigNumArray>>(this: T) { return `\"${bignumToString(this)}\"`; };\nBigNum.prototype.valueOf = function<T extends BN<BigNumArray>>(this: T) { return bignumToNumber(this); };\nBigNum.prototype.toString = function<T extends BN<BigNumArray>>(this: T) { return bignumToString(this); };\nBigNum.prototype[Symbol.toPrimitive] = function<T extends BN<BigNumArray>>(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 // @ts-ignore\n return bignumToString(this);\n};\n\n/** @ignore */\ntype TypedArrayConstructorArgs =\n [number | void] |\n [Iterable<number> | Iterable<bigint>] |\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<T extends BN<BigNumArray>>(bn: T) {\n const { buffer, byteOffset, length, 'signed': signed } = bn;\n const words = new Int32Array(buffer, byteOffset, length);\n let number = 0, i = 0;\n const n = words.length;\n let hi, lo;\n while (i < n) {\n lo = words[i++];\n hi = words[i++];\n signed || (hi = hi >>> 0);\n number += (lo >>> 0) + (hi * (i ** 32));\n }\n return number;\n}\n\n/** @ignore */\nexport let bignumToString: { <T extends BN<BigNumArray>>(a: T): string };\n/** @ignore */\nexport let bignumToBigInt: { <T extends BN<BigNumArray>>(a: T): bigint };\n\nif (!BigIntAvailable) {\n bignumToString = decimalToString;\n bignumToBigInt = <any> bignumToString;\n} else {\n bignumToBigInt = (<T extends BN<BigNumArray>>(a: T) => a.byteLength === 8 ? new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0] : <any>decimalToString(a));\n bignumToString = (<T extends BN<BigNumArray>>(a: T) => a.byteLength === 8 ? `${new a['BigIntArray'](a.buffer, a.byteOffset, 1)[0]}` : decimalToString(a));\n}\n\n/** @ignore */\nfunction decimalToString<T extends BN<BigNumArray>>(a: T) {\n let digits = '';\n const base64 = new Uint32Array(2);\n let base32 = new Uint16Array(a.buffer, a.byteOffset, a.byteLength / 2);\n const checks = new Uint32Array((base32 = new Uint16Array(base32).reverse()).buffer);\n let i = -1;\n const n = base32.length - 1;\n do {\n for (base64[0] = base32[i = 0]; i < n;) {\n base32[i++] = base64[1] = base64[0] / 10;\n base64[0] = ((base64[0] - base64[1] * 10) << 16) + base32[i];\n }\n base32[i] = base64[1] = base64[0] / 10;\n base64[0] = base64[0] - base64[1] * 10;\n digits = `${base64[0]}${digits}`;\n } while (checks[0] || checks[1] || checks[2] || checks[3]);\n return digits ? digits : `0`;\n}\n\n/** @ignore */\nexport class BN<T extends BigNumArray> {\n /** @nocollapse */\n public static new<T extends BigNumArray>(num: T, isSigned?: boolean): (T & BN<T>) {\n switch (isSigned) {\n case true: return new (<any> SignedBigNum)(num) as (T & BN<T>);\n case false: return new (<any> UnsignedBigNum)(num) as (T & BN<T>);\n }\n switch (num.constructor) {\n case Int8Array:\n case Int16Array:\n case Int32Array:\n case BigInt64Array:\n return new (<any> SignedBigNum)(num) as (T & BN<T>);\n }\n if (num.byteLength === 16) {\n return new (<any> DecimalBigNum)(num) as (T & BN<T>);\n }\n return new (<any> UnsignedBigNum)(num) as (T & BN<T>);\n }\n /** @nocollapse */\n public static signed<T extends IntArray>(num: T): (T & BN<T>) {\n return new (<any> SignedBigNum)(num) as (T & BN<T>);\n }\n /** @nocollapse */\n public static unsigned<T extends UintArray>(num: T): (T & BN<T>) {\n return new (<any> UnsignedBigNum)(num) as (T & BN<T>);\n }\n /** @nocollapse */\n public static decimal<T extends UintArray>(num: T): (T & BN<T>) {\n return new (<any> DecimalBigNum)(num) as (T & BN<T>);\n }\n constructor(num: T, isSigned?: boolean) {\n return BN.new(num, isSigned) as any;\n }\n}\n\n/** @ignore */\nexport interface BN<T extends BigNumArray> extends TypedArrayLike<T> {\n\n new<T extends ArrayBufferViewInput>(buffer: T, signed?: boolean): T;\n\n readonly signed: boolean;\n readonly TypedArray: TypedArrayConstructor<TypedArray>;\n readonly BigIntArray: BigIntArrayConstructor<BigIntArray>;\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<T extends BigNumArray> {\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<U>(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<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: T) => U, initialValue: U): U;\n reverse(): T;\n set(array: ArrayLike<number>, 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<number>;\n values(): IterableIterator<number>;\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<T extends Int = Int, TNull = any> extends FixedWidthBuilder<T, TNull> {\n public setValue(index: number, value: T['TValue']) {\n this._values.set(index, value);\n }\n}\n\n/** @ignore */\nexport class Int8Builder<TNull = any> extends IntBuilder<Int8, TNull> {}\n/** @ignore */\nexport class Int16Builder<TNull = any> extends IntBuilder<Int16, TNull> {}\n/** @ignore */\nexport class Int32Builder<TNull = any> extends IntBuilder<Int32, TNull> {}\n/** @ignore */\nexport class Int64Builder<TNull = any> extends IntBuilder<Int64, TNull> {\n protected _values: WideBufferBuilder<Int32Array, BigInt64Array>;\n constructor(options: BuilderOptions<Int64, TNull>) {\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<TNull = any> extends IntBuilder<Uint8, TNull> {}\n/** @ignore */\nexport class Uint16Builder<TNull = any> extends IntBuilder<Uint16, TNull> {}\n/** @ignore */\nexport class Uint32Builder<TNull = any> extends IntBuilder<Uint32, TNull> {}\n/** @ignore */\nexport class Uint64Builder<TNull = any> extends IntBuilder<Uint64, TNull> {\n protected _values: WideBufferBuilder<Uint32Array, BigUint64Array>;\n constructor(options: BuilderOptions<Uint64, TNull>) {\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<T extends Time = Time, TNull = any> extends FixedWidthBuilder<T, TNull> {}\n/** @ignore */\nexport class TimeSecondBuilder<TNull = any> extends TimeBuilder<TimeSecond, TNull> {}\n/** @ignore */\nexport class TimeMillisecondBuilder<TNull = any> extends TimeBuilder<TimeMillisecond, TNull> {}\n/** @ignore */\nexport class TimeMicrosecondBuilder<TNull = any> extends TimeBuilder<TimeMicrosecond, TNull> {}\n/** @ignore */\nexport class TimeNanosecondBuilder<TNull = any> extends TimeBuilder<TimeNanosecond, TNull> {}\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<T extends Timestamp = Timestamp, TNull = any> extends FixedWidthBuilder<T, TNull> {}\n/** @ignore */\nexport class TimestampSecondBuilder<TNull = any> extends TimestampBuilder<TimestampSecond, TNull> {}\n/** @ignore */\nexport class TimestampMillisecondBuilder<TNull = any> extends TimestampBuilder<TimestampMillisecond, TNull> {}\n/** @ignore */\nexport class TimestampMicrosecondBuilder<TNull = any> extends TimestampBuilder<TimestampMicrosecond, TNull> {}\n/** @ignore */\nexport class TimestampNanosecondBuilder<TNull = any> extends TimestampBuilder<TimestampNanosecond, TNull> {}\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<T extends Interval = Interval, TNull = any> extends FixedWidthBuilder<T, TNull> {}\n/** @ignore */\nexport class IntervalDayTimeBuilder<TNull = any> extends IntervalBuilder<IntervalDayTime, TNull> {}\n/** @ignore */\nexport class IntervalYearMonthBuilder<TNull = any> extends IntervalBuilder<IntervalYearMonth, TNull> {}\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<TNull = any> extends VariableWidthBuilder<Binary, TNull> {\n constructor(opts: BuilderOptions<Binary, TNull>) {\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<number, Uint8Array | undefined>, 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<TNull = any> extends VariableWidthBuilder<Utf8, TNull> {\n constructor(opts: BuilderOptions<Utf8, TNull>) {\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<number, Uint8Array | undefined>, 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<T extends DataType = any, TNull = any> {\n protected _values!: ArrayLike<T['TValue'] | TNull>;\n public get length() { return this._values.length; }\n public get(index: number) { return this._values[index]; }\n public clear() { this._values = <any> null; return this; }\n public bind(values: Vector<T> | ArrayLike<T['TValue'] | TNull>) {\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 { DataType } from './type';\n\nexport class Schema<T extends { [key: string]: DataType } = any> {\n\n public readonly fields: Field<T[keyof T]>[];\n public readonly metadata: Map<string, string>;\n public readonly dictionaries: Map<number, DataType>;\n\n constructor(fields: Field[] = [],\n metadata?: Map<string, string> | null,\n dictionaries?: Map<number, DataType> | null) {\n this.fields = (fields || []) as Field<T[keyof T]>[];\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 select<K extends keyof T = any>(...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<K extends T[keyof T] = any>(...columnIndices: number[]) {\n return new Schema<{ [key: string]: K }>(columnIndices.map((i) => this.fields[i]).filter(Boolean), this.metadata);\n }\n\n public assign<R extends { [key: string]: DataType } = any>(schema: Schema<R>): Schema<T & R>;\n public assign<R extends { [key: string]: DataType } = any>(...fields: (Field<R[keyof R]> | Field<R[keyof R]>[])[]): Schema<T & R>;\n public assign<R extends { [key: string]: DataType } = any>(...args: (Schema<R> | Field<R[keyof R]> | Field<R[keyof R]>[])[]) {\n\n const other = (args[0] instanceof Schema\n ? args[0] as Schema<R>\n : Array.isArray(args[0])\n ? new Schema<R>(<Field<R[keyof R]>[]> args[0])\n : new Schema<R>(<Field<R[keyof R]>[]> 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<T & R>(\n [...curFields, ...newFields], metadata,\n new Map([...this.dictionaries, ...newDictionaries])\n );\n }\n}\n\nexport class Field<T extends DataType = any> {\n\n public static new<T extends DataType = any>(props: { name: string | number; type: T; nullable?: boolean; metadata?: Map<string, string> | null }): Field<T>;\n public static new<T extends DataType = any>(name: string | number | Field<T>, type: T, nullable?: boolean, metadata?: Map<string, string> | null): Field<T>;\n /** @nocollapse */\n public static new<T extends DataType = any>(...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<T>(`${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<string, string>;\n\n constructor(name: string, type: T, nullable = false, metadata?: Map<string, string> | 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 clone<R extends DataType = T>(props: { name?: string | number; type?: R; nullable?: boolean; metadata?: Map<string, string> | null }): Field<R>;\n public clone<R extends DataType = T>(name?: string | number | Field<T>, type?: R, nullable?: boolean, metadata?: Map<string, string> | null): Field<R>;\n public clone<R extends DataType = T>(...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<R>(name, type, nullable, metadata);\n }\n}\n\n/** @ignore */\nfunction mergeMaps<TKey, TVal>(m1?: Map<TKey, TVal> | null, m2?: Map<TKey, TVal> | null): Map<TKey, TVal> {\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n\n/** @ignore */\nfunction generateDictionaryMap(fields: Field[], dictionaries = new Map<number, DataType>()): Map<number, DataType> {\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<T extends DataType = any, TNull = any> extends VariableWidthBuilder<List<T>, TNull> {\n protected _run = new Run<T, TNull>();\n protected _offsets: OffsetsBufferBuilder;\n constructor(opts: BuilderOptions<List<T>, TNull>) {\n super(opts);\n this._offsets = new OffsetsBufferBuilder();\n }\n public addChild(child: Builder<T>, 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<number, T['TValue'] | undefined>) {\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<T extends DataType = any, TNull = any> extends Builder<FixedSizeList<T>, TNull> {\n protected _run = new Run<T, TNull>();\n public setValue(index: number, value: T['TValue']) {\n super.setValue(index, this._run.bind(value));\n }\n public addChild(child: Builder<T>, 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<K extends DataType = any, V extends DataType = any> = Map_<K, V>['TValue'];\n/** @ignore */ type MapValues<K extends DataType = any, V extends DataType = any> = Map<number, MapValue<K, V> | undefined>;\n/** @ignore */ type MapValueExt<K extends DataType = any, V extends DataType = any> = MapValue<K, V> | { [key: string]: V } | { [key: number]: V } ;\n\n/** @ignore */\nexport class MapBuilder<K extends DataType = any, V extends DataType = any, TNull = any> extends VariableWidthBuilder<Map_<K, V>, TNull> {\n\n protected _pending: MapValues<K, V> | undefined;\n public set(index: number, value: MapValueExt<K, V> | TNull) {\n return super.set(index, value as MapValue<K, V> | TNull);\n }\n\n public setValue(index: number, value: MapValueExt<K, V>) {\n value = value instanceof Map ? value : new Map(Object.entries(value));\n const pending = this._pending || (this._pending = new Map() as MapValues<K, V>);\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<Struct<{ key: K; value: V }>>, 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_<K, V>(new Field(name, child.type, true), this.type.keysSorted);\n return this.numChildren - 1;\n }\n\n protected _flushPending(pending: MapValues<K, V>) {\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<T extends { [key: string]: DataType } = any, TNull = any> extends Builder<Struct<T>, 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<T extends Union = any, TNull = any> extends BuilderOptions<T, TNull> {\n valueToChildTypeId?: (builder: UnionBuilder<T, TNull>, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport abstract class UnionBuilder<T extends Union, TNull = any> extends Builder<T, TNull> {\n\n protected _typeIds: DataBufferBuilder<Int8Array>;\n\n constructor(options: UnionBuilderOptions<T, TNull>) {\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 public setValue(index: number, value: T['TValue'], childTypeId?: number) {\n this._typeIds.set(index, childTypeId!);\n super.setValue(index, value);\n }\n\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 = <T> new Union(mode, [...typeIds, childTypeId], fields);\n return childTypeId;\n }\n\n /** @ignore */\n // @ts-ignore\n protected _valueToChildTypeId(builder: UnionBuilder<T, TNull>, 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<T extends SparseUnion, TNull = any> extends UnionBuilder<T, TNull> {}\n/** @ignore */\nexport class DenseUnionBuilder<T extends DenseUnion, TNull = any> extends UnionBuilder<T, TNull> {\n\n protected _offsets: DataBufferBuilder<Int32Array>;\n\n constructor(options: UnionBuilderOptions<T, TNull>) {\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 { 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<T extends DataType>(visitor: Visitor, node: any, throwIfNotFound = true) {\n let fn: any = null;\n let dtype: T['TType'] = Type.NONE;\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<T extends DataType>(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 // @ts-ignore\n return Type.Int;\n }\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 // @ts-ignore\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 // @ts-ignore\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 // @ts-ignore\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 // @ts-ignore\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 // @ts-ignore\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 // @ts-ignore\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 { 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<T extends VectorType>(node: T, index: number, value: T['TValue']): void;\n visitMany<T extends VectorType>(nodes: T[], indices: number[], values: T['TValue'][]): void[];\n getVisitFn<T extends Type>(node: T): (vector: VectorType<T>, index: number, value: VectorType<T>['TValue']) => void;\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): (vector: VectorType<T>, index: number, value: VectorType<T>['TValue']) => void;\n visitNull <T extends Null> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitBool <T extends Bool> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitInt <T extends Int> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitInt8 <T extends Int8> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitInt16 <T extends Int16> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitInt32 <T extends Int32> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitInt64 <T extends Int64> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitUint8 <T extends Uint8> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitUint16 <T extends Uint16> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitUint32 <T extends Uint32> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitUint64 <T extends Uint64> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitFloat <T extends Float> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitFloat16 <T extends Float16> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitFloat32 <T extends Float32> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitFloat64 <T extends Float64> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitUtf8 <T extends Utf8> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitBinary <T extends Binary> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitFixedSizeBinary <T extends FixedSizeBinary> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitDate <T extends Date_> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitDateDay <T extends DateDay> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitDateMillisecond <T extends DateMillisecond> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimestamp <T extends Timestamp> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimestampSecond <T extends TimestampSecond> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimestampMillisecond <T extends TimestampMillisecond>(vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimestampMicrosecond <T extends TimestampMicrosecond>(vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimestampNanosecond <T extends TimestampNanosecond> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTime <T extends Time> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimeSecond <T extends TimeSecond> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimeMillisecond <T extends TimeMillisecond> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimeMicrosecond <T extends TimeMicrosecond> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitTimeNanosecond <T extends TimeNanosecond> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitDecimal <T extends Decimal> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitList <T extends List> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitStruct <T extends Struct> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitUnion <T extends Union> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitDenseUnion <T extends DenseUnion> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitSparseUnion <T extends SparseUnion> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitDictionary <T extends Dictionary> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitInterval <T extends Interval> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitIntervalDayTime <T extends IntervalDayTime> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitIntervalYearMonth <T extends IntervalYearMonth> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitFixedSizeList <T extends FixedSizeList> (vector: VectorType<T>, index: number, value: T['TValue']): void;\n visitMap <T extends Map_> (vector: VectorType<T>, 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 = <T extends Bool>({ offset, values }: VectorType<T>, 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 = <T extends DateDay> ({ values }: VectorType<T>, index: number, value: T['TValue']): void => { setEpochMsToDays(values, index, value.valueOf()); };\n/** @ignore */\nconst setDateMillisecond = <T extends DateMillisecond>({ values }: VectorType<T>, index: number, value: T['TValue']): void => { setEpochMsToMillisecondsLong(values, index * 2, value.valueOf()); };\n/** @ignore */\nconst setNumeric = <T extends Numeric1X> ({ stride, values }: VectorType<T>, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setFloat16 = <T extends Float16> ({ stride, values }: VectorType<T>, index: number, value: T['TValue']): void => { values[stride * index] = float64ToUint16(value); };\n/** @ignore */\nconst setNumericX2 = <T extends Numeric2X> (vector: VectorType<T>, 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<T['TArray']>(ArrayType, val);\n vector.values.set(long.subarray(0, stride), stride * index);\n }\n }\n};\n/** @ignore */\nconst setFixedSizeBinary = <T extends FixedSizeBinary>({ stride, values }: VectorType<T>, index: number, value: T['TValue']): void => { values.set(value.subarray(0, stride), stride * index); };\n\n/** @ignore */\nconst setBinary = <T extends Binary>({ values, valueOffsets }: VectorType<T>, index: number, value: T['TValue']) => setVariableWidthBytes(values, valueOffsets, index, value);\n/** @ignore */\nconst setUtf8 = <T extends Utf8>({ values, valueOffsets }: VectorType<T>, index: number, value: T['TValue']) => {\n setVariableWidthBytes(values, valueOffsets, index, encodeUtf8(value));\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setInt = <T extends Int>(vector: VectorType<T>, index: number, value: T['TValue']): void => {\n vector.type.bitWidth < 64\n ? setNumeric(vector as VectorType<Numeric1X>, index, value as Numeric1X['TValue'])\n : setNumericX2(vector as VectorType<Numeric2X>, index, value as Numeric2X['TValue']);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst setFloat = <T extends Float>(vector: VectorType<T>, index: number, value: T['TValue']): void => {\n vector.type.precision !== Precision.HALF\n ? setNumeric(vector as VectorType<Numeric1X>, index, value)\n : setFloat16(vector as VectorType<Float16>, index, value);\n};\n\n/* istanbul ignore next */\nconst setDate = <T extends Date_> (vector: VectorType<T>, index: number, value: T['TValue']): void => {\n vector.type.unit === DateUnit.DAY\n ? setDateDay(vector as VectorType<DateDay>, index, value)\n : setDateMillisecond(vector as VectorType<DateMillisecond>, index, value);\n};\n\n/** @ignore */\nconst setTimestampSecond = <T extends TimestampSecond> ({ values }: VectorType<T>, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value / 1000);\n/** @ignore */\nconst setTimestampMillisecond = <T extends TimestampMillisecond>({ values }: VectorType<T>, index: number, value: T['TValue']): void => setEpochMsToMillisecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampMicrosecond = <T extends TimestampMicrosecond>({ values }: VectorType<T>, index: number, value: T['TValue']): void => setEpochMsToMicrosecondsLong(values, index * 2, value);\n/** @ignore */\nconst setTimestampNanosecond = <T extends TimestampNanosecond> ({ values }: VectorType<T>, index: number, value: T['TValue']): void => setEpochMsToNanosecondsLong(values, index * 2, value);\n/* istanbul ignore next */\n/** @ignore */\nconst setTimestamp = <T extends Timestamp>(vector: VectorType<T>, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimestampSecond(vector as VectorType<TimestampSecond>, index, value);\n case TimeUnit.MILLISECOND: return setTimestampMillisecond(vector as VectorType<TimestampMillisecond>, index, value);\n case TimeUnit.MICROSECOND: return setTimestampMicrosecond(vector as VectorType<TimestampMicrosecond>, index, value);\n case TimeUnit.NANOSECOND: return setTimestampNanosecond(vector as VectorType<TimestampNanosecond>, index, value);\n }\n};\n\n/** @ignore */\nconst setTimeSecond = <T extends TimeSecond> ({ values, stride }: VectorType<T>, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMillisecond = <T extends TimeMillisecond>({ values, stride }: VectorType<T>, index: number, value: T['TValue']): void => { values[stride * index] = value; };\n/** @ignore */\nconst setTimeMicrosecond = <T extends TimeMicrosecond>({ values }: VectorType<T>, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setTimeNanosecond = <T extends TimeNanosecond> ({ values }: VectorType<T>, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/* istanbul ignore next */\n/** @ignore */\nconst setTime = <T extends Time>(vector: VectorType<T>, index: number, value: T['TValue']): void => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return setTimeSecond(vector as VectorType<TimeSecond>, index, value as TimeSecond['TValue']);\n case TimeUnit.MILLISECOND: return setTimeMillisecond(vector as VectorType<TimeMillisecond>, index, value as TimeMillisecond['TValue']);\n case TimeUnit.MICROSECOND: return setTimeMicrosecond(vector as VectorType<TimeMicrosecond>, index, value as TimeMicrosecond['TValue']);\n case TimeUnit.NANOSECOND: return setTimeNanosecond(vector as VectorType<TimeNanosecond>, index, value as TimeNanosecond['TValue']);\n }\n};\n\n/** @ignore */\nconst setDecimal = <T extends Decimal>({ values }: VectorType<T>, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 4), 4 * index); };\n\n/** @ignore */\nconst setList = <T extends List>(vector: VectorType<T>, 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 = <T extends Map_>(vector: VectorType<T>, 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<string, any>) => (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 = <T extends Struct>(vector: VectorType<T>, 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<Union> | VectorType<DenseUnion> | VectorType<SparseUnion>\n>(vector: V, index: number, value: V['TValue']) => {\n vector.type.mode === UnionMode.Dense ?\n setDenseUnion(vector as VectorType<DenseUnion>, index, value) :\n setSparseUnion(vector as VectorType<SparseUnion>, index, value);\n};\n\n/** @ignore */\nconst setDenseUnion = <T extends DenseUnion>(vector: VectorType<T>, 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 = <T extends SparseUnion>(vector: VectorType<T>, 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 = <T extends Dictionary>(vector: VectorType<T>, 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 = <T extends Interval>(vector: VectorType<T>, index: number, value: T['TValue']): void => {\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? setIntervalDayTime(vector as VectorType<IntervalDayTime>, index, value)\n : setIntervalYearMonth(vector as VectorType<IntervalYearMonth>, index, value);\n};\n\n/** @ignore */\nconst setIntervalDayTime = <T extends IntervalDayTime>({ values }: VectorType<T>, index: number, value: T['TValue']): void => { values.set(value.subarray(0, 2), 2 * index); };\n/** @ignore */\nconst setIntervalYearMonth = <T extends IntervalYearMonth>({ values }: VectorType<T>, index: number, value: T['TValue']): void => { values[index] = (value[0] * 12) + (value[1] % 12); };\n\n/** @ignore */\nconst setFixedSizeList = <T extends FixedSizeList>(vector: VectorType<T>, 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", "// 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<T extends Type>(type: T): BuilderCtor<T>;\n visitMany<T extends Type>(types: T[]): BuilderCtor<T>[];\n getVisitFn<T extends Type>(type: T): () => BuilderCtor<T>;\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): () => BuilderCtor<T>;\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<T extends DataType = any, TNull = any>(options: BuilderOptions<T, TNull>): B<T, TNull> {\n\n const type = options.type;\n const builder = new (getBuilderConstructor.getVisitFn<T>(type)())(options) as Builder<T, TNull>;\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<T, TNull>;\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", "// automatically generated by the FlatBuffers compiler, do not modify\n\nimport { flatbuffers } from 'flatbuffers';\nimport * as NS13596923344997147894 from './Schema';\n/**\n * ----------------------------------------------------------------------\n * Arrow File metadata\n *\n *\n * @constructor\n */\nexport 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 * @param flatbuffers.ByteBuffer bb\n * @param Footer= obj\n * @returns Footer\n */\n static getSizePrefixedRootAsFooter(bb: flatbuffers.ByteBuffer, obj?: Footer): Footer {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Footer()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n }\n\n /**\n * @returns MetadataVersion\n */\n version(): NS13596923344997147894.MetadataVersion {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? /** */ (this.bb!.readInt16(this.bb_pos + offset)) : NS13596923344997147894.MetadataVersion.V1;\n }\n\n /**\n * @param Schema= obj\n * @returns Schema|null\n */\n schema(obj?: NS13596923344997147894.Schema): NS13596923344997147894.Schema | null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new NS13596923344997147894.Schema()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n }\n\n /**\n * @param number index\n * @param Block= obj\n * @returns Block\n */\n dictionaries(index: number, obj?: Block): Block | null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new Block()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n dictionariesLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param number index\n * @param Block= obj\n * @returns Block\n */\n recordBatches(index: number, obj?: Block): Block | null {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? (obj || new Block()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 24, this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n recordBatchesLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * User-defined metadata\n *\n * @param number index\n * @param KeyValue= obj\n * @returns KeyValue\n */\n customMetadata(index: number, obj?: NS13596923344997147894.KeyValue): NS13596923344997147894.KeyValue | null {\n const offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? (obj || new NS13596923344997147894.KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n }\n\n /**\n * @returns number\n */\n customMetadataLength(): number {\n const offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n }\n\n /**\n * @param flatbuffers.Builder builder\n */\n static startFooter(builder: flatbuffers.Builder) {\n builder.startObject(5);\n }\n\n /**\n * @param flatbuffers.Builder builder\n * @param MetadataVersion version\n */\n static addVersion(builder: flatbuffers.Builder, version: NS13596923344997147894.MetadataVersion) {\n builder.addFieldInt16(0, version, NS13596923344997147894.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 * @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.<flatbuffers.Offset> 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 endFooter(builder: flatbuffers.Builder): flatbuffers.Offset {\n const 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 /**\n * @param flatbuffers.Builder builder\n * @param flatbuffers.Offset offset\n */\n static finishSizePrefixedFooterBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset) {\n builder.finish(offset, undefined, true);\n }\n\n static createFooter(builder: flatbuffers.Builder, version: NS13596923344997147894.MetadataVersion, schemaOffset: flatbuffers.Offset, dictionariesOffset: flatbuffers.Offset, recordBatchesOffset: flatbuffers.Offset, customMetadataOffset: 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 Footer.addCustomMetadata(builder, customMetadataOffset);\n return Footer.endFooter(builder);\n }\n}\n/**\n * @constructor\n */\nexport 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 metadata).\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", "// 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/* eslint-disable @typescript-eslint/naming-convention */\n\nimport {\n Block as _Block,\n Footer as _Footer\n} from '../../fb/File';\n\nimport { flatbuffers } from 'flatbuffers';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\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 protected _recordBatches!: FileBlock[];\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<FileBlock> {\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<FileBlock> {\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<T> = Writable<T> | WritableStream<T> | NodeJS.WritableStream | null;\n/** @ignore */\nexport type ReadableSource<T> = Readable<T> | PromiseLike<T> | AsyncIterable<T> | ReadableStream<T> | NodeJS.ReadableStream | null;\n\n/** @ignore */\nexport class AsyncByteQueue<T extends ArrayBufferViewInput = Uint8Array> extends AsyncQueue<Uint8Array, T> {\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<string>;\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<Uint8Array>;\n public toUint8Array(sync = false) {\n return sync ? joinUint8Arrays(this._values as any[])[0] : (async () => {\n const buffers = [];\n let byteLength = 0;\n for await (const chunk of this) {\n buffers.push(chunk);\n byteLength += chunk.byteLength;\n }\n return joinUint8Arrays(buffers, byteLength)[0];\n })();\n }\n}\n\n/** @ignore */\nexport class ByteStream implements IterableIterator<Uint8Array> {\n private source!: ByteStreamSource<Uint8Array>;\n constructor(source?: Iterable<ArrayBufferViewInput> | 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<Uint8Array>, AsyncIterableIterator<Uint8Array> {\n private source!: AsyncByteStreamSource<Uint8Array>;\n constructor(source?: PromiseLike<ArrayBufferViewInput> | Response | ReadableStream<ArrayBufferViewInput> | NodeJS.ReadableStream | AsyncIterable<ArrayBufferViewInput> | Iterable<ArrayBufferViewInput>) {\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<ArrayBufferViewInput>(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<ArrayBufferViewInput>(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromIterable(source));\n } else if (isPromise<ArrayBufferViewInput>(source)) {\n this.source = new AsyncByteStreamSource(streamAdapters.fromAsyncIterable(source));\n } else if (isAsyncIterable<ArrayBufferViewInput>(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<void> { 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 */\ntype ByteStreamSourceIterator<T> = Generator<T, null, { cmd: 'peek' | 'read'; size?: number | null }>;\n/** @ignore */\ntype AsyncByteStreamSourceIterator<T> = AsyncGenerator<T, null, { cmd: 'peek' | 'read'; size?: number | null }>;\n\n/** @ignore */\nclass ByteStreamSource<T> {\n constructor(protected source: ByteStreamSourceIterator<T>) {}\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<T> implements Readable<T> {\n\n private _closedPromise: Promise<void>;\n private _closedPromiseResolve?: (value?: any) => void;\n constructor (protected source: ByteStreamSourceIterator<T> | AsyncByteStreamSourceIterator<T>) {\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<void> { return this._closedPromise; }\n public async read(size?: number | null): Promise<T | null> { return (await this.next(size, 'read')).value; }\n public async peek(size?: number | null): Promise<T | null> { 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 = 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 public size!: number;\n public position = 0;\n public _pending?: Promise<void>;\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 const end = Math.min(size, pos + Math.min(size - pos, nBytes));\n const buffer = new Uint8Array(Math.max(0, (this.position = end) - pos));\n while ((pos += bytesRead) < end && (offset += bytesRead) < buffer.byteLength) {\n ({ bytesRead } = await file.read(buffer, offset, buffer.byteLength - offset, pos));\n }\n return buffer;\n }\n return null;\n }\n 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 const out = new Uint64(out_buffer);\n for (let posn = 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Uint64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Uint64(new Uint32Array([kPowersOfTen[group], 0]));\n\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 const 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 const 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 const out = new Int64(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int64(new Uint32Array([parseInt(str.substr(posn, group), 10), 0]));\n const multiple = new Int64(new Uint32Array([kPowersOfTen[group], 0]));\n\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 const 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 const 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 const 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 const 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 const sums = new Uint32Array(4);\n sums[3] = (this.buffer[3] + other.buffer[3]) >>> 0;\n sums[2] = (this.buffer[2] + other.buffer[2]) >>> 0;\n sums[1] = (this.buffer[1] + other.buffer[1]) >>> 0;\n sums[0] = (this.buffer[0] + other.buffer[0]) >>> 0;\n\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 const 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 const 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 const out = new Int128(out_buffer);\n for (let posn = negate ? 1 : 0; posn < length;) {\n const group = kInt32DecimalDigits < length - posn ?\n kInt32DecimalDigits : length - posn;\n const chunk = new Int128(new Uint32Array([parseInt(str.substr(posn, group), 10), 0, 0, 0]));\n const multiple = new Int128(new Uint32Array([kPowersOfTen[group], 0, 0, 0]));\n\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<T extends DataType>(node: Field<T> | T): Data<T>;\n visitMany<T extends DataType>(nodes: (Field<T> | T)[]): Data<T>[];\n}\n\n/** @ignore */\nexport class VectorLoader extends Visitor {\n private bytes: Uint8Array;\n private nodes: FieldNode[];\n private nodesIndex = -1;\n private buffers: BufferRegion[];\n private buffersIndex = -1;\n private dictionaries: Map<number, Vector<any>>;\n constructor(bytes: Uint8Array, nodes: FieldNode[], buffers: BufferRegion[], dictionaries: Map<number, Vector<any>>) {\n super();\n this.bytes = bytes;\n this.nodes = nodes;\n this.buffers = buffers;\n this.dictionaries = dictionaries;\n }\n\n public visit<T extends DataType>(node: Field<T> | T): Data<T> {\n return super.visit(node instanceof Field ? node.type : node);\n }\n\n public visitNull <T extends type.Null> (type: T, { length, } = this.nextFieldNode()) { return Data.Null(type, 0, length); }\n public visitBool <T extends type.Bool> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Bool(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitInt <T extends type.Int> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Int(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFloat <T extends type.Float> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Float(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitUtf8 <T extends type.Utf8> (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 <T extends type.Binary> (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 <T extends type.FixedSizeBinary> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.FixedSizeBinary(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDate <T extends type.Date_> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Date(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTimestamp <T extends type.Timestamp> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Timestamp(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitTime <T extends type.Time> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Time(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitDecimal <T extends type.Decimal> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Decimal(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitList <T extends type.List> (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 <T extends type.Struct> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Struct(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.visitMany(type.children)); }\n public visitUnion <T extends type.Union> (type: T ) { return type.mode === UnionMode.Sparse ? this.visitSparseUnion(type as type.SparseUnion) : this.visitDenseUnion(type as type.DenseUnion); }\n public visitDenseUnion <T extends type.DenseUnion> (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 <T extends type.SparseUnion> (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 <T extends type.Dictionary> (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 <T extends type.Interval> (type: T, { length, nullCount } = this.nextFieldNode()) { return Data.Interval(type, 0, length, nullCount, this.readNullBitmap(type, nullCount), this.readData(type)); }\n public visitFixedSizeList <T extends type.FixedSizeList> (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 <T extends type.Map_> (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<T extends DataType>(type: T, nullCount: number, buffer = this.nextBufferRange()) {\n return nullCount > 0 && this.readData(type, buffer) || new Uint8Array(0);\n }\n protected readOffsets<T extends DataType>(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readTypeIds<T extends DataType>(type: T, buffer?: BufferRegion) { return this.readData(type, buffer); }\n protected readData<T extends DataType>(_type: T, { length, offset } = this.nextBufferRange()) {\n return this.bytes.subarray(offset, offset + length);\n }\n protected readDictionary<T extends type.Dictionary>(type: T): Vector<T['dictionary']> {\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<number, Vector<any>>) {\n super(new Uint8Array(0), nodes, buffers, dictionaries);\n this.sources = sources;\n }\n protected readNullBitmap<T extends DataType>(_type: T, nullCount: number, { offset } = this.nextBufferRange()) {\n return nullCount <= 0 ? new Uint8Array(0) : packBools(this.sources[offset]);\n }\n protected readOffsets<T extends DataType>(_type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(Int32Array, this.sources[offset]));\n }\n protected readTypeIds<T extends DataType>(type: T, { offset } = this.nextBufferRange()) {\n return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, this.sources[offset]));\n }\n protected readData<T extends DataType>(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 { 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<K extends PropertyKey = any, V = any> implements Map<K, V> {\n\n public readonly size: number;\n public readonly [Symbol.toStringTag]: string;\n\n protected [kRowIndex]: number;\n protected [kParent]: Vector<Struct>;\n protected [kKeyToIdx]: Map<K, number>;\n protected [kIdxToVal]: V[];\n\n constructor(parent: Vector<Struct>, numKeys: number) {\n this[kParent] = parent;\n this.size = numKeys;\n }\n\n public abstract keys(): IterableIterator<K>;\n public abstract values(): IterableIterator<V>;\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] = <any> 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<K>, vr: IteratorResult<V>;\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<K, V>) => 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<K, V>) => 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<K>, vr: IteratorResult<V>;\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<K extends DataType = any, V extends DataType = any> extends Row<K['TValue'], V['TValue'] | null> {\n constructor(slice: Vector<Struct<{ key: K; value: V }>>) {\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<T extends { [key: string]: DataType } = any> extends Row<keyof T, T[keyof T]['TValue'] | null> {\n constructor(parent: StructVector<T>) {\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<T>)[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 <T extends Row>(row: T) => {\n let idx = -1;\n const 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 Object.prototype.hasOwnProperty.call(row, key) || (desc.enumerable = true, Object.defineProperty(row, key, desc));\n Object.prototype.hasOwnProperty.call(row, idx) || (desc.enumerable = false, Object.defineProperty(row, idx, desc));\n }\n desc.get = desc.set = null;\n return row;\n };\n})();\n\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<Row> = {\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 <T extends Row>(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<T extends RangeLike> = (source: T, index: number) => any;\n/** @ignore */\ntype ClampRangeThen<T extends RangeLike> = (source: T, offset: number, length: number) => any;\n\nexport function clampIndex<T extends RangeLike>(source: T, index: number): number;\nexport function clampIndex<T extends RangeLike, N extends ClampThen<T> = ClampThen<T>>(source: T, index: number, then: N): ReturnType<N>;\n/** @ignore */\nexport function clampIndex<T extends RangeLike, N extends ClampThen<T> = ClampThen<T>>(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<T extends RangeLike>(source: T, begin: number | undefined, end: number | undefined): [number, number];\nexport function clampRange<T extends RangeLike, N extends ClampRangeThen<T> = ClampRangeThen<T>>(source: T, begin: number | undefined, end: number | undefined, then: N): ReturnType<N>;\n/** @ignore */\nexport function clampRange<T extends RangeLike, N extends ClampRangeThen<T> = ClampRangeThen<T>>(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 const { length: len = 0 } = source;\n let lhs = typeof begin !== 'number' ? 0 : begin;\n let rhs = typeof end !== 'number' ? len : end;\n // wrap around on negative start/end positions\n (lhs < 0) && (lhs = ((lhs % len) + len) % len);\n (rhs < 0) && (rhs = ((rhs % len) + len) % len);\n // ensure lhs <= rhs\n (rhs < lhs) && (tmp = lhs, lhs = rhs, rhs = tmp);\n // ensure rhs <= length\n (rhs > len) && (rhs = len);\n\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 const typeofSearch = typeof search;\n // Compare primitives\n if (typeofSearch !== 'object' || search === null) {\n // Compare NaN\n if (isNaNFast(search)) {\n return isNaNFast;\n }\n return typeofSearch !== 'bigint'\n ? (value: 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<any>) {\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<any, any>) {\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<any>) {\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<string>) {\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<any, any>, keys: Iterable<string>) {\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 const 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 { 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 = <T>(Ctor: any, vals: any[]) => _selectArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnArgs = <T extends { [key: string]: DataType }>(args: any[]) => {\n const [fields, values] = _selectFieldArgs<T>(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<T[keyof T]> :\n Column.new(fields[i], [] as Vector<T[keyof T]>[]));\n};\n\n/** @ignore */\nexport const selectFieldArgs = <T extends { [key: string]: DataType }>(args: any[]) => _selectFieldArgs<T>(args, [[], []]);\n/** @ignore */\nexport const selectChunkArgs = <T>(Ctor: any, vals: any[]) => _selectChunkArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectVectorChildrenArgs = <T extends Vector>(Ctor: RecordBatchCtor, vals: any[]) => _selectVectorChildrenArgs(Ctor, vals, [], 0) as T[];\n/** @ignore */\nexport const selectColumnChildrenArgs = <T extends Column>(Ctor: RecordBatchCtor, vals: any[]) => _selectColumnChildrenArgs(Ctor, vals, [], 0) as T[];\n\n/** @ignore */\nfunction _selectArgs<T>(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1;\n const n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectArgs(Ctor, value, res, j).length;\n } else if (value instanceof Ctor) { res[j++] = value; }\n }\n return res;\n}\n\n/** @ignore */\nfunction _selectChunkArgs<T>(Ctor: any, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1;\n const n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectChunkArgs(Ctor, value, res, j).length;\n } 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<T extends Vector>(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1;\n const n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectVectorChildrenArgs(Ctor, value, res, j).length;\n } 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<T extends Column>(Ctor: RecordBatchCtor, vals: any[], res: T[], idx: number) {\n let value: any, j = idx;\n let i = -1;\n const n = vals.length;\n while (++i < n) {\n if (isArray(value = vals[i])) {\n j = _selectColumnChildrenArgs(Ctor, value, res, j).length;\n } 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<T extends { [key: string]: DataType }>(vals: any[], ret: [Field<T[keyof T]>[], Vector<T[keyof T]>[]]): [Field<T[keyof T]>[], (T[keyof T] | Vector<T[keyof T]>)[]] {\n let keys: any[];\n let 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;\n const len = vals.length;\n let field: number | string | Field<T[keyof T]>;\n let val: Vector<T[keyof T]> | Data<T[keyof T]>;\n const [fields, values] = ret as [Field<T[keyof T]>[], 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<T[keyof T]>;\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<T[keyof T]>;\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 { 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 DataType> = T extends Dictionary ? Vector<T['dictionary']> : null | never;\n/** @ignore */\ntype ChunkedKeys<T extends DataType> = T extends Dictionary ? Vector<T['indices']> | Chunked<T['indices']> : null | never;\n\n/** @ignore */\nexport type SearchContinuation<T extends Chunked> = (column: T, chunkIndex: number, valueIndex: number) => any;\n\n/** @ignore */\nclass ChunkedIterator<T extends DataType> implements IterableIterator<T['TValue'] | null> {\n private chunkIndex = 0;\n private chunkIterator: IterableIterator<T['TValue'] | null>;\n\n constructor(\n private chunks: Vector<T>[],\n ) {\n this.chunkIterator = this.getChunkIterator();\n }\n\n next(): IteratorResult<T['TValue'] | null> {\n while (this.chunkIndex < this.chunks.length) {\n const next = this.chunkIterator.next();\n\n if (!next.done) {\n return next;\n }\n\n if (++this.chunkIndex < this.chunks.length) {\n this.chunkIterator = this.getChunkIterator();\n }\n }\n\n return {done: true, value: null};\n }\n\n getChunkIterator() {\n return this.chunks[this.chunkIndex][Symbol.iterator]();\n }\n\n [Symbol.iterator]() {\n return this;\n }\n}\n\n/** @ignore */\nexport class Chunked<T extends DataType = any>\n extends AbstractVector<T>\n implements Clonable<Chunked<T>>,\n Sliceable<Chunked<T>>,\n Applicative<T, Chunked<T>> {\n\n /** @nocollapse */\n public static flatten<T extends DataType>(...vectors: (Vector<T> | Vector<T>[])[]) {\n return selectChunkArgs<Vector<T>>(Vector, vectors);\n }\n\n /** @nocollapse */\n public static concat<T extends DataType>(...vectors: (Vector<T> | Vector<T>[])[]) {\n const chunks = Chunked.flatten<T>(...vectors);\n return new Chunked<T>(chunks[0].type, chunks);\n }\n\n protected _type: T;\n protected _length: number;\n protected _chunks: Vector<T>[];\n protected _numChildren: number;\n protected _children?: Chunked[];\n protected _nullCount = -1;\n protected _chunkOffsets: Uint32Array;\n\n constructor(type: T, chunks: Vector<T>[] = [], 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<T> {\n return this._chunks[0] ? this._chunks[0].data : <any> 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<T>;\n public get indices(): ChunkedKeys<T> | null {\n if (DataType.isDictionary(this._type)) {\n if (!this._indices) {\n const chunks = (<any> this._chunks) as DictionaryVector<T, any>[];\n this._indices = (chunks.length === 1\n ? chunks[0].indices\n : Chunked.concat(...chunks.map((x) => x.indices))) as ChunkedKeys<T>;\n }\n return this._indices;\n }\n return null;\n }\n public get dictionary(): ChunkedDict<T> | null {\n if (DataType.isDictionary(this._type)) {\n return this._chunks[this._chunks.length - 1].data.dictionary as ChunkedDict<T>;\n }\n return null;\n }\n\n public [Symbol.iterator](): IterableIterator<T['TValue'] | null> {\n return new ChunkedIterator(this._chunks);\n }\n\n public clone(chunks = this._chunks): Chunked<T> {\n return new Chunked(this._type, chunks);\n }\n\n public concat(...others: Vector<T>[]): Chunked<T> {\n return this.clone(Chunked.flatten(this, ...others));\n }\n\n public slice(begin?: number, end?: number): Chunked<T> {\n return clampRange(this, begin, end, this._sliceInternal);\n }\n\n public getChildAt<R extends DataType = any>(index: number): Chunked<R> | null {\n\n if (index < 0 || index >= this._numChildren) { return null; }\n\n const columns = this._children || (this._children = []);\n let child: Chunked<R>, field: Field<R>, chunks: Vector<R>[];\n\n if (child = columns[index]) { return child; }\n if (field = ((this._type.children || [])[index] as Field<R>)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt<R>(index))\n .filter((vec): vec is Vector<R> => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Chunked<R>(field.type, chunks));\n }\n }\n\n return null;\n }\n\n public search(index: number): [number, number] | null;\n public search<N extends SearchContinuation<Chunked<T>>>(index: number, then?: N): ReturnType<N>;\n public search<N extends SearchContinuation<Chunked<T>>>(index: number, then?: N) {\n const idx = index;\n // binary search to find the child vector and value indices\n const offsets = this._chunkOffsets;\n let rhs = offsets.length - 1;\n // return early if out of bounds, or if there's just one child\n if (idx < 0 ) { 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;\n const src = new Array(n);\n for (let i = -1; ++i < n;) {\n len += (src[i] = chunks[i].toArray()).length;\n }\n if (ArrayType !== src[0].constructor) {\n ArrayType = src[0].constructor;\n }\n const dst = new ArrayType(len);\n const set: 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<T>, i: number, j: number) { return _chunks[i].get(j); }\n protected isValidInternal({ _chunks }: Chunked<T>, i: number, j: number) { return _chunks[i].isValid(j); }\n protected indexOfInternal({ _chunks }: Chunked<T>, chunkIndex: number, fromIndex: number, element: T['TValue']) {\n let i = chunkIndex - 1;\n const n = _chunks.length;\n let start = fromIndex, offset = 0, found = -1;\n while (++i < n) {\n if (~(found = _chunks[i].indexOf(element, start))) {\n return offset + found;\n }\n start = 0;\n offset += _chunks[i].length;\n }\n return -1;\n }\n\n protected _sliceInternal(self: Chunked<T>, begin: number, end: number) {\n const slices: Vector<T>[] = [];\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<T>);\n }\n return self.clone(slices);\n }\n}\n\n/** @ignore */\nfunction calculateOffsets<T extends DataType>(vectors: Vector<T>[]) {\n const offsets = new Uint32Array((vectors || []).length + 1);\n let offset = offsets[0] = 0;\n const length = offsets.length;\n for (let index = 0; ++index < length;) {\n offsets[index] = (offset += vectors[index - 1].length);\n }\n return offsets;\n}\n\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<number>, 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<T extends DataType = any> {\n concat(...others: Vector<T>[]): Column<T>;\n slice(begin?: number, end?: number): Column<T>;\n clone(chunks?: Vector<T>[], offsets?: Uint32Array): Column<T>;\n}\n\nexport class Column<T extends DataType = any>\n extends Chunked<T>\n implements Clonable<Column<T>>,\n Sliceable<Column<T>>,\n Applicative<T, Column<T>> {\n\n public static new<T extends DataType>(data: Data<T>, ...args: VectorCtorArgs<V<T>>): Column<T>;\n public static new<T extends DataType>(field: string | Field<T>, ...chunks: (Vector<T> | Vector<T>[])[]): Column<T>;\n public static new<T extends DataType>(field: string | Field<T>, data: Data<T>, ...args: VectorCtorArgs<V<T>>): Column<T>;\n /** @nocollapse */\n public static new<T extends DataType = any>(...args: any[]) {\n\n let [field, data, ...rest] = args as [\n string | Field<T>,\n Data<T> | Vector<T> | (Data<T> | Vector<T>)[],\n ...any[]\n ];\n\n if (typeof field !== 'string' && !(field instanceof Field)) {\n data = <Data<T> | Vector<T> | (Data<T> | Vector<T>)[]> field;\n field = '';\n }\n\n const chunks = Chunked.flatten<T>(\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<T>, vectors: Vector<T>[] = [], offsets?: Uint32Array) {\n vectors = Chunked.flatten<T>(...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<T>;\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<R extends DataType = any>(index: number): Column<R> | null {\n\n if (index < 0 || index >= this.numChildren) { return null; }\n\n const columns = this._children || (this._children = []);\n let column: Column<R>, field: Field<R>, chunks: Vector<R>[];\n\n if (column = columns[index]) { return column; }\n if (field = ((this.type.children || [])[index] as Field<R>)) {\n chunks = this._chunks\n .map((vector) => vector.getChildAt<R>(index))\n .filter((vec): vec is Vector<R> => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column<R>(field, chunks));\n }\n }\n\n return null;\n }\n}\n\n/** @ignore */\nclass SingleChunkColumn<T extends DataType = any> extends Column<T> {\n protected _chunk: Vector<T>;\n constructor(field: Field<T>, vector: Vector<T>, offsets?: Uint32Array) {\n super(field, [vector], offsets);\n this._chunk = vector;\n }\n public search(index: number): [number, number] | null;\n public search<N extends SearchContinuation<Chunked<T>>>(index: number, then?: N): ReturnType<N>;\n public search<N extends SearchContinuation<Chunked<T>>>(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 { flatbuffers } from 'flatbuffers';\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\n\nimport * as type from '../type';\nimport { Visitor } from '../visitor';\n\nimport {\n Null,\n Int,\n FloatingPoint,\n Binary,\n Bool,\n Utf8,\n Decimal,\n Date,\n Time,\n Timestamp,\n Interval,\n List,\n Struct_ as Struct,\n Union,\n DictionaryEncoding,\n FixedSizeBinary,\n FixedSizeList,\n Map as Map_,\n} from '../fb/Schema';\n\n/** @ignore */\nexport interface TypeAssembler extends Visitor {\n visit<T extends type.DataType>(node: T, builder: Builder): number | undefined;\n}\n\n/** @ignore */\nexport class TypeAssembler extends Visitor {\n public visit<T extends type.DataType>(node: T, builder: Builder): number | undefined {\n return (node == null || builder == null) ? undefined : super.visit(node, builder);\n }\n public visitNull<T extends type.Null>(_node: T, b: Builder) {\n Null.startNull(b);\n return Null.endNull(b);\n }\n public visitInt<T extends type.Int>(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<T extends type.Float>(node: T, b: Builder) {\n FloatingPoint.startFloatingPoint(b);\n FloatingPoint.addPrecision(b, node.precision);\n return FloatingPoint.endFloatingPoint(b);\n }\n public visitBinary<T extends type.Binary>(_node: T, b: Builder) {\n Binary.startBinary(b);\n return Binary.endBinary(b);\n }\n public visitBool<T extends type.Bool>(_node: T, b: Builder) {\n Bool.startBool(b);\n return Bool.endBool(b);\n }\n public visitUtf8<T extends type.Utf8>(_node: T, b: Builder) {\n Utf8.startUtf8(b);\n return Utf8.endUtf8(b);\n }\n public visitDecimal<T extends type.Decimal>(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<T extends type.Date_>(node: T, b: Builder) {\n Date.startDate(b);\n Date.addUnit(b, node.unit);\n return Date.endDate(b);\n }\n public visitTime<T extends type.Time>(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<T extends type.Timestamp>(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<T extends type.Interval>(node: T, b: Builder) {\n Interval.startInterval(b);\n Interval.addUnit(b, node.unit);\n return Interval.endInterval(b);\n }\n public visitList<T extends type.List>(_node: T, b: Builder) {\n List.startList(b);\n return List.endList(b);\n }\n public visitStruct<T extends type.Struct>(_node: T, b: Builder) {\n Struct.startStruct_(b);\n return Struct.endStruct_(b);\n }\n public visitUnion<T extends type.Union>(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<T extends type.Dictionary>(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<T extends type.FixedSizeBinary>(node: T, b: Builder) {\n FixedSizeBinary.startFixedSizeBinary(b);\n FixedSizeBinary.addByteWidth(b, node.byteWidth);\n return FixedSizeBinary.endFixedSizeBinary(b);\n }\n public visitFixedSizeList<T extends type.FixedSizeList>(node: T, b: Builder) {\n FixedSizeList.startFixedSizeList(b);\n FixedSizeList.addListSize(b, node.listSize);\n return FixedSizeList.endFixedSizeList(b);\n }\n public visitMap<T extends type.Map_>(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\n/* eslint-disable brace-style */\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<number, DataType> = 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<number, DataType>) {\n return (_schema['fields'] || []).filter(Boolean).map((f: any) => Field.fromJSON(f, dictionaries));\n}\n\n/** @ignore */\nfunction fieldChildrenFromJSON(_field: any, dictionaries?: Map<number, DataType>): 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<FieldNode[]>((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<number, DataType>) {\n\n let id: number;\n let keys: TKeys | null;\n let field: Field | void;\n let dictMeta: any;\n let type: DataType<any>;\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 // 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?: Record<string, string>) {\n return new Map<string, string>(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<any> {\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\n/* eslint-disable brace-style */\n\nimport { flatbuffers } from 'flatbuffers';\n\nimport {\n Type,\n Int as _Int,\n Field as _Field,\n Schema as _Schema,\n Buffer as _Buffer,\n KeyValue as _KeyValue,\n Endianness as _Endianness,\n DictionaryEncoding as _DictionaryEncoding,\n FloatingPoint as _FloatingPoint,\n Decimal as _Decimal,\n Date as _Date,\n Time as _Time,\n Timestamp as _Timestamp,\n Interval as _Interval,\n Union as _Union,\n FixedSizeBinary as _FixedSizeBinary,\n FixedSizeList as _FixedSizeList,\n Map as _Map,\n} from '../../fb/Schema';\n\nimport {\n Message as _Message,\n FieldNode as _FieldNode,\n RecordBatch as _RecordBatch,\n DictionaryBatch as _DictionaryBatch,\n} 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;\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<T extends MessageHeader = any> {\n\n /** @nocollapse */\n public static fromJSON<T extends MessageHeader>(msg: any, headerType: T): Message<T> {\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<T extends MessageHeader>(message: Message<T>) {\n const b = new Builder();\n let 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 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 protected _createHeader!: MessageHeaderDecoder;\n public header() { return this._createHeader<T>(); }\n public isSchema(): this is Message<MessageHeader.Schema> { return this.headerType === MessageHeader.Schema; }\n public isRecordBatch(): this is Message<MessageHeader.RecordBatch> { return this.headerType === MessageHeader.RecordBatch; }\n public isDictionaryBatch(): this is Message<MessageHeader.DictionaryBatch> { 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 = 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<number, DataType> = 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<number, DataType>) {\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<number, DataType>): 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<number, DataType>) {\n\n let id: number;\n let field: Field | void;\n let type: DataType<any>;\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 // 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<string, string>();\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<any> {\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 _Int())!;\n return new Int(t.isSigned(), t.bitWidth());\n }\n case Type['FloatingPoint']: {\n const t = f.type(new _FloatingPoint())!;\n return new Float(t.precision());\n }\n case Type['Decimal']: {\n const t = f.type(new _Decimal())!;\n return new Decimal(t.scale(), t.precision());\n }\n case Type['Date']: {\n const t = f.type(new _Date())!;\n return new Date_(t.unit());\n }\n case Type['Time']: {\n const t = f.type(new _Time())!;\n return new Time(t.unit(), t.bitWidth() as TimeBitWidth);\n }\n case Type['Timestamp']: {\n const t = f.type(new _Timestamp())!;\n return new Timestamp(t.unit(), t.timezone());\n }\n case Type['Interval']: {\n const t = f.type(new _Interval())!;\n return new Interval(t.unit());\n }\n case Type['Union']: {\n const t = f.type(new _Union())!;\n return new Union(t.mode(), t.typeIdsArray() || [], children || []);\n }\n case Type['FixedSizeBinary']: {\n const t = f.type(new _FixedSizeBinary())!;\n return new FixedSizeBinary(t.byteWidth());\n }\n case Type['FixedSizeList']: {\n const t = f.type(new _FixedSizeList())!;\n return new FixedSizeList(t.listSize(), (children || [])[0]);\n }\n case Type['Map']: {\n const t = f.type(new _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 const type = field.type;\n let typeId: Type = <any> 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>() => 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<Message> {\n protected source: ByteStream;\n constructor(source: ByteStream | ArrayBufferViewInput | Iterable<ArrayBufferViewInput>) {\n this.source = source instanceof ByteStream ? source : new ByteStream(source);\n }\n public [Symbol.iterator](): IterableIterator<Message> { return this as IterableIterator<Message>; }\n public next(): IteratorResult<Message> {\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 (<any> r) as IteratorResult<Message>;\n }\n public throw(value?: any) { return this.source.throw(value); }\n public return(value?: any) { return this.source.return(value); }\n public readMessage<T extends MessageHeader>(type?: T | null) {\n let r: IteratorResult<Message<T>>;\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<number> {\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<Message> {\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<Message> {\n protected source: AsyncByteStream;\n constructor(source: ReadableSource<Uint8Array>);\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<Message> { return this as AsyncIterableIterator<Message>; }\n public async next(): Promise<IteratorResult<Message>> {\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 (<any> r) as IteratorResult<Message>;\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<T extends MessageHeader>(type?: T | null) {\n let r: IteratorResult<Message<T>>;\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<Uint8Array> {\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<IteratorResult<number>> {\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<IteratorResult<Message>> {\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<any[][]>((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<T extends MessageHeader>(type?: T | null) {\n let r: IteratorResult<Message<T>>;\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 { 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<T extends DataType>(type: T, other?: DataType | null): other is T;\n visitMany<T extends DataType>(nodes: T[], others?: DataType[] | null): boolean[];\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): (other?: DataType | null) => other is T;\n visitNull <T extends Null> (type: T, other?: DataType | null): other is T;\n visitBool <T extends Bool> (type: T, other?: DataType | null): other is T;\n visitInt <T extends Int> (type: T, other?: DataType | null): other is T;\n visitInt8 <T extends Int8> (type: T, other?: DataType | null): other is T;\n visitInt16 <T extends Int16> (type: T, other?: DataType | null): other is T;\n visitInt32 <T extends Int32> (type: T, other?: DataType | null): other is T;\n visitInt64 <T extends Int64> (type: T, other?: DataType | null): other is T;\n visitUint8 <T extends Uint8> (type: T, other?: DataType | null): other is T;\n visitUint16 <T extends Uint16> (type: T, other?: DataType | null): other is T;\n visitUint32 <T extends Uint32> (type: T, other?: DataType | null): other is T;\n visitUint64 <T extends Uint64> (type: T, other?: DataType | null): other is T;\n visitFloat <T extends Float> (type: T, other?: DataType | null): other is T;\n visitFloat16 <T extends Float16> (type: T, other?: DataType | null): other is T;\n visitFloat32 <T extends Float32> (type: T, other?: DataType | null): other is T;\n visitFloat64 <T extends Float64> (type: T, other?: DataType | null): other is T;\n visitUtf8 <T extends Utf8> (type: T, other?: DataType | null): other is T;\n visitBinary <T extends Binary> (type: T, other?: DataType | null): other is T;\n visitFixedSizeBinary <T extends FixedSizeBinary> (type: T, other?: DataType | null): other is T;\n visitDate <T extends Date_> (type: T, other?: DataType | null): other is T;\n visitDateDay <T extends DateDay> (type: T, other?: DataType | null): other is T;\n visitDateMillisecond <T extends DateMillisecond> (type: T, other?: DataType | null): other is T;\n visitTimestamp <T extends Timestamp> (type: T, other?: DataType | null): other is T;\n visitTimestampSecond <T extends TimestampSecond> (type: T, other?: DataType | null): other is T;\n visitTimestampMillisecond <T extends TimestampMillisecond> (type: T, other?: DataType | null): other is T;\n visitTimestampMicrosecond <T extends TimestampMicrosecond> (type: T, other?: DataType | null): other is T;\n visitTimestampNanosecond <T extends TimestampNanosecond> (type: T, other?: DataType | null): other is T;\n visitTime <T extends Time> (type: T, other?: DataType | null): other is T;\n visitTimeSecond <T extends TimeSecond> (type: T, other?: DataType | null): other is T;\n visitTimeMillisecond <T extends TimeMillisecond> (type: T, other?: DataType | null): other is T;\n visitTimeMicrosecond <T extends TimeMicrosecond> (type: T, other?: DataType | null): other is T;\n visitTimeNanosecond <T extends TimeNanosecond> (type: T, other?: DataType | null): other is T;\n visitDecimal <T extends Decimal> (type: T, other?: DataType | null): other is T;\n visitList <T extends List> (type: T, other?: DataType | null): other is T;\n visitStruct <T extends Struct> (type: T, other?: DataType | null): other is T;\n visitUnion <T extends Union> (type: T, other?: DataType | null): other is T;\n visitDenseUnion <T extends DenseUnion> (type: T, other?: DataType | null): other is T;\n visitSparseUnion <T extends SparseUnion> (type: T, other?: DataType | null): other is T;\n visitDictionary <T extends Dictionary> (type: T, other?: DataType | null): other is T;\n visitInterval <T extends Interval> (type: T, other?: DataType | null): other is T;\n visitIntervalDayTime <T extends IntervalDayTime> (type: T, other?: DataType | null): other is T;\n visitIntervalYearMonth <T extends IntervalYearMonth> (type: T, other?: DataType | null): other is T;\n visitFixedSizeList <T extends FixedSizeList> (type: T, other?: DataType | null): other is T;\n visitMap <T extends Map_> (type: T, other?: DataType | null): other is T;\n}\n\n/** @ignore */\nexport class TypeComparator extends Visitor {\n compareSchemas<T extends { [key: string]: DataType }>(schema: Schema<T>, other?: Schema | null): other is Schema<T> {\n return (schema === other) || (\n other instanceof schema.constructor &&\n this.compareManyFields(schema.fields, other.fields)\n );\n }\n compareManyFields<T extends { [key: string]: DataType }>(fields: Field<T[keyof T]>[], others?: Field[] | null): others is Field<T[keyof T]>[] {\n return (fields === others) || (\n Array.isArray(fields) &&\n Array.isArray(others) &&\n fields.length === others.length &&\n fields.every((f, i) => this.compareFields(f, others[i]))\n );\n }\n compareFields<T extends DataType = any>(field: Field<T>, other?: Field | null): other is Field<T> {\n return (field === other) || (\n other instanceof field.constructor &&\n field.name === other.name &&\n field.nullable === other.nullable &&\n this.visit(field.type, other.type)\n );\n }\n}\n\nfunction compareConstructor<T extends DataType>(type: T, other?: DataType | null): other is T {\n return other instanceof type.constructor;\n}\n\nfunction compareAny<T extends DataType>(type: T, other?: DataType | null): other is T {\n return (type === other) || compareConstructor(type, other);\n}\n\nfunction compareInt<T extends Int>(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<T extends Float>(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<T extends FixedSizeBinary>(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<T extends Date_>(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<T extends Timestamp>(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<T extends Time>(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<T extends List>(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.compareManyFields(type.children, other.children)\n );\n}\n\nfunction compareStruct<T extends Struct>(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.compareManyFields(type.children, other.children)\n );\n}\n\nfunction compareUnion<T extends Union>(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.compareManyFields(type.children, other.children)\n );\n}\n\nfunction compareDictionary<T extends Dictionary>(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(<any> type.indices, other.indices) &&\n instance.visit(type.dictionary, other.dictionary)\n );\n}\n\nfunction compareInterval<T extends Interval>(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<T extends FixedSizeList>(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.compareManyFields(type.children, other.children)\n );\n}\n\nfunction compareMap<T extends Map_>(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.compareManyFields(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\nexport function compareSchemas<T extends { [key: string]: DataType }>(schema: Schema<T>, other?: Schema | null): other is Schema<T> {\n return instance.compareSchemas(schema, other);\n}\n\nexport function compareFields<T extends DataType = any>(field: Field<T>, other?: Field | null): other is Field<T> {\n return instance.compareFields(field, other);\n}\n\nexport function compareTypes<A extends DataType = any>(type: A, other?: DataType): other is A {\n return instance.visit(type, other);\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 { 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<T extends Vector>(node: T): this;\n visitMany<T extends Vector>(nodes: T[]): this[];\n getVisitFn<T extends Type>(node: T): (vector: V<T>) => this;\n getVisitFn<T extends DataType>(node: V<T> | Data<T> | T): (vector: V<T>) => this;\n\n visitBool <T extends Bool> (vector: V<T>): this;\n visitInt <T extends Int> (vector: V<T>): this;\n visitFloat <T extends Float> (vector: V<T>): this;\n visitUtf8 <T extends Utf8> (vector: V<T>): this;\n visitBinary <T extends Binary> (vector: V<T>): this;\n visitFixedSizeBinary <T extends FixedSizeBinary> (vector: V<T>): this;\n visitDate <T extends Date_> (vector: V<T>): this;\n visitTimestamp <T extends Timestamp> (vector: V<T>): this;\n visitTime <T extends Time> (vector: V<T>): this;\n visitDecimal <T extends Decimal> (vector: V<T>): this;\n visitList <T extends List> (vector: V<T>): this;\n visitStruct <T extends Struct> (vector: V<T>): this;\n visitUnion <T extends Union> (vector: V<T>): this;\n visitInterval <T extends Interval> (vector: V<T>): this;\n visitFixedSizeList <T extends FixedSizeList> (vector: V<T>): this;\n visitMap <T extends Map_> (vector: V<T>): this;\n}\n\n/** @ignore */\nexport class VectorAssembler extends Visitor {\n\n /** @nocollapse */\n public static assemble<T extends Vector | RecordBatch>(...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<T extends Vector>(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<T extends Null>(_nullV: V<T>) {\n return this;\n }\n public visitDictionary<T extends Dictionary>(vector: V<T>) {\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<T extends Union>(this: VectorAssembler, vector: V<T>) {\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<T extends Bool>(this: VectorAssembler, vector: V<T>) {\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<T extends Int | Float | FixedSizeBinary | Date_ | Timestamp | Time | Decimal | Interval>(this: VectorAssembler, vector: V<T>) {\n return addBuffer.call(this, vector.values.subarray(0, vector.length * vector.stride));\n}\n\n/** @ignore */\nfunction assembleFlatListVector<T extends Utf8 | Binary>(this: VectorAssembler, vector: V<T>) {\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<T extends Map_ | List | FixedSizeList>(this: VectorAssembler, vector: V<T>) {\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<T extends Struct | Union>(this: VectorAssembler, vector: V<T>) {\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 * as type from '../type';\nimport { Visitor } from '../visitor';\nimport { Type as ArrowType } from '../fb/Schema';\nimport { Precision, DateUnit, TimeUnit, IntervalUnit, UnionMode } from '../enum';\n\n/** @ignore */\nexport interface JSONTypeAssembler extends Visitor {\n visit<T extends type.DataType>(node: T): Record<string, unknown> | undefined;\n}\n\n/** @ignore */\nexport class JSONTypeAssembler extends Visitor {\n public visit<T extends type.DataType>(node: T): Record<string, unknown> | undefined {\n return node == null ? undefined : super.visit(node);\n }\n public visitNull<T extends type.Null>({ typeId }: T) {\n return { 'name': ArrowType[typeId].toLowerCase() };\n }\n public visitInt<T extends type.Int>({ typeId, bitWidth, isSigned }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'bitWidth': bitWidth, 'isSigned': isSigned };\n }\n public visitFloat<T extends type.Float>({ typeId, precision }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'precision': Precision[precision] };\n }\n public visitBinary<T extends type.Binary>({ typeId }: T) {\n return { 'name': ArrowType[typeId].toLowerCase() };\n }\n public visitBool<T extends type.Bool>({ typeId }: T) {\n return { 'name': ArrowType[typeId].toLowerCase() };\n }\n public visitUtf8<T extends type.Utf8>({ typeId }: T) {\n return { 'name': ArrowType[typeId].toLowerCase() };\n }\n public visitDecimal<T extends type.Decimal>({ typeId, scale, precision }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'scale': scale, 'precision': precision };\n }\n public visitDate<T extends type.Date_>({ typeId, unit }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'unit': DateUnit[unit] };\n }\n public visitTime<T extends type.Time>({ typeId, unit, bitWidth }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'unit': TimeUnit[unit], bitWidth };\n }\n public visitTimestamp<T extends type.Timestamp>({ typeId, timezone, unit }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'unit': TimeUnit[unit], timezone };\n }\n public visitInterval<T extends type.Interval>({ typeId, unit }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'unit': IntervalUnit[unit] };\n }\n public visitList<T extends type.List>({ typeId }: T) {\n return { 'name': ArrowType[typeId].toLowerCase() };\n }\n public visitStruct<T extends type.Struct>({ typeId }: T) {\n return { 'name': ArrowType[typeId].toLowerCase() };\n }\n public visitUnion<T extends type.Union>({ typeId, mode, typeIds }: T) {\n return {\n 'name': ArrowType[typeId].toLowerCase(),\n 'mode': UnionMode[mode],\n 'typeIds': [...typeIds]\n };\n }\n public visitDictionary<T extends type.Dictionary>(node: T) {\n return this.visit(node.dictionary);\n }\n public visitFixedSizeBinary<T extends type.FixedSizeBinary>({ typeId, byteWidth }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'byteWidth': byteWidth };\n }\n public visitFixedSizeList<T extends type.FixedSizeList>({ typeId, listSize }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'listSize': listSize };\n }\n public visitMap<T extends type.Map_>({ typeId, keysSorted }: T) {\n return { 'name': ArrowType[typeId].toLowerCase(), 'keysSorted': keysSorted };\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 { BN } from '../util/bn';\nimport { Column } from '../column';\nimport { Vector } from '../vector';\nimport { Visitor } from '../visitor';\nimport { BufferType } from '../enum';\nimport { RecordBatch } from '../recordbatch';\nimport { VectorType as V } from '../interfaces';\nimport { UnionMode, DateUnit, TimeUnit } from '../enum';\nimport { BitIterator, getBit, getBool } from '../util/bit';\nimport { selectColumnChildrenArgs } from '../util/args';\nimport {\n DataType,\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 JSONVectorAssembler extends Visitor {\n\n visit <T extends Column> (node: T ): Record<string, unknown>;\n visitMany <T extends Column> (cols: T[]): Record<string, unknown>[];\n getVisitFn<T extends DataType>(node: Column<T>): (column: Column<T>) => { name: string; count: number; VALIDITY: (0 | 1)[]; DATA?: any[]; OFFSET?: number[]; TYPE?: number[]; children?: any[] };\n\n visitNull <T extends Null> (vector: V<T>): Record<string, never>;\n visitBool <T extends Bool> (vector: V<T>): { DATA: boolean[] };\n visitInt <T extends Int> (vector: V<T>): { DATA: (number | string)[] };\n visitFloat <T extends Float> (vector: V<T>): { DATA: number[] };\n visitUtf8 <T extends Utf8> (vector: V<T>): { DATA: string[]; OFFSET: number[] };\n visitBinary <T extends Binary> (vector: V<T>): { DATA: string[]; OFFSET: number[] };\n visitFixedSizeBinary <T extends FixedSizeBinary> (vector: V<T>): { DATA: string[] };\n visitDate <T extends Date_> (vector: V<T>): { DATA: number[] };\n visitTimestamp <T extends Timestamp> (vector: V<T>): { DATA: string[] };\n visitTime <T extends Time> (vector: V<T>): { DATA: number[] };\n visitDecimal <T extends Decimal> (vector: V<T>): { DATA: string[] };\n visitList <T extends List> (vector: V<T>): { children: any[]; OFFSET: number[] };\n visitStruct <T extends Struct> (vector: V<T>): { children: any[] };\n visitUnion <T extends Union> (vector: V<T>): { children: any[]; TYPE: number[] };\n visitInterval <T extends Interval> (vector: V<T>): { DATA: number[] };\n visitFixedSizeList <T extends FixedSizeList> (vector: V<T>): { children: any[] };\n visitMap <T extends Map_> (vector: V<T>): { children: any[] };\n}\n\n/** @ignore */\nexport class JSONVectorAssembler extends Visitor {\n\n /** @nocollapse */\n public static assemble<T extends Column | RecordBatch>(...args: (T | T[])[]) {\n return new JSONVectorAssembler().visitMany(selectColumnChildrenArgs(RecordBatch, args));\n }\n\n public visit<T extends Column>(column: T) {\n const { data, name, length } = column;\n const { offset, nullCount, nullBitmap } = data;\n const type = DataType.isDictionary(column.type) ? column.type.indices : column.type;\n const buffers = Object.assign([], data.buffers, { [BufferType.VALIDITY]: undefined });\n return {\n 'name': name,\n 'count': length,\n 'VALIDITY': DataType.isNull(type) ? undefined\n : nullCount <= 0 ? Array.from({ length }, () => 1)\n : [...new BitIterator(nullBitmap, offset, length, null, getBit)],\n ...super.visit(Vector.new(data.clone(type, offset, length, 0, buffers)))\n };\n }\n public visitNull() { return {}; }\n public visitBool<T extends Bool>({ values, offset, length }: V<T>) {\n return { 'DATA': [...new BitIterator(values, offset, length, null, getBool)] };\n }\n public visitInt<T extends Int>(vector: V<T>) {\n return {\n 'DATA': vector.type.bitWidth < 64\n ? [...vector.values]\n : [...bigNumsToStrings(vector.values as (Int32Array | Uint32Array), 2)]\n };\n }\n public visitFloat<T extends Float>(vector: V<T>) {\n return { 'DATA': [...vector.values] };\n }\n public visitUtf8<T extends Utf8>(vector: V<T>) {\n return { 'DATA': [...vector], 'OFFSET': [...vector.valueOffsets] };\n }\n public visitBinary<T extends Binary>(vector: V<T>) {\n return { 'DATA': [...binaryToString(vector)], OFFSET: [...vector.valueOffsets] };\n }\n public visitFixedSizeBinary<T extends FixedSizeBinary>(vector: V<T>) {\n return { 'DATA': [...binaryToString(vector)] };\n }\n public visitDate<T extends Date_>(vector: V<T>) {\n return {\n 'DATA': vector.type.unit === DateUnit.DAY\n ? [...vector.values]\n : [...bigNumsToStrings(vector.values, 2)]\n };\n }\n public visitTimestamp<T extends Timestamp>(vector: V<T>) {\n return { 'DATA': [...bigNumsToStrings(vector.values, 2)] };\n }\n public visitTime<T extends Time>(vector: V<T>) {\n return {\n 'DATA': vector.type.unit < TimeUnit.MICROSECOND\n ? [...vector.values]\n : [...bigNumsToStrings(vector.values, 2)]\n };\n }\n public visitDecimal<T extends Decimal>(vector: V<T>) {\n return { 'DATA': [...bigNumsToStrings(vector.values, 4)] };\n }\n public visitList<T extends List>(vector: V<T>) {\n return {\n 'OFFSET': [...vector.valueOffsets],\n 'children': vector.type.children.map((f, i) =>\n this.visit(new Column(f, [vector.getChildAt(i)!])))\n };\n }\n public visitStruct<T extends Struct>(vector: V<T>) {\n return {\n 'children': vector.type.children.map((f, i) =>\n this.visit(new Column(f, [vector.getChildAt(i)!])))\n };\n }\n public visitUnion<T extends Union>(vector: V<T>) {\n return {\n 'TYPE': [...vector.typeIds],\n 'OFFSET': vector.type.mode === UnionMode.Dense ? [...vector.valueOffsets] : undefined,\n 'children': vector.type.children.map((f, i) => this.visit(new Column(f, [vector.getChildAt(i)!])))\n };\n }\n public visitInterval<T extends Interval>(vector: V<T>) {\n return { 'DATA': [...vector.values] };\n }\n public visitFixedSizeList<T extends FixedSizeList>(vector: V<T>) {\n return {\n 'children': vector.type.children.map((f, i) =>\n this.visit(new Column(f, [vector.getChildAt(i)!])))\n };\n }\n public visitMap<T extends Map_>(vector: V<T>) {\n return {\n 'OFFSET': [...vector.valueOffsets],\n 'children': vector.type.children.map((f, i) =>\n this.visit(new Column(f, [vector.getChildAt(i)!])))\n };\n }\n}\n\n/** @ignore */\nfunction* binaryToString(vector: Vector<Binary> | Vector<FixedSizeBinary>) {\n for (const octets of vector as Iterable<Uint8Array>) {\n yield octets.reduce((str, byte) => {\n return `${str}${('0' + (byte & 0xFF).toString(16)).slice(-2)}`;\n }, '').toUpperCase();\n }\n}\n\n/** @ignore */\nfunction* bigNumsToStrings(values: Uint32Array | Int32Array, stride: number) {\n for (let i = -1, n = values.length / stride; ++i < n;) {\n yield `${BN.new(values.subarray((i + 0) * stride, (i + 1) * stride), false)}`;\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 { 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 { compareSchemas } from '../visitor/typecomparator';\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<T extends { [key: string]: DataType } = any> extends ReadableInterop<Uint8Array> implements Writable<RecordBatch<T>> {\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<T extends { [key: string]: DataType }>(\n // @ts-ignore\n writableStrategy?: QueuingStrategy<RecordBatch<T>> & { autoDestroy: boolean },\n // @ts-ignore\n readableStrategy?: { highWaterMark?: number; size?: any }\n ): { writable: WritableStream<Table<T> | RecordBatch<T>>; readable: ReadableStream<Uint8Array> } {\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<number, number>();\n\n public toString(sync: true): string;\n public toString(sync?: false): Promise<string>;\n public toString(sync: any = false) {\n return this._sink.toString(sync) as Promise<string> | string;\n }\n public toUint8Array(sync: true): Uint8Array;\n public toUint8Array(sync?: false): Promise<Uint8Array>;\n public toUint8Array(sync: any = false) {\n return this._sink.toUint8Array(sync) as Promise<Uint8Array> | Uint8Array;\n }\n\n public writeAll(input: Table<T> | Iterable<RecordBatch<T>>): this;\n public writeAll(input: AsyncIterable<RecordBatch<T>>): Promise<this>;\n public writeAll(input: PromiseLike<AsyncIterable<RecordBatch<T>>>): Promise<this>;\n public writeAll(input: PromiseLike<Table<T> | Iterable<RecordBatch<T>>>): Promise<this>;\n public writeAll(input: PromiseLike<any> | Table<T> | Iterable<RecordBatch<T>> | AsyncIterable<RecordBatch<T>>) {\n if (isPromise<any>(input)) {\n return input.then((x) => this.writeAll(x));\n } else if (isAsyncIterable<RecordBatch<T>>(input)) {\n return writeAllAsync(this, input);\n }\n return writeAll(this, <any> 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<ArrayBufferViewInput> = this._sink, schema: Schema<T> | null = null) {\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 || !(compareSchemas(schema, 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<T> | RecordBatch<T> | Iterable<RecordBatch<T>> | null) {\n let schema: Schema<T> | 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 && !compareSchemas(schema, 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<T extends MessageHeader>(message: Message<T>, alignment = 8) {\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<T>) {\n return this._writeMessage(Message.from(schema));\n }\n\n // @ts-ignore\n protected _writeFooter(schema: Schema<T>) {\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<T>) {\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<T>) {\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<T extends { [key: string]: DataType } = any> extends RecordBatchWriter<T> {\n public static writeAll<T extends { [key: string]: DataType } = any>(input: Table<T> | Iterable<RecordBatch<T>>, options?: RecordBatchStreamWriterOptions): RecordBatchStreamWriter<T>;\n public static writeAll<T extends { [key: string]: DataType } = any>(input: AsyncIterable<RecordBatch<T>>, options?: RecordBatchStreamWriterOptions): Promise<RecordBatchStreamWriter<T>>;\n public static writeAll<T extends { [key: string]: DataType } = any>(input: PromiseLike<AsyncIterable<RecordBatch<T>>>, options?: RecordBatchStreamWriterOptions): Promise<RecordBatchStreamWriter<T>>;\n public static writeAll<T extends { [key: string]: DataType } = any>(input: PromiseLike<Table<T> | Iterable<RecordBatch<T>>>, options?: RecordBatchStreamWriterOptions): Promise<RecordBatchStreamWriter<T>>;\n /** @nocollapse */\n public static writeAll<T extends { [key: string]: DataType } = any>(input: any, options?: RecordBatchStreamWriterOptions) {\n const writer = new RecordBatchStreamWriter<T>(options);\n if (isPromise<any>(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable<RecordBatch<T>>(input)) {\n return writeAllAsync(writer, input);\n }\n return writeAll(writer, input);\n }\n}\n\n/** @ignore */\nexport class RecordBatchFileWriter<T extends { [key: string]: DataType } = any> extends RecordBatchWriter<T> {\n public static writeAll<T extends { [key: string]: DataType } = any>(input: Table<T> | Iterable<RecordBatch<T>>): RecordBatchFileWriter<T>;\n public static writeAll<T extends { [key: string]: DataType } = any>(input: AsyncIterable<RecordBatch<T>>): Promise<RecordBatchFileWriter<T>>;\n public static writeAll<T extends { [key: string]: DataType } = any>(input: PromiseLike<AsyncIterable<RecordBatch<T>>>): Promise<RecordBatchFileWriter<T>>;\n public static writeAll<T extends { [key: string]: DataType } = any>(input: PromiseLike<Table<T> | Iterable<RecordBatch<T>>>): Promise<RecordBatchFileWriter<T>>;\n /** @nocollapse */\n public static writeAll<T extends { [key: string]: DataType } = any>(input: any) {\n const writer = new RecordBatchFileWriter<T>();\n if (isPromise<any>(input)) {\n return input.then((x) => writer.writeAll(x));\n } else if (isAsyncIterable<RecordBatch<T>>(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<T>) {\n return this._writeMagic()._writePadding(2);\n }\n\n protected _writeFooter(schema: Schema<T>) {\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<T extends { [key: string]: DataType } = any> extends RecordBatchWriter<T> {\n\n public static writeAll<T extends { [key: string]: DataType } = any>(this: typeof RecordBatchWriter, input: Table<T> | Iterable<RecordBatch<T>>): RecordBatchJSONWriter<T>;\n // @ts-ignore\n public static writeAll<T extends { [key: string]: DataType } = any>(this: typeof RecordBatchWriter, input: AsyncIterable<RecordBatch<T>>): Promise<RecordBatchJSONWriter<T>>;\n public static writeAll<T extends { [key: string]: DataType } = any>(this: typeof RecordBatchWriter, input: PromiseLike<AsyncIterable<RecordBatch<T>>>): Promise<RecordBatchJSONWriter<T>>;\n public static writeAll<T extends { [key: string]: DataType } = any>(this: typeof RecordBatchWriter, input: PromiseLike<Table<T> | Iterable<RecordBatch<T>>>): Promise<RecordBatchJSONWriter<T>>;\n /** @nocollapse */\n public static writeAll<T extends { [key: string]: DataType } = any>(this: typeof RecordBatchWriter, input: any) {\n return new RecordBatchJSONWriter<T>().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<T>) { return this; }\n protected _writeSchema(schema: Schema<T>) {\n return this._write(`{\\n \"schema\": ${\n JSON.stringify({ fields: schema.fields.map(fieldToJSON) }, null, 2)\n }`);\n }\n protected _writeDictionaries(batch: RecordBatch<T>) {\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<T>) {\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<T extends { [key: string]: DataType } = any>(writer: RecordBatchWriter<T>, input: Table<T> | Iterable<RecordBatch<T>>) {\n let chunks = input as Iterable<RecordBatch<T>>;\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<T extends { [key: string]: DataType } = any>(writer: RecordBatchWriter<T>, batches: AsyncIterable<RecordBatch<T>>) {\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): Record<string, unknown> {\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) => <unknown> [\n noopBuf, noopBuf, new Uint8Array(bitmapLength), noopBuf\n] as Buffers<any>;\n\n/** @ignore */\nexport function ensureSameLengthData<T extends { [key: string]: DataType } = any>(\n schema: Schema<T>,\n chunks: Data<T[keyof T]>[],\n batchLength = chunks.reduce((l, c) => Math.max(l, c.length), 0)\n) {\n let data: Data<T[keyof T]>;\n let field: Field<T[keyof T]>;\n let i = -1;\n const n = chunks.length;\n const fields = [...schema.fields];\n const batchData = [] as Data<T[keyof T]>[];\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<T[keyof T]>);\n batchData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data<T[keyof T]>;\n }\n }\n return [new Schema<T>(fields), batchLength, batchData] as [Schema<T>, number, Data<T[keyof T]>[]];\n}\n\n/** @ignore */\nexport function distributeColumnsIntoRecordBatches<T extends { [key: string]: DataType } = any>(columns: Column<T[keyof T]>[]): [Schema<T>, RecordBatch<T>[]] {\n return distributeVectorsIntoRecordBatches<T>(new Schema<T>(columns.map(({ field }) => field)), columns);\n}\n\n/** @ignore */\nexport function distributeVectorsIntoRecordBatches<T extends { [key: string]: DataType } = any>(schema: Schema<T>, vecs: (Vector<T[keyof T]> | Chunked<T[keyof T]>)[]): [Schema<T>, RecordBatch<T>[]] {\n return uniformlyDistributeChunksAcrossRecordBatches<T>(schema, vecs.map((v) => v instanceof Chunked ? v.chunks.map((c) => c.data) : [v.data]));\n}\n\n/** @ignore */\nfunction uniformlyDistributeChunksAcrossRecordBatches<T extends { [key: string]: DataType } = any>(schema: Schema<T>, columns: Data<T[keyof T]>[][]): [Schema<T>, RecordBatch<T>[]] {\n\n const fields = [...schema.fields];\n const batchArgs = [] as [number, Data<T[keyof T]>[]][];\n const memo = { numBatches: columns.reduce((n, c) => Math.max(n, c.length), 0) };\n\n let numBatches = 0, batchLength = 0;\n let i = -1;\n const numColumns = columns.length;\n let child: Data<T[keyof T]>, childData: Data<T[keyof T]>[] = [];\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<T>(fields, schema.metadata),\n batchArgs.map((xs) => new RecordBatch(schema, ...xs))\n ];\n}\n\n/** @ignore */\nfunction distributeChildData<T extends { [key: string]: DataType } = any>(fields: Field<T[keyof T]>[], batchLength: number, childData: Data<T[keyof T]>[], columns: Data<T[keyof T]>[][], memo: { numBatches: number }) {\n let data: Data<T[keyof T]>;\n let field: Field<T[keyof T]>;\n let length = 0, i = -1;\n const n = columns.length;\n const bitmapLength = ((batchLength + 63) & ~63) >> 3;\n while (++i < n) {\n if ((data = childData[i]) && ((length = data.length) >= batchLength)) {\n if (length === batchLength) {\n childData[i] = data;\n } 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<T[keyof T]>);\n childData[i] = data ? data._changeLengthAndBackfillNullBitmap(batchLength)\n : Data.new(field.type, 0, batchLength, batchLength, nullBufs(bitmapLength)) as Data<T[keyof T]>;\n }\n }\n return childData;\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 { 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<T extends DataType = any> extends Clonable<V<T>>, Sliceable<V<T>>, Applicative<T, Chunked<T>> {\n slice(begin?: number, end?: number): V<T>;\n concat(...others: Vector<T>[]): Chunked<T>;\n clone<R extends DataType = T>(data: Data<R>, children?: Vector<R>[]): V<R>;\n}\n\n/** @ignore */\nexport abstract class BaseVector<T extends DataType = any> extends AbstractVector<T>\n implements Clonable<V<T>>, Sliceable<V<T>>, Applicative<T, Chunked<T>> {\n\n protected _children?: Vector[];\n\n constructor(data: Data<T>, 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<T>;\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<R extends DataType = T>(data: Data<R>, children = this._children) {\n return Vector.new<R>(data, children) as any;\n }\n\n public concat(...others: Vector<T>[]) {\n return Chunked.concat<T>(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<R extends DataType = any>(index: number): Vector<R> | null {\n return index < 0 || index >= this.numChildren ? null : (\n (this._children || (this._children = []))[index] ||\n (this._children[index] = Vector.new<R>(this.data.childData[index] as Data<R>))\n ) as Vector<R>;\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<T>) {\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<Binary> {\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<Bool> {\n public static from<TNull = any>(input: Iterable<boolean | TNull>): BoolVector;\n public static from<TNull = any>(input: AsyncIterable<boolean | TNull>): Promise<BoolVector>;\n public static from<TNull = any>(input: VectorBuilderOptions<Bool, boolean | TNull>): Chunked<Bool>;\n public static from<TNull = any>(input: VectorBuilderOptionsAsync<Bool, boolean | TNull>): Promise<Chunked<Bool>>;\n /** @nocollapse */\n public static from<TNull = any>(input: Iterable<boolean | TNull> | AsyncIterable<boolean | TNull> | VectorBuilderOptions<Bool, boolean | TNull> | VectorBuilderOptionsAsync<Bool, boolean | TNull>) {\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<T extends Date_> = [Iterable<Date>, T['unit']];\n\n/** @ignore */\nexport class DateVector<T extends Date_ = Date_> extends BaseVector<T> {\n public static from<T extends DateUnit.DAY>(...args: FromArgs<DateDay>): V<DateDay>;\n public static from<T extends DateUnit.MILLISECOND>(...args: FromArgs<DateMillisecond>): V<DateMillisecond>;\n public static from<T extends Date_, TNull = any>(input: Iterable<Date | TNull>): V<T>;\n public static from<T extends Date_, TNull = any>(input: AsyncIterable<Date | TNull>): Promise<V<T>>;\n public static from<T extends Date_, TNull = any>(input: VectorBuilderOptions<T, Date | TNull>): Chunked<T>;\n public static from<T extends Date_, TNull = any>(input: VectorBuilderOptionsAsync<T, Date | TNull>): Promise<Chunked<T>>;\n /** @nocollapse */\n public static from<T extends Date_, TNull = any>(...args: FromArgs<T> | [Iterable<Date | TNull> | AsyncIterable<Date | TNull> | VectorBuilderOptions<T, Date | TNull> | VectorBuilderOptionsAsync<T, Date | TNull>]) {\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<DateDay> {}\n\n/** @ignore */\nexport class DateMillisecondVector extends DateVector<DateMillisecond> {}\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<Decimal> {}\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<T extends DataType = any, TKey extends TKeys = TKeys> = [Vector<T>, TKey, ArrayLike<number> | TKey['TArray']];\n\n/** @ignore */\nexport class DictionaryVector<T extends DataType = any, TKey extends TKeys = TKeys> extends BaseVector<Dictionary<T, TKey>> {\n public static from<T extends DataType = any, TKey extends TKeys = TKeys>(...args: FromArgs<T, TKey>): V<Dictionary<T, TKey>>;\n public static from<T extends DataType = any, TKey extends TKeys = TKeys>(input: VectorBuilderOptions<Dictionary<T, TKey>>): Vector<Dictionary<T, TKey>>;\n public static from<T extends DataType = any, TKey extends TKeys = TKeys>(input: VectorBuilderOptionsAsync<Dictionary<T, TKey>>): Promise<Vector<Dictionary<T, TKey>>>;\n /** @nocollapse */\n public static from<T extends DataType = any, TKey extends TKeys = TKeys>(...args: any[]) {\n if (args.length === 3) {\n const [values, indices, keys] = args as FromArgs<T, TKey>;\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<Dictionary<T, TKey>>) {\n super(data);\n this.indices = Vector.new(data.clone(this.type.indices));\n }\n\n public readonly indices: V<TKey>;\n\n public get dictionary() { return <Vector<T>> 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<FixedSizeBinary> {}\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<T extends DataType = any> extends BaseVector<FixedSizeList<T>> {}\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<T extends Float, TNull = any> =\n FloatArray |\n Iterable<T['TValue'] | TNull> |\n AsyncIterable<T['TValue'] | TNull> |\n VectorBuilderOptions<T, TNull> |\n VectorBuilderOptionsAsync<T, TNull> ;\n\n/** @ignore */\ntype FloatArrayCtor = TypedArrayConstructor<FloatArray>;\n\n/** @ignore */\nexport class FloatVector<T extends Float = Float> extends BaseVector<T> {\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<TNull = any>(this: typeof Float16Vector, input: FromInput<Float16, TNull>): Float16Vector;\n public static from<TNull = any>(this: typeof Float32Vector, input: FromInput<Float32, TNull>): Float32Vector;\n public static from<TNull = any>(this: typeof Float64Vector, input: FromInput<Float64, TNull>): Float64Vector;\n\n // Not zero-copy\n public static from<T extends Float, TNull = any>(this: typeof FloatVector, input: Iterable<T['TValue'] | TNull>): V<T>;\n public static from<T extends Float, TNull = any>(this: typeof FloatVector, input: AsyncIterable<T['TValue'] | TNull>): Promise<V<T>>;\n public static from<T extends Float, TNull = any>(this: typeof FloatVector, input: VectorBuilderOptions<T, TNull>): Chunked<T>;\n public static from<T extends Float, TNull = any>(this: typeof FloatVector, input: VectorBuilderOptionsAsync<T, TNull>): Promise<Chunked<T>>;\n /** @nocollapse */\n public static from<T extends Float, TNull = any>(this: FloatVectorConstructors, input: FromInput<T, TNull>) {\n\n let ArrowType = vectorTypeToDataType(this);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n const 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 const type = new ArrowType();\n const length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is Float16 but the input type isn't a Uint16Array,\n // let the Float16Builder handle casting the input values to Uint16s.\n if (!convertTo16Bit(ArrowType, input.constructor)) {\n return Vector.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<Float16> {\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<number>); }\n public toFloat64Array() { return new Float64Array(this as Iterable<number>); }\n}\n\n/** @ignore */\nexport class Float32Vector extends FloatVector<Float32> {}\n/** @ignore */\nexport class Float64Vector extends FloatVector<Float64> {}\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<T extends Interval = Interval> extends BaseVector<T> {}\n/** @ignore */\nexport class IntervalDayTimeVector extends IntervalVector<IntervalDayTime> {}\n/** @ignore */\nexport class IntervalYearMonthVector extends IntervalVector<IntervalYearMonth> {}\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<T extends Int, TNull = any> =\n IntArray | BigIntArray |\n Iterable<T['TValue'] | TNull> |\n AsyncIterable<T['TValue'] | TNull> |\n VectorBuilderOptions<T, TNull> |\n VectorBuilderOptionsAsync<T, TNull> ;\n\n/** @ignore */\ntype FromArgs<T extends Int, TNull = any> = [FromInput<T, TNull>, boolean?];\n\n/** @ignore */\ntype IntArrayCtor = TypedArrayConstructor<IntArray> | BigIntArrayConstructor<BigIntArray>;\n\n/** @ignore */\nexport class IntVector<T extends Int = Int> extends BaseVector<T> {\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<TNull = any>(this: typeof Int8Vector, input: FromInput<Int8, TNull>): Int8Vector;\n public static from<TNull = any>(this: typeof Int16Vector, input: FromInput<Int16, TNull>): Int16Vector;\n public static from<TNull = any>(this: typeof Int32Vector, input: FromInput<Int32, TNull>): Int32Vector;\n public static from<TNull = any>(this: typeof Int64Vector, input: FromInput<Int64, TNull>): Int64Vector;\n public static from<TNull = any>(this: typeof Uint8Vector, input: FromInput<Uint8, TNull>): Uint8Vector;\n public static from<TNull = any>(this: typeof Uint16Vector, input: FromInput<Uint16, TNull>): Uint16Vector;\n public static from<TNull = any>(this: typeof Uint32Vector, input: FromInput<Uint32, TNull>): Uint32Vector;\n public static from<TNull = any>(this: typeof Uint64Vector, input: FromInput<Uint64, TNull>): Uint64Vector;\n\n // Not zero-copy\n public static from<T extends Int, TNull = any>(this: typeof IntVector, input: Iterable<T['TValue'] | TNull>): V<T>;\n public static from<T extends Int, TNull = any>(this: typeof IntVector, input: AsyncIterable<T['TValue'] | TNull>): Promise<V<T>>;\n public static from<T extends Int, TNull = any>(this: typeof IntVector, input: VectorBuilderOptions<T, TNull>): Chunked<T>;\n public static from<T extends Int, TNull = any>(this: typeof IntVector, input: VectorBuilderOptionsAsync<T, TNull>): Promise<Chunked<T>>;\n /** @nocollapse */\n public static from<T extends Int, TNull = any>(this: IntVectorConstructors, ...args: FromArgs<T, TNull>) {\n\n const [input, is64bit = false] = args;\n let ArrowType = vectorTypeToDataType(this, is64bit);\n\n if ((input instanceof ArrayBuffer) || ArrayBuffer.isView(input)) {\n const 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 const type = new ArrowType();\n let length = input.byteLength / type.ArrayType.BYTES_PER_ELEMENT;\n // If the ArrowType is 64bit but the input type is 32bit pairs, update the logical length\n if (convert32To64Bit(ArrowType, input.constructor)) {\n length *= 0.5;\n }\n return Vector.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<Int8> {}\n/** @ignore */\nexport class Int16Vector extends IntVector<Int16> {}\n/** @ignore */\nexport class Int32Vector extends IntVector<Int32> {}\n/** @ignore */\nexport class Int64Vector extends IntVector<Int64> {\n public toBigInt64Array() {\n return toBigInt64Array(this.values);\n }\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<Uint8> {}\n/** @ignore */\nexport class Uint16Vector extends IntVector<Uint16> {}\n/** @ignore */\nexport class Uint32Vector extends IntVector<Uint32> {}\n/** @ignore */\nexport class Uint64Vector extends IntVector<Uint64> {\n public toBigUint64Array() {\n return toBigUint64Array(this.values);\n }\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<T extends DataType = any> extends BaseVector<List<T>> {}\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<K extends DataType = any, V extends DataType = any> extends BaseVector<Map_<K, V>> {\n public asList() {\n const child = this.type.children[0] as Field<Struct<{ key: K; value: V }>>;\n return Vector.new(this.data.clone(new List<Struct<{ key: K; value: V }>>(child)));\n }\n public bind(index: number): Map_<K, V>['TValue'] {\n const child = this.getChildAt<Struct<{ key: K; value: V }>>(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<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 { 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<T extends { [key: string]: DataType } = any> extends BaseVector<Struct<T>> {\n private _row!: StructRow<T>;\n public bind(index: number): Struct<T>['TValue'] {\n const proto = this._row || (this._row = new StructRow<T>(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<T extends Timestamp = Timestamp> extends BaseVector<T> {}\n/** @ignore */\nexport class TimestampSecondVector extends TimestampVector<TimestampSecond> {}\n/** @ignore */\nexport class TimestampMillisecondVector extends TimestampVector<TimestampMillisecond> {}\n/** @ignore */\nexport class TimestampMicrosecondVector extends TimestampVector<TimestampMicrosecond> {}\n/** @ignore */\nexport class TimestampNanosecondVector extends TimestampVector<TimestampNanosecond> {}\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<T extends Time = Time> extends BaseVector<T> {}\n/** @ignore */\nexport class TimeSecondVector extends TimeVector<TimeSecond> {}\n/** @ignore */\nexport class TimeMillisecondVector extends TimeVector<TimeMillisecond> {}\n/** @ignore */\nexport class TimeMicrosecondVector extends TimeVector<TimeMicrosecond> {}\n/** @ignore */\nexport class TimeNanosecondVector extends TimeVector<TimeNanosecond> {}\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<T extends Union = Union> extends BaseVector<T> {\n public get typeIdToChildIndex() { return this.data.type.typeIdToChildIndex; }\n}\n\n/** @ignore */\nexport class DenseUnionVector extends UnionVector<DenseUnion> {\n public get valueOffsets() { return this.data.valueOffsets!; }\n}\n\n/** @ignore */\nexport class SparseUnionVector extends UnionVector<SparseUnion> {}\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<Utf8> {\n public static from<TNull = any>(input: Iterable<string | TNull>): Utf8Vector;\n public static from<TNull = any>(input: AsyncIterable<string | TNull>): Promise<Utf8Vector>;\n public static from<TNull = any>(input: VectorBuilderOptions<Utf8, string | TNull>): Chunked<Utf8>;\n public static from<TNull = any>(input: VectorBuilderOptionsAsync<Utf8, string | TNull>): Promise<Chunked<Utf8>>;\n /** @nocollapse */\n public static from<TNull = any>(input: Iterable<string | TNull> | AsyncIterable<string | TNull> | VectorBuilderOptions<Utf8, string | TNull> | VectorBuilderOptionsAsync<Utf8, string | TNull>) {\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<T>(visit: (node: T) => any) {\n return function(this: T) { return visit(this); };\n}\n\n/** @ignore */\nexport function partial1<T>(visit: (node: T, a: any) => any) {\n return function(this: T, a: any) { return visit(this, a); };\n}\n\n/** @ignore */\nexport function partial2<T>(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<T extends VectorType> (node: T, index: number): T['TValue'];\n visitMany<T extends VectorType> (nodes: T[], indices: number[]): T['TValue'][];\n getVisitFn<T extends Type> (node: T): (vector: VectorType<T>, index: number) => VectorType<T>['TValue'];\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): (vector: VectorType<T>, index: number) => VectorType<T>['TValue'];\n visitNull <T extends Null> (vector: VectorType<T>, index: number): T['TValue'];\n visitBool <T extends Bool> (vector: VectorType<T>, index: number): T['TValue'];\n visitInt <T extends Int> (vector: VectorType<T>, index: number): T['TValue'];\n visitInt8 <T extends Int8> (vector: VectorType<T>, index: number): T['TValue'];\n visitInt16 <T extends Int16> (vector: VectorType<T>, index: number): T['TValue'];\n visitInt32 <T extends Int32> (vector: VectorType<T>, index: number): T['TValue'];\n visitInt64 <T extends Int64> (vector: VectorType<T>, index: number): T['TValue'];\n visitUint8 <T extends Uint8> (vector: VectorType<T>, index: number): T['TValue'];\n visitUint16 <T extends Uint16> (vector: VectorType<T>, index: number): T['TValue'];\n visitUint32 <T extends Uint32> (vector: VectorType<T>, index: number): T['TValue'];\n visitUint64 <T extends Uint64> (vector: VectorType<T>, index: number): T['TValue'];\n visitFloat <T extends Float> (vector: VectorType<T>, index: number): T['TValue'];\n visitFloat16 <T extends Float16> (vector: VectorType<T>, index: number): T['TValue'];\n visitFloat32 <T extends Float32> (vector: VectorType<T>, index: number): T['TValue'];\n visitFloat64 <T extends Float64> (vector: VectorType<T>, index: number): T['TValue'];\n visitUtf8 <T extends Utf8> (vector: VectorType<T>, index: number): T['TValue'];\n visitBinary <T extends Binary> (vector: VectorType<T>, index: number): T['TValue'];\n visitFixedSizeBinary <T extends FixedSizeBinary> (vector: VectorType<T>, index: number): T['TValue'];\n visitDate <T extends Date_> (vector: VectorType<T>, index: number): T['TValue'];\n visitDateDay <T extends DateDay> (vector: VectorType<T>, index: number): T['TValue'];\n visitDateMillisecond <T extends DateMillisecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimestamp <T extends Timestamp> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimestampSecond <T extends TimestampSecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimestampMillisecond <T extends TimestampMillisecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimestampMicrosecond <T extends TimestampMicrosecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimestampNanosecond <T extends TimestampNanosecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitTime <T extends Time> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimeSecond <T extends TimeSecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimeMillisecond <T extends TimeMillisecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimeMicrosecond <T extends TimeMicrosecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitTimeNanosecond <T extends TimeNanosecond> (vector: VectorType<T>, index: number): T['TValue'];\n visitDecimal <T extends Decimal> (vector: VectorType<T>, index: number): T['TValue'];\n visitList <T extends List> (vector: VectorType<T>, index: number): T['TValue'];\n visitStruct <T extends Struct> (vector: VectorType<T>, index: number): T['TValue'];\n visitUnion <T extends Union> (vector: VectorType<T>, index: number): T['TValue'];\n visitDenseUnion <T extends DenseUnion> (vector: VectorType<T>, index: number): T['TValue'];\n visitSparseUnion <T extends SparseUnion> (vector: VectorType<T>, index: number): T['TValue'];\n visitDictionary <T extends Dictionary> (vector: VectorType<T>, index: number): T['TValue'];\n visitInterval <T extends Interval> (vector: VectorType<T>, index: number): T['TValue'];\n visitIntervalDayTime <T extends IntervalDayTime> (vector: VectorType<T>, index: number): T['TValue'];\n visitIntervalYearMonth <T extends IntervalYearMonth> (vector: VectorType<T>, index: number): T['TValue'];\n visitFixedSizeList <T extends FixedSizeList> (vector: VectorType<T>, index: number): T['TValue'];\n visitMap <T extends Map_> (vector: VectorType<T>, 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 = <T extends Null>(_vector: VectorType<T>, _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 = <T extends Bool>({ offset, values }: VectorType<T>, 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 = <T extends DateDay> ({ values }: VectorType<T>, index: number): T['TValue'] => epochDaysToDate(values, index);\n/** @ignore */\nconst getDateMillisecond = <T extends DateMillisecond>({ values }: VectorType<T>, index: number): T['TValue'] => epochMillisecondsLongToDate(values, index * 2);\n/** @ignore */\nconst getNumeric = <T extends Numeric1X> ({ stride, values }: VectorType<T>, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getFloat16 = <T extends Float16> ({ stride, values }: VectorType<T>, index: number): T['TValue'] => uint16ToFloat64(values[stride * index]);\n/** @ignore */\nconst getBigInts = <T extends Numeric2X>({ stride, values, type }: VectorType<T>, index: number): T['TValue'] => <any> BN.new(values.subarray(stride * index, stride * (index + 1)), type.isSigned);\n/** @ignore */\nconst getFixedSizeBinary = <T extends FixedSizeBinary>({ stride, values }: VectorType<T>, index: number): T['TValue'] => values.subarray(stride * index, stride * (index + 1));\n\n/** @ignore */\nconst getBinary = <T extends Binary>({ values, valueOffsets }: VectorType<T>, index: number): T['TValue'] => getVariableWidthBytes(values, valueOffsets, index);\n/** @ignore */\nconst getUtf8 = <T extends Utf8>({ values, valueOffsets }: VectorType<T>, 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 = <T extends Int>(vector: VectorType<T>, index: number): T['TValue'] => (\n vector.type.bitWidth < 64\n ? getNumeric(vector as VectorType<Numeric1X>, index)\n : getBigInts(vector as VectorType<Numeric2X>, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getFloat = <T extends Float> (vector: VectorType<T>, index: number): T['TValue'] => (\n vector.type.precision !== Precision.HALF\n ? getNumeric(vector as VectorType<Numeric1X>, index)\n : getFloat16(vector as VectorType<Float16>, index)\n);\n\n/* istanbul ignore next */\n/** @ignore */\nconst getDate = <T extends Date_> (vector: VectorType<T>, index: number): T['TValue'] => (\n vector.type.unit === DateUnit.DAY\n ? getDateDay(vector as VectorType<DateDay>, index)\n : getDateMillisecond(vector as VectorType<DateMillisecond>, index)\n);\n\n/** @ignore */\nconst getTimestampSecond = <T extends TimestampSecond> ({ values }: VectorType<T>, index: number): T['TValue'] => 1000 * epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMillisecond = <T extends TimestampMillisecond>({ values }: VectorType<T>, index: number): T['TValue'] => epochMillisecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampMicrosecond = <T extends TimestampMicrosecond>({ values }: VectorType<T>, index: number): T['TValue'] => epochMicrosecondsLongToMs(values, index * 2);\n/** @ignore */\nconst getTimestampNanosecond = <T extends TimestampNanosecond> ({ values }: VectorType<T>, index: number): T['TValue'] => epochNanosecondsLongToMs(values, index * 2);\n/* istanbul ignore next */\n/** @ignore */\nconst getTimestamp = <T extends Timestamp>(vector: VectorType<T>, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimestampSecond(vector as VectorType<TimestampSecond>, index);\n case TimeUnit.MILLISECOND: return getTimestampMillisecond(vector as VectorType<TimestampMillisecond>, index);\n case TimeUnit.MICROSECOND: return getTimestampMicrosecond(vector as VectorType<TimestampMicrosecond>, index);\n case TimeUnit.NANOSECOND: return getTimestampNanosecond(vector as VectorType<TimestampNanosecond>, index);\n }\n};\n\n/** @ignore */\nconst getTimeSecond = <T extends TimeSecond> ({ values, stride }: VectorType<T>, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMillisecond = <T extends TimeMillisecond>({ values, stride }: VectorType<T>, index: number): T['TValue'] => values[stride * index];\n/** @ignore */\nconst getTimeMicrosecond = <T extends TimeMicrosecond>({ values }: VectorType<T>, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/** @ignore */\nconst getTimeNanosecond = <T extends TimeNanosecond> ({ values }: VectorType<T>, index: number): T['TValue'] => BN.signed(values.subarray(2 * index, 2 * (index + 1)));\n/* istanbul ignore next */\n/** @ignore */\nconst getTime = <T extends Time>(vector: VectorType<T>, index: number): T['TValue'] => {\n switch (vector.type.unit) {\n case TimeUnit.SECOND: return getTimeSecond(vector as VectorType<TimeSecond>, index);\n case TimeUnit.MILLISECOND: return getTimeMillisecond(vector as VectorType<TimeMillisecond>, index);\n case TimeUnit.MICROSECOND: return getTimeMicrosecond(vector as VectorType<TimeMicrosecond>, index);\n case TimeUnit.NANOSECOND: return getTimeNanosecond(vector as VectorType<TimeNanosecond>, index);\n }\n};\n\n/** @ignore */\nconst getDecimal = <T extends Decimal>({ values }: VectorType<T>, index: number): T['TValue'] => BN.decimal(values.subarray(4 * index, 4 * (index + 1)));\n\n/** @ignore */\nconst getList = <T extends List>(vector: VectorType<T>, 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 = <T extends Map_>(vector: VectorType<T>, index: number): T['TValue'] => {\n return vector.bind(index) as T['TValue'];\n};\n\n/** @ignore */\nconst getStruct = <T extends Struct>(vector: VectorType<T>, 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<Union> | VectorType<DenseUnion> | VectorType<SparseUnion>\n>(vector: V, index: number): V['TValue'] => {\n return vector.type.mode === UnionMode.Dense ?\n getDenseUnion(vector as VectorType<DenseUnion>, index) :\n getSparseUnion(vector as VectorType<SparseUnion>, index);\n};\n\n/** @ignore */\nconst getDenseUnion = <T extends DenseUnion>(vector: VectorType<T>, 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 = <T extends SparseUnion>(vector: VectorType<T>, 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 = <T extends Dictionary>(vector: VectorType<T>, index: number): T['TValue'] => {\n return vector.getValue(vector.getKey(index)!);\n};\n\n/* istanbul ignore next */\n/** @ignore */\nconst getInterval = <T extends Interval>(vector: VectorType<T>, index: number): T['TValue'] =>\n (vector.type.unit === IntervalUnit.DAY_TIME)\n ? getIntervalDayTime(vector as VectorType<IntervalDayTime>, index)\n : getIntervalYearMonth(vector as VectorType<IntervalYearMonth>, index);\n\n/** @ignore */\nconst getIntervalDayTime = <T extends IntervalDayTime>({ values }: VectorType<T>, index: number): T['TValue'] => values.subarray(2 * index, 2 * (index + 1));\n\n/** @ignore */\nconst getIntervalYearMonth = <T extends IntervalYearMonth>({ values }: VectorType<T>, 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 = <T extends FixedSizeList>(vector: VectorType<T>, 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, BitIterator } 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<T extends VectorType> (node: T, value: T['TValue'] | null, index?: number): number;\n visitMany <T extends VectorType> (nodes: T[], values: (T['TValue'] | null)[], indices: (number | undefined)[]): number[];\n getVisitFn<T extends Type> (node: T): (vector: VectorType<T>, value: VectorType<T>['TValue'] | null, index?: number) => number;\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): (vector: VectorType<T>, value: T['TValue'] | null, index?: number) => number;\n visitNull <T extends Null> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitBool <T extends Bool> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitInt <T extends Int> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitInt8 <T extends Int8> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitInt16 <T extends Int16> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitInt32 <T extends Int32> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitInt64 <T extends Int64> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitUint8 <T extends Uint8> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitUint16 <T extends Uint16> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitUint32 <T extends Uint32> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitUint64 <T extends Uint64> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitFloat <T extends Float> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitFloat16 <T extends Float16> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitFloat32 <T extends Float32> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitFloat64 <T extends Float64> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitUtf8 <T extends Utf8> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitBinary <T extends Binary> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeBinary <T extends FixedSizeBinary> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitDate <T extends Date_> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitDateDay <T extends DateDay> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitDateMillisecond <T extends DateMillisecond> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimestamp <T extends Timestamp> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimestampSecond <T extends TimestampSecond> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimestampMillisecond <T extends TimestampMillisecond>(vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimestampMicrosecond <T extends TimestampMicrosecond>(vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimestampNanosecond <T extends TimestampNanosecond> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTime <T extends Time> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimeSecond <T extends TimeSecond> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimeMillisecond <T extends TimeMillisecond> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimeMicrosecond <T extends TimeMicrosecond> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitTimeNanosecond <T extends TimeNanosecond> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitDecimal <T extends Decimal> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitList <T extends List> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitStruct <T extends Struct> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitUnion <T extends Union> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitDenseUnion <T extends DenseUnion> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitSparseUnion <T extends SparseUnion> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitDictionary <T extends Dictionary> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitInterval <T extends Interval> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitIntervalDayTime <T extends IntervalDayTime> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitIntervalYearMonth <T extends IntervalYearMonth> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitFixedSizeList <T extends FixedSizeList> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n visitMap <T extends Map_> (vector: VectorType<T>, value: T['TValue'] | null, index?: number): number;\n}\n\n/** @ignore */\nexport class IndexOfVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullIndexOf(vector: VectorType<Null>, 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<T extends DataType>(vector: VectorType<T>, fromIndex?: number): number {\n const { nullBitmap } = vector.data;\n if (!nullBitmap || vector.nullCount <= 0) {\n return -1;\n }\n let i = 0;\n for (const isValid of new BitIterator(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<T extends DataType>(vector: VectorType<T>, 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<T extends DataType>(vector: VectorType<T>, 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 { BitIterator } 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<T extends VectorType>(node: T): IterableIterator<T['TValue'] | null>;\n visitMany <T extends VectorType>(nodes: T[]): IterableIterator<T['TValue'] | null>[];\n getVisitFn<T extends Type>(node: T): (vector: VectorType<T>) => IterableIterator<VectorType<T>['TValue'] | null>;\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): (vector: VectorType<T>) => IterableIterator<VectorType<T>['TValue'] | null>;\n visitNull <T extends Null> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitBool <T extends Bool> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt <T extends Int> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt8 <T extends Int8> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt16 <T extends Int16> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt32 <T extends Int32> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt64 <T extends Int64> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUint8 <T extends Uint8> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUint16 <T extends Uint16> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUint32 <T extends Uint32> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUint64 <T extends Uint64> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFloat <T extends Float> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFloat16 <T extends Float16> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFloat32 <T extends Float32> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFloat64 <T extends Float64> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUtf8 <T extends Utf8> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitBinary <T extends Binary> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFixedSizeBinary <T extends FixedSizeBinary> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDate <T extends Date_> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDateDay <T extends DateDay> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDateMillisecond <T extends DateMillisecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestamp <T extends Timestamp> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestampSecond <T extends TimestampSecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestampMillisecond <T extends TimestampMillisecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestampMicrosecond <T extends TimestampMicrosecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestampNanosecond <T extends TimestampNanosecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTime <T extends Time> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimeSecond <T extends TimeSecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimeMillisecond <T extends TimeMillisecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimeMicrosecond <T extends TimeMicrosecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimeNanosecond <T extends TimeNanosecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDecimal <T extends Decimal> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitList <T extends List> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitStruct <T extends Struct> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUnion <T extends Union> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDenseUnion <T extends DenseUnion> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitSparseUnion <T extends SparseUnion> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDictionary <T extends Dictionary> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInterval <T extends Interval> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitIntervalDayTime <T extends IntervalDayTime> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitIntervalYearMonth <T extends IntervalYearMonth> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFixedSizeList <T extends FixedSizeList> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitMap <T extends Map_> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n}\n\n/** @ignore */\nexport class IteratorVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullableIterator<T extends DataType>(vector: VectorType<T>): IterableIterator<T['TValue'] | null> {\n const getFn = getVisitor.getVisitFn(vector);\n return new BitIterator<T['TValue'] | null>(\n vector.data.nullBitmap, vector.data.offset, vector.length, vector,\n (vec: VectorType<T>, idx: number, nullByte: number, nullBit: number) =>\n ((nullByte & 1 << nullBit) !== 0) ? getFn(vec, idx) : null\n );\n}\n\n/** @ignore */\nclass VectorIterator<T extends DataType> implements IterableIterator<T['TValue'] | null> {\n private index = 0;\n\n constructor(\n private vector: VectorType<T>,\n private getFn: (vector: VectorType<T>, index: number) => VectorType<T>['TValue']\n ) {}\n\n next(): IteratorResult<T['TValue'] | null> {\n if (this.index < this.vector.length) {\n return {\n value: this.getFn(this.vector, this.index++)\n };\n }\n\n return {done: true, value: null};\n }\n\n [Symbol.iterator]() {\n return this;\n }\n}\n\n/** @ignore */\nfunction vectorIterator<T extends DataType>(vector: VectorType<T>): IterableIterator<T['TValue'] | null> {\n\n // If nullable, iterate manually\n if (vector.nullCount > 0) {\n return nullableIterator<T>(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.data.values.subarray(0, length)[Symbol.iterator]();\n }\n\n // Otherwise, iterate manually\n return new VectorIterator(vector, 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<T extends VectorType>(node: T): T['TArray'];\n visitMany<T extends VectorType>(nodes: T[]): T['TArray'][];\n getVisitFn<T extends Type>(node: T): (vector: VectorType<T>) => VectorType<T>['TArray'];\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): (vector: VectorType<T>) => VectorType<T>['TArray'];\n visitNull <T extends Null> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitBool <T extends Bool> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitInt <T extends Int> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitInt8 <T extends Int8> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitInt16 <T extends Int16> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitInt32 <T extends Int32> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitInt64 <T extends Int64> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitUint8 <T extends Uint8> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitUint16 <T extends Uint16> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitUint32 <T extends Uint32> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitUint64 <T extends Uint64> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitFloat <T extends Float> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitFloat16 <T extends Float16> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitFloat32 <T extends Float32> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitFloat64 <T extends Float64> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitUtf8 <T extends Utf8> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitBinary <T extends Binary> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitFixedSizeBinary <T extends FixedSizeBinary> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitDate <T extends Date_> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitDateDay <T extends DateDay> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitDateMillisecond <T extends DateMillisecond> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimestamp <T extends Timestamp> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimestampSecond <T extends TimestampSecond> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimestampMillisecond <T extends TimestampMillisecond>(vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimestampMicrosecond <T extends TimestampMicrosecond>(vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimestampNanosecond <T extends TimestampNanosecond> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitTime <T extends Time> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimeSecond <T extends TimeSecond> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimeMillisecond <T extends TimeMillisecond> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimeMicrosecond <T extends TimeMicrosecond> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitTimeNanosecond <T extends TimeNanosecond> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitDecimal <T extends Decimal> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitList <R extends DataType, T extends List<R>> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitStruct <T extends Struct> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitUnion <T extends Union> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitDenseUnion <T extends DenseUnion> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitSparseUnion <T extends SparseUnion> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitDictionary <R extends DataType, T extends Dictionary<R>> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitInterval <T extends Interval> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitIntervalDayTime <T extends IntervalDayTime> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitIntervalYearMonth <T extends IntervalYearMonth> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitFixedSizeList <R extends DataType, T extends FixedSizeList<R>> (vector: VectorType<T>): VectorType<T>['TArray'];\n visitMap <T extends Map_> (vector: VectorType<T>): VectorType<T>['TArray'];\n}\n\n/** @ignore */\nexport class ToArrayVisitor extends Visitor {}\n\n/** @ignore */\nfunction arrayOfVector<T extends DataType>(vector: VectorType<T>): 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.data.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<T extends DataType>(node: T): number;\n visitMany<T extends DataType>(nodes: T[]): number[];\n getVisitFn<T extends Type> (node: T): (type: DataType<T>) => number;\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | 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<T extends Type>(node: T): VectorCtor<T>;\n visitMany <T extends Type>(nodes: T[]): VectorCtor<T>[];\n getVisitFn<T extends Type>(node: T): () => VectorCtor<T>;\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): () => VectorCtor<T>;\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<T extends DataType> {\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<T['TValue'] | null>;\n }\n}\n\n/** @nocollapse */\nVector.new = newVector;\n\n/** @nocollapse */\nVector.from = vectorFrom;\n\n/** @ignore */\nfunction newVector<T extends DataType>(data: Data<T>, ...args: VectorCtorArgs<V<T>>): V<T> {\n return new (getVectorConstructor.getVisitFn<T>(data)())(data, ...args) as V<T>;\n}\n\n/** @ignore */\nexport interface VectorBuilderOptions<T extends DataType, TNull = any> extends IterableBuilderOptions<T, TNull> { values: Iterable<T['TValue'] | TNull> }\n/** @ignore */\nexport interface VectorBuilderOptionsAsync<T extends DataType, TNull = any> extends IterableBuilderOptions<T, TNull> { values: AsyncIterable<T['TValue'] | TNull> }\n\n/** @ignore */\nexport function vectorFromValuesWithType<T extends DataType, TNull = any>(newDataType: () => T, input: Iterable<T['TValue'] | TNull> | AsyncIterable<T['TValue'] | TNull> | VectorBuilderOptions<T, TNull> | VectorBuilderOptionsAsync<T, TNull>) {\n if (isIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as V<T>;\n } else if (isAsyncIterable(input)) {\n return Vector.from({ 'nullValues': [null, undefined], type: newDataType(), 'values': input }) as Promise<V<T>>;\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<T, TNull>)\n : Vector.from({ nullValues, ...input, type } as VectorBuilderOptionsAsync<T, TNull>);\n}\n\n/** @ignore */\nfunction vectorFrom<T extends DataType = any, TNull = any>(input: VectorBuilderOptions<T, TNull>): Vector<T>;\nfunction vectorFrom<T extends DataType = any, TNull = any>(input: VectorBuilderOptionsAsync<T, TNull>): Promise<Vector<T>>;\nfunction vectorFrom<T extends DataType = any, TNull = any>(input: VectorBuilderOptions<T, TNull> | VectorBuilderOptionsAsync<T, TNull>) {\n const { 'values': values = [], ...options } = { 'nullValues': [null, undefined], ...input } as VectorBuilderOptions<T, TNull> | VectorBuilderOptionsAsync<T, TNull>;\n if (isIterable<T['TValue'] | TNull>(values)) {\n const chunks = [...Builder.throughIterable(options)(values)];\n return (chunks.length === 1 ? chunks[0] : Chunked.concat<T>(chunks)) as Vector<T>;\n }\n return (async (chunks: V<T>[]) => {\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<T>(chunks)) as Vector<T>;\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<T extends DataType>(this: BaseVector<T>, index: number): T['TValue'] | null {\n return getVisitor.visit(this, index);\n};\n\nBaseVector.prototype.set = function baseVectorSet<T extends DataType>(this: BaseVector<T>, index: number, value: T['TValue'] | null): void {\n return setVisitor.visit(this, index, value);\n};\n\nBaseVector.prototype.indexOf = function baseVectorIndexOf<T extends DataType>(this: BaseVector<T>, value: T['TValue'] | null, fromIndex?: number): number {\n return indexOfVisitor.visit(this, value, fromIndex);\n};\n\nBaseVector.prototype.toArray = function baseVectorToArray<T extends DataType>(this: BaseVector<T>): T['TArray'] {\n return toArrayVisitor.visit(this);\n};\n\nBaseVector.prototype.getByteWidth = function baseVectorGetByteWidth<T extends DataType>(this: BaseVector<T>): number {\n return byteWidthVisitor.visit(this.type);\n};\n\nBaseVector.prototype[Symbol.iterator] = function baseVectorSymbolIterator<T extends DataType>(this: BaseVector<T>): IterableIterator<T['TValue'] | null> {\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<T extends Vector>(visit: (node: T['type']) => any) {\n return function(this: T) { return visit(this.type); };\n}\n\n/** @ignore */\nfunction wrapNullableGet<T extends DataType, V extends Vector<T>, F extends (i: number) => any>(fn: F): (...args: Parameters<F>) => ReturnType<F> {\n return function(this: V, i: number) { return this.isValid(i) ? fn.call(this, i) : null; };\n}\n\n/** @ignore */\nfunction wrapNullableSet<T extends DataType, V extends BaseVector<T>, F extends (i: number, a: any) => void>(fn: F): (...args: Parameters<F>) => 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<T extends DataType>(this: BaseVector<T>) {\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<T extends { [key: string]: DataType }> = (keyof T)[] | Field<T[keyof T]>[];\ntype ChildData<T extends { [key: string]: DataType }> = Data<T[keyof T]>[] | Vector<T[keyof T]>[];\ntype Columns<T extends { [key: string]: DataType }> = Column<T[keyof T]>[] | Column<T[keyof T]>[][];\n\nexport interface Table<T extends { [key: string]: DataType } = any> {\n\n get(index: number): Struct<T>['TValue'];\n [Symbol.iterator](): IterableIterator<RowLike<T>>;\n\n slice(begin?: number, end?: number): Table<T>;\n concat(...others: Vector<Struct<T>>[]): Table<T>;\n clone(chunks?: RecordBatch<T>[], offsets?: Uint32Array): Table<T>;\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<T>;\n}\n\nexport class Table<T extends { [key: string]: DataType } = any>\n extends Chunked<Struct<T>>\n implements DataFrame<T>,\n Clonable<Table<T>>,\n Sliceable<Table<T>>,\n Applicative<Struct<T>, Table<T>> {\n\n /** @nocollapse */\n public static empty<T extends { [key: string]: DataType } = Record<string, never>>(schema = new Schema<T>([])) { return new Table<T>(schema, []); }\n\n public static from(): Table<Record<string, never>>;\n public static from<T extends { [key: string]: DataType } = any>(source: RecordBatchReader<T>): Table<T>;\n public static from<T extends { [key: string]: DataType } = any>(source: import('./ipc/reader').FromArg0): Table<T>;\n public static from<T extends { [key: string]: DataType } = any>(source: import('./ipc/reader').FromArg2): Table<T>;\n public static from<T extends { [key: string]: DataType } = any>(source: import('./ipc/reader').FromArg1): Promise<Table<T>>;\n public static from<T extends { [key: string]: DataType } = any>(source: import('./ipc/reader').FromArg3): Promise<Table<T>>;\n public static from<T extends { [key: string]: DataType } = any>(source: import('./ipc/reader').FromArg4): Promise<Table<T>>;\n public static from<T extends { [key: string]: DataType } = any>(source: import('./ipc/reader').FromArg5): Promise<Table<T>>;\n public static from<T extends { [key: string]: DataType } = any>(source: PromiseLike<RecordBatchReader<T>>): Promise<Table<T>>;\n public static from<T extends { [key: string]: DataType } = any, TNull = any>(options: VectorBuilderOptions<Struct<T>, TNull>): Table<T>;\n public static from<T extends { [key: string]: DataType } = any, TNull = any>(options: VectorBuilderOptionsAsync<Struct<T>, TNull>): Promise<Table<T>>;\n /** @nocollapse */\n public static from<T extends { [key: string]: DataType } = any, TNull = any>(input?: any) {\n\n if (!input) { return Table.empty(); }\n\n if (typeof input === 'object') {\n const table = isIterable(input['values']) ? tableFromIterable<T, TNull>(input)\n : isAsyncIterable(input['values']) ? tableFromAsyncIterable<T, TNull>(input)\n : null;\n if (table !== null) { return table; }\n }\n\n let reader = RecordBatchReader.from<T>(input) as RecordBatchReader<T> | Promise<RecordBatchReader<T>>;\n\n if (isPromise<RecordBatchReader<T>>(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<T>(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 (const batch of reader) {\n batches.push(batch);\n }\n return new Table<T>(schema, batches);\n }\n return Table.empty();\n })(reader.open());\n }\n\n /** @nocollapse */\n public static async fromAsync<T extends { [key: string]: DataType } = any>(source: import('./ipc/reader').FromArgs): Promise<Table<T>> {\n return await Table.from<T>(source as any);\n }\n\n /** @nocollapse */\n public static fromStruct<T extends { [key: string]: DataType } = any>(vector: Vector<Struct<T>>) {\n return Table.new<T>(vector.data.childData as Data<T[keyof T]>[], 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<T extends { [key: string]: DataType } = any>(...columns: Columns<T>): Table<T>;\n public static new<T extends VectorMap = any>(children: T): Table<{ [P in keyof T]: T[P]['type'] }>;\n public static new<T extends { [key: string]: DataType } = any>(children: ChildData<T>, fields?: Fields<T>): Table<T>;\n /** @nocollapse */\n public static new(...cols: any[]) {\n return new Table(...distributeColumnsIntoRecordBatches(selectColumnArgs(cols)));\n }\n\n constructor(batches: RecordBatch<T>[]);\n constructor(...batches: RecordBatch<T>[]);\n constructor(schema: Schema<T>, batches: RecordBatch<T>[]);\n constructor(schema: Schema<T>, ...batches: RecordBatch<T>[]);\n constructor(...args: any[]) {\n\n let schema: Schema<T> = null!;\n\n if (args[0] instanceof Schema) { schema = args.shift(); }\n\n const chunks = selectArgs<RecordBatch<T>>(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<T>;\n // List of inner RecordBatches\n protected _chunks: RecordBatch<T>[];\n protected _children?: Column<T[keyof T]>[];\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<T>(this._schema, chunks);\n }\n\n public getColumn<R extends keyof T>(name: R): Column<T[R]> {\n return this.getColumnAt(this.getColumnIndex(name)) as Column<T[R]>;\n }\n public getColumnAt<R extends DataType = any>(index: number): Column<R> | null {\n return this.getChildAt(index);\n }\n public getColumnIndex<R extends keyof T>(name: R) {\n return this._schema.fields.findIndex((f) => f.name === name);\n }\n public getChildAt<R extends DataType = any>(index: number): Column<R> | null {\n if (index < 0 || index >= this.numChildren) { return null; }\n let field: Field<R>, child: Column<R>;\n const fields = (this._schema as Schema<any>).fields;\n const columns = this._children || (this._children = []) as Column[];\n if (child = columns[index]) { return child as Column<R>; }\n if (field = fields[index]) {\n const chunks = this._chunks\n .map((chunk) => chunk.getChildAt<R>(index))\n .filter((vec): vec is Vector<R> => vec != null);\n if (chunks.length > 0) {\n return (columns[index] = new Column<R>(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<K extends keyof T = any>(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map<K, number>());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt<K extends T[keyof T] = any>(...columnIndices: number[]) {\n const schema = this._schema.selectAt<K>(...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<R extends { [key: string]: DataType } = any>(other: Table<R>) {\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<T & R>(...distributeVectorsIntoRecordBatches<any>(schema, columns));\n }\n}\n\nfunction tableFromIterable<T extends { [key: string]: DataType } = any, TNull = any>(input: VectorBuilderOptions<Struct<T>, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return Table.fromStruct(StructVector.from(input as VectorBuilderOptions<Struct<T>, TNull>));\n }\n return null;\n}\n\nfunction tableFromAsyncIterable<T extends { [key: string]: DataType } = any, TNull = any>(input: VectorBuilderOptionsAsync<Struct<T>, TNull>) {\n const { type } = input;\n if (type instanceof Struct) {\n return StructVector.from(input as VectorBuilderOptionsAsync<Struct<T>, 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<T extends { [key: string]: DataType }> = (keyof T)[] | Field<T[keyof T]>[];\ntype ChildData<T extends { [key: string]: DataType }> = (Data<T[keyof T]> | Vector<T[keyof T]>)[];\n\nexport interface RecordBatch<T extends { [key: string]: DataType } = any> {\n concat(...others: Vector<Struct<T>>[]): Table<T>;\n slice(begin?: number, end?: number): RecordBatch<T>;\n clone(data: Data<Struct<T>>, children?: Vector[]): RecordBatch<T>;\n}\n\nexport class RecordBatch<T extends { [key: string]: DataType } = any>\n extends StructVector<T>\n implements Clonable<RecordBatch<T>>,\n Sliceable<RecordBatch<T>>,\n Applicative<Struct<T>, Table<T>> {\n\n public static from<T extends { [key: string]: DataType } = any, TNull = any>(options: VectorBuilderOptions<Struct<T>, TNull>): Table<T>;\n public static from<T extends { [key: string]: DataType } = any, TNull = any>(options: VectorBuilderOptionsAsync<Struct<T>, TNull>): Promise<Table<T>>;\n /** @nocollapse */\n public static from<T extends { [key: string]: DataType } = any, TNull = any>(options: VectorBuilderOptions<Struct<T>, TNull> | VectorBuilderOptionsAsync<Struct<T>, TNull>) {\n if (isIterable<(Struct<T>)['TValue'] | TNull>(options['values'])) {\n return Table.from(options as VectorBuilderOptions<Struct<T>, TNull>);\n }\n return Table.from(options as VectorBuilderOptionsAsync<Struct<T>, TNull>);\n }\n\n public static new<T extends VectorMap = any>(children: T): RecordBatch<{ [P in keyof T]: T[P]['type'] }>;\n public static new<T extends { [key: string]: DataType } = any>(children: ChildData<T>, fields?: Fields<T>): RecordBatch<T>;\n /** @nocollapse */\n public static new<T extends { [key: string]: DataType } = any>(...args: any[]) {\n const [fs, xs] = selectFieldArgs<T>(args);\n const vs = xs.filter((x): x is Vector<T[keyof T]> => x instanceof Vector);\n return new RecordBatch(...ensureSameLengthData(new Schema<T>(fs), vs.map((x) => x.data)));\n }\n\n protected _schema: Schema;\n protected _dictionaries?: Map<number, Vector>;\n\n constructor(schema: Schema<T>, length: number, children: (Data | Vector)[]);\n constructor(schema: Schema<T>, data: Data<Struct<T>>, children?: Vector[]);\n constructor(...args: any[]) {\n let data: Data<Struct<T>>;\n const schema = args[0] as Schema<T>;\n let children: Vector[] | undefined;\n if (args[1] instanceof Data) {\n [, data, children] = (args as [any, Data<Struct<T>>, Vector<T[keyof T]>[]?]);\n } else {\n const fields = schema.fields as Field<T[keyof T]>[];\n const [, length, childData] = args as [any, number, Data<T[keyof T]>[]];\n data = Data.Struct(new Struct<T>(fields), 0, length, 0, null, childData);\n }\n super(data, children);\n this._schema = schema;\n }\n\n public clone(data: Data<Struct<T>>, children = this._children) {\n return new RecordBatch<T>(this._schema, data, children);\n }\n\n public concat(...others: Vector<Struct<T>>[]): Table<T> {\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<K extends keyof T = any>(...columnNames: K[]) {\n const nameToIndex = this._schema.fields.reduce((m, f, i) => m.set(f.name as K, i), new Map<K, number>());\n return this.selectAt(...columnNames.map((columnName) => nameToIndex.get(columnName)!).filter((x) => x > -1));\n }\n public selectAt<K extends T[keyof T] = any>(...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/* eslint-disable @typescript-eslint/naming-convention */\nexport class _InternalEmptyPlaceholderRecordBatch<T extends { [key: string]: DataType } = any> extends RecordBatch<T> {\n constructor(schema: Schema<T>) {\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<number, Vector>();\n public static collect<T extends RecordBatch>(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<ArrowJSONLike>;\n/** @ignore */ export type FromArg2 = Iterable<ArrayBufferViewInput> | ArrayBufferViewInput;\n/** @ignore */ export type FromArg3 = PromiseLike<Iterable<ArrayBufferViewInput> | ArrayBufferViewInput>;\n/** @ignore */ export type FromArg4 = Response | NodeJS.ReadableStream | ReadableStream<ArrayBufferViewInput> | AsyncIterable<ArrayBufferViewInput>;\n/** @ignore */ export type FromArg5 = FileHandle | PromiseLike<FileHandle> | PromiseLike<FromArg4>;\n/** @ignore */ export type FromArgs = FromArg0 | FromArg1 | FromArg2 | FromArg3 | FromArg4 | FromArg5;\n\n/** @ignore */ type OpenOptions = { autoDestroy?: boolean };\n/** @ignore */ type RecordBatchReaders<T extends { [key: string]: DataType } = any> = RecordBatchFileReader<T> | RecordBatchStreamReader<T>;\n/** @ignore */ type AsyncRecordBatchReaders<T extends { [key: string]: DataType } = any> = AsyncRecordBatchFileReader<T> | AsyncRecordBatchStreamReader<T>;\n/** @ignore */ type RecordBatchFileReaders<T extends { [key: string]: DataType } = any> = RecordBatchFileReader<T> | AsyncRecordBatchFileReader<T>;\n/** @ignore */ type RecordBatchStreamReaders<T extends { [key: string]: DataType } = any> = RecordBatchStreamReader<T> | AsyncRecordBatchStreamReader<T>;\n\nexport class RecordBatchReader<T extends { [key: string]: DataType } = any> extends ReadableInterop<RecordBatch<T>> {\n\n protected _impl: RecordBatchReaderImpls<T>;\n protected constructor(impl: RecordBatchReaderImpls<T>) {\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(): Footer | null { return this._impl.isFile() ? this._impl.footer : null; }\n\n public isSync(): this is RecordBatchReaders<T> { return this._impl.isSync(); }\n public isAsync(): this is AsyncRecordBatchReaders<T> { return this._impl.isAsync(); }\n public isFile(): this is RecordBatchFileReaders<T> { return this._impl.isFile(); }\n public isStream(): this is RecordBatchStreamReaders<T> { 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<T> | 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<T> | null | Promise<RecordBatch<T> | null> {\n return this._impl.isFile() ? this._impl.readRecordBatch(index) : null;\n }\n public [Symbol.iterator](): IterableIterator<RecordBatch<T>> {\n return (<IterableIterator<RecordBatch<T>>> this._impl)[Symbol.iterator]();\n }\n public [Symbol.asyncIterator](): AsyncIterableIterator<RecordBatch<T>> {\n return (<AsyncIterableIterator<RecordBatch<T>>> this._impl)[Symbol.asyncIterator]();\n }\n public toDOMStream() {\n return streamAdapters.toDOMStream<RecordBatch<T>>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable<RecordBatch<T>>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable<RecordBatch<T>>));\n }\n public toNodeStream() {\n return streamAdapters.toNodeStream<RecordBatch<T>>(\n (this.isSync()\n ? { [Symbol.iterator]: () => this } as Iterable<RecordBatch<T>>\n : { [Symbol.asyncIterator]: () => this } as AsyncIterable<RecordBatch<T>>),\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<T extends { [key: string]: DataType }>(\n // @ts-ignore\n writableStrategy?: ByteLengthQueuingStrategy,\n // @ts-ignore\n readableStrategy?: { autoDestroy: boolean }\n ): { writable: WritableStream<Uint8Array>; readable: ReadableStream<RecordBatch<T>> } {\n throw new Error(`\"throughDOM\" not available in this environment`);\n }\n\n public static from<T extends RecordBatchReader>(source: T): T;\n public static from<T extends { [key: string]: DataType } = any>(source: FromArg0): RecordBatchStreamReader<T>;\n public static from<T extends { [key: string]: DataType } = any>(source: FromArg1): Promise<RecordBatchStreamReader<T>>;\n public static from<T extends { [key: string]: DataType } = any>(source: FromArg2): RecordBatchFileReader<T> | RecordBatchStreamReader<T>;\n public static from<T extends { [key: string]: DataType } = any>(source: FromArg3): Promise<RecordBatchFileReader<T> | RecordBatchStreamReader<T>>;\n public static from<T extends { [key: string]: DataType } = any>(source: FromArg4): Promise<RecordBatchFileReader<T> | AsyncRecordBatchReaders<T>>;\n public static from<T extends { [key: string]: DataType } = any>(source: FromArg5): Promise<AsyncRecordBatchFileReader<T> | AsyncRecordBatchStreamReader<T>>;\n /** @nocollapse */\n public static from<T extends { [key: string]: DataType } = any>(source: any) {\n if (source instanceof RecordBatchReader) {\n return source;\n } else if (isArrowJSON(source)) {\n return fromArrowJSON<T>(source);\n } else if (isFileHandle(source)) {\n return fromFileHandle<T>(source);\n } else if (isPromise<any>(source)) {\n return (async () => await RecordBatchReader.from<any>(await source))();\n } else if (isFetchResponse(source) || isReadableDOMStream(source) || isReadableNodeStream(source) || isAsyncIterable(source)) {\n return fromAsyncByteStream<T>(new AsyncByteStream(source));\n }\n return fromByteStream<T>(new ByteStream(source));\n }\n\n public static readAll<T extends RecordBatchReader>(source: T): T extends RecordBatchReaders ? IterableIterator<T> : AsyncIterableIterator<T>;\n public static readAll<T extends { [key: string]: DataType } = any>(source: FromArg0): IterableIterator<RecordBatchStreamReader<T>>;\n public static readAll<T extends { [key: string]: DataType } = any>(source: FromArg1): AsyncIterableIterator<RecordBatchStreamReader<T>>;\n public static readAll<T extends { [key: string]: DataType } = any>(source: FromArg2): IterableIterator<RecordBatchFileReader<T> | RecordBatchStreamReader<T>>;\n public static readAll<T extends { [key: string]: DataType } = any>(source: FromArg3): AsyncIterableIterator<RecordBatchFileReader<T> | RecordBatchStreamReader<T>>;\n public static readAll<T extends { [key: string]: DataType } = any>(source: FromArg4): AsyncIterableIterator<RecordBatchFileReader<T> | AsyncRecordBatchReaders<T>>;\n public static readAll<T extends { [key: string]: DataType } = any>(source: FromArg5): AsyncIterableIterator<AsyncRecordBatchFileReader<T> | AsyncRecordBatchStreamReader<T>>;\n /** @nocollapse */\n public static readAll<T extends { [key: string]: DataType } = any>(source: any) {\n if (source instanceof RecordBatchReader) {\n return source.isSync() ? readAllSync(source) : readAllAsync(source as AsyncRecordBatchReaders<T>);\n } else if (isArrowJSON(source) || ArrayBuffer.isView(source) || isIterable<ArrayBufferViewInput>(source) || isIteratorResult(source)) {\n return readAllSync<T>(source) as IterableIterator<RecordBatchReaders<T>>;\n }\n return readAllAsync<T>(source) as AsyncIterableIterator<RecordBatchReaders<T> | AsyncRecordBatchReaders<T>>;\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<T extends { [key: string]: DataType } = any> extends RecordBatchReader<T> {\n constructor(protected _impl: RecordBatchStreamReaderImpl<T>) { super (_impl); }\n public [Symbol.iterator]() { return (this._impl as IterableIterator<RecordBatch<T>>)[Symbol.iterator](); }\n public async *[Symbol.asyncIterator](): AsyncIterableIterator<RecordBatch<T>> { yield* this[Symbol.iterator](); }\n}\n/** @ignore */\nexport class AsyncRecordBatchStreamReader<T extends { [key: string]: DataType } = any> extends RecordBatchReader<T> {\n constructor(protected _impl: AsyncRecordBatchStreamReaderImpl<T>) { super (_impl); }\n public [Symbol.iterator](): IterableIterator<RecordBatch<T>> { throw new Error(`AsyncRecordBatchStreamReader is not Iterable`); }\n public [Symbol.asyncIterator]() { return (this._impl as AsyncIterableIterator<RecordBatch<T>>)[Symbol.asyncIterator](); }\n}\n/** @ignore */\nexport class RecordBatchFileReader<T extends { [key: string]: DataType } = any> extends RecordBatchStreamReader<T> {\n constructor(protected _impl: RecordBatchFileReaderImpl<T>) { super (_impl); }\n}\n/** @ignore */\nexport class AsyncRecordBatchFileReader<T extends { [key: string]: DataType } = any> extends AsyncRecordBatchStreamReader<T> {\n constructor(protected _impl: AsyncRecordBatchFileReaderImpl<T>) { super (_impl); }\n}\n\n//\n// Now override the return types for each sync/async RecordBatchReader variant\n//\n\n/** @ignore */\nexport interface RecordBatchStreamReader<T extends { [key: string]: DataType } = any> extends RecordBatchReader<T> {\n open(options?: OpenOptions | undefined): this;\n cancel(): void;\n throw(value?: any): IteratorResult<any>;\n return(value?: any): IteratorResult<any>;\n next(value?: any): IteratorResult<RecordBatch<T>>;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchStreamReader<T extends { [key: string]: DataType } = any> extends RecordBatchReader<T> {\n open(options?: OpenOptions | undefined): Promise<this>;\n cancel(): Promise<void>;\n throw(value?: any): Promise<IteratorResult<any>>;\n return(value?: any): Promise<IteratorResult<any>>;\n next(value?: any): Promise<IteratorResult<RecordBatch<T>>>;\n}\n\n/** @ignore */\nexport interface RecordBatchFileReader<T extends { [key: string]: DataType } = any> extends RecordBatchStreamReader<T> {\n readRecordBatch(index: number): RecordBatch<T> | null;\n}\n\n/** @ignore */\nexport interface AsyncRecordBatchFileReader<T extends { [key: string]: DataType } = any> extends AsyncRecordBatchStreamReader<T> {\n readRecordBatch(index: number): Promise<RecordBatch<T> | null>;\n}\n\n/** @ignore */\ntype RecordBatchReaderImpls<T extends { [key: string]: DataType } = any> =\n RecordBatchJSONReaderImpl<T> |\n RecordBatchFileReaderImpl<T> |\n RecordBatchStreamReaderImpl<T> |\n AsyncRecordBatchFileReaderImpl<T> |\n AsyncRecordBatchStreamReaderImpl<T>;\n\n/** @ignore */\ninterface RecordBatchReaderImpl<T extends { [key: string]: DataType } = any> {\n\n closed: boolean;\n schema: Schema<T>;\n autoDestroy: boolean;\n dictionaries: Map<number, Vector>;\n\n isFile(): this is RecordBatchFileReaders<T>;\n isStream(): this is RecordBatchStreamReaders<T>;\n isSync(): this is RecordBatchReaders<T>;\n isAsync(): this is AsyncRecordBatchReaders<T>;\n\n reset(schema?: Schema<T> | null): this;\n}\n\n/** @ignore */\ninterface RecordBatchStreamReaderImpl<T extends { [key: string]: DataType } = any> extends RecordBatchReaderImpl<T> {\n\n open(options?: OpenOptions): this;\n cancel(): void;\n\n throw(value?: any): IteratorResult<any>;\n return(value?: any): IteratorResult<any>;\n next(value?: any): IteratorResult<RecordBatch<T>>;\n\n [Symbol.iterator](): IterableIterator<RecordBatch<T>>;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchStreamReaderImpl<T extends { [key: string]: DataType } = any> extends RecordBatchReaderImpl<T> {\n\n open(options?: OpenOptions): Promise<this>;\n cancel(): Promise<void>;\n\n throw(value?: any): Promise<IteratorResult<any>>;\n return(value?: any): Promise<IteratorResult<any>>;\n next(value?: any): Promise<IteratorResult<RecordBatch<T>>>;\n\n [Symbol.asyncIterator](): AsyncIterableIterator<RecordBatch<T>>;\n}\n\n/** @ignore */\ninterface RecordBatchFileReaderImpl<T extends { [key: string]: DataType } = any> extends RecordBatchStreamReaderImpl<T> {\n readRecordBatch(index: number): RecordBatch<T> | null;\n}\n\n/** @ignore */\ninterface AsyncRecordBatchFileReaderImpl<T extends { [key: string]: DataType } = any> extends AsyncRecordBatchStreamReaderImpl<T> {\n readRecordBatch(index: number): Promise<RecordBatch<T> | null>;\n}\n\n/** @ignore */\nabstract class RecordBatchReaderImpl<T extends { [key: string]: DataType } = any> implements RecordBatchReaderImpl<T> {\n\n public schema!: Schema<T>;\n public closed = false;\n public autoDestroy = true;\n public dictionaries: Map<number, Vector>;\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<number, Vector>()) {\n this.dictionaries = dictionaries;\n }\n\n public isSync(): this is RecordBatchReaders<T> { return false; }\n public isAsync(): this is AsyncRecordBatchReaders<T> { return false; }\n public isFile(): this is RecordBatchFileReaders<T> { return false; }\n public isStream(): this is RecordBatchStreamReaders<T> { return false; }\n\n public reset(schema?: Schema<T> | null) {\n this._dictionaryIndex = 0;\n this._recordBatchIndex = 0;\n this.schema = <any> schema;\n this.dictionaries = new Map();\n return this;\n }\n\n protected _loadRecordBatch(header: metadata.RecordBatch, body: any) {\n return new RecordBatch<T>(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<T extends { [key: string]: DataType } = any> extends RecordBatchReaderImpl<T> implements IterableIterator<RecordBatch<T>> {\n\n protected _reader: MessageReader;\n protected _handle: ByteStream | ArrowJSONLike;\n\n constructor(source: ByteStream | ArrowJSONLike, dictionaries?: Map<number, Vector>) {\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<T> { return true; }\n public isStream(): this is RecordBatchStreamReaders<T> { return true; }\n public [Symbol.iterator](): IterableIterator<RecordBatch<T>> {\n return this as IterableIterator<RecordBatch<T>>;\n }\n public cancel() {\n if (!this.closed && (this.closed = true)) {\n this.reset()._reader.return();\n this._reader = <any> null;\n this.dictionaries = <any> 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<any> {\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<any> {\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<RecordBatch<T>> {\n if (this.closed) { return ITERATOR_DONE; }\n let message: Message | null;\n const { _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<T>(this.schema) };\n }\n return this.return();\n }\n protected _readNextMessageAndValidate<T extends MessageHeader>(type?: T | null) {\n return this._reader.readMessage<T>(type);\n }\n}\n\n/** @ignore */\nclass AsyncRecordBatchStreamReaderImpl<T extends { [key: string]: DataType } = any> extends RecordBatchReaderImpl<T> implements AsyncIterableIterator<RecordBatch<T>> {\n\n protected _handle: AsyncByteStream;\n protected _reader: AsyncMessageReader;\n\n constructor(source: AsyncByteStream, dictionaries?: Map<number, Vector>) {\n super(dictionaries);\n this._reader = new AsyncMessageReader(this._handle = source);\n }\n public isAsync(): this is AsyncRecordBatchReaders<T> { return true; }\n public isStream(): this is RecordBatchStreamReaders<T> { return true; }\n public [Symbol.asyncIterator](): AsyncIterableIterator<RecordBatch<T>> {\n return this as AsyncIterableIterator<RecordBatch<T>>;\n }\n public async cancel() {\n if (!this.closed && (this.closed = true)) {\n await this.reset()._reader.return();\n this._reader = <any> null;\n this.dictionaries = <any> 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<IteratorResult<any>> {\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<IteratorResult<any>> {\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;\n const { _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<T>(this.schema) };\n }\n return await this.return();\n }\n protected async _readNextMessageAndValidate<T extends MessageHeader>(type?: T | null) {\n return await this._reader.readMessage<T>(type);\n }\n}\n\n/** @ignore */\nclass RecordBatchFileReaderImpl<T extends { [key: string]: DataType } = any> extends RecordBatchStreamReaderImpl<T> {\n\n protected _footer?: Footer;\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<number, Vector>) {\n super(source instanceof RandomAccessFile ? source : new RandomAccessFile(source), dictionaries);\n }\n public isSync(): this is RecordBatchReaders<T> { return true; }\n public isFile(): this is RecordBatchFileReaders<T> { 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<T extends MessageHeader>(type?: T | null): Message<T> | 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<T extends { [key: string]: DataType } = any> extends AsyncRecordBatchStreamReaderImpl<T>\n implements AsyncRecordBatchFileReaderImpl<T> {\n\n protected _footer?: Footer;\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<number, Vector>);\n constructor(source: FileHandle | AsyncRandomAccessFile, dictionaries?: Map<number, Vector>);\n constructor(source: FileHandle | AsyncRandomAccessFile, ...rest: any[]) {\n const byteLength = typeof rest[0] !== 'number' ? <number> rest.shift() : undefined;\n const dictionaries = rest[0] instanceof Map ? <Map<number, Vector>> rest.shift() : undefined;\n super(source instanceof AsyncRandomAccessFile ? source : new AsyncRandomAccessFile(source, byteLength), dictionaries);\n }\n public isFile(): this is RecordBatchFileReaders<T> { return true; }\n public isAsync(): this is AsyncRecordBatchReaders<T> { 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<T extends MessageHeader>(type?: T | null): Promise<Message<T> | 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<T extends { [key: string]: DataType } = any> extends RecordBatchStreamReaderImpl<T> {\n constructor(source: ArrowJSONLike, dictionaries?: Map<number, Vector>) {\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<T extends { [key: string]: DataType } = any>(source: RecordBatchReaders<T> | FromArg0 | FromArg2) {\n const reader = RecordBatchReader.from<T>(<any> source) as RecordBatchReaders<T>;\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<T extends { [key: string]: DataType } = any>(source: AsyncRecordBatchReaders<T> | FromArg1 | FromArg3 | FromArg4 | FromArg5) {\n const reader = await RecordBatchReader.from<T>(<any> source) as RecordBatchReader<T>;\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<T extends { [key: string]: DataType }>(source: ArrowJSONLike) {\n return new RecordBatchStreamReader(new RecordBatchJSONReaderImpl<T>(source));\n}\n\n/** @ignore */\nfunction fromByteStream<T extends { [key: string]: DataType }>(source: ByteStream) {\n const bytes = source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new RecordBatchStreamReader(new RecordBatchStreamReaderImpl<T>(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl<T>(source.read()))\n : new RecordBatchStreamReader(new RecordBatchStreamReaderImpl<T>(function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromAsyncByteStream<T extends { [key: string]: DataType }>(source: AsyncByteStream) {\n const bytes = await source.peek((magicLength + 7) & ~7);\n return bytes && bytes.byteLength >= 4 ? !checkForMagicArrowString(bytes)\n ? new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl<T>(source))\n : new RecordBatchFileReader(new RecordBatchFileReaderImpl<T>(await source.read()))\n : new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl<T>(async function*(): any {}()));\n}\n\n/** @ignore */\nasync function fromFileHandle<T extends { [key: string]: DataType }>(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<T>(file));\n }\n }\n return new AsyncRecordBatchStreamReader(new AsyncRecordBatchStreamReaderImpl<T>(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 { toUint8Array } from '../../util/buffer';\nimport { ReadableDOMStreamOptions } from '../../io/interfaces';\nimport { isIterable, isAsyncIterable } from '../../util/compat';\n\n/** @ignore */\ntype SourceIterator<T> = Generator<T, void, number | null>;\n/** @ignore */\ntype AsyncSourceIterator<T> = AsyncGenerator<T, void, number | null>;\n\n/** @ignore */\nexport function toDOMStream<T>(source: Iterable<T> | AsyncIterable<T>, options?: ReadableDOMStreamOptions): ReadableStream<T> {\n if (isAsyncIterable<T>(source)) { return asyncIterableAsReadableDOMStream(source, options); }\n if (isIterable<T>(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<T>(source: Iterable<T>, options?: ReadableDOMStreamOptions) {\n\n let it: SourceIterator<T> | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream<T>({\n ...options as any,\n start(controller) { next(controller, it || (it = source[Symbol.iterator]() as SourceIterator<T>)); },\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<T>, it: SourceIterator<T>) {\n let buf: Uint8Array;\n let r: IteratorResult<T> | 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 = <any> 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<T>(source: AsyncIterable<T>, options?: ReadableDOMStreamOptions) {\n\n let it: AsyncSourceIterator<T> | null = null;\n const bm = (options && options.type === 'bytes') || false;\n const hwm = options && options.highWaterMark || (2 ** 24);\n\n return new ReadableStream<T>({\n ...options as any,\n async start(controller) { await next(controller, it || (it = source[Symbol.asyncIterator]() as AsyncSourceIterator<T>)); },\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<T>, it: AsyncSourceIterator<T>) {\n let buf: Uint8Array;\n let r: IteratorResult<T> | 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 = <any> 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 { Vector } from '../../vector';\nimport { VectorType as V } from '../../interfaces';\nimport { Builder, BuilderOptions } from '../../builder/index';\n\n/** @ignore */\nexport interface BuilderTransformOptions<T extends DataType = any, TNull = any> extends BuilderOptions<T, TNull> {\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<T, TNull>, value: any, offset: number) => number;\n}\n\n/** @ignore */\nexport function builderThroughDOMStream<T extends DataType = any, TNull = any>(options: BuilderTransformOptions<T, TNull>) {\n return new BuilderTransform(options);\n}\n\n/** @ignore */\nexport class BuilderTransform<T extends DataType = any, TNull = any> {\n\n public readable: ReadableStream<V<T>>;\n public writable: WritableStream<T['TValue'] | TNull>;\n public _controller: ReadableStreamDefaultController<V<T>> | null;\n\n private _numChunks = 0;\n private _finished = false;\n private _bufferedSize = 0;\n private _builder: Builder<T, TNull>;\n private _getSize: (builder: Builder<T, TNull>) => number;\n\n constructor(options: BuilderTransformOptions<T, TNull>) {\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<T, TNull>(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<V<T>>({\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<T, TNull>, controller: ReadableStreamDefaultController<V<T>> | 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<V<T>>, chunk: V<T> | null) {\n this._bufferedSize = 0;\n this._controller = null;\n chunk === null ? controller.close() : controller.enqueue(chunk);\n }\n}\n\n/** @ignore */ const chunkLength = <T extends DataType = any>(chunk: Vector<T> | Builder<T>) => chunk.length;\n/** @ignore */ const chunkByteLength = <T extends DataType = any>(chunk: Vector<T> | Builder<T>) => 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 { DataType } from '../../type';\nimport { RecordBatch } from '../../recordbatch';\nimport { AsyncByteQueue } from '../../io/stream';\nimport { RecordBatchReader } from '../../ipc/reader';\n\n/** @ignore */\nexport function recordBatchReaderThroughDOMStream<T extends { [key: string]: DataType } = any>(writableStrategy?: ByteLengthQueuingStrategy, readableStrategy?: { autoDestroy: boolean }) {\n\n const queue = new AsyncByteQueue();\n let reader: RecordBatchReader<T> | null = null;\n\n const readable = new ReadableStream<RecordBatch<T>>({\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<T>(queue)).open(readableStrategy);\n }\n\n async function next(controller: ReadableStreamDefaultController<RecordBatch<T>>, reader: RecordBatchReader<T>) {\n let size = controller.desiredSize;\n let r: IteratorResult<RecordBatch<T>> | 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<T extends { [key: string]: DataType } = any>(\n this: typeof RecordBatchWriter,\n writableStrategy?: QueuingStrategy<RecordBatch<T>> & { autoDestroy: boolean },\n readableStrategy?: { highWaterMark?: number; size?: any }\n) {\n\n const writer = new this<T>(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<Uint8Array>) {\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", "// 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<T> = (idx: number, cols: RecordBatch) => T | null;\n/** @ignore */\nexport type PredicateFunc = (idx: number, cols: RecordBatch) => boolean;\n\n/** @ignore */\nexport abstract class Value<T> {\n eq(other: Value<T> | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new Equals(this, other);\n }\n le(other: Value<T> | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new LTeq(this, other);\n }\n ge(other: Value<T> | T): Predicate {\n if (!(other instanceof Value)) { other = new Literal(other); }\n return new GTeq(this, other);\n }\n lt(other: Value<T> | T): Predicate {\n return new Not(this.ge(other));\n }\n gt(other: Value<T> | T): Predicate {\n return new Not(this.le(other));\n }\n ne(other: Value<T> | T): Predicate {\n return new Not(this.eq(other));\n }\n}\n\n/** @ignore */\nexport class Literal<T= any> extends Value<T> {\n constructor(public v: T) { super(); }\n}\n\n/** @ignore */\nexport class Col<T= any> extends Value<T> {\n public vector!: Vector;\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<T= any> extends Predicate {\n constructor(public readonly left: Value<T>, public readonly right: Value<T>) {\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(<any> 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<any> { return new Literal(v); }\nexport function col(n: string): Col<any> { 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, PredicateFunc } 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<T extends { [key: string]: DataType } = any> extends Table<T> {\n public filter(predicate: Predicate): FilteredDataFrame<T> {\n return new FilteredDataFrame<T>(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<Dictionary>;\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<Dictionary>).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n const key = keys.get(index);\n if (key !== null) { counts[key]++; }\n }\n }\n return new CountByResult(vector.dictionary, IntVector.from(counts));\n }\n}\n\n/** @ignore */\nexport class CountByResult<T extends DataType = any, TCount extends Int = Int> extends Table<{ values: T; counts: TCount }> {\n constructor(values: Vector<T>, counts: V<TCount>) {\n type R = { values: T; counts: TCount };\n const schema = new Schema<R>([\n new Field('values', values.type),\n new Field('counts', counts.type)\n ]);\n super(new RecordBatch<R>(schema, counts.length, [values, counts]));\n }\n public toJSON(): Record<string, unknown> {\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 */\nclass FilteredBatchIterator<T extends { [key: string]: DataType }> implements IterableIterator<Struct<T>['TValue']> {\n private batchIndex = 0;\n private batch: RecordBatch<T>;\n private index = 0;\n private predicateFunc: PredicateFunc;\n\n constructor(\n private batches: RecordBatch<T>[],\n private predicate: Predicate\n ) {\n // TODO: bind batches lazily\n // If predicate doesn't match anything in the batch we don't need\n // to bind the callback\n this.batch = this.batches[this.batchIndex];\n this.predicateFunc = this.predicate.bind(this.batch);\n }\n\n next(): IteratorResult<Struct<T>['TValue']> {\n while (this.batchIndex < this.batches.length) {\n while (this.index < this.batch.length) {\n if (this.predicateFunc(this.index, this.batch)) {\n return {\n value: this.batch.get(this.index++) as any,\n };\n }\n this.index++;\n }\n\n if (++this.batchIndex < this.batches.length) {\n this.index = 0;\n this.batch = this.batches[this.batchIndex];\n this.predicateFunc = this.predicate.bind(this.batch);\n }\n }\n\n return {done: true, value: null};\n }\n\n [Symbol.iterator]() {\n return this;\n }\n}\n\n/** @ignore */\nexport class FilteredDataFrame<T extends { [key: string]: DataType } = any> extends DataFrame<T> {\n private _predicate: Predicate;\n constructor (batches: RecordBatch<T>[], 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 for (let index = -1, numRows = batch.length; ++index < numRows;) {\n if (predicate(index, batch)) { ++sum; }\n }\n }\n return sum;\n }\n\n public [Symbol.iterator](): IterableIterator<Struct<T>['TValue']> {\n // inlined version of this:\n // this.parent.scan((idx, columns) => {\n // if (this.predicate(idx, columns)) next(idx, columns);\n // });\n return new FilteredBatchIterator<T>(this._chunks, this._predicate);\n }\n public filter(predicate: Predicate): FilteredDataFrame<T> {\n return new FilteredDataFrame<T>(\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<Dictionary>;\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<Dictionary>).indices;\n // yield all indices\n for (let index = -1, numRows = batch.length; ++index < numRows;) {\n const key = keys.get(index);\n if (key !== null && predicate(index, batch)) { 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 {\n DateUnit,\n TimeUnit,\n Precision,\n UnionMode,\n IntervalUnit,\n MetadataVersion,\n} from './fb/Schema';\n\nexport { MessageHeader } from './fb/Message';\n\nexport { Type, BufferType } from './enum';\n\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';\nimport { compareSchemas, compareFields, compareTypes } from './visitor/typecomparator';\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 compareSchemas,\n compareFields,\n compareTypes,\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, RecordBatchFileReader, RecordBatchStreamReader, } from './ipc/reader';\nimport { RecordBatchWriter, RecordBatchFileWriter, RecordBatchStreamWriter, } 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;\nRecordBatchFileReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchStreamReader['throughDOM'] = recordBatchReaderThroughDOMStream;\nRecordBatchWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\nRecordBatchFileWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\nRecordBatchStreamWriter['throughDOM'] = recordBatchWriterThroughDOMStream;\n\nexport {\n 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", "export * from '../log';\nexport * from '../status';\nexport * from '../parallel';\nexport * from '../platform';\n", "export enum LogLevel {\n NONE = 0,\n DEBUG = 1,\n INFO = 2,\n WARNING = 3,\n ERROR = 4,\n}\n\nexport enum LogTopic {\n NONE = 0,\n CONNECT = 1,\n DISCONNECT = 2,\n OPEN = 3,\n QUERY = 4,\n}\n\nexport enum LogEvent {\n NONE = 0,\n OK = 1,\n ERROR = 2,\n START = 3,\n RUN = 4,\n CAPTURE = 5,\n}\n\nexport enum LogOrigin {\n NONE = 0,\n WEB_WORKER = 1,\n NODE_WORKER = 2,\n BINDINGS = 3,\n ASYNC_DUCKDB = 4,\n}\n\nexport type LogEntry<O, T, E, V> = {\n readonly timestamp: Date;\n readonly level: LogLevel;\n readonly origin: O;\n readonly topic: T;\n readonly event: E;\n readonly value: V;\n};\n\nexport type LogEntryVariant =\n | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.START, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.OK, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.QUERY, LogEvent.ERROR, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.CONNECT, LogEvent.OK, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.CONNECT, LogEvent.ERROR, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.DISCONNECT, LogEvent.OK, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.DISCONNECT, LogEvent.ERROR, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.START, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.OK, void>\n | LogEntry<LogOrigin.BINDINGS, LogTopic.OPEN, LogEvent.ERROR, void>\n | LogEntry<LogOrigin.ASYNC_DUCKDB, LogTopic.QUERY, LogEvent.RUN, string>;\n\nexport interface Logger {\n log(entry: LogEntryVariant): void;\n}\n\nexport class VoidLogger implements Logger {\n public log(_entry: LogEntryVariant): void {}\n}\n\nexport class ConsoleLogger implements Logger {\n public log(entry: LogEntryVariant): void {\n console.log(entry);\n }\n}\n\nexport function getLogLevelLabel(level: LogLevel): string {\n switch (level) {\n case LogLevel.NONE:\n return 'NONE';\n case LogLevel.DEBUG:\n return 'DEBUG';\n case LogLevel.INFO:\n return 'INFO';\n case LogLevel.WARNING:\n return 'WARNING';\n case LogLevel.ERROR:\n return 'ERROR';\n default:\n return '?';\n }\n}\n\nexport function getLogEventLabel(event: LogEvent): string {\n switch (event) {\n case LogEvent.NONE:\n return 'NONE';\n case LogEvent.OK:\n return 'OK';\n case LogEvent.ERROR:\n return 'ERROR';\n case LogEvent.START:\n return 'START';\n case LogEvent.RUN:\n return 'RUN';\n case LogEvent.CAPTURE:\n return 'CAPTURE';\n default:\n return '?';\n }\n}\n\nexport function getLogTopicLabel(topic: LogTopic): string {\n switch (topic) {\n case LogTopic.CONNECT:\n return 'CONNECT';\n case LogTopic.DISCONNECT:\n return 'DISCONNECT';\n case LogTopic.OPEN:\n return 'OPEN';\n case LogTopic.QUERY:\n return 'QUERY';\n default:\n return '?';\n }\n}\n\nexport function getLogOriginLabel(origin: LogOrigin): string {\n switch (origin) {\n case LogOrigin.NONE:\n return 'NONE';\n case LogOrigin.WEB_WORKER:\n return 'WEB WORKER';\n case LogOrigin.NODE_WORKER:\n return 'NODE WORKER';\n case LogOrigin.BINDINGS:\n return 'DUCKDB BINDINGS';\n case LogOrigin.ASYNC_DUCKDB:\n return 'DUCKDB';\n default:\n return '?';\n }\n}\n", "export enum StatusCode {\n SUCCESS = 0,\n}\n", "import { Logger, LogLevel, LogTopic, LogOrigin, LogEvent } from '../log';\nimport * as arrow from 'apache-arrow';\nimport { ArrowInsertOptions, CSVInsertOptions, JSONInsertOptions } from '../bindings/insert_options';\n\n/** An interface for the async DuckDB bindings */\ninterface AsyncDuckDB {\n logger: Logger;\n\n registerFileURL(name: string, url: string, size: number): Promise<void>;\n registerFileBuffer(name: string, buffer: Uint8Array): Promise<void>;\n registerFileHandle<HandleType>(name: string, handle: HandleType): Promise<void>;\n copyFileToPath(name: string, out: string): Promise<void>;\n copyFileToBuffer(name: string): Promise<Uint8Array>;\n\n disconnect(conn: number): Promise<void>;\n runQuery(conn: number, text: string): Promise<Uint8Array>;\n sendQuery(conn: number, text: string): Promise<Uint8Array>;\n fetchQueryResults(conn: number): Promise<Uint8Array>;\n\n insertArrowFromIPCStream(conn: number, buffer: Uint8Array, options?: CSVInsertOptions): Promise<void>;\n insertCSVFromPath(conn: number, path: string, options: CSVInsertOptions): Promise<void>;\n insertJSONFromPath(conn: number, path: string, options: JSONInsertOptions): Promise<void>;\n}\n\n/** An async result stream iterator */\nclass ResultStreamIterator implements AsyncIterable<Uint8Array> {\n /** First chunk? */\n protected _first: boolean;\n /** Reached end of stream? */\n protected _depleted: boolean;\n /** In-flight */\n protected _inFlight: Promise<Uint8Array> | null;\n\n constructor(\n protected readonly db: AsyncDuckDB,\n protected readonly conn: number,\n protected readonly header: Uint8Array,\n ) {\n this._first = true;\n this._depleted = false;\n this._inFlight = null;\n }\n\n async next(): Promise<IteratorResult<Uint8Array>> {\n if (this._first) {\n this._first = false;\n return { done: false, value: this.header };\n }\n if (this._depleted) {\n return { done: true, value: null };\n }\n let buffer: Uint8Array;\n if (this._inFlight != null) {\n buffer = await this._inFlight;\n this._inFlight = null;\n } else {\n buffer = await this.db.fetchQueryResults(this.conn);\n }\n this._depleted = buffer.length == 0;\n if (!this._depleted) {\n this._inFlight = this.db.fetchQueryResults(this.conn);\n }\n return {\n done: this._depleted,\n value: buffer,\n };\n }\n\n [Symbol.asyncIterator]() {\n return this;\n }\n}\n\n/** A thin helper to memoize the connection id */\nexport class AsyncDuckDBConnection {\n /** The async duckdb */\n protected readonly _instance: AsyncDuckDB;\n /** The conn handle */\n protected readonly _conn: number;\n\n constructor(instance: AsyncDuckDB, conn: number) {\n this._instance = instance;\n this._conn = conn;\n }\n\n /** Access the database instance */\n public get instance(): AsyncDuckDB {\n return this._instance;\n }\n\n /** Disconnect from the database */\n public async close(): Promise<void> {\n return this._instance.disconnect(this._conn);\n }\n\n /** Run a query */\n public async runQuery<T extends { [key: string]: arrow.DataType } = any>(text: string): Promise<arrow.Table<T>> {\n this._instance.logger.log({\n timestamp: new Date(),\n level: LogLevel.INFO,\n origin: LogOrigin.ASYNC_DUCKDB,\n topic: LogTopic.QUERY,\n event: LogEvent.RUN,\n value: text,\n });\n const buffer = await this._instance.runQuery(this._conn, text);\n const reader = arrow.RecordBatchReader.from<T>(buffer);\n console.assert(reader.isSync());\n console.assert(reader.isFile());\n return arrow.Table.from(reader as arrow.RecordBatchFileReader);\n }\n\n /** Send a query */\n public async sendQuery<T extends { [key: string]: arrow.DataType } = any>(\n text: string,\n ): Promise<arrow.AsyncRecordBatchStreamReader<T>> {\n this._instance.logger.log({\n timestamp: new Date(),\n level: LogLevel.INFO,\n origin: LogOrigin.ASYNC_DUCKDB,\n topic: LogTopic.QUERY,\n event: LogEvent.RUN,\n value: text,\n });\n const header = await this._instance.sendQuery(this._conn, text);\n const iter = new ResultStreamIterator(this._instance, this._conn, header);\n const reader = await arrow.RecordBatchReader.from<T>(iter);\n console.assert(reader.isAsync());\n console.assert(reader.isStream());\n return reader as unknown as arrow.AsyncRecordBatchStreamReader<T>; // XXX\n }\n\n /** Insert an arrow table */\n public async insertArrowTable(table: arrow.Table, options: ArrowInsertOptions): Promise<void> {\n if (table.schema.fields.length == 0) {\n console.warn(\n 'The schema is empty! If you used arrow.Table.from, consider constructing schema and batches manually',\n );\n }\n await this.insertArrowBatches(table.schema, table.chunks, options);\n }\n /** Insert record batches */\n public async insertArrowBatches(\n schema: arrow.Schema,\n batches: Iterable<arrow.RecordBatch>,\n options: ArrowInsertOptions,\n ): Promise<void> {\n // Prepare the IPC stream writer\n const buffer = new arrow.AsyncByteQueue();\n const writer = new arrow.RecordBatchStreamWriter().reset(buffer, schema);\n\n // Check connection.ts for an explanation on why we materialize twice.\n writer.writeAll(batches);\n writer.close();\n const unecessary_copy = writer.toUint8Array(true);\n await this._instance.insertArrowFromIPCStream(this._conn, unecessary_copy, options);\n }\n /** Insert csv file from path */\n public async insertCSVFromPath(text: string, options: CSVInsertOptions): Promise<void> {\n await this._instance.insertCSVFromPath(this._conn, text, options);\n }\n /** Insert json file from path */\n public async insertJSONFromPath(text: string, options: JSONInsertOptions): Promise<void> {\n await this._instance.insertJSONFromPath(this._conn, text, options);\n }\n}\n", "import { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from '../bindings/insert_options';\nimport { LogEntryVariant } from '../log';\nimport { ScriptTokens } from '../bindings/tokens';\nimport { FileStatistics } from '../bindings/file_stats';\nimport { DuckDBConfig } from '../bindings/config';\n\nexport type ConnectionID = number;\n\nexport enum WorkerRequestType {\n COLLECT_FILE_STATISTICS = 'COLLECT_FILE_STATISTICS',\n CONNECT = 'CONNECT',\n COPY_FILE_TO_BUFFER = 'COPY_FILE_TO_BUFFER',\n COPY_FILE_TO_PATH = 'COPY_FILE_TO_PATH',\n DISCONNECT = 'DISCONNECT',\n DROP_FILE = 'DROP_FILE',\n DROP_FILES = 'DROP_FILES',\n EXPORT_FILE_STATISTICS = 'EXPORT_FILE_STATISTICS',\n FETCH_QUERY_RESULTS = 'FETCH_QUERY_RESULTS',\n FLUSH_FILES = 'FLUSH_FILES',\n GET_FEATURE_FLAGS = 'GET_FEATURE_FLAGS',\n GET_VERSION = 'GET_VERSION',\n INSERT_ARROW_FROM_IPC_STREAM = 'INSERT_ARROW_FROM_IPC_STREAM',\n INSERT_CSV_FROM_PATH = 'IMPORT_CSV_FROM_PATH',\n INSERT_JSON_FROM_PATH = 'IMPORT_JSON_FROM_PATH',\n INSTANTIATE = 'INSTANTIATE',\n OPEN = 'OPEN',\n PING = 'PING',\n REGISTER_FILE_BUFFER = 'REGISTER_FILE_BUFFER',\n REGISTER_FILE_HANDLE = 'REGISTER_FILE_HANDLE',\n REGISTER_FILE_URL = 'REGISTER_FILE_URL',\n RESET = 'RESET',\n RUN_QUERY = 'RUN_QUERY',\n SEND_QUERY = 'SEND_QUERY',\n TOKENIZE = 'TOKENIZE',\n}\n\nexport enum WorkerResponseType {\n CONNECTION_INFO = 'CONNECTION_INFO',\n ERROR = 'ERROR',\n FEATURE_FLAGS = 'FEATURE_FLAGS',\n FILE_BUFFER = 'FILE_BUFFER',\n FILE_SIZE = 'FILE_SIZE',\n FILE_STATISTICS = 'FILE_STATISTICS',\n LOG = 'LOG',\n OK = 'OK',\n QUERY_PLAN = 'QUERY_PLAN',\n QUERY_RESULT = 'QUERY_RESULT',\n QUERY_RESULT_CHUNK = 'QUERY_RESULT_CHUNK',\n QUERY_START = 'QUERY_START',\n REGISTERED_FILE = 'REGISTERED_FILE',\n SCRIPT_TOKENS = 'SCRIPT_TOKENS',\n SUCCESS = 'SUCCESS',\n VERSION_STRING = 'VERSION_STRING',\n}\n\nexport type WorkerRequest<T, P> = {\n readonly messageId: number;\n readonly type: T;\n readonly data: P;\n};\n\nexport type WorkerResponse<T, P> = {\n readonly messageId: number;\n readonly requestId: number;\n readonly type: T;\n readonly data: P;\n};\n\nexport type WorkerTaskReturnType<T extends WorkerTaskVariant> = T extends WorkerTask<any, any, infer P> ? P : never;\n\nexport class WorkerTask<T, D, P> {\n readonly type: T;\n readonly data: D;\n promise: Promise<P>;\n promiseResolver: (value: P | PromiseLike<P>) => void = () => {};\n promiseRejecter: (value: any) => void = () => {};\n\n constructor(type: T, data: D) {\n this.type = type;\n this.data = data;\n this.promise = new Promise<P>(\n (resolve: (value: P | PromiseLike<P>) => void, reject: (reason?: void) => void) => {\n this.promiseResolver = resolve;\n this.promiseRejecter = reject;\n },\n );\n }\n}\n\nexport interface ZipExtractToFileArgs {\n archiveFile: string;\n outFile: string;\n entryPath: string;\n}\n\nexport type WorkerRequestVariant =\n | WorkerRequest<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean]>\n | WorkerRequest<WorkerRequestType.CONNECT, null>\n | WorkerRequest<WorkerRequestType.COPY_FILE_TO_BUFFER, string>\n | WorkerRequest<WorkerRequestType.COPY_FILE_TO_PATH, [string, string]>\n | WorkerRequest<WorkerRequestType.DISCONNECT, number>\n | WorkerRequest<WorkerRequestType.DROP_FILE, string>\n | WorkerRequest<WorkerRequestType.DROP_FILES, null>\n | WorkerRequest<WorkerRequestType.EXPORT_FILE_STATISTICS, string>\n | WorkerRequest<WorkerRequestType.FETCH_QUERY_RESULTS, number>\n | WorkerRequest<WorkerRequestType.FLUSH_FILES, null>\n | WorkerRequest<WorkerRequestType.GET_FEATURE_FLAGS, null>\n | WorkerRequest<WorkerRequestType.GET_VERSION, null>\n | WorkerRequest<\n WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n [number, Uint8Array, ArrowInsertOptions | undefined]\n >\n | WorkerRequest<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions]>\n | WorkerRequest<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions]>\n | WorkerRequest<WorkerRequestType.INSTANTIATE, [string, string | null]>\n | WorkerRequest<WorkerRequestType.OPEN, DuckDBConfig>\n | WorkerRequest<WorkerRequestType.PING, null>\n | WorkerRequest<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array]>\n | WorkerRequest<WorkerRequestType.REGISTER_FILE_HANDLE, [string, any]>\n | WorkerRequest<WorkerRequestType.REGISTER_FILE_URL, [string, string]>\n | WorkerRequest<WorkerRequestType.RESET, null>\n | WorkerRequest<WorkerRequestType.RUN_QUERY, [number, string]>\n | WorkerRequest<WorkerRequestType.SEND_QUERY, [number, string]>\n | WorkerRequest<WorkerRequestType.TOKENIZE, string>;\n\nexport type WorkerResponseVariant =\n | WorkerResponse<WorkerResponseType.CONNECTION_INFO, number>\n | WorkerResponse<WorkerResponseType.ERROR, any>\n | WorkerResponse<WorkerResponseType.FEATURE_FLAGS, number>\n | WorkerResponse<WorkerResponseType.FILE_BUFFER, Uint8Array>\n | WorkerResponse<WorkerResponseType.FILE_SIZE, number>\n | WorkerResponse<WorkerResponseType.FILE_STATISTICS, FileStatistics>\n | WorkerResponse<WorkerResponseType.LOG, LogEntryVariant>\n | WorkerResponse<WorkerResponseType.OK, null>\n | WorkerResponse<WorkerResponseType.QUERY_PLAN, Uint8Array>\n | WorkerResponse<WorkerResponseType.QUERY_RESULT, Uint8Array>\n | WorkerResponse<WorkerResponseType.QUERY_RESULT_CHUNK, Uint8Array>\n | WorkerResponse<WorkerResponseType.QUERY_START, Uint8Array>\n | WorkerResponse<WorkerResponseType.SCRIPT_TOKENS, ScriptTokens>\n | WorkerResponse<WorkerResponseType.SUCCESS, boolean>\n | WorkerResponse<WorkerResponseType.VERSION_STRING, string>;\n\nexport type WorkerTaskVariant =\n | WorkerTask<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean], null>\n | WorkerTask<WorkerRequestType.CONNECT, null, ConnectionID>\n | WorkerTask<WorkerRequestType.COPY_FILE_TO_BUFFER, string, Uint8Array>\n | WorkerTask<WorkerRequestType.COPY_FILE_TO_PATH, [string, string], null>\n | WorkerTask<WorkerRequestType.DISCONNECT, ConnectionID, null>\n | WorkerTask<WorkerRequestType.DROP_FILE, string, boolean>\n | WorkerTask<WorkerRequestType.DROP_FILES, null, null>\n | WorkerTask<WorkerRequestType.EXPORT_FILE_STATISTICS, string, FileStatistics>\n | WorkerTask<WorkerRequestType.FETCH_QUERY_RESULTS, ConnectionID, Uint8Array>\n | WorkerTask<WorkerRequestType.FLUSH_FILES, null, null>\n | WorkerTask<WorkerRequestType.GET_FEATURE_FLAGS, null, number>\n | WorkerTask<WorkerRequestType.GET_VERSION, null, string>\n | WorkerTask<\n WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n [number, Uint8Array, ArrowInsertOptions | undefined],\n null\n >\n | WorkerTask<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions], null>\n | WorkerTask<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions], null>\n | WorkerTask<WorkerRequestType.INSTANTIATE, [string, string | null], null>\n | WorkerTask<WorkerRequestType.OPEN, DuckDBConfig, null>\n | WorkerTask<WorkerRequestType.PING, null, null>\n | WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>\n | WorkerTask<WorkerRequestType.REGISTER_FILE_HANDLE, [string, any], null>\n | WorkerTask<WorkerRequestType.REGISTER_FILE_URL, [string, string], null>\n | WorkerTask<WorkerRequestType.RESET, null, null>\n | WorkerTask<WorkerRequestType.RUN_QUERY, [ConnectionID, string], Uint8Array>\n | WorkerTask<WorkerRequestType.SEND_QUERY, [ConnectionID, string], Uint8Array>\n | WorkerTask<WorkerRequestType.TOKENIZE, string, ScriptTokens>;\n", "import * as arrow from 'apache-arrow';\n\nexport interface FlatArrowType {\n /// The type\n type: string;\n /// Is nullable?\n nullable?: boolean;\n /// Decimal precision\n precision?: number;\n /// Decimal scaling\n scale?: number;\n /// Timezone\n timezone?: string;\n /// Byte width (FixedSizeBinary)\n byteWidth?: number;\n /// Fields\n children?: FlatArrowField[];\n}\n\nexport type FlatArrowField = FlatArrowType & { name: string };\n\nexport function flattenArrowField(name: string, type: arrow.DataType): FlatArrowField {\n switch (type.typeId) {\n case arrow.Type.Binary:\n return { name, type: 'binary' };\n case arrow.Type.Bool:\n return { name, type: 'bool' };\n case arrow.Type.Date:\n return { name, type: 'date' };\n case arrow.Type.DateDay:\n return { name, type: 'date32[d]' };\n case arrow.Type.DateMillisecond:\n return { name, type: 'date64[ms]' };\n case arrow.Type.Decimal: {\n const dec = type as arrow.Decimal;\n return { name, type: 'decimal', precision: dec.precision, scale: dec.scale };\n }\n case arrow.Type.Float:\n return { name, type: 'float' };\n case arrow.Type.Float16:\n return { name, type: 'float16' };\n case arrow.Type.Float32:\n return { name, type: 'float32' };\n case arrow.Type.Float64:\n return { name, type: 'float64' };\n case arrow.Type.Int:\n return { name, type: 'int32' };\n case arrow.Type.Int16:\n return { name, type: 'int16' };\n case arrow.Type.Int32:\n return { name, type: 'int32' };\n case arrow.Type.Int64:\n return { name, type: 'int64' };\n case arrow.Type.Uint16:\n return { name, type: 'uint16' };\n case arrow.Type.Uint32:\n return { name, type: 'uint32' };\n case arrow.Type.Uint64:\n return { name, type: 'uint64' };\n case arrow.Type.Uint8:\n return { name, type: 'uint8' };\n case arrow.Type.IntervalDayTime:\n return { name, type: 'interval[dt]' };\n case arrow.Type.IntervalYearMonth:\n return { name, type: 'interval[m]' };\n case arrow.Type.List: {\n const list = type as arrow.List;\n return { name, type: 'list', children: [flattenArrowField(list.valueField.name, list.valueField.type)] };\n }\n case arrow.Type.FixedSizeBinary: {\n const bin = type as arrow.FixedSizeBinary;\n return { name, type: 'fixedsizebinary', byteWidth: bin.byteWidth };\n }\n case arrow.Type.Null:\n return { name, type: 'null' };\n case arrow.Type.Utf8:\n return { name, type: 'utf8' };\n case arrow.Type.Struct: {\n const struct_ = type as arrow.Struct;\n return {\n name,\n type: 'struct',\n children: struct_.children.map(c => flattenArrowField(c.name, c.type)),\n };\n }\n case arrow.Type.Time:\n return { name, type: 'time[s]' };\n case arrow.Type.TimeMicrosecond:\n return { name, type: 'time[us]' };\n case arrow.Type.TimeMillisecond:\n return { name, type: 'time[ms]' };\n case arrow.Type.TimeNanosecond:\n return { name, type: 'time[ns]' };\n case arrow.Type.TimeSecond:\n return { name, type: 'time[s]' };\n case arrow.Type.Timestamp: {\n const ts = type as arrow.Timestamp;\n return { name, type: 'timestamp', timezone: ts.timezone || undefined };\n }\n case arrow.Type.TimestampSecond: {\n const ts = type as arrow.TimestampSecond;\n return { name, type: 'timestamp[s]', timezone: ts.timezone || undefined };\n }\n case arrow.Type.TimestampMicrosecond: {\n const ts = type as arrow.TimestampMicrosecond;\n return { name, type: 'timestamp[us]', timezone: ts.timezone || undefined };\n }\n case arrow.Type.TimestampNanosecond: {\n const ts = type as arrow.TimestampNanosecond;\n return { name, type: 'timestamp[ns]', timezone: ts.timezone || undefined };\n }\n case arrow.Type.TimestampMillisecond: {\n const ts = type as arrow.TimestampMillisecond;\n return { name, type: 'timestamp[ms]', timezone: ts.timezone || undefined };\n }\n }\n throw new Error(`unsupported arrow type: ${type.toString()}`);\n}\n", "import {\n WorkerRequestType,\n WorkerResponseType,\n WorkerResponseVariant,\n WorkerTaskVariant,\n WorkerTask,\n ConnectionID,\n WorkerTaskReturnType,\n} from './worker_request';\nimport { Logger } from '../log';\nimport { AsyncDuckDBConnection } from './async_connection';\nimport { CSVInsertOptions, JSONInsertOptions, ArrowInsertOptions } from '../bindings/insert_options';\nimport { ScriptTokens } from '../bindings/tokens';\nimport { FileStatistics } from '../bindings/file_stats';\nimport { DuckDBConfig } from '../bindings/config';\nimport { flattenArrowField } from '../flat_arrow';\n\nexport class AsyncDuckDB {\n /** The message handler */\n protected readonly _onMessageHandler: (event: MessageEvent) => void;\n /** The error handler */\n protected readonly _onErrorHandler: (event: ErrorEvent) => void;\n /** The close handler */\n protected readonly _onCloseHandler: () => void;\n\n /** The logger */\n protected readonly _logger: Logger;\n /** The worker */\n protected _worker: Worker | null = null;\n /** The promise for the worker shutdown */\n protected _workerShutdownPromise: Promise<null> | null = null;\n /** Make the worker as terminated */\n protected _workerShutdownResolver: (value: PromiseLike<null> | null) => void = () => {};\n\n /** The next message id */\n protected _nextMessageId = 0;\n /** The pending requests */\n protected _pendingRequests: Map<number, WorkerTaskVariant> = new Map();\n\n constructor(logger: Logger, worker: Worker | null = null) {\n this._logger = logger;\n this._onMessageHandler = this.onMessage.bind(this);\n this._onErrorHandler = this.onError.bind(this);\n this._onCloseHandler = this.onClose.bind(this);\n if (worker != null) this.attach(worker);\n }\n\n /** Get the logger */\n public get logger(): Logger {\n return this._logger;\n }\n\n /** Attach to worker */\n protected attach(worker: Worker): void {\n this._worker = worker;\n this._worker.addEventListener('message', this._onMessageHandler);\n this._worker.addEventListener('error', this._onErrorHandler);\n this._worker.addEventListener('close', this._onCloseHandler);\n this._workerShutdownPromise = new Promise<null>(\n (resolve: (value: PromiseLike<null> | null) => void, _reject: (reason?: void) => void) => {\n this._workerShutdownResolver = resolve;\n },\n );\n }\n\n /** Detach from worker */\n public detach(): void {\n if (!this._worker) return;\n this._worker.removeEventListener('message', this._onMessageHandler);\n this._worker.removeEventListener('error', this._onErrorHandler);\n this._worker.removeEventListener('close', this._onCloseHandler);\n this._worker = null;\n this._workerShutdownResolver(null);\n this._workerShutdownPromise = null;\n this._workerShutdownResolver = () => {};\n }\n\n /** Kill the worker */\n public async terminate(): Promise<void> {\n if (!this._worker) return;\n this._worker.terminate();\n //await this._workerShutdownPromise; TODO deadlocking in karma?\n this._worker = null;\n this._workerShutdownPromise = null;\n this._workerShutdownResolver = () => {};\n }\n\n /** Post a task */\n protected async postTask<W extends WorkerTaskVariant>(\n task: W,\n transfer: ArrayBuffer[] = [],\n ): Promise<WorkerTaskReturnType<W>> {\n if (!this._worker) {\n console.error('cannot send a message since the worker is not set!');\n return undefined as any;\n }\n const mid = this._nextMessageId++;\n this._pendingRequests.set(mid, task);\n this._worker.postMessage({\n messageId: mid,\n type: task.type,\n data: task.data,\n });\n return (await task.promise) as WorkerTaskReturnType<W>;\n }\n\n /** Received a message */\n protected onMessage(event: MessageEvent): void {\n const response = event.data as WorkerResponseVariant;\n\n // Short-circuit unassociated log entries\n if (response.type == WorkerResponseType.LOG) {\n this._logger.log(response.data);\n }\n\n // Get associated task\n const task = this._pendingRequests.get(response.requestId);\n if (!task) {\n console.warn(`unassociated response: [${response.requestId}, ${response.type.toString()}]`);\n return;\n }\n this._pendingRequests.delete(response.requestId);\n\n // Request failed?\n if (response.type == WorkerResponseType.ERROR) {\n // Workaround for Firefox not being able to perform structured-clone on Native Errors\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n const e = new Error(response.data.message);\n e.name = response.data.name;\n e.stack = response.data.stack;\n\n task.promiseRejecter(e);\n return;\n }\n\n // Otherwise differentiate between the tasks first\n switch (task.type) {\n case WorkerRequestType.COLLECT_FILE_STATISTICS:\n case WorkerRequestType.COPY_FILE_TO_PATH:\n case WorkerRequestType.DISCONNECT:\n case WorkerRequestType.DROP_FILES:\n case WorkerRequestType.FLUSH_FILES:\n case WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM:\n case WorkerRequestType.INSERT_CSV_FROM_PATH:\n case WorkerRequestType.INSERT_JSON_FROM_PATH:\n case WorkerRequestType.INSTANTIATE:\n case WorkerRequestType.OPEN:\n case WorkerRequestType.PING:\n case WorkerRequestType.REGISTER_FILE_BUFFER:\n case WorkerRequestType.REGISTER_FILE_HANDLE:\n case WorkerRequestType.REGISTER_FILE_URL:\n case WorkerRequestType.RESET:\n if (response.type == WorkerResponseType.OK) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.GET_VERSION:\n if (response.type == WorkerResponseType.VERSION_STRING) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.GET_FEATURE_FLAGS:\n if (response.type == WorkerResponseType.FEATURE_FLAGS) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.TOKENIZE:\n if (response.type == WorkerResponseType.SCRIPT_TOKENS) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.DROP_FILE:\n if (response.type == WorkerResponseType.SUCCESS) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.COPY_FILE_TO_BUFFER:\n if (response.type == WorkerResponseType.FILE_BUFFER) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.EXPORT_FILE_STATISTICS:\n if (response.type == WorkerResponseType.FILE_STATISTICS) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.CONNECT:\n if (response.type == WorkerResponseType.CONNECTION_INFO) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.RUN_QUERY:\n if (response.type == WorkerResponseType.QUERY_RESULT) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.SEND_QUERY:\n if (response.type == WorkerResponseType.QUERY_START) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n case WorkerRequestType.FETCH_QUERY_RESULTS:\n if (response.type == WorkerResponseType.QUERY_RESULT_CHUNK) {\n task.promiseResolver(response.data);\n return;\n }\n break;\n }\n task.promiseRejecter(new Error(`unexpected response type: ${response.type.toString()}`));\n }\n\n /** Received an error */\n protected onError(event: ErrorEvent): void {\n console.error(event);\n console.error(`error in duckdb worker: ${event.message}`);\n this._pendingRequests.clear();\n }\n\n /** The worker was closed */\n protected onClose(): void {\n this._workerShutdownResolver(null);\n if (this._pendingRequests.size != 0) {\n console.warn(`worker terminated with ${this._pendingRequests.size} pending requests`);\n return;\n }\n this._pendingRequests.clear();\n }\n\n /** Reset the duckdb */\n public async reset(): Promise<null> {\n const task = new WorkerTask<WorkerRequestType.RESET, null, null>(WorkerRequestType.RESET, null);\n return await this.postTask(task);\n }\n\n /** Ping the worker thread */\n public async ping(): Promise<any> {\n const task = new WorkerTask<WorkerRequestType.PING, null, null>(WorkerRequestType.PING, null);\n await this.postTask(task);\n }\n /** Try to drop a file */\n public async dropFile(name: string): Promise<boolean> {\n const task = new WorkerTask<WorkerRequestType.DROP_FILE, string, boolean>(WorkerRequestType.DROP_FILE, name);\n return await this.postTask(task);\n }\n /** Try to drop files */\n public async dropFiles(): Promise<null> {\n const task = new WorkerTask<WorkerRequestType.DROP_FILES, null, null>(WorkerRequestType.DROP_FILES, null);\n return await this.postTask(task);\n }\n /** Flush all files */\n public async flushFiles(): Promise<null> {\n const task = new WorkerTask<WorkerRequestType.FLUSH_FILES, null, null>(WorkerRequestType.FLUSH_FILES, null);\n return await this.postTask(task);\n }\n\n /** Open the database */\n public async instantiate(mainModuleURL: string, pthreadWorkerURL: string | null = null): Promise<null> {\n const task = new WorkerTask<WorkerRequestType.INSTANTIATE, [string, string | null], null>(\n WorkerRequestType.INSTANTIATE,\n [mainModuleURL, pthreadWorkerURL],\n );\n return await this.postTask(task);\n }\n\n /** Get the version */\n public async getVersion(): Promise<string> {\n const task = new WorkerTask<WorkerRequestType.GET_VERSION, null, string>(WorkerRequestType.GET_VERSION, null);\n const version = await this.postTask(task);\n return version;\n }\n\n /** Get the feature flags */\n public async getFeatureFlags(): Promise<number> {\n const task = new WorkerTask<WorkerRequestType.GET_FEATURE_FLAGS, null, number>(\n WorkerRequestType.GET_FEATURE_FLAGS,\n null,\n );\n const feature = await this.postTask(task);\n return feature;\n }\n\n /** Open a new database */\n public async open(config: DuckDBConfig): Promise<void> {\n const task = new WorkerTask<WorkerRequestType.OPEN, DuckDBConfig, null>(WorkerRequestType.OPEN, config);\n await this.postTask(task);\n }\n\n /** Tokenize a script text */\n public async tokenize(text: string): Promise<ScriptTokens> {\n const task = new WorkerTask<WorkerRequestType.TOKENIZE, string, ScriptTokens>(WorkerRequestType.TOKENIZE, text);\n const tokens = await this.postTask(task);\n return tokens;\n }\n\n /** Connect to the database */\n public async connectInternal(): Promise<number> {\n const task = new WorkerTask<WorkerRequestType.CONNECT, null, ConnectionID>(WorkerRequestType.CONNECT, null);\n return await this.postTask(task);\n }\n\n /** Connect to the database */\n public async connect(): Promise<AsyncDuckDBConnection> {\n const cid = await this.connectInternal();\n return new AsyncDuckDBConnection(this, cid);\n }\n\n /** Disconnect from the database */\n public async disconnect(conn: ConnectionID): Promise<void> {\n const task = new WorkerTask<WorkerRequestType.DISCONNECT, ConnectionID, null>(\n WorkerRequestType.DISCONNECT,\n conn,\n );\n await this.postTask(task);\n }\n\n /// Run a query\n public async runQuery(conn: ConnectionID, text: string): Promise<Uint8Array> {\n const task = new WorkerTask<WorkerRequestType.RUN_QUERY, [ConnectionID, string], Uint8Array>(\n WorkerRequestType.RUN_QUERY,\n [conn, text],\n );\n return await this.postTask(task);\n }\n\n /** Send a query */\n public async sendQuery(conn: ConnectionID, text: string): Promise<Uint8Array> {\n const task = new WorkerTask<WorkerRequestType.SEND_QUERY, [ConnectionID, string], Uint8Array>(\n WorkerRequestType.SEND_QUERY,\n [conn, text],\n );\n return await this.postTask(task);\n }\n\n /** Fetch query results */\n public async fetchQueryResults(conn: ConnectionID): Promise<Uint8Array> {\n const task = new WorkerTask<WorkerRequestType.FETCH_QUERY_RESULTS, ConnectionID, Uint8Array>(\n WorkerRequestType.FETCH_QUERY_RESULTS,\n conn,\n );\n return await this.postTask(task);\n }\n\n /** Register a file path. */\n public async registerFileURL(name: string, url: string): Promise<void> {\n if (url === undefined) {\n url = name;\n }\n const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_URL, [string, string], null>(\n WorkerRequestType.REGISTER_FILE_URL,\n [name, url],\n );\n await this.postTask(task);\n }\n\n /** Register an empty file buffer. */\n public async registerEmptyFileBuffer(name: string): Promise<void> {\n const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>(\n WorkerRequestType.REGISTER_FILE_BUFFER,\n [name, new Uint8Array()],\n );\n await this.postTask(task);\n }\n\n /** Register a file buffer. */\n public async registerFileBuffer(name: string, buffer: Uint8Array): Promise<void> {\n const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_BUFFER, [string, Uint8Array], null>(\n WorkerRequestType.REGISTER_FILE_BUFFER,\n [name, buffer],\n );\n await this.postTask(task, [buffer.buffer]);\n }\n\n /** Register a file handle. */\n public async registerFileHandle<HandleType>(name: string, handle: HandleType): Promise<void> {\n const task = new WorkerTask<WorkerRequestType.REGISTER_FILE_HANDLE, [string, any], null>(\n WorkerRequestType.REGISTER_FILE_HANDLE,\n [name, handle],\n );\n await this.postTask(task, []);\n }\n\n /** Enable file statistics */\n public async collectFileStatistics(name: string, enable: boolean): Promise<void> {\n const task = new WorkerTask<WorkerRequestType.COLLECT_FILE_STATISTICS, [string, boolean], null>(\n WorkerRequestType.COLLECT_FILE_STATISTICS,\n [name, enable],\n );\n await this.postTask(task, []);\n }\n\n /** Export file statistics */\n public async exportFileStatistics(name: string): Promise<FileStatistics> {\n const task = new WorkerTask<WorkerRequestType.EXPORT_FILE_STATISTICS, string, FileStatistics>(\n WorkerRequestType.EXPORT_FILE_STATISTICS,\n name,\n );\n return await this.postTask(task, []);\n }\n\n /** Copy a file to a buffer. */\n public async copyFileToBuffer(name: string): Promise<Uint8Array> {\n const task = new WorkerTask<WorkerRequestType.COPY_FILE_TO_BUFFER, string, Uint8Array>(\n WorkerRequestType.COPY_FILE_TO_BUFFER,\n name,\n );\n return await this.postTask(task);\n }\n\n /** Copy a file to a path. */\n public async copyFileToPath(name: string, path: string): Promise<void> {\n const task = new WorkerTask<WorkerRequestType.COPY_FILE_TO_PATH, [string, string], null>(\n WorkerRequestType.COPY_FILE_TO_PATH,\n [name, path],\n );\n await this.postTask(task);\n }\n\n /** Insert arrow from an ipc stream */\n public async insertArrowFromIPCStream(\n conn: ConnectionID,\n buffer: Uint8Array,\n options?: ArrowInsertOptions,\n ): Promise<void> {\n // Pass to the worker\n const task = new WorkerTask<\n WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM,\n [number, Uint8Array, ArrowInsertOptions | undefined],\n null\n >(WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM, [conn, buffer, options]);\n await this.postTask(task, [buffer.buffer]);\n }\n /** Insert a csv file */\n public async insertCSVFromPath(conn: ConnectionID, path: string, options: CSVInsertOptions): Promise<void> {\n // Flatten the table options\n if (options.columns !== undefined) {\n const out = [];\n for (const k in options.columns) {\n const type = options.columns[k];\n out.push(flattenArrowField(k, type));\n }\n options.columnsFlat = out;\n delete options.columns;\n }\n\n // Pass to the worker\n const task = new WorkerTask<WorkerRequestType.INSERT_CSV_FROM_PATH, [number, string, CSVInsertOptions], null>(\n WorkerRequestType.INSERT_CSV_FROM_PATH,\n [conn, path, options],\n );\n await this.postTask(task);\n }\n /** Insert a json file */\n public async insertJSONFromPath(conn: ConnectionID, path: string, options: JSONInsertOptions): Promise<void> {\n // Flatten the table options\n if (options.columns !== undefined) {\n const out = [];\n for (const k in options.columns) {\n const type = options.columns[k];\n out.push(flattenArrowField(k, type));\n }\n options.columnsFlat = out;\n delete options.columns;\n }\n\n // Pass to the worker\n const task = new WorkerTask<WorkerRequestType.INSERT_JSON_FROM_PATH, [number, string, JSONInsertOptions], null>(\n WorkerRequestType.INSERT_JSON_FROM_PATH,\n [conn, path, options],\n );\n await this.postTask(task);\n }\n}\n", "import { DuckDBBindings } from '../bindings';\nimport { WorkerResponseVariant, WorkerRequestVariant, WorkerRequestType, WorkerResponseType } from './worker_request';\nimport { Logger, LogEntryVariant } from '../log';\n\nexport abstract class AsyncDuckDBDispatcher implements Logger {\n /** The bindings */\n protected _bindings: DuckDBBindings | null = null;\n /** The next message id */\n protected _nextMessageId = 0;\n\n /** Instantiate the wasm module */\n protected abstract instantiate(mainModule: string, pthreadWorker: string | null): Promise<DuckDBBindings>;\n /** Post a response to the main thread */\n protected abstract postMessage(response: WorkerResponseVariant, transfer: ArrayBuffer[]): void;\n\n /** Send log entry to the main thread */\n public log(entry: LogEntryVariant): void {\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: 0,\n type: WorkerResponseType.LOG,\n data: entry,\n },\n [],\n );\n }\n\n /** Send plain OK without further data */\n protected sendOK(request: WorkerRequestVariant): void {\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.OK,\n data: null,\n },\n [],\n );\n }\n\n /** Fail with an error */\n protected failWith(request: WorkerRequestVariant, e: Error): void {\n // Workaround for Firefox not being able to perform structured-clone on Native Errors\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n const obj: any = {\n name: e.name,\n message: e.message,\n stack: e.stack || undefined,\n };\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.ERROR,\n data: obj,\n },\n [],\n );\n return;\n }\n\n /** Process a request from the main thread */\n public async onMessage(request: WorkerRequestVariant): Promise<void> {\n // First process those requests that don't need bindings\n switch (request.type) {\n case WorkerRequestType.PING:\n this.sendOK(request);\n return;\n case WorkerRequestType.INSTANTIATE:\n if (this._bindings != null) {\n this.failWith(request, new Error('duckdb already initialized'));\n }\n try {\n this._bindings = await this.instantiate(request.data[0], request.data[1]);\n this.sendOK(request);\n } catch (e: any) {\n this._bindings = null;\n this.failWith(request, e);\n }\n return;\n default:\n break;\n }\n\n // Bindings not initialized?\n if (!this._bindings) {\n return this.failWith(request, new Error('duckdb is not initialized'));\n }\n\n // Catch every exception and forward it as error message to the main thread\n try {\n switch (request.type) {\n case WorkerRequestType.GET_VERSION:\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.VERSION_STRING,\n data: this._bindings.getVersion(),\n },\n [],\n );\n break;\n case WorkerRequestType.GET_FEATURE_FLAGS:\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.FEATURE_FLAGS,\n data: this._bindings.getFeatureFlags(),\n },\n [],\n );\n break;\n case WorkerRequestType.RESET:\n this._bindings.reset();\n this.sendOK(request);\n break;\n\n case WorkerRequestType.OPEN:\n this._bindings.open(request.data);\n this.sendOK(request);\n break;\n case WorkerRequestType.DROP_FILE:\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.SUCCESS,\n data: this._bindings.dropFile(request.data),\n },\n [],\n );\n break;\n case WorkerRequestType.DROP_FILES:\n this._bindings.dropFiles();\n this.sendOK(request);\n break;\n case WorkerRequestType.FLUSH_FILES:\n this._bindings.flushFiles();\n this.sendOK(request);\n break;\n case WorkerRequestType.CONNECT: {\n const conn = this._bindings.connect();\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.CONNECTION_INFO,\n data: conn.handle,\n },\n [],\n );\n break;\n }\n case WorkerRequestType.DISCONNECT:\n this._bindings.disconnect(request.data);\n this.sendOK(request);\n break;\n case WorkerRequestType.RUN_QUERY: {\n const result = this._bindings.runQuery(request.data[0], request.data[1]);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_RESULT,\n data: result,\n },\n [result.buffer],\n );\n break;\n }\n case WorkerRequestType.SEND_QUERY: {\n const result = this._bindings.sendQuery(request.data[0], request.data[1]);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_START,\n data: result,\n },\n [result.buffer],\n );\n break;\n }\n case WorkerRequestType.FETCH_QUERY_RESULTS: {\n const result = this._bindings.fetchQueryResults(request.data);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.QUERY_RESULT_CHUNK,\n data: result,\n },\n [result.buffer],\n );\n break;\n }\n case WorkerRequestType.REGISTER_FILE_URL:\n this._bindings.registerFileURL(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.REGISTER_FILE_BUFFER:\n this._bindings.registerFileBuffer(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.REGISTER_FILE_HANDLE:\n this._bindings.registerFileHandle(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.COPY_FILE_TO_PATH:\n this._bindings.copyFileToPath(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.COPY_FILE_TO_BUFFER: {\n const buffer = this._bindings.copyFileToBuffer(request.data);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.FILE_BUFFER,\n data: buffer,\n },\n [],\n );\n break;\n }\n case WorkerRequestType.COLLECT_FILE_STATISTICS:\n this._bindings.collectFileStatistics(request.data[0], request.data[1]);\n this.sendOK(request);\n break;\n\n case WorkerRequestType.EXPORT_FILE_STATISTICS: {\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.FILE_STATISTICS,\n data: this._bindings.exportFileStatistics(request.data),\n },\n [],\n );\n break;\n }\n case WorkerRequestType.INSERT_ARROW_FROM_IPC_STREAM: {\n this._bindings.insertArrowFromIPCStream(request.data[0], request.data[1], request.data[2]);\n this.sendOK(request);\n break;\n }\n case WorkerRequestType.INSERT_CSV_FROM_PATH: {\n this._bindings.insertCSVFromPath(request.data[0], request.data[1], request.data[2]);\n this.sendOK(request);\n break;\n }\n case WorkerRequestType.INSERT_JSON_FROM_PATH: {\n this._bindings.insertJSONFromPath(request.data[0], request.data[1], request.data[2]);\n this.sendOK(request);\n break;\n }\n case WorkerRequestType.TOKENIZE: {\n const result = this._bindings.tokenize(request.data);\n this.postMessage(\n {\n messageId: this._nextMessageId++,\n requestId: request.messageId,\n type: WorkerResponseType.SCRIPT_TOKENS,\n data: result,\n },\n [],\n );\n break;\n }\n }\n } catch (e: any) {\n return this.failWith(request, e);\n }\n }\n}\n", "export const bigInt=()=>(async e=>{try{return(await WebAssembly.instantiate(e)).instance.exports.b(BigInt(0))===BigInt(0)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,126,1,126,3,2,1,0,7,5,1,1,98,0,0,10,6,1,4,0,32,0,11])),bulkMemory=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),exceptions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),multiValue=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,0,2,127,127,3,2,1,0,10,8,1,6,0,65,0,65,0,11])),mutableGlobals=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1])),referenceTypes=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),saturatedFloatToInt=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),signExtensions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),simd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),tailCall=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,6,1,4,0,18,0,11])),threads=()=>(async e=>{try{return\"undefined\"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]));\n", "import config from '../package.json';\n\nexport const PACKAGE_NAME = config.name;\nexport const PACKAGE_VERSION = config.version;\n\nconst VERSION_PARTS = config.version.split('.');\nexport const PACKAGE_VERSION_MAJOR = VERSION_PARTS[0];\nexport const PACKAGE_VERSION_MINOR = VERSION_PARTS[1];\nexport const PACKAGE_VERSION_PATCH = VERSION_PARTS[2];\n", "import * as check from 'wasm-feature-detect';\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nexport interface DuckDBBundles {\n asyncDefault: {\n mainModule: string;\n mainWorker: string;\n };\n asyncNext?: {\n mainModule: string;\n mainWorker: string;\n };\n asyncNextCOI?: {\n mainModule: string;\n mainWorker: string;\n pthreadWorker: string;\n };\n}\n\nfunction getWorkerURL(url: string) {\n const content = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([content], { type: 'text/javascript' }));\n}\n\nexport function getJsDelivrBundles(): DuckDBBundles {\n // XXX This must be changed when we switch to github packages.\n const jsdelivr_dist_url = `https://cdn.jsdelivr.net/npm/${PACKAGE_NAME}@${PACKAGE_VERSION}/dist/`;\n return {\n asyncDefault: {\n mainModule: `${jsdelivr_dist_url}duckdb.wasm`,\n mainWorker: getWorkerURL(`${jsdelivr_dist_url}duckdb-browser-async.worker.js`),\n },\n asyncNext: {\n mainModule: `${jsdelivr_dist_url}duckdb-next.wasm`,\n mainWorker: getWorkerURL(`${jsdelivr_dist_url}duckdb-browser-async-next.worker.js`),\n },\n asyncNextCOI: {\n mainModule: `${jsdelivr_dist_url}duckdb-next-coi.wasm`,\n mainWorker: getWorkerURL(`${jsdelivr_dist_url}duckdb-browser-async-next-coi.worker.js`),\n pthreadWorker: getWorkerURL(`${jsdelivr_dist_url}duckdb-browser-async-next-coi.pthread.worker.js`),\n },\n };\n}\n\nexport interface DuckDBBundle {\n mainModule: string;\n mainWorker: string | null;\n pthreadWorker: string | null;\n}\n\nexport interface PlatformFeatures {\n bigInt64Array: boolean;\n crossOriginIsolated: boolean;\n wasmExceptions: boolean;\n wasmSIMD: boolean;\n wasmBulkMemory: boolean;\n wasmThreads: boolean;\n}\n\nlet bigInt64Array: boolean | null = null;\nlet wasmExceptions: boolean | null = null;\nlet wasmThreads: boolean | null = null;\nlet wasmSIMD: boolean | null = null;\nlet wasmBulkMemory: boolean | null = null;\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\ndeclare namespace globalThis {\n let crossOriginIsolated: boolean;\n}\n\nfunction isNode(): boolean {\n return typeof process !== 'undefined' && process.release.name === 'node';\n}\n\nexport async function getPlatformFeatures(): Promise<PlatformFeatures> {\n if (bigInt64Array == null) {\n bigInt64Array = typeof BigInt64Array != 'undefined';\n }\n if (wasmExceptions == null) {\n wasmExceptions = await check.exceptions();\n }\n if (wasmThreads == null) {\n wasmThreads = await check.threads();\n }\n if (wasmSIMD == null) {\n wasmSIMD = await check.simd();\n }\n if (wasmBulkMemory == null) {\n wasmBulkMemory = await check.bulkMemory();\n }\n return {\n bigInt64Array: bigInt64Array!,\n crossOriginIsolated: isNode() || globalThis.crossOriginIsolated || false,\n wasmExceptions: wasmExceptions!,\n wasmSIMD: wasmSIMD!,\n wasmThreads: wasmThreads!,\n wasmBulkMemory: wasmBulkMemory!,\n };\n}\n\nexport async function selectBundle(bundles: DuckDBBundles): Promise<DuckDBBundle> {\n const platform = await getPlatformFeatures();\n if (platform.wasmExceptions && platform.wasmSIMD) {\n if (platform.wasmThreads && platform.crossOriginIsolated && bundles.asyncNextCOI) {\n return {\n mainModule: bundles.asyncNextCOI.mainModule,\n mainWorker: bundles.asyncNextCOI.mainWorker,\n pthreadWorker: bundles.asyncNextCOI.pthreadWorker,\n };\n }\n if (bundles.asyncNext) {\n return {\n mainModule: bundles.asyncNext.mainModule,\n mainWorker: bundles.asyncNext.mainWorker,\n pthreadWorker: null,\n };\n }\n }\n return {\n mainModule: bundles.asyncDefault.mainModule,\n mainWorker: bundles.asyncDefault.mainWorker,\n pthreadWorker: null,\n };\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }