n8n-nodes-keephub 1.4.4 β†’ 1.5.0

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.
package/README.md CHANGED
@@ -309,13 +309,41 @@ Output:
309
309
 
310
310
  ### πŸ“‹ **Form Submission Operations**
311
311
 
312
- | Operation | Description |
313
- | ---------------------------------- | --------------------------------------- |
314
- | πŸ“₯ **Get** | Fetch complete form submission data |
315
- | πŸ‘€ **Get Submitter Details** | Retrieve full user profile of submitter |
316
- | 🏒 **Get Submission Orgunits** | View orgunit hierarchy |
317
- | πŸ“ **Update Submission Orgunits** | Change visibility by orgunit |
318
- | ⏱️ **Calculate Response Duration** | Time from creation to submission |
312
+ | Operation | Description |
313
+ | ---------------------------------- | ------------------------------------------------- |
314
+ | πŸ” **Find by Form** | Retrieve all submissions for a form with filtering |
315
+ | πŸ“₯ **Get** | Fetch complete form submission data |
316
+ | πŸ‘€ **Get Submitter Details** | Retrieve full user profile of submitter |
317
+ | 🏒 **Get Submission Orgunits** | View orgunit hierarchy |
318
+ | πŸ“ **Update Submission Orgunits** | Change visibility by orgunit |
319
+ | ⏱️ **Calculate Response Duration** | Time from creation to submission |
320
+
321
+ **Example - Find Submissions by Form:**
322
+
323
+ ```json
324
+ {
325
+ "resource": "formSubmission",
326
+ "operation": "findByForm",
327
+ "contentRef": "699848533ab62d9d50409890",
328
+ "options": {
329
+ "limit": 50,
330
+ "skip": 0,
331
+ "sortBy": "updatedAt",
332
+ "sortOrder": -1
333
+ }
334
+ }
335
+ ```
336
+
337
+ **Find by Form Parameters:**
338
+
339
+ - **Form Content ID** (required): The content ID of the form (24-character MongoDB ObjectID)
340
+
341
+ **Options** (all optional):
342
+
343
+ - **Limit**: Maximum number of results (default: 50)
344
+ - **Skip**: Number of results to skip (pagination)
345
+ - **Sort Field**: Field to sort by (default: `updatedAt`)
346
+ - **Sort Order**: `-1` for descending (newest first), `1` for ascending
319
347
 
320
348
  **Example - Calculate Response Time:**
321
349
 
@@ -643,6 +671,12 @@ npm run lint
643
671
 
644
672
  - πŸ–ΌοΈ Changed Image assets to better match n8n's dark theme
645
673
 
674
+ ### v1.5.0 (2026-02-20) πŸ“‹
675
+
676
+ - πŸ” Added **Find by Form** operation to Form Submission resource β€” retrieve all submissions for a given form with pagination & sorting
677
+ - πŸ“¦ Supports Limit, Skip, Sort Field, Sort Order options (consistent with Content and Task list operations)
678
+ - πŸ”— Uses `$sort[_id]=1` tiebreaker for stable pagination across pages
679
+
646
680
  ### v1.4.4 (2026-02-19)
647
681
 
648
682
  - πŸ› Empty content/task searches now return `[]` instead of throwing error (`findByContentPool`, `findByGroup`, `findByOrgunit`, `task/getByOrgunit`)
@@ -1 +1 @@
1
- {"version":3,"file":"Keephub.node.d.ts","sourceRoot":"","sources":["../../../nodes/Keephub/Keephub.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAGpB,MAAM,cAAc,CAAC;AAYtB,qBAAa,OAAQ,YAAW,SAAS;IACxC,WAAW,EAAE,oBAAoB,CAuE/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA2EvE"}
1
+ {"version":3,"file":"Keephub.node.d.ts","sourceRoot":"","sources":["../../../nodes/Keephub/Keephub.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAGpB,MAAM,cAAc,CAAC;AAYtB,qBAAa,OAAQ,YAAW,SAAS;IACxC,WAAW,EAAE,oBAAoB,CAuE/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA4EvE"}
@@ -139,6 +139,7 @@ class Keephub {
139
139
  getSubmissionOrgunits: formSubmissionActions.getSubmissionOrgunitsExecute,
140
140
  updateSubmissionOrgunits: formSubmissionActions.updateSubmissionOrgunitsExecute,
141
141
  calculateResponseDuration: formSubmissionActions.calculateResponseDurationExecute,
142
+ findByForm: formSubmissionActions.getByFormExecute,
142
143
  },
143
144
  orgchart: {
144
145
  getByExternalRef: orgchartActions.getByExternalRefExecute,
@@ -1 +1 @@
1
- {"version":3,"file":"Keephub.node.js","sourceRoot":"","sources":["../../../nodes/Keephub/Keephub.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Keephub.node.js","sourceRoot":"","sources":["../../../nodes/Keephub/Keephub.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { INodeExecutionData, IExecuteFunctions } from 'n8n-workflow';
2
+ export declare function execute(this: IExecuteFunctions, item: INodeExecutionData, index: number): Promise<INodeExecutionData[]>;
3
+ //# sourceMappingURL=getByForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getByForm.d.ts","sourceRoot":"","sources":["../../../../../nodes/Keephub/actions/formSubmission/getByForm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAe,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAIvF,wBAAsB,OAAO,CAC5B,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA2C/B"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.execute = execute;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const helpers_1 = require("../../utils/helpers");
6
+ async function execute(item, index) {
7
+ const contentRef = this.getNodeParameter('contentRef', index);
8
+ const options = this.getNodeParameter('options', index, {});
9
+ helpers_1.validateMongoId.call(this, contentRef, 'Form Content ID', index);
10
+ const limit = options.limit || 50;
11
+ const skip = options.skip || 0;
12
+ const sortBy = options.sortBy || 'updatedAt';
13
+ const sortOrder = options.sortOrder ?? -1;
14
+ try {
15
+ const endpoint = `/formvalues?$limit=${limit}&$skip=${skip}` +
16
+ `&$sort[${encodeURIComponent(sortBy)}]=${sortOrder}` +
17
+ `&$sort[_id]=1` +
18
+ `&contentType=form&widgetId=formValues` +
19
+ `&contentRef=${encodeURIComponent(contentRef)}`;
20
+ const response = (await helpers_1.apiRequest.call(this, 'GET', endpoint));
21
+ let items = [];
22
+ if (Array.isArray(response)) {
23
+ items = response;
24
+ }
25
+ else if (response && response.data && Array.isArray(response.data)) {
26
+ items = response.data;
27
+ }
28
+ return items.map((dataItem) => ({
29
+ json: dataItem,
30
+ pairedItem: { item: index },
31
+ }));
32
+ }
33
+ catch (error) {
34
+ if (error instanceof n8n_workflow_1.NodeOperationError) {
35
+ throw error;
36
+ }
37
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Error fetching form submissions by form', {
38
+ description: error.message,
39
+ itemIndex: index,
40
+ });
41
+ }
42
+ }
43
+ //# sourceMappingURL=getByForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getByForm.js","sourceRoot":"","sources":["../../../../../nodes/Keephub/actions/formSubmission/getByForm.ts"],"names":[],"mappings":";;AAIA,0BA+CC;AAlDD,+CAAkD;AAClD,iDAAkE;AAE3D,KAAK,UAAU,OAAO,CAE5B,IAAwB,EACxB,KAAa;IAEb,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAW,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAgB,CAAC;IAE3E,yBAAe,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAEjE,MAAM,KAAK,GAAI,OAAO,CAAC,KAAgB,IAAI,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAI,OAAO,CAAC,IAAe,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,WAAW,CAAC;IACzD,MAAM,SAAS,GAAI,OAAO,CAAC,SAAoB,IAAI,CAAC,CAAC,CAAC;IAEtD,IAAI,CAAC;QACJ,MAAM,QAAQ,GACb,sBAAsB,KAAK,UAAU,IAAI,EAAE;YAC3C,UAAU,kBAAkB,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACpD,eAAe;YACf,uCAAuC;YACvC,eAAe,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QAEjD,MAAM,QAAQ,GAAG,CAAC,MAAM,oBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAgB,CAAC;QAE/E,IAAI,KAAK,GAAkB,EAAE,CAAC;QAE9B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,QAAQ,CAAC;QAClB,CAAC;aAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,KAAK,GAAG,QAAQ,CAAC,IAAqB,CAAC;QACxC,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAqB,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,iCAAkB,EAAE,CAAC;YACzC,MAAM,KAAK,CAAC;QACb,CAAC;QAED,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,yCAAyC,EAAE;YACvF,WAAW,EAAG,KAAe,CAAC,OAAO;YACrC,SAAS,EAAE,KAAK;SAChB,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
@@ -3,4 +3,5 @@ export { execute as getSubmitterDetailsExecute } from './getSubmitterDetails';
3
3
  export { execute as getSubmissionOrgunitsExecute } from './getSubmissionOrgunits';
4
4
  export { execute as updateSubmissionOrgunitsExecute } from './updateSubmissionOrgunits';
5
5
  export { execute as calculateResponseDurationExecute } from './calculateResponseDuration';
6
+ export { execute as getByFormExecute } from './getByForm';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../nodes/Keephub/actions/formSubmission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../nodes/Keephub/actions/formSubmission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateResponseDurationExecute = exports.updateSubmissionOrgunitsExecute = exports.getSubmissionOrgunitsExecute = exports.getSubmitterDetailsExecute = exports.getByIdExecute = void 0;
3
+ exports.getByFormExecute = exports.calculateResponseDurationExecute = exports.updateSubmissionOrgunitsExecute = exports.getSubmissionOrgunitsExecute = exports.getSubmitterDetailsExecute = exports.getByIdExecute = void 0;
4
4
  var getById_1 = require("./getById");
5
5
  Object.defineProperty(exports, "getByIdExecute", { enumerable: true, get: function () { return getById_1.execute; } });
6
6
  var getSubmitterDetails_1 = require("./getSubmitterDetails");
@@ -11,4 +11,6 @@ var updateSubmissionOrgunits_1 = require("./updateSubmissionOrgunits");
11
11
  Object.defineProperty(exports, "updateSubmissionOrgunitsExecute", { enumerable: true, get: function () { return updateSubmissionOrgunits_1.execute; } });
12
12
  var calculateResponseDuration_1 = require("./calculateResponseDuration");
13
13
  Object.defineProperty(exports, "calculateResponseDurationExecute", { enumerable: true, get: function () { return calculateResponseDuration_1.execute; } });
14
+ var getByForm_1 = require("./getByForm");
15
+ Object.defineProperty(exports, "getByFormExecute", { enumerable: true, get: function () { return getByForm_1.execute; } });
14
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Keephub/actions/formSubmission/index.ts"],"names":[],"mappings":";;;AAAA,qCAAsD;AAA7C,yGAAA,OAAO,OAAkB;AAClC,6DAA8E;AAArE,iIAAA,OAAO,OAA8B;AAC9C,iEAAkF;AAAzE,qIAAA,OAAO,OAAgC;AAChD,uEAAwF;AAA/E,2IAAA,OAAO,OAAmC;AACnD,yEAA0F;AAAjF,6IAAA,OAAO,OAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Keephub/actions/formSubmission/index.ts"],"names":[],"mappings":";;;AAAA,qCAAsD;AAA7C,yGAAA,OAAO,OAAkB;AAClC,6DAA8E;AAArE,iIAAA,OAAO,OAA8B;AAC9C,iEAAkF;AAAzE,qIAAA,OAAO,OAAgC;AAChD,uEAAwF;AAA/E,2IAAA,OAAO,OAAmC;AACnD,yEAA0F;AAAjF,6IAAA,OAAO,OAAoC;AACpD,yCAA0D;AAAjD,6GAAA,OAAO,OAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormSubmissionDescription.d.ts","sourceRoot":"","sources":["../../../../nodes/Keephub/descriptions/FormSubmissionDescription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,oBAAoB,EAAE,eAAe,EA2EjD,CAAC"}
1
+ {"version":3,"file":"FormSubmissionDescription.d.ts","sourceRoot":"","sources":["../../../../nodes/Keephub/descriptions/FormSubmissionDescription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,oBAAoB,EAAE,eAAe,EA4IjD,CAAC"}
@@ -15,6 +15,12 @@ exports.formSubmissionFields = [
15
15
  description: 'Time from form creation to submission',
16
16
  action: 'Calculate response duration for a form submission',
17
17
  },
18
+ {
19
+ name: 'Find by Form',
20
+ value: 'findByForm',
21
+ description: 'Retrieve all submissions for a given form',
22
+ action: 'Find form submissions by form',
23
+ },
18
24
  {
19
25
  name: 'Get',
20
26
  value: 'getFormSubmission',
@@ -75,5 +81,63 @@ exports.formSubmissionFields = [
75
81
  description: 'Orgunit ID(s) to assign (comma-separated for multiple)',
76
82
  required: true,
77
83
  },
84
+ {
85
+ displayName: 'Form Content ID',
86
+ name: 'contentRef',
87
+ type: 'string',
88
+ displayOptions: {
89
+ show: { resource: ['formSubmission'], operation: ['findByForm'] },
90
+ },
91
+ default: '',
92
+ placeholder: '699848533ab62d9d50409890',
93
+ description: 'The content ID of the form whose submissions you want to retrieve (24-character MongoDB ObjectID)',
94
+ required: true,
95
+ },
96
+ {
97
+ displayName: 'Options',
98
+ name: 'options',
99
+ type: 'collection',
100
+ displayOptions: {
101
+ show: { resource: ['formSubmission'], operation: ['findByForm'] },
102
+ },
103
+ default: {},
104
+ placeholder: 'Add option',
105
+ options: [
106
+ {
107
+ displayName: 'Limit',
108
+ name: 'limit',
109
+ type: 'number',
110
+ typeOptions: { minValue: 1 },
111
+ default: 50,
112
+ description: 'Max number of results to return',
113
+ },
114
+ {
115
+ displayName: 'Skip',
116
+ name: 'skip',
117
+ type: 'number',
118
+ default: 0,
119
+ description: 'Number of results to skip (pagination)',
120
+ },
121
+ {
122
+ displayName: 'Sort Field',
123
+ name: 'sortBy',
124
+ type: 'string',
125
+ default: 'updatedAt',
126
+ placeholder: 'updatedAt',
127
+ description: 'Field to sort by (e.g. updatedAt, createdAt)',
128
+ },
129
+ {
130
+ displayName: 'Sort Order',
131
+ name: 'sortOrder',
132
+ type: 'options',
133
+ options: [
134
+ { name: 'Ascending', value: 1 },
135
+ { name: 'Descending', value: -1 },
136
+ ],
137
+ default: -1,
138
+ description: 'Sort direction (-1 = newest first)',
139
+ },
140
+ ],
141
+ },
78
142
  ];
79
143
  //# sourceMappingURL=FormSubmissionDescription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormSubmissionDescription.js","sourceRoot":"","sources":["../../../../nodes/Keephub/descriptions/FormSubmissionDescription.ts"],"names":[],"mappings":";;;AAEa,QAAA,oBAAoB,GAAsB;IACtD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE;QAC1D,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,6BAA6B;gBACnC,KAAK,EAAE,2BAA2B;gBAClC,WAAW,EAAE,uCAAuC;gBACpD,MAAM,EAAE,mDAAmD;aAC3D;YACD;gBACC,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,iCAAiC;gBAC9C,MAAM,EAAE,uBAAuB;aAC/B;YACD;gBACC,IAAI,EAAE,yBAAyB;gBAC/B,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,yBAAyB;gBACtC,MAAM,EAAE,+CAA+C;aACvD;YACD;gBACC,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,uCAAuC;gBACpD,MAAM,EAAE,6CAA6C;aACrD;YACD;gBACC,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,0BAA0B;gBACjC,WAAW,EAAE,+CAA+C;gBAC5D,MAAM,EAAE,kDAAkD;aAC1D;SACD;QAED,OAAO,EAAE,mBAAmB;KAC5B;IACD;QACC,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,gBAAgB,CAAC;gBAC5B,SAAS,EAAE;oBACV,mBAAmB;oBACnB,qBAAqB;oBACrB,uBAAuB;oBACvB,0BAA0B;oBAC1B,2BAA2B;iBAC3B;aACD;SACD;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,0BAA0B;QACvC,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,IAAI;KACd;IACD;QACC,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC,0BAA0B,CAAC,EAAE;SAC/E;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,IAAI;KACd;CACD,CAAC"}
1
+ {"version":3,"file":"FormSubmissionDescription.js","sourceRoot":"","sources":["../../../../nodes/Keephub/descriptions/FormSubmissionDescription.ts"],"names":[],"mappings":";;;AAEa,QAAA,oBAAoB,GAAsB;IACtD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE;QAC1D,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,6BAA6B;gBACnC,KAAK,EAAE,2BAA2B;gBAClC,WAAW,EAAE,uCAAuC;gBACpD,MAAM,EAAE,mDAAmD;aAC3D;YACD;gBACC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,2CAA2C;gBACxD,MAAM,EAAE,+BAA+B;aACvC;YACD;gBACC,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,iCAAiC;gBAC9C,MAAM,EAAE,uBAAuB;aAC/B;YACD;gBACC,IAAI,EAAE,yBAAyB;gBAC/B,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,yBAAyB;gBACtC,MAAM,EAAE,+CAA+C;aACvD;YACD;gBACC,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,uCAAuC;gBACpD,MAAM,EAAE,6CAA6C;aACrD;YACD;gBACC,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,0BAA0B;gBACjC,WAAW,EAAE,+CAA+C;gBAC5D,MAAM,EAAE,kDAAkD;aAC1D;SACD;QAED,OAAO,EAAE,mBAAmB;KAC5B;IACD;QACC,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,gBAAgB,CAAC;gBAC5B,SAAS,EAAE;oBACV,mBAAmB;oBACnB,qBAAqB;oBACrB,uBAAuB;oBACvB,0BAA0B;oBAC1B,2BAA2B;iBAC3B;aACD;SACD;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,0BAA0B;QACvC,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,IAAI;KACd;IACD;QACC,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC,0BAA0B,CAAC,EAAE;SAC/E;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,IAAI;KACd;IACD;QACC,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE;SACjE;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,0BAA0B;QACvC,WAAW,EACV,mGAAmG;QACpG,QAAQ,EAAE,IAAI;KACd;IACD;QACC,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY;QAClB,cAAc,EAAE;YACf,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE;SACjE;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAC5B,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,iCAAiC;aAC9C;YACD;gBACC,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,wCAAwC;aACrD;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,WAAW;gBACxB,WAAW,EAAE,8CAA8C;aAC3D;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC/B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;iBACjC;gBACD,OAAO,EAAE,CAAC,CAAC;gBACX,WAAW,EAAE,oCAAoC;aACjD;SACD;KACD;CACD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-keephub",
3
- "version": "1.4.4",
3
+ "version": "1.5.0",
4
4
  "description": "Keephub integration node for n8n workflow automation",
5
5
  "longDescription": "Keephub is your AI-powered frontline employee platform. Connect teams across communication, scheduling, HR admin, tasks, and auditsβ€”all from one hub. With n8n, automate workflows that sync schedules, trigger HR actions, coordinate communications, and manage tasks across your entire tech stack.",
6
6
  "license": "MIT",