feat: Add Chat Trigger node (#7409)

Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: Jesper Bylund <mail@jesperbylund.com>
Co-authored-by: OlegIvaniv <me@olegivaniv.com>
Co-authored-by: Deborah <deborah@starfallprojects.co.uk>
Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
Co-authored-by: Jon <jonathan.bennetts@gmail.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Giulio Andreini <andreini@netseven.it>
Co-authored-by: Mason Geloso <Mason.geloso@gmail.com>
Co-authored-by: Mason Geloso <hone@Masons-Mac-mini.local>
Co-authored-by: Mutasem Aldmour <mutasem@n8n.io>
This commit is contained in:
Alex Grozav
2024-01-09 13:11:39 +02:00
committed by GitHub
parent 1387541e33
commit af49e95cc7
90 changed files with 2671 additions and 668 deletions

View File

@@ -465,6 +465,7 @@ export interface IGetExecuteWebhookFunctions {
additionalData: IWorkflowExecuteAdditionalData,
mode: WorkflowExecuteMode,
webhookData: IWebhookData,
closeFunctions: CloseFunction[],
): IWebhookFunctions;
}
@@ -926,6 +927,11 @@ export interface IHookFunctions
export interface IWebhookFunctions extends FunctionsBaseWithRequiredKeys<'getMode'> {
getBodyData(): IDataObject;
getHeaderData(): IncomingHttpHeaders;
getInputConnectionData(
inputName: ConnectionTypes,
itemIndex: number,
inputIndex?: number,
): Promise<unknown>;
getNodeParameter(
parameterName: string,
fallbackValue?: any,
@@ -1333,7 +1339,7 @@ export interface SupplyData {
export interface INodeType {
description: INodeTypeDescription;
supplyData?(this: IExecuteFunctions, itemIndex: number): Promise<SupplyData>;
supplyData?(this: IAllExecuteFunctions, itemIndex: number): Promise<SupplyData>;
execute?(
this: IExecuteFunctions,
): Promise<INodeExecutionData[][] | NodeExecutionWithMetadata[][] | null>;
@@ -1633,21 +1639,24 @@ export interface INodeTypeDescription extends INodeTypeBaseDescription {
webhooks?: IWebhookDescription[];
translation?: { [key: string]: object };
mockManualExecution?: true;
triggerPanel?: {
header?: string;
executionsHelp?:
| string
| {
active: string;
inactive: string;
};
activationHint?:
| string
| {
active: string;
inactive: string;
};
};
triggerPanel?:
| {
hideContent?: boolean | string;
header?: string;
executionsHelp?:
| string
| {
active: string;
inactive: string;
};
activationHint?:
| string
| {
active: string;
inactive: string;
};
}
| boolean;
extendsCredential?: string;
__loadOptionsMethods?: string[]; // only for validation during build
}
@@ -1681,8 +1690,8 @@ export interface IWebhookDescription {
restartWebhook?: boolean;
isForm?: boolean;
hasLifecycleMethods?: boolean; // set automatically by generate-ui-types
ndvHideUrl?: boolean; // If true the webhook will not be displayed in the editor
ndvHideMethod?: boolean; // If true the method will not be displayed in the editor
ndvHideUrl?: string | boolean; // If true the webhook will not be displayed in the editor
ndvHideMethod?: string | boolean; // If true the method will not be displayed in the editor
}
export interface ProxyInput {

View File

@@ -1198,12 +1198,15 @@ export class Workflow {
});
}
const closeFunctions: CloseFunction[] = [];
const context = nodeExecuteFunctions.getExecuteWebhookFunctions(
this,
node,
additionalData,
mode,
webhookData,
closeFunctions,
);
return nodeType instanceof Node ? nodeType.webhook(context) : nodeType.webhook.call(context);
}