/** * @typedef {Object} PacketPort * @property {string} node * @property {string} port * @property {number} [index] */ /** * @typedef {Object} FlowtraceMetadata * @property {string} [label] * @property {string} [runtime] * @property {string} [type] * @property {string} [address] * @property {string} [namespace] * @property {string} [repository] * @property {string} [repositoryVersion] * @property {Date} [start] * @property {Date} [end] */ /** * @typedef {Object} FlowtraceJsonHeader * @property {FlowtraceMetadata} metadata * @property {Object.} graphs * @property {string} main */ /** * @typedef {Object} FlowtraceJsonEvent * @property {string} protocol * @property {string} command * @property {Object} payload * @property {string} graph * @property {Date} time */ /** * @typedef {Object} FlowtraceJson * @property {FlowtraceJsonHeader} header * @property {FlowtraceJsonEvent[]} events */ export default class Flowtrace extends EventEmitter { /** * @param {FlowtraceMetadata} metadata * @param {number} bufferSize */ constructor(metadata: FlowtraceMetadata, bufferSize?: number); bufferSize: number; graphs: {}; metadata: { start: Date; label?: string; runtime?: string; type?: string; address?: string; namespace?: string; repository?: string; repositoryVersion?: string; end?: Date; }; /** * @type {string | null} */ mainGraph: string | null; /** * @returns {void} */ clear(): void; events: any; subscribe(): void; /** * @param {string} graphName * @param {import("fbp-graph").Graph} graph * @param {boolean} [main] * @returns {void} */ addGraph(graphName: string, graph: import("fbp-graph").Graph, main?: boolean): void; /** * @param {string} type * @param {PacketPort | null} src * @param {PacketPort | null} tgt * @param {string} graph * @param {Object} payload * @returns {void} */ addNetworkPacket(type: string, src: PacketPort | null, tgt: PacketPort | null, graph: string, payload: any): void; /** * @param {string} graph * @returns {void} */ addNetworkStarted(graph: string): void; /** * @param {string} graph * @returns {void} */ addNetworkStopped(graph: string): void; /** * @param {string} graph * @param {Error} error * @returns {void} */ addNetworkError(graph: string, error: Error): void; /** * @param {string} graph * @param {Error} error * @returns {void} */ addNetworkProcessError(graph: string, error: Error): void; /** * @param {string} graph * @returns {void} */ addNetworkIcon(graph: string, node: any, icon: any): void; /** * @param {string} graph * @param {Object} payload * @param {string} payload.message * @param {string} [payload.type] * @param {string} [payload.previewurl] * @returns {void} */ addNetworkOutput(graph: string, payload: { message: string; type: string; previewurl: string; }): void; /** * @returns {FlowtraceJson} */ toJSON(): FlowtraceJson; } export type PacketPort = { node: string; port: string; index?: number; }; export type FlowtraceMetadata = { label?: string; runtime?: string; type?: string; address?: string; namespace?: string; repository?: string; repositoryVersion?: string; start?: Date; end?: Date; }; export type FlowtraceJsonHeader = { metadata: FlowtraceMetadata; graphs: { [x: string]: import("fbp-graph/src/Types").GraphJson; }; main: string; }; export type FlowtraceJsonEvent = { protocol: string; command: string; payload: any; graph: string; time: Date; }; export type FlowtraceJson = { header: FlowtraceJsonHeader; events: FlowtraceJsonEvent[]; }; import { EventEmitter } from "events";