UNPKG

@bedrock-apis/nbt

Version:

Solid NBT package, with multiple formats

87 lines (86 loc) 4.15 kB
import { ReaderLike, WriterLike } from "./index-CxKCPxKy.js"; import { Byte, Double, Float, IDataCursor, Int, Long, Short, TagType } from "@bedrock-apis/nbt-core"; //#region main/async/binary-source.d.ts declare abstract class BinaryDataTransformerInstance<T extends ArrayBufferLike, S> implements Transformer<Uint8Array<T>, S>, IDataCursor { readonly buffer: Uint8Array; protected readonly maxSubChunkSize: number; pointer: number; length: number; readonly view: DataView; readonly program: Iterator<number, void, number>; readonly controller: TransformStreamDefaultController<S>; protected requested: number; protected isDone: boolean | undefined; constructor(buffer: Uint8Array, maxSubChunkSize?: number); start(controller: TransformStreamDefaultController<S>): void; transform(chunk: Uint8Array<T>, controller: TransformStreamDefaultController<S>): void; flush(): void; // Abstract method to get the program iterator protected abstract getProgram(controller: TransformStreamDefaultController<S>): Iterator<number, void, number>; // Method to set data in the buffer protected set(u8: Uint8Array<T>): void; // Method to flush the buffer protected flushBuffer(): void; // Method to reset the consumer protected reset(): void; // Static helper to get chunk iterator static getChunkIterator<T extends ArrayBufferLike>(buffer: Uint8Array<T>, chunkLength: number): Generator<Uint8Array<T>>; //#region Binary Operations createStreamController(): { readable: ReadableStream<Uint8Array<T>>; controller: ReadableStreamController<Uint8Array<T>>; }; bufferUpController(controller: ReadableStreamController<Uint8Array>, length: number, close?: boolean): Generator<number, void, number>; createReadable(length: number): (Generator<number, void, number> & { readable: ReadableStream<Uint8Array<T>>; }); bufferUp<T extends Uint8Array<ArrayBufferLike>>(buffer: T): Generator<number, T, number>; batchSkip(length: number): Generator<number, void, number>; rentSlice(length: number): Uint8Array; rentDataView(length: number): DataView; } //#endregion //#region main/async/binary-writer.d.ts type NBTToken = Byte | Short | Int | Long | bigint | Float | Double | string | Uint8Array; declare class TokenReader extends ReadableStream<Uint8Array> implements IDataCursor { readonly format: Iterator<NBTToken>; readonly buffer: WriterLike; pointer: number; readonly view: DataView; protected get availableSpace(): number; // We use slice for safety reasons here protected getWrittenBuffer(): Uint8Array; protected pushChunk(controller: ReadableStreamController<Uint8Array>, chunk: Uint8Array): void; constructor(iterator: Iterator<NBTToken>, format: WriterLike, buffer?: Uint8Array); private flush; } //#endregion //#region main/async/binary-tokenizer.d.ts declare enum ReadMode { RootTag = 241, ValueTag = 242, } declare const VALUE_SIZES: Record<number, number>; declare const TYPE_TOKENS: Record<number, new (v: any) => Token>; type Token = Byte | Short | Int | bigint | Float | Double | string | { type: 10 | 9 | 11 | 12; length: number; tagType?: TagType; } | Uint8Array; declare class NBTTokenizerTransformer extends BinaryDataTransformerInstance<ArrayBufferLike, Token> { format: Uint8Array; readonly mode: ReaderLike; constructor(buffer: Uint8Array, format: ReaderLike, mode: ReadMode | TagType); protected getProgram(controller: TransformStreamDefaultController<string | number | bigint | object>): Iterator<number, void, number>; protected push(tag: number): Generator<number, void, number>; protected pushString(): Generator<number, void, number>; protected pushList(): Generator<number, void, number>; protected pushCompound(): Generator<number, void, number>; } declare class NBTTokenize { static getRootIterator(value: unknown, rootKey?: string): Iterator<NBTToken>; static 10(value: object): Generator<NBTToken>; static 9(value: unknown[]): Generator<NBTToken>; } //#endregion export { BinaryDataTransformerInstance, NBTToken, NBTTokenize, NBTTokenizerTransformer, ReadMode, TYPE_TOKENS, Token, TokenReader, VALUE_SIZES };