@tendrock/ipc
Version:
An IPC system implementation of Minecraft Community Script Protocol for Minecraft Bedrock
44 lines (43 loc) • 1.59 kB
TypeScript
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;
}