UNPKG

@tendrock/ipc

Version:

An IPC system implementation of Minecraft Community Script Protocol for Minecraft Bedrock

44 lines (43 loc) 1.59 kB
import { PropertyObject } from "./IIpc"; import { IpcPacketType, IpcVersion } from "../lib"; export type EncodingType = 'json' | undefined; export interface IMetadata extends PropertyObject { packet_type: IpcPacketType; packet_id: string; packet_number?: number; encoding?: EncodingType; security?: { signature: string; cipher: 'aes-256'; }; } export interface IHeader { version: IpcVersion; } export interface SerializeScriptEventIdOptions { senderEnvId: string; targetEnvId: string; header: IHeader; metadata: IMetadata; } export interface DeserializeScriptEventIdResult { senderEnvId: string; targetEnvId: string; headerStr: string; metadataStr: string; } export interface ScriptEventParams { id: string; message: string; } export interface ISerializer { serializeData(data: any, encoding?: EncodingType): string | string[]; deserializeData(data: string, encoding?: EncodingType): any; serializeHeader(header: IHeader, encoding?: EncodingType): string; deserializeHeader(headerStr: string, encoding?: EncodingType): IHeader; serializeMetadata(metadata: PropertyObject, encoding?: EncodingType): string; deserializeMetadata(metadataStr: string, encoding?: EncodingType): IMetadata; serializeAllToScriptEventId(targetEnvIdList: string[], options: Omit<SerializeScriptEventIdOptions, 'targetEnvId'>): string[]; serializeToScriptEventId(options: SerializeScriptEventIdOptions): string; deserializeScriptEventId(scriptEventId: string): DeserializeScriptEventIdResult; }