UNPKG

@thi.ng/hex

Version:

Hex string formatters for 4/8/16/24/32/48/64bit words, hexdump formatting of binary data

223 lines 6 kB
/** * Hex digits */ export declare const HEX = "0123456789abcdef"; /** * Returns 4bit uint as hex string * * @param x - */ export declare const U4: (x: number) => string; /** * Returns 8bit uint as hex string * * @param x - */ export declare const U8: (x: number) => string; /** * Returns hex string of 8bit uint, read from given byte array at index `i`. * * @param x - * @param i - */ export declare const U8A: (x: ArrayLike<number>, i: number) => string; /** * Returns 16bit uint as hex string * * @param x - */ export declare const U16: (x: number) => string; /** * Returns hex string of 16bit uint, read in big-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U16BE: (x: ArrayLike<number>, i: number) => string; /** * Returns hex string of 16bit uint, read in litte-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U16LE: (x: ArrayLike<number>, i: number) => string; /** * Returns 24bit uint as hex string * * @param x - */ export declare const U24: (x: number) => string; /** * Returns hex string of 24bit uint, read in big-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U24BE: (x: ArrayLike<number>, i: number) => string; /** * Returns hex string of 24bit uint, read in litte-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U24LE: (x: ArrayLike<number>, i: number) => string; /** * Returns 32bit uint as hex string * * @param x - */ export declare const U32: (x: number) => string; /** * Returns hex string of 32bit uint, read in big-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U32BE: (x: ArrayLike<number>, i: number) => string; /** * Returns hex string of 32bit uint, read in litte-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U32LE: (x: ArrayLike<number>, i: number) => string; /** * Returns 48bit uint as hex string * * @param x - */ export declare const U48: (x: number) => string; /** * Similar to {@link U48}, but takes the 64bit arg as 2x 32bit values. * * @param hi - * @param lo - */ export declare const U48HL: (hi: number, lo: number) => string; /** * Returns hex string of 48bit uint, read in big-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U48BE: (x: ArrayLike<number>, i: number) => string; /** * Returns hex string of 48bit uint, read in litte-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U48LE: (x: ArrayLike<number>, i: number) => string; /** * Returns 64bit uint as hex string. * * @remarks * Note: JS numbers are only integer precise up to `2**53 - 1`. Use * {@link U64BE} or {@link U64LE} for byte array based values (full 64bit range * supported). Alternatively, use `BigInt(x).toString(16)`. * * Also see {@link U64BIG} for `bigint` version. * * @param x - */ export declare const U64: (x: number) => string; /** * Returns 64bit bigint as hex string. * * @param x */ export declare const U64BIG: (x: bigint) => string; /** * Similar to {@link U64}, but takes the 64bit arg as 2x 32bit values. * * @param hi - * @param lo - */ export declare const U64HL: (hi: number, lo: number) => string; /** * Returns hex string of 64bit uint, read in big-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U64BE: (x: ArrayLike<number>, i: number) => string; /** * Returns hex string of 64bit uint, read in litte-endian order from given byte * array at index `i`. * * @param x - * @param i - */ export declare const U64LE: (x: ArrayLike<number>, i: number) => string; /** * Returns UUID formatted string of given byte array from optional start index * `i` (default: 0). Array must have min. length 16 (starting from `i`). * * @param id - * @param i - */ export declare const uuid: (id: ArrayLike<number>, i?: number) => string; /** * Takes a byte array, and optional start address, length and other opts. * Produces a hexdump as string. * * @remarks * Also see {@link printHexdump}, {@link hexdumpLines}. * * @example * ```ts tangle:../export/hexdump.ts * import { printHexdump } from "@thi.ng/hex"; * * const bytes = new TextEncoder().encode("Hellö Wørld! 👋🤝🫶 ...so long!"); * printHexdump(bytes); * * // 00000000 48 65 6c 6c c3 b6 20 57 c3 b8 72 6c 64 21 20 f0 Hell.. W..rld! . * // 00000010 9f 91 8b f0 9f a4 9d f0 9f ab b6 20 2e 2e 2e 73 ........... ...s * // 00000020 6f 20 6c 6f 6e 67 21 o long! * ``` * * @param bytes * @param addr * @param len * @param width * @param ascii */ export declare const hexdump: (bytes: Uint8Array | Uint8ClampedArray, addr?: number, len?: number, width?: number, ascii?: boolean) => string; /** * Syntax sugar for `console.log(hexdump(...))`. * * @param bytes * @param addr * @param len * @param width * @param ascii */ export declare const printHexdump: (bytes: Uint8Array | Uint8ClampedArray, addr?: number, len?: number, width?: number, ascii?: boolean) => void; /** * Takes a byte array, and optional start address, length and other opts. * Produces a hexdump as string array. * * @remarks * The `width` arg specifies the number of bytes per line. The `ascii` flag * indicates if the bytes of each row should also be formatted as ASCII in an * additional column (non-printable ASCII values are represented as `.`). * * Also see {@link printHexdump}, {@link hexdumpLines}. * * @param bytes * @param addr * @param len * @param width * @param ascii */ export declare const hexdumpLines: (bytes: Uint8Array | Uint8ClampedArray, addr?: number, len?: number, width?: number, ascii?: boolean) => string[]; //# sourceMappingURL=index.d.ts.map