import { JsonRpcRequest } from "../jsonrpc2.js"; import { VersionsMetapage as Versions } from "../versions.js"; import { MetaframeId, MetaframeInputMap, MetapageId } from "./all.js"; export enum JsonRpcMethodsFromChild { InputsUpdate = "InputsUpdate", OutputsUpdate = "OutputsUpdate", SetupIframeClientRequest = "SetupIframeClientRequest", SetupIframeServerResponseAck = "SetupIframeServerResponseAck", // Plugin API PluginRequest = "SetupIframeServerPluginRequestResponseAck", // See further definitions: ApiPayloadPluginRequest* // Experimental feature HashParamsUpdate = "HashParamsUpdate", } export enum JsonRpcMethodsFromParent { InputsUpdate = "InputsUpdate", MessageAck = "MessageAck", SetupIframeServerResponse = "SetupIframeServerResponse", } export interface SetupIframeServerResponseData { iframeId: MetaframeId; parentId: MetapageId; state: { inputs: MetaframeInputMap; }; // Allow newer metaframes to handle older metapage versions version: Versions; //is this metaframe a plugin? plugin: boolean; } export interface MinimumClientMessage extends JsonRpcRequest { iframeId: MetaframeId | undefined; parentId: MetapageId | undefined; } export interface SetupIframeClientAckData extends MinimumClientMessage { version: Versions; } export interface ClientMessageRecievedAck { message: MinimumClientMessage; } // Plugin API definitions export enum ApiPayloadPluginRequestMethod { State = "metapage/state", } export interface ApiPayloadPluginRequest { method: ApiPayloadPluginRequestMethod; }