n8n-nodes-base
Version:
Base nodes of n8n
98 lines • 4.12 kB
TypeScript
import type { Response } from 'express';
import type { INodeExecutionData, IDataObject, IWebhookFunctions, FormFieldsParameter, NodeTypeAndVersion } from 'n8n-workflow';
import type { FormTriggerData } from '../interfaces';
export declare function sanitizeHtml(text: string): string;
/**
* Replaces `\n` strings with actual newline characters.
* Also replaces `\\n` strings with `\n` string
* @param text - The text to replace newlines in
* @returns Updated text
*/
export declare const handleNewlines: (text: string) => string;
export declare const prepareFormFields: (fields: FormFieldsParameter) => {
fieldLabel: string;
elementName?: string;
fieldType?: string;
requiredField?: boolean;
fieldOptions?: {
values: Array<{
option: string;
}>;
};
multiselect?: boolean;
multipleFiles?: boolean;
acceptFileTypes?: string;
formatDate?: string;
html?: string;
placeholder?: string;
defaultValue?: string;
fieldName?: string;
fieldValue?: string;
limitSelection?: "exact" | "range" | "unlimited";
numberOfSelections?: number;
minSelections?: number;
maxSelections?: number;
}[];
export declare function sanitizeCustomCss(css: string | undefined): string | undefined;
/**
* Validates that a URL uses a safe scheme.
* Returns the normalized URL if valid, or null if invalid.
*/
export declare function validateSafeRedirectUrl(url: string | undefined): string | null;
export declare function createDescriptionMetadata(description: string): string;
export declare function prepareFormData({ formTitle, formDescription, formSubmittedHeader, formSubmittedText, redirectUrl, formFields, testRun, query, instanceId, useResponseData, appendAttribution, buttonLabel, customCss, nodeVersion, authToken, }: {
formTitle: string;
formDescription: string;
formSubmittedText: string | undefined;
redirectUrl: string | undefined;
formFields: FormFieldsParameter;
testRun: boolean;
query: IDataObject;
instanceId?: string;
useResponseData?: boolean;
appendAttribution?: boolean;
buttonLabel?: string;
formSubmittedHeader?: string;
customCss?: string;
nodeVersion?: number;
authToken?: string;
}): FormTriggerData;
export declare const validateResponseModeConfiguration: (context: IWebhookFunctions) => void;
export declare function addFormResponseDataToReturnItem(returnItem: INodeExecutionData, formFields: FormFieldsParameter, bodyData: IDataObject, nodeVersion?: number): void;
export declare function prepareFormReturnItem(context: IWebhookFunctions, formFields: FormFieldsParameter, mode: 'test' | 'production', useWorkflowTimezone?: boolean): Promise<INodeExecutionData>;
export declare function renderForm({ context, res, formTitle, formDescription, formFields, responseMode, mode, formSubmittedText, redirectUrl, appendAttribution, buttonLabel, customCss, authToken, }: {
context: IWebhookFunctions;
res: Response;
formTitle: string;
formDescription: string;
formFields: FormFieldsParameter;
responseMode: string;
mode: 'test' | 'production';
formSubmittedText?: string;
redirectUrl?: string;
appendAttribution?: boolean;
buttonLabel?: string;
customCss?: string;
authToken?: string;
}): void;
export declare const isFormConnected: (nodes: NodeTypeAndVersion[]) => boolean;
export declare function formWebhook(context: IWebhookFunctions, authProperty?: string): Promise<{
noWebhookResponse: boolean;
webhookResponse?: undefined;
workflowData?: undefined;
} | {
webhookResponse: {
status: number;
};
workflowData: INodeExecutionData[][];
noWebhookResponse?: undefined;
}>;
export declare function resolveRawData(context: IWebhookFunctions, rawData: string): string;
type ParseFormFieldsOptions = {
defineForm: 'json' | 'fields';
fieldsParameterName: string;
mode?: 'test' | 'production';
};
export declare function parseFormFields(context: IWebhookFunctions, options: ParseFormFieldsOptions): FormFieldsParameter;
export {};
//# sourceMappingURL=utils.d.ts.map