770 lines
33 KiB
TypeScript
770 lines
33 KiB
TypeScript
|
|
import constants from './lib/constants'
|
||
|
|
|
||
|
|
/** The set of encodings supported by `Buffer` methods that convert between bytes and strings. */
|
||
|
|
type BufferEncoding =
|
||
|
|
| 'ascii'
|
||
|
|
| 'base64'
|
||
|
|
| 'binary'
|
||
|
|
| 'hex'
|
||
|
|
| 'latin1'
|
||
|
|
| 'ucs-2'
|
||
|
|
| 'ucs2'
|
||
|
|
| 'utf-16le'
|
||
|
|
| 'utf-8'
|
||
|
|
| 'utf16le'
|
||
|
|
| 'utf8'
|
||
|
|
|
||
|
|
interface Buffer extends Uint8Array<ArrayBuffer> {
|
||
|
|
/**
|
||
|
|
* Compare this buffer's contents against `target` lexicographically, optionally comparing only
|
||
|
|
* a sub-range of each, returning -1, 0, or 1 for sort ordering.
|
||
|
|
* @param target - The buffer to compare against.
|
||
|
|
* @param targetStart - Offset within `target` to start comparing from; defaults to `0`.
|
||
|
|
* @param targetEnd - Offset within `target` (exclusive) to stop comparing at; defaults to
|
||
|
|
* `target.byteLength`.
|
||
|
|
* @param sourceStart - Offset within this buffer to start comparing from; defaults to `0`.
|
||
|
|
* @param sourceEnd - Offset within this buffer (exclusive) to stop comparing at; defaults to
|
||
|
|
* `this.byteLength`.
|
||
|
|
* @throws {TypeError} thrown if `target` is not a view.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer, or if either view's
|
||
|
|
* range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
compare(
|
||
|
|
target: Buffer | ArrayBufferView,
|
||
|
|
targetStart?: number,
|
||
|
|
targetEnd?: number,
|
||
|
|
sourceStart?: number,
|
||
|
|
sourceEnd?: number
|
||
|
|
): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Copy bytes from this buffer into `target`, returning the number of bytes copied. A target of
|
||
|
|
* wider elements, such as a `Uint16Array`, receives the bytes it spans.
|
||
|
|
* @param target - The buffer or view to copy into.
|
||
|
|
* @param targetStart - Offset within `target` to start writing at; defaults to `0`.
|
||
|
|
* @param sourceStart - Offset within this buffer to start copying from; defaults to `0`.
|
||
|
|
* @param sourceEnd - Offset within this buffer (exclusive) to stop copying at; defaults to
|
||
|
|
* `this.byteLength`.
|
||
|
|
* @throws {TypeError} thrown if `target` is not a view.
|
||
|
|
* @throws {RangeError} thrown if an offset is not an integer, is negative, or if `sourceStart`
|
||
|
|
* is past the end of this buffer.
|
||
|
|
*/
|
||
|
|
copy(
|
||
|
|
target: Buffer | ArrayBufferView,
|
||
|
|
targetStart?: number,
|
||
|
|
sourceStart?: number,
|
||
|
|
sourceEnd?: number
|
||
|
|
): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Check whether this buffer and `target` have identical contents.
|
||
|
|
* @param target - The buffer or view to compare this buffer's contents against.
|
||
|
|
* @throws {TypeError} thrown if `target` is not a view.
|
||
|
|
* @throws {RangeError} thrown if either view's range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
equals(target: Buffer | ArrayBufferView): boolean
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Fill this buffer with `value`, repeating as needed, and return it.
|
||
|
|
* @param value - The value to fill with — a string or view (repeated across the range), or a
|
||
|
|
* number/boolean byte. A view fills with the bytes it spans.
|
||
|
|
* @param encoding - Encoding used to interpret `value` when it's a string; defaults to `'utf8'`.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`.
|
||
|
|
* @throws {TypeError} thrown if `value` is not a value that can fill.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer.
|
||
|
|
*/
|
||
|
|
fill(value: string, encoding?: BufferEncoding): this
|
||
|
|
fill(value: string, offset?: number, encoding?: BufferEncoding): this
|
||
|
|
fill(value: string, offset?: number, end?: number, encoding?: BufferEncoding): this
|
||
|
|
fill(value: Buffer | ArrayBufferView | number | boolean, offset?: number, end?: number): this
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Check whether this buffer contains `value`.
|
||
|
|
* @param value - The value to search for — a string, view, number byte, or boolean.
|
||
|
|
* @param encoding - Encoding used to interpret `value` when it's a string; defaults to `'utf8'`.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`.
|
||
|
|
* @throws {TypeError} thrown if `value` is not a string, view, number, or boolean.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer, or if either view's
|
||
|
|
* range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
includes(value: string, encoding?: BufferEncoding): boolean
|
||
|
|
includes(value: string, offset?: number, encoding?: BufferEncoding): boolean
|
||
|
|
includes(value: Buffer | ArrayBufferView | number | boolean, offset?: number): boolean
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the first index at which `value` occurs in this buffer, or `-1` if not found.
|
||
|
|
* @param value - The value to search for — a string, view, number byte, or boolean.
|
||
|
|
* @param encoding - Encoding used to interpret `value` when it's a string; defaults to `'utf8'`.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`.
|
||
|
|
* @throws {TypeError} thrown if `value` is not a string, view, number, or boolean.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer, or if either view's
|
||
|
|
* range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
indexOf(value: string, encoding?: BufferEncoding): number
|
||
|
|
indexOf(value: string, offset?: number, encoding?: BufferEncoding): number
|
||
|
|
indexOf(value: Buffer | ArrayBufferView | number | boolean, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the last index at which `value` occurs in this buffer, or `-1` if not found.
|
||
|
|
* @param value - The value to search for — a string, view, number byte, or boolean.
|
||
|
|
* @param encoding - Encoding used to interpret `value` when it's a string; defaults to `'utf8'`.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`.
|
||
|
|
* @throws {TypeError} thrown if `value` is not a string, view, number, or boolean.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer, or if either view's
|
||
|
|
* range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
lastIndexOf(value: string, encoding?: BufferEncoding): number
|
||
|
|
lastIndexOf(value: string, offset?: number, encoding?: BufferEncoding): number
|
||
|
|
lastIndexOf(value: Buffer | ArrayBufferView | number | boolean, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Swap the byte order of each 16-bit group in this buffer in place, and return it.
|
||
|
|
* @throws {RangeError} thrown if the buffer's length is not a multiple of 2 bytes, or if its
|
||
|
|
* range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
swap16(): this
|
||
|
|
/**
|
||
|
|
* Swap the byte order of each 32-bit group in this buffer in place, and return it.
|
||
|
|
* @throws {RangeError} thrown if the buffer's length is not a multiple of 4 bytes, or if its
|
||
|
|
* range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
swap32(): this
|
||
|
|
/**
|
||
|
|
* Swap the byte order of each 64-bit group in this buffer in place, and return it.
|
||
|
|
* @throws {RangeError} thrown if the buffer's length is not a multiple of 8 bytes, or if its
|
||
|
|
* range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
swap64(): this
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Decode this buffer (or a slice of it) to a string using `encoding`.
|
||
|
|
* @param encoding - Encoding used to decode the bytes; defaults to `'utf8'`.
|
||
|
|
* @param start - Byte offset to start decoding from; defaults to `0`.
|
||
|
|
* @param end - Byte offset (exclusive) to stop decoding at; defaults to `this.byteLength`.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer, if this buffer's range
|
||
|
|
* lies outside its backing store, or if the decoded string would exceed
|
||
|
|
* `Buffer.constants.MAX_STRING_LENGTH`.
|
||
|
|
*/
|
||
|
|
toString(encoding?: BufferEncoding, start?: number, end?: number): string
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return an array of this buffer's bytes, used when the buffer is passed to `JSON.stringify()`.
|
||
|
|
*/
|
||
|
|
toJSON(): number[]
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read a 64-bit big-endian double at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readDoubleBE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read a 64-bit little-endian double at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readDoubleLE(offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read a 32-bit big-endian float at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readFloatBE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read a 32-bit little-endian float at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readFloatLE(offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read a signed 8-bit integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readInt8(offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read a signed 16-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readInt16BE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read a signed 16-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readInt16LE(offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read a signed 32-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readInt32BE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read a signed 32-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readInt32LE(offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read a signed, big-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from.
|
||
|
|
* @param byteLength - Number of bytes to read, from `1` to `6`.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
readIntBE(offset: number, byteLength: number): number
|
||
|
|
/**
|
||
|
|
* Read a signed, little-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from.
|
||
|
|
* @param byteLength - Number of bytes to read, from `1` to `6`.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
readIntLE(offset: number, byteLength: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read a signed 64-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readBigInt64BE(offset?: number): bigint
|
||
|
|
/**
|
||
|
|
* Read a signed 64-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readBigInt64LE(offset?: number): bigint
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read an unsigned 8-bit integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUInt8(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned 8-bit integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUint8(offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read an unsigned 16-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUInt16BE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned 16-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUint16BE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned 16-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUInt16LE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned 16-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUint16LE(offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read an unsigned 32-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUInt32BE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned 32-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUint32BE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned 32-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUInt32LE(offset?: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned 32-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readUint32LE(offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read an unsigned, big-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from.
|
||
|
|
* @param byteLength - Number of bytes to read, from `1` to `6`.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
readUIntBE(offset: number, byteLength: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned, big-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from.
|
||
|
|
* @param byteLength - Number of bytes to read, from `1` to `6`.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
readUintBE(offset: number, byteLength: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned, little-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from.
|
||
|
|
* @param byteLength - Number of bytes to read, from `1` to `6`.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
readUIntLE(offset: number, byteLength: number): number
|
||
|
|
/**
|
||
|
|
* Read an unsigned, little-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from.
|
||
|
|
* @param byteLength - Number of bytes to read, from `1` to `6`.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
readUintLE(offset: number, byteLength: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Read an unsigned 64-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readBigUInt64BE(offset?: number): bigint
|
||
|
|
/**
|
||
|
|
* Read an unsigned 64-bit big-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readBigUint64BE(offset?: number): bigint
|
||
|
|
/**
|
||
|
|
* Read an unsigned 64-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readBigUInt64LE(offset?: number): bigint
|
||
|
|
/**
|
||
|
|
* Read an unsigned 64-bit little-endian integer at `offset`.
|
||
|
|
* @param offset - Byte offset to read from; defaults to `0`.
|
||
|
|
*/
|
||
|
|
readBigUint64LE(offset?: number): bigint
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write `string` into this buffer using `encoding`, returning the number of bytes written.
|
||
|
|
* @param string - The string to write.
|
||
|
|
* @param encoding - Encoding used to encode `string`; defaults to `'utf8'`.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`, or if `string`
|
||
|
|
* is not valid in it, as a hex or base64 string can fail to be.
|
||
|
|
* @throws {TypeError} thrown if `string` is not a string.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer, or if this buffer's
|
||
|
|
* range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
write(string: string, encoding?: BufferEncoding): number
|
||
|
|
write(string: string, offset?: number, encoding?: BufferEncoding): number
|
||
|
|
write(string: string, offset?: number, length?: number, encoding?: BufferEncoding): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write a 64-bit big-endian double at `offset`.
|
||
|
|
* @param value - The double-precision number to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 8`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeDoubleBE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write a 64-bit little-endian double at `offset`.
|
||
|
|
* @param value - The double-precision number to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 8`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeDoubleLE(value: number, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write a 32-bit big-endian float at `offset`.
|
||
|
|
* @param value - The single-precision number to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 4`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeFloatBE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write a 32-bit little-endian float at `offset`.
|
||
|
|
* @param value - The single-precision number to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 4`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeFloatLE(value: number, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write a signed 8-bit integer at `offset`.
|
||
|
|
* @param value - The signed integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 1`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeInt8(value: number, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write a signed 16-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The signed integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 2`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeInt16BE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write a signed 16-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The signed integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 2`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeInt16LE(value: number, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write a signed 32-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The signed integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 4`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeInt32BE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write a signed 32-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The signed integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 4`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeInt32LE(value: number, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write a signed, big-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param value - The signed integer to write.
|
||
|
|
* @param offset - Byte offset to write to.
|
||
|
|
* @param byteLength - Number of bytes to write, from `1` to `6`.
|
||
|
|
* @returns `offset + byteLength`, the offset immediately following the written value.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
writeIntBE(value: number, offset: number, byteLength: number): number
|
||
|
|
/**
|
||
|
|
* Write a signed, little-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param value - The signed integer to write.
|
||
|
|
* @param offset - Byte offset to write to.
|
||
|
|
* @param byteLength - Number of bytes to write, from `1` to `6`.
|
||
|
|
* @returns `offset + byteLength`, the offset immediately following the written value.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
writeIntLE(value: number, offset: number, byteLength: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write a signed 64-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The signed `bigint` to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 8`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeBigInt64BE(value: bigint, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write a signed 64-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The signed `bigint` to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 8`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeBigInt64LE(value: bigint, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write an unsigned 8-bit integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 1`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUInt8(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 8-bit integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 1`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUint8(value: number, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write an unsigned 16-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 2`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUInt16BE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 16-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 2`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUint16BE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 16-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 2`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUInt16LE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 16-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 2`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUint16LE(value: number, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write an unsigned 32-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 4`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUInt32BE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 32-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 4`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUint32BE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 32-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 4`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUInt32LE(value: number, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 32-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 4`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeUint32LE(value: number, offset?: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write an unsigned, big-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to.
|
||
|
|
* @param byteLength - Number of bytes to write, from `1` to `6`.
|
||
|
|
* @returns `offset + byteLength`, the offset immediately following the written value.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
writeUIntBE(value: number, offset: number, byteLength: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned, big-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to.
|
||
|
|
* @param byteLength - Number of bytes to write, from `1` to `6`.
|
||
|
|
* @returns `offset + byteLength`, the offset immediately following the written value.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
writeUintBE(value: number, offset: number, byteLength: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned, little-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to.
|
||
|
|
* @param byteLength - Number of bytes to write, from `1` to `6`.
|
||
|
|
* @returns `offset + byteLength`, the offset immediately following the written value.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
writeUIntLE(value: number, offset: number, byteLength: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned, little-endian, `byteLength`-byte integer at `offset`.
|
||
|
|
* @param value - The unsigned integer to write.
|
||
|
|
* @param offset - Byte offset to write to.
|
||
|
|
* @param byteLength - Number of bytes to write, from `1` to `6`.
|
||
|
|
* @returns `offset + byteLength`, the offset immediately following the written value.
|
||
|
|
* @throws {RangeError} thrown if `byteLength` is not between `1` and `6`.
|
||
|
|
*/
|
||
|
|
writeUintLE(value: number, offset: number, byteLength: number): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Write an unsigned 64-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned `bigint` to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 8`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeBigUint64BE(value: bigint, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 64-bit big-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned `bigint` to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 8`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeBigUInt64BE(value: bigint, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 64-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned `bigint` to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 8`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeBigUint64LE(value: bigint, offset?: number): number
|
||
|
|
/**
|
||
|
|
* Write an unsigned 64-bit little-endian integer at `offset`.
|
||
|
|
* @param value - The unsigned `bigint` to write.
|
||
|
|
* @param offset - Byte offset to write to; defaults to `0`.
|
||
|
|
* @returns `offset + 8`, the offset immediately following the written value.
|
||
|
|
*/
|
||
|
|
writeBigUInt64LE(value: bigint, offset?: number): number
|
||
|
|
}
|
||
|
|
|
||
|
|
declare class Buffer extends Uint8Array<ArrayBuffer> {
|
||
|
|
/**
|
||
|
|
* Create a `Buffer` viewing `arrayBuffer`, optionally starting at `offset` for `length` bytes.
|
||
|
|
* @param arrayBuffer - The `ArrayBuffer` to view.
|
||
|
|
* @param offset - Byte offset into `arrayBuffer` to start the view at; defaults to `0`.
|
||
|
|
* @param length - Number of bytes to view from `offset`; defaults to the rest of `arrayBuffer`.
|
||
|
|
* @throws {RangeError} thrown if the resulting length would exceed `Buffer.constants.MAX_LENGTH`.
|
||
|
|
*/
|
||
|
|
constructor(arrayBuffer: ArrayBuffer, offset?: number, length?: number)
|
||
|
|
}
|
||
|
|
|
||
|
|
/** A fixed-length view of binary data, backed by an `ArrayBuffer` and extending `Uint8Array`. */
|
||
|
|
declare namespace Buffer {
|
||
|
|
/**
|
||
|
|
* The size, in bytes, of the internal buffer pool used to satisfy small allocations. Setting it
|
||
|
|
* to `0` turns pooling off.
|
||
|
|
* @throws {TypeError} thrown if assigned a value that is not a number.
|
||
|
|
* @throws {RangeError} thrown if assigned a value that is not an integer between `0` and
|
||
|
|
* `Buffer.constants.MAX_LENGTH`.
|
||
|
|
*/
|
||
|
|
export let poolSize: number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Check whether `value` is a `Buffer`.
|
||
|
|
* @param value - The value to check.
|
||
|
|
*/
|
||
|
|
export function isBuffer(value: unknown): value is Buffer
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Check whether `encoding` is a supported `BufferEncoding`.
|
||
|
|
* @param encoding - The encoding name to check.
|
||
|
|
*/
|
||
|
|
export function isEncoding(encoding: string): encoding is BufferEncoding
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Check whether `buffer` contains only valid ASCII-encoded data.
|
||
|
|
* @param buffer - The buffer or view to check.
|
||
|
|
* @throws {TypeError} thrown if `buffer` is not a view.
|
||
|
|
* @throws {RangeError} thrown if `buffer`'s range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
export function isASCII(buffer: Buffer | ArrayBufferView): boolean
|
||
|
|
/**
|
||
|
|
* Check whether `buffer` contains only valid ASCII-encoded data.
|
||
|
|
* @param buffer - The buffer or view to check.
|
||
|
|
* @throws {TypeError} thrown if `buffer` is not a view.
|
||
|
|
* @throws {RangeError} thrown if `buffer`'s range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
export function isAscii(buffer: Buffer | ArrayBufferView): boolean
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Check whether `buffer` contains only valid UTF-8-encoded data.
|
||
|
|
* @param buffer - The buffer or view to check.
|
||
|
|
* @throws {TypeError} thrown if `buffer` is not a view.
|
||
|
|
* @throws {RangeError} thrown if `buffer`'s range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
export function isUTF8(buffer: Buffer | ArrayBufferView): boolean
|
||
|
|
/**
|
||
|
|
* Check whether `buffer` contains only valid UTF-8-encoded data.
|
||
|
|
* @param buffer - The buffer or view to check.
|
||
|
|
* @throws {TypeError} thrown if `buffer` is not a view.
|
||
|
|
* @throws {RangeError} thrown if `buffer`'s range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
export function isUtf8(buffer: Buffer | ArrayBufferView): boolean
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Allocate a new, zero-filled `Buffer` of `size` bytes, optionally filled with `fill`.
|
||
|
|
* @param size - Number of bytes to allocate.
|
||
|
|
* @param fill - Value to fill the buffer with — a string, view, number byte, or boolean.
|
||
|
|
* @param encoding - Encoding used to interpret `fill` when it's a string; defaults to `'utf8'`.
|
||
|
|
* @throws {RangeError} thrown if `size` is not an integer between `0` and
|
||
|
|
* `Buffer.constants.MAX_LENGTH`.
|
||
|
|
* @throws {TypeError} thrown if `size` is not a number, or `fill` is not a value that can fill.
|
||
|
|
*/
|
||
|
|
export function alloc(size: number, fill: string, encoding?: BufferEncoding): Buffer
|
||
|
|
export function alloc(size: number, fill?: Buffer | ArrayBufferView | number | boolean): Buffer
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Allocate a new `Buffer` of `size` bytes without zeroing its contents first.
|
||
|
|
* @param size - Number of bytes to allocate.
|
||
|
|
* @throws {RangeError} thrown if `size` is not an integer between `0` and
|
||
|
|
* `Buffer.constants.MAX_LENGTH`.
|
||
|
|
* @throws {TypeError} thrown if `size` is not a number.
|
||
|
|
*/
|
||
|
|
export function allocUnsafe(size: number): Buffer
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Allocate a new `Buffer` of `size` bytes without zeroing its contents first, bypassing the
|
||
|
|
* internal buffer pool.
|
||
|
|
* @param size - Number of bytes to allocate.
|
||
|
|
* @throws {RangeError} thrown if `size` is not an integer between `0` and
|
||
|
|
* `Buffer.constants.MAX_LENGTH`.
|
||
|
|
* @throws {TypeError} thrown if `size` is not a number.
|
||
|
|
*/
|
||
|
|
export function allocUnsafeSlow(size: number): Buffer
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the number of bytes `string` would occupy once encoded as `encoding`.
|
||
|
|
* @param string - The value whose encoded length to measure — a string, or an
|
||
|
|
* `ArrayBufferView`/`ArrayBufferLike` (whose own `byteLength` is returned unchanged).
|
||
|
|
* @param encoding - Encoding used to measure `string` when it's a string; defaults to `'utf8'`.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`.
|
||
|
|
*/
|
||
|
|
export function byteLength(
|
||
|
|
string: ArrayBufferView | ArrayBufferLike | string,
|
||
|
|
encoding?: BufferEncoding
|
||
|
|
): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Compare two buffers' contents lexicographically, returning -1, 0, or 1 for sort ordering.
|
||
|
|
* @param a - The first buffer to compare.
|
||
|
|
* @param b - The second buffer to compare.
|
||
|
|
* @throws {TypeError} thrown if `a` or `b` is not a view.
|
||
|
|
* @throws {RangeError} thrown if either view's range lies outside its backing store.
|
||
|
|
*/
|
||
|
|
export function compare(a: Buffer | ArrayBufferView, b: Buffer | ArrayBufferView): number
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Concatenate `buffers` into a single new `Buffer`, optionally truncated or zero-padded to
|
||
|
|
* `length`.
|
||
|
|
* @param buffers - The buffers to concatenate, in order.
|
||
|
|
* @param length - Total byte length of the result; defaults to the sum of `buffers`' lengths.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer.
|
||
|
|
*/
|
||
|
|
export function concat(buffers: Buffer[], length?: number): Buffer
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return `buffer` unchanged if it is already a `Buffer`, otherwise wrap its underlying
|
||
|
|
* `ArrayBuffer` in a new `Buffer`.
|
||
|
|
* @param buffer - The buffer or view to coerce into a `Buffer`.
|
||
|
|
*/
|
||
|
|
export function coerce(buffer: Buffer | ArrayBufferView): Buffer
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Copy the bytes of `view`, starting at `offset` for `length` elements, into a new `Buffer`.
|
||
|
|
* @param view - The typed array (or other `ArrayBufferLike` view) to copy bytes from.
|
||
|
|
* @param offset - Index of the first element to copy; defaults to `0`.
|
||
|
|
* @param length - Number of elements to copy; defaults to the rest of `view`.
|
||
|
|
* @throws {RangeError} thrown if `offset + length` exceeds `view.length`.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer.
|
||
|
|
*/
|
||
|
|
export function copyBytesFrom(view: ArrayBufferLike, offset?: number, length?: number): Buffer
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create a new `Buffer` from an array, array-like, string, or `ArrayBuffer`.
|
||
|
|
* @param data - The array, array-like, string, buffer, or `ArrayBuffer` to create a new `Buffer`
|
||
|
|
* from.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`, or if `string`
|
||
|
|
* is not valid in it, as a hex or base64 string can fail to be.
|
||
|
|
* @throws {RangeError} thrown if an offset or length is not an integer.
|
||
|
|
*/
|
||
|
|
export function from(data: Iterable<number>): Buffer
|
||
|
|
export function from(data: ArrayLike<number>): Buffer
|
||
|
|
export function from(string: string, encoding?: BufferEncoding): Buffer
|
||
|
|
export function from(arrayBuffer: ArrayBufferLike, offset?: number, length?: number): Buffer
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Decode a base64-encoded string into a Latin-1 binary string.
|
||
|
|
* @param data - The base64-encoded string to decode.
|
||
|
|
*/
|
||
|
|
export function atob(data: unknown): string
|
||
|
|
/**
|
||
|
|
* Encode a Latin-1 binary string into a base64 string.
|
||
|
|
* @param data - The value to encode; non-strings are coerced with `String()`.
|
||
|
|
*/
|
||
|
|
export function btoa(data: unknown): string
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Re-encode `buffer` from one encoding to another, returning a new `Buffer`.
|
||
|
|
* @param buffer - The buffer to re-encode.
|
||
|
|
* @param from - The encoding `buffer` is currently in.
|
||
|
|
* @param to - The encoding to convert to.
|
||
|
|
* @throws {Error} thrown if the encoding is not a recognized `BufferEncoding`.
|
||
|
|
*/
|
||
|
|
export function transcode(buffer: Buffer, from: BufferEncoding, to: BufferEncoding): Buffer
|
||
|
|
|
||
|
|
export { Buffer, type BufferEncoding, constants }
|
||
|
|
}
|
||
|
|
|
||
|
|
export = Buffer
|