n8n-nodes-extended-forms 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +52 -0
  3. package/dist/credentials/GithubIssuesApi.credentials.d.ts +10 -0
  4. package/dist/credentials/GithubIssuesApi.credentials.js +37 -0
  5. package/dist/credentials/GithubIssuesApi.credentials.js.map +1 -0
  6. package/dist/credentials/GithubIssuesOAuth2Api.credentials.d.ts +9 -0
  7. package/dist/credentials/GithubIssuesOAuth2Api.credentials.js +54 -0
  8. package/dist/credentials/GithubIssuesOAuth2Api.credentials.js.map +1 -0
  9. package/dist/icons/github.dark.svg +3 -0
  10. package/dist/icons/github.svg +3 -0
  11. package/dist/nodes/Form123/Form.node.d.ts +9 -0
  12. package/dist/nodes/Form123/Form.node.js +369 -0
  13. package/dist/nodes/Form123/Form.node.js.map +1 -0
  14. package/dist/nodes/Form123/Form.node.json +18 -0
  15. package/dist/nodes/Form123/FormTrigger.node.d.ts +4 -0
  16. package/dist/nodes/Form123/FormTrigger.node.js +28 -0
  17. package/dist/nodes/Form123/FormTrigger.node.js.map +1 -0
  18. package/dist/nodes/Form123/FormTrigger.node.json +18 -0
  19. package/dist/nodes/Form123/common.descriptions.d.ts +21 -0
  20. package/dist/nodes/Form123/common.descriptions.js +565 -0
  21. package/dist/nodes/Form123/common.descriptions.js.map +1 -0
  22. package/dist/nodes/Form123/cssVariables.d.ts +1 -0
  23. package/dist/nodes/Form123/cssVariables.js +74 -0
  24. package/dist/nodes/Form123/cssVariables.js.map +1 -0
  25. package/dist/nodes/Form123/form.svg +2 -0
  26. package/dist/nodes/Form123/interfaces.d.ts +52 -0
  27. package/dist/nodes/Form123/interfaces.js +5 -0
  28. package/dist/nodes/Form123/interfaces.js.map +1 -0
  29. package/dist/nodes/Form123/templates/form-trigger.handlebars +1496 -0
  30. package/dist/nodes/Form123/utils/descriptions.d.ts +2 -0
  31. package/dist/nodes/Form123/utils/descriptions.js +11 -0
  32. package/dist/nodes/Form123/utils/descriptions.js.map +1 -0
  33. package/dist/nodes/Form123/utils/formCompletionUtils.d.ts +8 -0
  34. package/dist/nodes/Form123/utils/formCompletionUtils.js +84 -0
  35. package/dist/nodes/Form123/utils/formCompletionUtils.js.map +1 -0
  36. package/dist/nodes/Form123/utils/formNodeUtils.d.ts +4 -0
  37. package/dist/nodes/Form123/utils/formNodeUtils.js +74 -0
  38. package/dist/nodes/Form123/utils/formNodeUtils.js.map +1 -0
  39. package/dist/nodes/Form123/utils/templateRenderer.d.ts +1 -0
  40. package/dist/nodes/Form123/utils/templateRenderer.js +69 -0
  41. package/dist/nodes/Form123/utils/templateRenderer.js.map +1 -0
  42. package/dist/nodes/Form123/utils/utilities.d.ts +6 -0
  43. package/dist/nodes/Form123/utils/utilities.js +47 -0
  44. package/dist/nodes/Form123/utils/utilities.js.map +1 -0
  45. package/dist/nodes/Form123/utils/utils.d.ts +76 -0
  46. package/dist/nodes/Form123/utils/utils.js +550 -0
  47. package/dist/nodes/Form123/utils/utils.js.map +1 -0
  48. package/dist/nodes/Form123/utils/waitUtils.d.ts +3 -0
  49. package/dist/nodes/Form123/utils/waitUtils.js +66 -0
  50. package/dist/nodes/Form123/utils/waitUtils.js.map +1 -0
  51. package/dist/nodes/Form123/v1/FormTriggerV1.node.d.ts +16 -0
  52. package/dist/nodes/Form123/v1/FormTriggerV1.node.js +83 -0
  53. package/dist/nodes/Form123/v1/FormTriggerV1.node.js.map +1 -0
  54. package/dist/nodes/Form123/v2/FormTriggerV2.node.d.ts +16 -0
  55. package/dist/nodes/Form123/v2/FormTriggerV2.node.js +194 -0
  56. package/dist/nodes/Form123/v2/FormTriggerV2.node.js.map +1 -0
  57. package/dist/package.json +61 -0
  58. package/dist/tsconfig.tsbuildinfo +1 -0
  59. package/package.json +61 -0
@@ -0,0 +1,550 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.isFormConnected = exports.validateResponseModeConfiguration = exports.prepareFormFields = void 0;
40
+ exports.sanitizeHtml = sanitizeHtml;
41
+ exports.sanitizeCustomCss = sanitizeCustomCss;
42
+ exports.createDescriptionMetadata = createDescriptionMetadata;
43
+ exports.prepareFormData = prepareFormData;
44
+ exports.addFormResponseDataToReturnItem = addFormResponseDataToReturnItem;
45
+ exports.prepareFormReturnItem = prepareFormReturnItem;
46
+ exports.renderForm = renderForm;
47
+ exports.formWebhook = formWebhook;
48
+ exports.resolveRawData = resolveRawData;
49
+ const isbot_1 = require("isbot");
50
+ const a = __importStar(require("node:assert"));
51
+ const luxon_1 = require("luxon");
52
+ const n8n_workflow_1 = require("n8n-workflow");
53
+ const sanitize_html_1 = __importDefault(require("sanitize-html"));
54
+ const utilities_1 = require("./utilities");
55
+ const interfaces_1 = require("../interfaces");
56
+ const templateRenderer_1 = require("./templateRenderer");
57
+ function sanitizeHtml(text) {
58
+ return (0, sanitize_html_1.default)(text, {
59
+ allowedTags: [
60
+ 'b',
61
+ 'div',
62
+ 'i',
63
+ 'iframe',
64
+ 'img',
65
+ 'video',
66
+ 'source',
67
+ 'em',
68
+ 'strong',
69
+ 'a',
70
+ 'h1',
71
+ 'h2',
72
+ 'h3',
73
+ 'h4',
74
+ 'h5',
75
+ 'h6',
76
+ 'u',
77
+ 'sub',
78
+ 'sup',
79
+ 'code',
80
+ 'pre',
81
+ 'span',
82
+ 'br',
83
+ 'ul',
84
+ 'ol',
85
+ 'li',
86
+ 'p',
87
+ 'table',
88
+ 'thead',
89
+ 'tbody',
90
+ 'tfoot',
91
+ 'td',
92
+ 'tr',
93
+ 'th',
94
+ 'br',
95
+ ],
96
+ allowedAttributes: {
97
+ a: ['href', 'target', 'rel'],
98
+ img: ['src', 'alt', 'width', 'height'],
99
+ video: ['controls', 'autoplay', 'loop', 'muted', 'poster', 'width', 'height'],
100
+ iframe: [
101
+ 'src',
102
+ 'width',
103
+ 'height',
104
+ 'frameborder',
105
+ 'allow',
106
+ 'allowfullscreen',
107
+ 'referrerpolicy',
108
+ ],
109
+ source: ['src', 'type'],
110
+ td: ['colspan', 'rowspan', 'scope', 'headers'],
111
+ th: ['colspan', 'rowspan', 'scope', 'headers'],
112
+ },
113
+ allowedSchemes: ['https', 'http'],
114
+ allowedSchemesByTag: {
115
+ source: ['https', 'http'],
116
+ iframe: ['https', 'http'],
117
+ },
118
+ allowProtocolRelative: false,
119
+ transformTags: {
120
+ iframe: sanitize_html_1.default.simpleTransform('iframe', {
121
+ sandbox: '',
122
+ referrerpolicy: 'strict-origin-when-cross-origin',
123
+ allow: 'fullscreen; autoplay; encrypted-media',
124
+ }),
125
+ },
126
+ });
127
+ }
128
+ const prepareFormFields = (context, fields) => {
129
+ return fields.map((field) => {
130
+ if (field.fieldType === 'html') {
131
+ let { html } = field;
132
+ if (!html)
133
+ return field;
134
+ for (const resolvable of (0, utilities_1.getResolvables)(html)) {
135
+ html = html.replace(resolvable, context.evaluateExpression(resolvable));
136
+ }
137
+ field.html = sanitizeHtml(html);
138
+ }
139
+ if (field.fieldType === 'hiddenField') {
140
+ field.fieldLabel = field.fieldName;
141
+ }
142
+ return field;
143
+ });
144
+ };
145
+ exports.prepareFormFields = prepareFormFields;
146
+ function sanitizeCustomCss(css) {
147
+ if (!css)
148
+ return undefined;
149
+ return (0, sanitize_html_1.default)(css, {
150
+ allowedTags: [],
151
+ allowedAttributes: {},
152
+ });
153
+ }
154
+ function createDescriptionMetadata(description) {
155
+ return description === ''
156
+ ? 'n8n form'
157
+ : description.replace(/^\s*\n+|<\/?[^>]+(>|$)/g, '').slice(0, 150);
158
+ }
159
+ function prepareFormData({ formHeader, formTitle, formDescription, formSubmittedHeader, formSubmittedText, redirectUrl, formFields, testRun, query, instanceId, useResponseData, appendAttribution = true, buttonLabel, customCss, }) {
160
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
161
+ const utm_campaign = instanceId ? `&utm_campaign=${instanceId}` : '';
162
+ const n8nWebsiteLink = `https://n8n.io/?utm_source=n8n-internal&utm_medium=form-trigger${utm_campaign}`;
163
+ if (formSubmittedText === undefined) {
164
+ formSubmittedText = 'Your response has been recorded';
165
+ }
166
+ const finalFormHeader = formHeader && typeof formHeader === 'string' && formHeader.trim().length > 0
167
+ ? formHeader.trim()
168
+ : undefined;
169
+ const formData = {
170
+ testRun,
171
+ formHeader: finalFormHeader,
172
+ formTitle,
173
+ formDescription,
174
+ formDescriptionMetadata: createDescriptionMetadata(formDescription),
175
+ formSubmittedHeader,
176
+ formSubmittedText,
177
+ n8nWebsiteLink,
178
+ formFields: [],
179
+ useResponseData,
180
+ appendAttribution,
181
+ buttonLabel,
182
+ dangerousCustomCss: sanitizeCustomCss(customCss),
183
+ };
184
+ if (redirectUrl) {
185
+ if (!redirectUrl.includes('://')) {
186
+ redirectUrl = `http://${redirectUrl}`;
187
+ }
188
+ formData.redirectUrl = redirectUrl;
189
+ }
190
+ for (const [index, field] of formFields.entries()) {
191
+ const { fieldType, requiredField, multiselect, placeholder } = field;
192
+ const input = {
193
+ id: `field-${index}`,
194
+ errorId: `error-field-${index}`,
195
+ label: field.fieldLabel,
196
+ inputRequired: requiredField ? 'form-required' : '',
197
+ defaultValue: (_a = query[field.fieldLabel]) !== null && _a !== void 0 ? _a : '',
198
+ placeholder,
199
+ };
200
+ if (fieldType === 'dropdownSearchable') {
201
+ input.isSearchableDropdown = true;
202
+ const fieldOptions = (_c = (_b = field.fieldOptions) === null || _b === void 0 ? void 0 : _b.values) !== null && _c !== void 0 ? _c : [];
203
+ input.searchableOptions = fieldOptions.map((e) => e.option);
204
+ }
205
+ else if (fieldType === 'dropdownMultiselect') {
206
+ input.isSearchableMultiselect = true;
207
+ const fieldOptions = (_e = (_d = field.fieldOptions) === null || _d === void 0 ? void 0 : _d.values) !== null && _e !== void 0 ? _e : [];
208
+ input.searchableMultiselectOptions = fieldOptions.map((e) => e.option);
209
+ }
210
+ else if (fieldType === 'dropdown') {
211
+ if (multiselect) {
212
+ input.isMultiSelect = true;
213
+ input.multiSelectOptions =
214
+ (_g = (_f = field.fieldOptions) === null || _f === void 0 ? void 0 : _f.values.map((e, i) => ({
215
+ id: `option${i}_${input.id}`,
216
+ label: e.option,
217
+ }))) !== null && _g !== void 0 ? _g : [];
218
+ }
219
+ else {
220
+ input.isSelect = true;
221
+ const fieldOptions = (_j = (_h = field.fieldOptions) === null || _h === void 0 ? void 0 : _h.values) !== null && _j !== void 0 ? _j : [];
222
+ input.selectOptions = fieldOptions.map((e) => e.option);
223
+ }
224
+ }
225
+ else if (multiselect || (fieldType && ['radio', 'checkbox'].includes(fieldType))) {
226
+ input.isMultiSelect = true;
227
+ input.multiSelectOptions =
228
+ (_l = (_k = field.fieldOptions) === null || _k === void 0 ? void 0 : _k.values.map((e, i) => ({
229
+ id: `option${i}_${input.id}`,
230
+ label: e.option,
231
+ }))) !== null && _l !== void 0 ? _l : [];
232
+ if (fieldType === 'radio') {
233
+ input.radioSelect = 'radio';
234
+ }
235
+ else if (field.limitSelection === 'exact') {
236
+ input.exactSelectedOptions = field.numberOfSelections;
237
+ }
238
+ else if (field.limitSelection === 'range') {
239
+ input.minSelectedOptions = field.minSelections;
240
+ input.maxSelectedOptions = field.maxSelections;
241
+ }
242
+ }
243
+ else if (fieldType === 'file') {
244
+ input.isFileInput = true;
245
+ input.acceptFileTypes = field.acceptFileTypes;
246
+ input.multipleFiles = field.multipleFiles ? 'multiple' : '';
247
+ }
248
+ else if (fieldType === 'textarea') {
249
+ input.isTextarea = true;
250
+ }
251
+ else if (fieldType === 'html') {
252
+ input.isHtml = true;
253
+ input.html = field.html;
254
+ }
255
+ else if (fieldType === 'hiddenField') {
256
+ input.isHidden = true;
257
+ input.hiddenName = field.fieldName;
258
+ input.hiddenValue =
259
+ input.defaultValue === '' ? field.fieldValue : input.defaultValue;
260
+ }
261
+ else {
262
+ input.isInput = true;
263
+ input.type = fieldType;
264
+ }
265
+ formData.formFields.push(input);
266
+ }
267
+ return formData;
268
+ }
269
+ const validateResponseModeConfiguration = (context) => {
270
+ const responseMode = context.getNodeParameter('responseMode', 'onReceived');
271
+ const connectedNodes = context.getChildNodes(context.getNode().name);
272
+ const nodeVersion = context.getNode().typeVersion;
273
+ const isRespondToWebhookConnected = connectedNodes.some((node) => node.type === 'n8n-nodes-base.respondToWebhook');
274
+ if (!isRespondToWebhookConnected && responseMode === 'responseNode') {
275
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), new Error('No Respond to Webhook node found in the workflow'), {
276
+ description: 'Insert a Respond to Webhook node to your workflow to respond to the form submission or choose another option for the “Respond When” parameter',
277
+ });
278
+ }
279
+ if (isRespondToWebhookConnected && responseMode !== 'responseNode' && nodeVersion <= 2.1) {
280
+ throw new n8n_workflow_1.WorkflowConfigurationError(context.getNode(), new Error('Unused Respond to Webhook node found in the workflow'), {
281
+ description: 'Set the “Respond When” parameter to “Using Respond to Webhook Node” or remove the Respond to Webhook node',
282
+ });
283
+ }
284
+ if (isRespondToWebhookConnected && nodeVersion > 2.1) {
285
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), new Error('The "Respond to Webhook" node is not supported in workflows initiated by the "n8n Form Trigger"'), {
286
+ description: 'To configure your response, add an "n8n Form" node and set the "Page Type" to "Form Ending"',
287
+ });
288
+ }
289
+ };
290
+ exports.validateResponseModeConfiguration = validateResponseModeConfiguration;
291
+ function addFormResponseDataToReturnItem(returnItem, formFields, bodyData) {
292
+ var _a, _b;
293
+ for (const [index, field] of formFields.entries()) {
294
+ const key = `field-${index}`;
295
+ const name = (_a = field.fieldLabel) !== null && _a !== void 0 ? _a : field.fieldName;
296
+ let value = (_b = bodyData[key]) !== null && _b !== void 0 ? _b : null;
297
+ if (value === null) {
298
+ returnItem.json[name] = null;
299
+ continue;
300
+ }
301
+ if (field.fieldType === 'html') {
302
+ if (field.elementName) {
303
+ returnItem.json[field.elementName] = value;
304
+ }
305
+ continue;
306
+ }
307
+ if (field.fieldType === 'number') {
308
+ value = Number(value);
309
+ }
310
+ if (field.fieldType === 'text') {
311
+ value = String(value).trim();
312
+ }
313
+ if ((field.multiselect ||
314
+ field.fieldType === 'checkbox' ||
315
+ field.fieldType === 'radio' ||
316
+ field.fieldType === 'dropdownMultiselect') &&
317
+ typeof value === 'string') {
318
+ value = (0, n8n_workflow_1.jsonParse)(value);
319
+ if (field.fieldType === 'radio' && Array.isArray(value)) {
320
+ value = value[0];
321
+ }
322
+ }
323
+ if (field.fieldType === 'date' && value && field.formatDate !== '') {
324
+ value = luxon_1.DateTime.fromFormat(String(value), 'yyyy-mm-dd').toFormat(field.formatDate);
325
+ }
326
+ if (field.fieldType === 'file' && field.multipleFiles && !Array.isArray(value)) {
327
+ value = [value];
328
+ }
329
+ returnItem.json[name] = value;
330
+ }
331
+ }
332
+ async function prepareFormReturnItem(context, formFields, mode, useWorkflowTimezone = false) {
333
+ var _a, _b, _c;
334
+ const req = context.getRequestObject();
335
+ a.ok(req.contentType === 'multipart/form-data', 'Expected multipart/form-data');
336
+ const bodyData = (_a = context.getBodyData().data) !== null && _a !== void 0 ? _a : {};
337
+ const files = (_b = context.getBodyData().files) !== null && _b !== void 0 ? _b : {};
338
+ const returnItem = {
339
+ json: {},
340
+ };
341
+ if (files && Object.keys(files).length) {
342
+ returnItem.binary = {};
343
+ }
344
+ for (const key of Object.keys(files)) {
345
+ const processFiles = [];
346
+ let multiFile = false;
347
+ const filesInput = files[key];
348
+ if (Array.isArray(filesInput)) {
349
+ bodyData[key] = filesInput.map((file) => ({
350
+ filename: file.originalFilename,
351
+ mimetype: file.mimetype,
352
+ size: file.size,
353
+ }));
354
+ processFiles.push(...filesInput);
355
+ multiFile = true;
356
+ }
357
+ else {
358
+ bodyData[key] = {
359
+ filename: filesInput.originalFilename,
360
+ mimetype: filesInput.mimetype,
361
+ size: filesInput.size,
362
+ };
363
+ processFiles.push(filesInput);
364
+ }
365
+ const entryIndex = Number(key.replace(/field-/g, ''));
366
+ const fieldLabel = isNaN(entryIndex) ? key : formFields[entryIndex].fieldLabel;
367
+ let fileCount = 0;
368
+ for (const file of processFiles) {
369
+ let binaryPropertyName = fieldLabel.replace(/\W/g, '_');
370
+ if (multiFile) {
371
+ binaryPropertyName += `_${fileCount++}`;
372
+ }
373
+ returnItem.binary[binaryPropertyName] = await context.nodeHelpers.copyBinaryFile(file.filepath, (_c = file.originalFilename) !== null && _c !== void 0 ? _c : file.newFilename, file.mimetype);
374
+ }
375
+ }
376
+ addFormResponseDataToReturnItem(returnItem, formFields, bodyData);
377
+ const timezone = useWorkflowTimezone ? context.getTimezone() : 'UTC';
378
+ returnItem.json.submittedAt = luxon_1.DateTime.now().setZone(timezone).toISO();
379
+ returnItem.json.formMode = mode;
380
+ if (context.getNode().type === n8n_workflow_1.FORM_TRIGGER_NODE_TYPE &&
381
+ Object.keys(context.getRequestObject().query || {}).length) {
382
+ returnItem.json.formQueryParameters = context.getRequestObject().query;
383
+ }
384
+ return returnItem;
385
+ }
386
+ function renderForm({ context, res, formHeader, formTitle, formDescription, formFields, responseMode, mode, formSubmittedText, redirectUrl, appendAttribution, buttonLabel, customCss, }) {
387
+ formDescription = (formDescription || '').replace(/\\n/g, '\n').replace(/<br>/g, '\n');
388
+ const instanceId = context.getInstanceId();
389
+ const useResponseData = responseMode === 'responseNode';
390
+ let query = {};
391
+ if (context.getNode().type === n8n_workflow_1.FORM_TRIGGER_NODE_TYPE) {
392
+ query = context.getRequestObject().query;
393
+ }
394
+ else if (context.getNode().type === n8n_workflow_1.FORM_NODE_TYPE) {
395
+ const parentNodes = context.getParentNodes(context.getNode().name);
396
+ const trigger = parentNodes.find((node) => node.type === n8n_workflow_1.FORM_TRIGGER_NODE_TYPE);
397
+ try {
398
+ const triggerQueryParameters = context.evaluateExpression(`{{ $('${trigger === null || trigger === void 0 ? void 0 : trigger.name}').first().json.formQueryParameters }}`);
399
+ if (triggerQueryParameters) {
400
+ query = triggerQueryParameters;
401
+ }
402
+ }
403
+ catch (error) { }
404
+ }
405
+ formFields = (0, exports.prepareFormFields)(context, formFields);
406
+ const data = prepareFormData({
407
+ formHeader,
408
+ formTitle,
409
+ formDescription,
410
+ formSubmittedText,
411
+ redirectUrl,
412
+ formFields,
413
+ testRun: mode === 'test',
414
+ query,
415
+ instanceId,
416
+ useResponseData,
417
+ appendAttribution,
418
+ buttonLabel,
419
+ customCss,
420
+ });
421
+ const html = (0, templateRenderer_1.renderTemplate)('form-trigger', data);
422
+ res.setHeader('Content-Type', 'text/html');
423
+ res.send(html);
424
+ }
425
+ const isFormConnected = (nodes) => {
426
+ return nodes.some((n) => { var _a; return n.type === n8n_workflow_1.FORM_NODE_TYPE || (n.type === n8n_workflow_1.WAIT_NODE_TYPE && ((_a = n.parameters) === null || _a === void 0 ? void 0 : _a.resume) === 'form'); });
427
+ };
428
+ exports.isFormConnected = isFormConnected;
429
+ async function formWebhook(context, authProperty = interfaces_1.FORM_TRIGGER_AUTHENTICATION_PROPERTY) {
430
+ const node = context.getNode();
431
+ const options = context.getNodeParameter('options', {});
432
+ const res = context.getResponseObject();
433
+ const req = context.getRequestObject();
434
+ try {
435
+ if (options.ignoreBots && (0, isbot_1.isbot)(req.headers['user-agent'])) {
436
+ throw new utilities_1.WebhookAuthorizationError(403);
437
+ }
438
+ if (node.typeVersion > 1) {
439
+ await (0, utilities_1.validateWebhookAuthentication)(context, authProperty);
440
+ }
441
+ }
442
+ catch (error) {
443
+ if (error instanceof utilities_1.WebhookAuthorizationError) {
444
+ res.setHeader('WWW-Authenticate', 'Basic realm="Enter credentials"');
445
+ res.status(401).send();
446
+ return { noWebhookResponse: true };
447
+ }
448
+ throw error;
449
+ }
450
+ const mode = context.getMode() === 'manual' ? 'test' : 'production';
451
+ const formFields = context.getNodeParameter('formFields.values', []);
452
+ const method = context.getRequestObject().method;
453
+ (0, exports.validateResponseModeConfiguration)(context);
454
+ if (method === 'GET') {
455
+ const formHeaderRaw = context.getNodeParameter('formHeader', '');
456
+ let formHeader;
457
+ if (formHeaderRaw && formHeaderRaw.trim()) {
458
+ formHeader = sanitizeHtml(formHeaderRaw);
459
+ if (!formHeader.trim()) {
460
+ formHeader = undefined;
461
+ }
462
+ }
463
+ else {
464
+ formHeader = undefined;
465
+ }
466
+ const formTitle = context.getNodeParameter('formTitle', '');
467
+ const formDescription = sanitizeHtml(context.getNodeParameter('formDescription', ''));
468
+ let responseMode = context.getNodeParameter('responseMode', '');
469
+ let formSubmittedText;
470
+ let redirectUrl;
471
+ let appendAttribution = true;
472
+ if (options.respondWithOptions) {
473
+ const values = options.respondWithOptions.values;
474
+ if (values.respondWith === 'text') {
475
+ formSubmittedText = values.formSubmittedText;
476
+ }
477
+ if (values.respondWith === 'redirect') {
478
+ redirectUrl = values.redirectUrl;
479
+ }
480
+ }
481
+ else {
482
+ formSubmittedText = options.formSubmittedText;
483
+ }
484
+ if (options.appendAttribution === false) {
485
+ appendAttribution = false;
486
+ }
487
+ let buttonLabel = 'Submit';
488
+ if (options.buttonLabel) {
489
+ buttonLabel = options.buttonLabel;
490
+ }
491
+ const connectedNodes = context.getChildNodes(context.getNode().name, {
492
+ includeNodeParameters: true,
493
+ });
494
+ const hasNextPage = (0, exports.isFormConnected)(connectedNodes);
495
+ if (hasNextPage) {
496
+ redirectUrl = undefined;
497
+ responseMode = 'responseNode';
498
+ }
499
+ renderForm({
500
+ context,
501
+ res,
502
+ formHeader,
503
+ formTitle,
504
+ formDescription,
505
+ formFields,
506
+ responseMode,
507
+ mode,
508
+ formSubmittedText,
509
+ redirectUrl,
510
+ appendAttribution,
511
+ buttonLabel,
512
+ customCss: options.customCss,
513
+ });
514
+ return {
515
+ noWebhookResponse: true,
516
+ };
517
+ }
518
+ let { useWorkflowTimezone } = options;
519
+ if (useWorkflowTimezone === undefined && node.typeVersion > 2) {
520
+ useWorkflowTimezone = true;
521
+ }
522
+ const returnItem = await prepareFormReturnItem(context, formFields, mode, useWorkflowTimezone);
523
+ return {
524
+ webhookResponse: { status: 200 },
525
+ workflowData: [[returnItem]],
526
+ };
527
+ }
528
+ function resolveRawData(context, rawData) {
529
+ const resolvables = (0, utilities_1.getResolvables)(rawData);
530
+ let returnData = rawData;
531
+ if (returnData.startsWith('=')) {
532
+ returnData = returnData.replace(/^=+/, '');
533
+ }
534
+ else {
535
+ return returnData;
536
+ }
537
+ if (resolvables.length) {
538
+ for (const resolvable of resolvables) {
539
+ const resolvedValue = context.evaluateExpression(`${resolvable}`);
540
+ if (typeof resolvedValue === 'object' && resolvedValue !== null) {
541
+ returnData = returnData.replace(resolvable, JSON.stringify(resolvedValue));
542
+ }
543
+ else {
544
+ returnData = returnData.replace(resolvable, resolvedValue);
545
+ }
546
+ }
547
+ }
548
+ return returnData;
549
+ }
550
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../nodes/Form123/utils/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { INodeProperties, IExecuteFunctions } from 'n8n-workflow';
2
+ export declare function configureWaitTillDate(context: IExecuteFunctions, root: string): Date;
3
+ export declare const limitWaitTimeProperties: INodeProperties[];
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.limitWaitTimeProperties = void 0;
4
+ exports.configureWaitTillDate = configureWaitTillDate;
5
+ function configureWaitTillDate(context, root) {
6
+ const limitWaitTime = context.getNodeParameter('limitWaitTime', 0, false);
7
+ if (!limitWaitTime) {
8
+ return new Date(Date.now() + 365 * 24 * 60 * 60 * 1000);
9
+ }
10
+ const waitTimeValue = context.getNodeParameter('waitTimeValue', 0, 0);
11
+ const waitTimeUnit = context.getNodeParameter('waitTimeUnit', 0, 'hours');
12
+ let waitTimeMs = waitTimeValue;
13
+ switch (waitTimeUnit) {
14
+ case 'seconds':
15
+ waitTimeMs *= 1000;
16
+ break;
17
+ case 'minutes':
18
+ waitTimeMs *= 60 * 1000;
19
+ break;
20
+ case 'hours':
21
+ waitTimeMs *= 60 * 60 * 1000;
22
+ break;
23
+ case 'days':
24
+ waitTimeMs *= 24 * 60 * 60 * 1000;
25
+ break;
26
+ }
27
+ return new Date(Date.now() + waitTimeMs);
28
+ }
29
+ exports.limitWaitTimeProperties = [
30
+ {
31
+ displayName: 'Wait Time Value',
32
+ name: 'waitTimeValue',
33
+ type: 'number',
34
+ default: 1,
35
+ typeOptions: {
36
+ minValue: 1,
37
+ },
38
+ description: 'The amount of time to wait',
39
+ },
40
+ {
41
+ displayName: 'Wait Time Unit',
42
+ name: 'waitTimeUnit',
43
+ type: 'options',
44
+ default: 'hours',
45
+ options: [
46
+ {
47
+ name: 'Seconds',
48
+ value: 'seconds',
49
+ },
50
+ {
51
+ name: 'Minutes',
52
+ value: 'minutes',
53
+ },
54
+ {
55
+ name: 'Hours',
56
+ value: 'hours',
57
+ },
58
+ {
59
+ name: 'Days',
60
+ value: 'days',
61
+ },
62
+ ],
63
+ description: 'The unit of time to wait',
64
+ },
65
+ ];
66
+ //# sourceMappingURL=waitUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitUtils.js","sourceRoot":"","sources":["../../../../nodes/Form123/utils/waitUtils.ts"],"names":[],"mappings":";;;AAWA,sDAmCC;AAnCD,SAAgB,qBAAqB,CACpC,OAA0B,EAE1B,IAAY;IAGZ,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,CAAY,CAAC;IAErF,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAGD,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAW,CAAC;IAChF,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,OAAO,CAAW,CAAC;IAGpF,IAAI,UAAU,GAAG,aAAa,CAAC;IAC/B,QAAQ,YAAY,EAAE,CAAC;QACtB,KAAK,SAAS;YACb,UAAU,IAAI,IAAI,CAAC;YACnB,MAAM;QACP,KAAK,SAAS;YACb,UAAU,IAAI,EAAE,GAAG,IAAI,CAAC;YACxB,MAAM;QACP,KAAK,OAAO;YACX,UAAU,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAC7B,MAAM;QACP,KAAK,MAAM;YACV,UAAU,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAClC,MAAM;IACR,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;AAC1C,CAAC;AAKY,QAAA,uBAAuB,GAAsB;IACzD;QACC,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC;QACV,WAAW,EAAE;YACZ,QAAQ,EAAE,CAAC;SACX;QACD,WAAW,EAAE,4BAA4B;KACzC;IACD;QACC,WAAW,EAAE,gBAAgB;QAC7B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;aAChB;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;aAChB;YACD;gBACC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;aACd;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACb;SACD;QACD,WAAW,EAAE,0BAA0B;KACvC;CACD,CAAC"}