{"version":3,"sources":["util/buffer.ts"],"names":[],"mappings":"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","file":"buffer.js","sourcesContent":["// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements.  See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership.  The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License.  You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied.  See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { flatbuffers } from 'flatbuffers';\nimport { encodeUtf8 } from '../util/utf8';\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport { TypedArray, TypedArrayConstructor } from '../interfaces';\nimport { BigIntArray, BigIntArrayConstructor } from '../interfaces';\nimport { isPromise, isIterable, isAsyncIterable, isIteratorResult, BigInt64Array, BigUint64Array } from './compat';\n\n/** @ignore */\nconst SharedArrayBuf = (typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : ArrayBuffer);\n\n/** @ignore */\nfunction collapseContiguousByteRanges(chunks: Uint8Array[]) {\n    let result = chunks[0] ? [chunks[0]] : [];\n    let xOffset: number, yOffset: number, xLen: number, yLen: number;\n    for (let x, y, i = 0, j = 0, n = chunks.length; ++i < n;) {\n        x = result[j];\n        y = chunks[i];\n        // continue if x and y don't share the same underlying ArrayBuffer, or if x isn't before y\n        if (!x || !y || x.buffer !== y.buffer || y.byteOffset < x.byteOffset) {\n            y && (result[++j] = y);\n            continue;\n        }\n        ({ byteOffset: xOffset, byteLength: xLen } = x);\n        ({ byteOffset: yOffset, byteLength: yLen } = y);\n        // continue if the byte ranges of x and y aren't contiguous\n        if ((xOffset + xLen) < yOffset || (yOffset + yLen) < xOffset) {\n            y && (result[++j] = y);\n            continue;\n        }\n        result[j] = new Uint8Array(x.buffer, xOffset, yOffset - xOffset + yLen);\n    }\n    return result;\n}\n\n/** @ignore */\nexport function memcpy<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    let result = collapseContiguousByteRanges(chunks);\n    let byteLength = result.reduce((x, b) => x + b.byteLength, 0);\n    let source: Uint8Array, sliced: Uint8Array, buffer: Uint8Array | void;\n    let offset = 0, index = -1, length = Math.min(size || Infinity, byteLength);\n    for (let n = result.length; ++index < n;) {\n        source = result[index];\n        sliced = source.subarray(0, Math.min(source.length, length - offset));\n        if (length <= (offset + sliced.length)) {\n            if (sliced.length < source.length) {\n                result[index] = source.subarray(sliced.length);\n            } else if (sliced.length === source.length) { index++; }\n            buffer ? memcpy(buffer, sliced, offset) : (buffer = sliced);\n            break;\n        }\n        memcpy(buffer || (buffer = new Uint8Array(length)), sliced, offset);\n        offset += sliced.length;\n    }\n    return [buffer || new Uint8Array(0), result.slice(index), byteLength - (buffer ? buffer.byteLength : 0)];\n}\n\n/** @ignore */\nexport type ArrayBufferViewInput = ArrayBufferView | ArrayBufferLike | ArrayBufferView | Iterable<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) {\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}\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): AsyncIterableIterator<T> {\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) {\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}\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 = 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"]}