n8n-nodes-feishu-lark
Version:
n8n custom nodes for n8n to interact with Feishu/Lark, including Lark Bot, Lark MCP, and Lark Trigger.
84 lines (83 loc) • 3.35 kB
TypeScript
import { IExecuteFunctions } from 'n8n-workflow';
export type ChunkType = 'begin' | 'item' | 'end' | 'error';
export interface StructuredChunk {
type: ChunkType;
content?: string;
metadata: {
nodeId: string;
nodeName: string;
timestamp: number;
runIndex: number;
itemIndex: number;
};
}
export interface StreamingEventHandlers {
onBeginMessage: (nodeId: string, runIndex?: number) => void;
onChunk: (chunk: string, nodeId?: string, runIndex?: number) => void;
onEndMessage: (nodeId: string, runIndex?: number) => void;
}
export type ChatMessage<T = Record<string, unknown>> = ChatMessageComponent<T> | ChatMessageText;
export interface ChatMessageComponent<T = Record<string, unknown>> extends ChatMessageBase {
type: 'component';
key: string;
arguments: T;
}
export interface ChatMessageText extends ChatMessageBase {
type?: 'text';
text: string;
}
interface ChatMessageBase {
id: string;
transparent?: boolean;
sender: 'user' | 'bot';
files?: File[];
}
export interface NodeRunData {
content: string;
isComplete: boolean;
message: ChatMessageText;
}
export declare function generateStreamingCardMessage(content: string): {
schema: string;
config: {
update_multi: boolean;
streaming_mode: boolean;
};
body: {
direction: string;
padding: string;
elements: {
tag: string;
content: string;
text_align: string;
text_size: string;
margin: string;
}[];
};
};
export declare function updateStreamingMessage(context: IExecuteFunctions, larkMessageId: string, message: string): Promise<void>;
export declare function handleStreamingChunk(context: IExecuteFunctions, chunk: string, nodeId: string | undefined, streamingManager: StreamingMessageManager, receivedMessage: ChatMessageText | null, messages: ChatMessage[], larkMessageId: string, runIndex?: number): Promise<void>;
export declare function handleNodeStart(nodeId: string, streamingManager: StreamingMessageManager, runIndex?: number): void;
export declare function handleNodeComplete(nodeId: string, streamingManager: StreamingMessageManager, runIndex?: number): void;
export declare function createBotMessage(id?: string): ChatMessageText;
export declare function updateMessageInArray(messages: ChatMessage[], messageId: string, updatedMessage: ChatMessageText): void;
export declare function createLineParser(): TransformStream<Uint8Array, StructuredChunk>;
export declare class StreamingMessageManager {
private nodeRuns;
private runOrder;
private activeRuns;
constructor();
private getRunKey;
initializeRun(nodeId: string, runIndex?: number, id?: string): ChatMessageText;
registerRunStart(nodeId: string, runIndex?: number): void;
addRunToActive(nodeId: string, runIndex?: number, id?: string): ChatMessageText;
removeRunFromActive(nodeId: string, runIndex?: number): void;
addChunkToRun(nodeId: string, chunk: string, runIndex?: number): ChatMessageText | null;
getRunMessage(nodeId: string, runIndex?: number): ChatMessageText | null;
areAllRunsComplete(): boolean;
getRunCount(): number;
getActiveRunCount(): number;
getAllMessages(): ChatMessageText[];
reset(): void;
}
export {};