Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

Index

Constructors

constructor

  • new KaitaiStreamReader(arrayBuffer?: ArrayBuffer | DataView, byteOffset?: number, isBigEndian?: boolean): KaitaiStreamReader
  • KaitaiStream is an implementation of Kaitai Struct API for JavaScript. Based on DataStream - https://github.com/kig/DataStream.js

    Parameters

    • Optional arrayBuffer: ArrayBuffer | DataView

      ArrayBuffer to read from.

    • Default value byteOffset: number = 0

      Offset from arrayBuffer beginning for the KaitaiStream.

    • Default value isBigEndian: boolean = true

    Returns KaitaiStreamReader

Properties

Protected _buffer

_buffer: ArrayBuffer

_byteLength

_byteLength: number = 0

Virtual byte length of the KaitaiStream backing buffer. Updated to be max of original buffer size and last written size. If dynamicSize is false is set to buffer size.

type

{number}

Protected _byteOffset

_byteOffset: number

Protected _dataView

_dataView: DataView

_isBigEndian

_isBigEndian: boolean

Protected _pos

_pos: number

bits

bits: number

bitsLeft

bitsLeft: number

Number of bits left (when read bit by bit instead of bytes)

Static endianness

endianness: boolean = new Int8Array(new Int16Array([1]).buffer)[0] > 0

Native endianness. Either KaitaiStream.BIG_ENDIAN or KaitaiStream.LITTLE_ENDIAN depending on the platform endianness.

type

{boolean}

Static iconvlite

iconvlite: any

Static zlib

zlib: any

Accessors

buffer

  • get buffer(): ArrayBuffer
  • set buffer(v: ArrayBuffer): void
  • Set/get the backing ArrayBuffer of the KaitaiStream object. The setter updates the DataView to point to the new buffer.

    type

    {Object}

    Returns ArrayBuffer

  • Set/get the backing ArrayBuffer of the KaitaiStream object. The setter updates the DataView to point to the new buffer.

    Parameters

    • v: ArrayBuffer

    Returns void

byteLeft

  • get byteLeft(): number

byteOffset

  • get byteOffset(): number
  • set byteOffset(v: number): void
  • Set/get the byteOffset of the KaitaiStream object. The setter updates the DataView to point to the new byteOffset.

    type

    {number}

    Returns number

  • Set/get the byteOffset of the KaitaiStream object. The setter updates the DataView to point to the new byteOffset.

    Parameters

    • v: number

    Returns void

dataView

  • get dataView(): DataView
  • set dataView(v: DataView): void
  • Set/get the backing DataView of the KaitaiStream object. The setter updates the buffer and byteOffset to point to the DataView values.

    type

    {Object}

    Returns DataView

  • Set/get the backing DataView of the KaitaiStream object. The setter updates the buffer and byteOffset to point to the DataView values.

    Parameters

    • v: DataView

    Returns void

isBigEndian

  • get isBigEndian(): boolean

isLittleEndian

  • get isLittleEndian(): boolean

pos

  • get pos(): number
  • set pos(v: number): void
  • Returns number

  • Parameters

    • v: number

    Returns void

size

  • get size(): number
  • Returns the byte length of the KaitaiStream object.

    type

    {number}

    Returns number

toBytes

  • get toBytes(): Uint8Array
  • Returns Uint8Array

Methods

_trimAlloc

  • _trimAlloc(): void
  • Internal function to trim the KaitaiStream buffer when required. Used for stripping out the extra bytes from the backing buffer when the virtual byteLength is smaller than the buffer byteLength (happens after growing the buffer with writes and not filling the extra space completely).

    Returns void

alignToByte

  • alignToByte(): void

ensureFixedContents

  • ensureFixedContents(expected: any): Uint8Array
  • Parameters

    • expected: any

    Returns Uint8Array

forward

  • forward(relativePosition: number): this
  • Parameters

    • relativePosition: number

    Returns this

forwardBits

  • forwardBits(n: number): this
  • Parameters

    • n: number

    Returns this

isEof

  • isEof(): boolean
  • Returns true if the KaitaiStream seek pointer is at the end of buffer and there's no more data to read.

    Returns boolean

    True if the seek pointer is at the end of the buffer.

mapUint8Array

  • mapUint8Array(length: any): Uint8Array
  • Maps a Uint8Array into the KaitaiStream buffer. Nice for quickly reading in data.

    Parameters

    • length: any

      Number of elements to map.

    Returns Uint8Array

    Uint8Array to the KaitaiStream backing buffer.

read

  • read(type: "f" | "u" | "s" | "b", bitSize: number, isLittleEndian?: boolean): any
  • Parameters

    • type: "f" | "u" | "s" | "b"
    • bitSize: number
    • Default value isLittleEndian: boolean = this.isLittleEndian

    Returns any

readB

  • readB(n: any): number
  • Parameters

    • n: any

    Returns number

readBitsBoolean

  • readBitsBoolean(n: number): boolean
  • Parameters

    • n: number

    Returns boolean

readBitsInt

  • readBitsInt(n: any): number
  • Parameters

    • n: any

    Returns number

readBytes

  • readBytes(len: any): Uint8Array
  • Parameters

    • len: any

    Returns Uint8Array

readBytesFull

  • readBytesFull(): Uint8Array
  • Returns Uint8Array

readBytesTerm

  • readBytesTerm(terminator: any, include: any, consume: any, eosError: any): any
  • Parameters

    • terminator: any
    • include: any
    • consume: any
    • eosError: any

    Returns any

readF

  • readF(size: 4 | 8): number
  • Parameters

    • size: 4 | 8

    Returns number

readF4be

  • readF4be(e: any): number
  • Parameters

    • e: any

    Returns number

readF4le

  • readF4le(e: any): number
  • Parameters

    • e: any

    Returns number

readF8be

  • readF8be(e: any): number
  • Parameters

    • e: any

    Returns number

readF8le

  • readF8le(e: any): number
  • Parameters

    • e: any

    Returns number

readS

  • readS(size: 1 | 2 | 4): number
  • Parameters

    • size: 1 | 2 | 4

    Returns number

readS1

  • readS1(): number
  • Reads an 8-bit signed int from the stream.

    Returns number

    The read number.

readS2be

  • readS2be(e: any): number
  • Reads a 16-bit big-endian signed int from the stream.

    Parameters

    • e: any

    Returns number

    The read number.

readS2le

  • readS2le(e: any): number
  • Reads a 16-bit little-endian signed int from the stream.

    Parameters

    • e: any

    Returns number

    The read number.

readS4be

  • readS4be(e: any): number
  • Reads a 32-bit big-endian signed int from the stream.

    Parameters

    • e: any

    Returns number

    The read number.

readS4le

  • readS4le(e: any): number
  • Reads a 32-bit little-endian signed int from the stream.

    Parameters

    • e: any

    Returns number

    The read number.

readS8be

  • readS8be(e: any): number
  • Reads a 64-bit big-endian unsigned int from the stream. Note that JavaScript does not support 64-bit integers natively, so it will automatically upgrade internal representation to use IEEE 754 double precision float.

    Parameters

    • e: any

    Returns number

    The read number.

readS8le

  • readS8le(e: any): number
  • Reads a 64-bit little-endian unsigned int from the stream. Note that JavaScript does not support 64-bit integers natively, so it will automatically upgrade internal representation to use IEEE 754 double precision float.

    Parameters

    • e: any

    Returns number

    The read number.

readU

  • readU(size: 1 | 2 | 4 | number): number
  • Read unsigned

    Parameters

    • size: 1 | 2 | 4 | number

    Returns number

readU1

  • readU1(): number
  • Reads an 8-bit unsigned int from the stream.

    Returns number

    The read number.

readU2be

  • readU2be(): number
  • Reads a 16-bit big-endian unsigned int from the stream.

    Returns number

    The read number.

readU2le

  • readU2le(e: any): number
  • Reads a 16-bit little-endian unsigned int from the stream.

    Parameters

    • e: any

    Returns number

    The read number.

readU4be

  • readU4be(): number
  • Reads a 32-bit big-endian unsigned int from the stream.

    Returns number

    The read number.

readU4le

  • readU4le(): number
  • Reads a 32-bit little-endian unsigned int from the stream.

    Returns number

    The read number.

readU8be

  • readU8be(e: any): number
  • Reads a 64-bit big-endian unsigned int from the stream. Note that JavaScript does not support 64-bit integers natively, so it will automatically upgrade internal representation to use IEEE 754 double precision float.

    Parameters

    • e: any

    Returns number

    The read number.

readU8le

  • readU8le(): number
  • Reads a 64-bit little-endian unsigned int from the stream. Note that JavaScript does not support 64-bit integers natively, so it will automatically upgrade internal representation to use IEEE 754 double precision float.

    Returns number

    The read number.

seek

  • seek(pos: any): void
  • Sets the KaitaiStream read/write position to given position. Clamps between 0 and KaitaiStream length.

    Parameters

    • pos: any

      Position to seek to.

    Returns void

Static arrayMax

  • arrayMax(arr: any): any
  • Parameters

    • arr: any

    Returns any

Static arrayMin

  • arrayMin(arr: any): any
  • Parameters

    • arr: any

    Returns any

Static byteArrayCompare

  • byteArrayCompare(a: any, b: any): number

Static bytesStripRight

  • bytesStripRight(data: any, padByte: any): any
  • Parameters

    • data: any
    • padByte: any

    Returns any

Static bytesTerminate

  • bytesTerminate(data: any, term: any, include: any): any
  • Parameters

    • data: any
    • term: any
    • include: any

    Returns any

Static bytesToStr

  • bytesToStr(arr: any, encoding: any): string
  • Parameters

    • arr: any
    • encoding: any

    Returns string

Static create

Static createStringFromArray

  • createStringFromArray(array: any): string
  • Creates an array from an array of character codes. Uses String.fromCharCode in chunks for memory efficiency and then concatenates the resulting string chunks.

    Parameters

    • array: any

      Array of character codes.

    Returns string

    String created from the character codes.

Static fromArray

  • Parameters

    • array: Uint8Array

    Returns KaitaiStreamReader

Static mod

  • mod(a: any, b: any): number
  • Parameters

    • a: any
    • b: any

    Returns number

Static processRotateLeft

  • processRotateLeft(data: any, amount: any, groupSize: any): Uint8Array
  • Parameters

    • data: any
    • amount: any
    • groupSize: any

    Returns Uint8Array

Static processXorMany

  • processXorMany(data: any, key: any): Uint8Array
  • Parameters

    • data: any
    • key: any

    Returns Uint8Array

Static processXorOne

  • processXorOne(data: any, key: any): Uint8Array
  • Parameters

    • data: any
    • key: any

    Returns Uint8Array

Object literals

Static depUrls

depUrls: object

Dependency configuration data. Holds urls for (optional) dynamic loading of code dependencies from a remote server. For use by (static) processing functions. Caller should the supported keys to the asset urls as needed. NOTE: depUrls is a static property of KaitaiStream (the factory),like the various processing functions. It is NOT part of the prototype of instances.

type

{Object}

zlib

zlib: undefined = undefined

Generated using TypeDoc