@limetech/n8n-nodes-lime 3.11.0-dev.1 → 3.11.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.
Files changed (125) hide show
  1. package/CHANGELOG.md +30 -2
  2. package/credentials/LimeCrmApi.credentials.ts +1 -0
  3. package/credentials/LimeFormsApi.credentials.ts +1 -18
  4. package/credentials/LimeMarketingApi.credentials.ts +92 -0
  5. package/credentials/assets/lime-crm.svg +1 -0
  6. package/credentials/index.ts +1 -0
  7. package/dist/credentials/LimeCrmApi.credentials.d.ts +1 -0
  8. package/dist/credentials/LimeCrmApi.credentials.js +1 -0
  9. package/dist/credentials/LimeCrmApi.credentials.js.map +1 -1
  10. package/dist/credentials/LimeFormsApi.credentials.d.ts +1 -0
  11. package/dist/credentials/LimeFormsApi.credentials.js +1 -15
  12. package/dist/credentials/LimeFormsApi.credentials.js.map +1 -1
  13. package/dist/credentials/LimeMarketingApi.credentials.d.ts +9 -0
  14. package/dist/credentials/LimeMarketingApi.credentials.js +64 -0
  15. package/dist/credentials/LimeMarketingApi.credentials.js.map +1 -0
  16. package/dist/credentials/assets/lime-crm.svg +1 -0
  17. package/dist/credentials/index.d.ts +1 -0
  18. package/dist/credentials/index.js +1 -0
  19. package/dist/credentials/index.js.map +1 -1
  20. package/dist/nodes/index.d.ts +1 -0
  21. package/dist/nodes/index.js +1 -0
  22. package/dist/nodes/index.js.map +1 -1
  23. package/dist/nodes/lime-crm/assets/lime-crm.svg +0 -0
  24. package/dist/nodes/lime-crm/resources/data/index.js +0 -4
  25. package/dist/nodes/lime-crm/resources/data/index.js.map +1 -1
  26. package/dist/nodes/lime-crm/resources/data/operations/index.d.ts +0 -1
  27. package/dist/nodes/lime-crm/resources/data/operations/index.js +1 -2
  28. package/dist/nodes/lime-crm/resources/data/operations/index.js.map +1 -1
  29. package/dist/nodes/lime-crm/transport/commons.d.ts +2 -2
  30. package/dist/nodes/lime-crm/transport/commons.js +8 -7
  31. package/dist/nodes/lime-crm/transport/commons.js.map +1 -1
  32. package/dist/nodes/lime-forms/LimeFormsTrigger.node.js +22 -9
  33. package/dist/nodes/lime-forms/LimeFormsTrigger.node.js.map +1 -1
  34. package/dist/nodes/lime-forms/assets/lime-crm.svg +0 -0
  35. package/dist/nodes/lime-marketing/LimeMarketing.node.d.ts +16 -0
  36. package/dist/nodes/lime-marketing/LimeMarketing.node.js +121 -0
  37. package/dist/nodes/lime-marketing/LimeMarketing.node.js.map +1 -0
  38. package/dist/nodes/lime-marketing/assets/lime-crm.svg +1 -0
  39. package/dist/nodes/lime-marketing/index.d.ts +1 -0
  40. package/dist/nodes/lime-marketing/index.js +18 -0
  41. package/dist/nodes/lime-marketing/index.js.map +1 -0
  42. package/dist/nodes/lime-marketing/methods/getTemplateMergeCodeMappingColumns.d.ts +3 -0
  43. package/dist/nodes/lime-marketing/methods/getTemplateMergeCodeMappingColumns.js +52 -0
  44. package/dist/nodes/lime-marketing/methods/getTemplateMergeCodeMappingColumns.js.map +1 -0
  45. package/dist/nodes/lime-marketing/methods/getTemplates.d.ts +2 -0
  46. package/dist/nodes/lime-marketing/methods/getTemplates.js +24 -0
  47. package/dist/nodes/lime-marketing/methods/getTemplates.js.map +1 -0
  48. package/dist/nodes/lime-marketing/methods/index.d.ts +2 -0
  49. package/dist/nodes/lime-marketing/methods/index.js +8 -0
  50. package/dist/nodes/lime-marketing/methods/index.js.map +1 -0
  51. package/dist/nodes/lime-marketing/models/constants.d.ts +9 -0
  52. package/dist/nodes/lime-marketing/models/constants.js +13 -0
  53. package/dist/nodes/lime-marketing/models/constants.js.map +1 -0
  54. package/dist/nodes/lime-marketing/models/index.d.ts +6 -0
  55. package/dist/nodes/lime-marketing/models/index.js +14 -0
  56. package/dist/nodes/lime-marketing/models/index.js.map +1 -0
  57. package/dist/nodes/lime-marketing/models/operationInputs.d.ts +36 -0
  58. package/dist/nodes/lime-marketing/models/operationInputs.js +3 -0
  59. package/dist/nodes/lime-marketing/models/operationInputs.js.map +1 -0
  60. package/dist/nodes/lime-marketing/models/template.d.ts +10 -0
  61. package/dist/nodes/lime-marketing/models/template.js +3 -0
  62. package/dist/nodes/lime-marketing/models/template.js.map +1 -0
  63. package/dist/nodes/lime-marketing/models/transactionMail.d.ts +60 -0
  64. package/dist/nodes/lime-marketing/models/transactionMail.js +3 -0
  65. package/dist/nodes/lime-marketing/models/transactionMail.js.map +1 -0
  66. package/dist/nodes/lime-marketing/models/transactionSms.d.ts +20 -0
  67. package/dist/nodes/lime-marketing/models/transactionSms.js +3 -0
  68. package/dist/nodes/lime-marketing/models/transactionSms.js.map +1 -0
  69. package/dist/nodes/lime-marketing/models/transportError.d.ts +7 -0
  70. package/dist/nodes/lime-marketing/models/transportError.js +3 -0
  71. package/dist/nodes/lime-marketing/models/transportError.js.map +1 -0
  72. package/dist/nodes/lime-marketing/resources/transactionmail/index.d.ts +6 -0
  73. package/dist/nodes/lime-marketing/resources/transactionmail/index.js +56 -0
  74. package/dist/nodes/lime-marketing/resources/transactionmail/index.js.map +1 -0
  75. package/dist/nodes/lime-marketing/resources/transactionmail/operations/send.operation.d.ts +10 -0
  76. package/dist/nodes/lime-marketing/resources/transactionmail/operations/send.operation.js +543 -0
  77. package/dist/nodes/lime-marketing/resources/transactionmail/operations/send.operation.js.map +1 -0
  78. package/dist/nodes/lime-marketing/resources/transactionsms/index.d.ts +6 -0
  79. package/dist/nodes/lime-marketing/resources/transactionsms/index.js +56 -0
  80. package/dist/nodes/lime-marketing/resources/transactionsms/index.js.map +1 -0
  81. package/dist/nodes/{lime-crm/resources/data/operations/iterateCsv.d.ts → lime-marketing/resources/transactionsms/operations/send.operation.d.ts} +3 -2
  82. package/dist/nodes/lime-marketing/resources/transactionsms/operations/send.operation.js +171 -0
  83. package/dist/nodes/lime-marketing/resources/transactionsms/operations/send.operation.js.map +1 -0
  84. package/dist/nodes/lime-marketing/transport/index.d.ts +7 -0
  85. package/dist/nodes/lime-marketing/transport/index.js +34 -0
  86. package/dist/nodes/lime-marketing/transport/index.js.map +1 -0
  87. package/dist/nodes/lime-marketing/utils/index.d.ts +8 -0
  88. package/dist/nodes/lime-marketing/utils/index.js +62 -0
  89. package/dist/nodes/lime-marketing/utils/index.js.map +1 -0
  90. package/dist/nodes/lime-marketing/utils/mergeCodes.d.ts +26 -0
  91. package/dist/nodes/lime-marketing/utils/mergeCodes.js +85 -0
  92. package/dist/nodes/lime-marketing/utils/mergeCodes.js.map +1 -0
  93. package/dist/package.json +5 -6
  94. package/dist/tsconfig.build.tsbuildinfo +1 -1
  95. package/nodes/index.ts +1 -0
  96. package/nodes/lime-crm/assets/lime-crm.svg +0 -0
  97. package/nodes/lime-crm/resources/data/index.ts +0 -4
  98. package/nodes/lime-crm/resources/data/operations/index.ts +0 -4
  99. package/nodes/lime-crm/transport/commons.ts +9 -8
  100. package/nodes/lime-forms/LimeFormsTrigger.node.ts +51 -19
  101. package/nodes/lime-forms/assets/lime-crm.svg +0 -0
  102. package/nodes/lime-marketing/LimeMarketing.node.ts +180 -0
  103. package/nodes/lime-marketing/assets/lime-crm.svg +1 -0
  104. package/nodes/lime-marketing/index.ts +1 -0
  105. package/nodes/lime-marketing/methods/getTemplateMergeCodeMappingColumns.ts +70 -0
  106. package/nodes/lime-marketing/methods/getTemplates.ts +33 -0
  107. package/nodes/lime-marketing/methods/index.ts +2 -0
  108. package/nodes/lime-marketing/models/constants.ts +12 -0
  109. package/nodes/lime-marketing/models/index.ts +32 -0
  110. package/nodes/lime-marketing/models/operationInputs.ts +40 -0
  111. package/nodes/lime-marketing/models/template.ts +10 -0
  112. package/nodes/lime-marketing/models/transactionMail.ts +65 -0
  113. package/nodes/lime-marketing/models/transactionSms.ts +22 -0
  114. package/nodes/lime-marketing/models/transportError.ts +6 -0
  115. package/nodes/lime-marketing/resources/transactionmail/index.ts +22 -0
  116. package/nodes/lime-marketing/resources/transactionmail/operations/send.operation.ts +664 -0
  117. package/nodes/lime-marketing/resources/transactionsms/index.ts +22 -0
  118. package/nodes/lime-marketing/resources/transactionsms/operations/send.operation.ts +228 -0
  119. package/nodes/lime-marketing/transport/index.ts +68 -0
  120. package/nodes/lime-marketing/utils/index.ts +139 -0
  121. package/nodes/lime-marketing/utils/mergeCodes.ts +121 -0
  122. package/package.json +6 -7
  123. package/dist/nodes/lime-crm/resources/data/operations/iterateCsv.js +0 -225
  124. package/dist/nodes/lime-crm/resources/data/operations/iterateCsv.js.map +0 -1
  125. package/nodes/lime-crm/resources/data/operations/iterateCsv.ts +0 -377
package/CHANGELOG.md CHANGED
@@ -1,9 +1,37 @@
1
- # [3.11.0-dev.1](https://github.com/Lundalogik/lime-n8n/compare/v3.10.1...v3.11.0-dev.1) (2026-06-25)
1
+ # [3.11.0](https://github.com/Lundalogik/lime-n8n/compare/v3.10.3...v3.11.0) (2026-07-07)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * assets in build script simplified ([7009621](https://github.com/Lundalogik/lime-n8n/commit/70096215c9cc5248f5b188cc58d5cc395953dea2))
7
+ * **lime-marketing:** address Copilot review nits ([d211027](https://github.com/Lundalogik/lime-n8n/commit/d21102763ac0612596584f7c53abccbb0d3cfbf2))
8
+ * **lime-marketing:** apply errorContext prefix to non-Lime-body errors ([a4922e8](https://github.com/Lundalogik/lime-n8n/commit/a4922e84a1f0ee86138067bc4b845cb38437999a))
9
+ * **lime-marketing:** dedupe credential key import and add docstring ([cbce0e1](https://github.com/Lundalogik/lime-n8n/commit/cbce0e1361ffa3ed66500b713605de32ca3a977a))
10
+ * **lime-marketing:** escape hyphen in email-domain character class ([d62dc2b](https://github.com/Lundalogik/lime-n8n/commit/d62dc2bc0983e8c95f9cb025342ab07a481f778d))
11
+ * **lime-marketing:** preserve error cause + omit blank optional mail fields ([9841325](https://github.com/Lundalogik/lime-n8n/commit/9841325fd5062e93235c03e278b6d8b9ffac37e6))
12
+ * **lime-marketing:** validate ping/version body in credential test ([3c70e05](https://github.com/Lundalogik/lime-n8n/commit/3c70e053d856f98ffa6833402db4319573710861))
13
+ * **lime-marketing:** validate templateId and fromEmail node-side ([6a15d4d](https://github.com/Lundalogik/lime-n8n/commit/6a15d4dc0225b871c10934a29210a9875bbf2369))
2
14
 
3
15
 
4
16
  ### Features
5
17
 
6
- * add processing csv node ([6e82747](https://github.com/Lundalogik/lime-n8n/commit/6e82747586d8ee72558d0b3240efdb1aa1774854))
18
+ * lime marketing credentials ([95da3bb](https://github.com/Lundalogik/lime-n8n/commit/95da3bbffb5231e34963a921cb47d632eb88ec4f))
19
+ * lime marketing node ([e06610d](https://github.com/Lundalogik/lime-n8n/commit/e06610da723fbe27873799973822f2257ac412ae))
20
+
21
+ ## [3.10.3](https://github.com/Lundalogik/lime-n8n/compare/v3.10.2...v3.10.3) (2026-07-02)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **lime-forms:** store encrypted webhook secret in static data ([7b7d164](https://github.com/Lundalogik/lime-n8n/commit/7b7d164cd12992e66328c007fc2e237a0668aac3))
27
+
28
+ ## [3.10.2](https://github.com/Lundalogik/lime-n8n/compare/v3.10.1...v3.10.2) (2026-06-25)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * replace deprecated requestWithAuthentication with httpRequestWIthAuthentication ([7c985b6](https://github.com/Lundalogik/lime-n8n/commit/7c985b6fbff96ec65a2caf2557d8798b41088c87))
34
+ * simplify error handling and remove unsafe cast ([7807b1f](https://github.com/Lundalogik/lime-n8n/commit/7807b1f46cbe169fb087348549daed3b3b78cd7f))
7
35
 
8
36
  ## [3.10.1](https://github.com/Lundalogik/lime-n8n/compare/v3.10.0...v3.10.1) (2026-06-09)
9
37
 
@@ -44,6 +44,7 @@ export class LimeCrmApi implements ICredentialType {
44
44
  name = LIME_CRM_API_CREDENTIAL_KEY;
45
45
  displayName = 'Lime CRM API';
46
46
  documentationUrl = 'https://lime-crm.com/api-docs/';
47
+ icon = 'file:assets/lime-crm.svg' as const;
47
48
  properties: INodeProperties[] = [
48
49
  {
49
50
  displayName: 'Server URL',
@@ -5,7 +5,6 @@ import {
5
5
  IAuthenticate,
6
6
  IHttpRequestMethods,
7
7
  } from 'n8n-workflow';
8
- import crypto from 'node:crypto';
9
8
 
10
9
  export const FORMS_API_CREDENTIALS_NAME = 'limeFormsApi';
11
10
 
@@ -27,11 +26,6 @@ export const FORMS_API_CREDENTIALS_NAME = 'limeFormsApi';
27
26
  * - **API Key:** The API key generated in Lime Forms.
28
27
  * - You can obtain it from Lime Forms Admin, under settings page.
29
28
  *
30
- * ## Additional Fields
31
- * - **Webhook Secret:** A hidden, automatically generated secret (32-byte hex string) used to
32
- * verify incoming webhook requests from Lime Forms to n8n. This ensures no other entity can
33
- * send webhooks to your Forms nodes in n8n.
34
- *
35
29
  * ## Testing Connection
36
30
  * The `test` property verifies credentials by pinging an endpoint of the provided Lime Forms instance.
37
31
  * If the response is successful (HTTP 200), the credentials are valid.
@@ -46,6 +40,7 @@ export class LimeFormsApi implements ICredentialType {
46
40
  name = FORMS_API_CREDENTIALS_NAME;
47
41
  displayName = 'Lime CRM Forms API';
48
42
  documentationUrl = 'https://docs.lime-forms.com/';
43
+ icon = 'file:assets/lime-crm.svg' as const;
49
44
  properties: INodeProperties[] = [
50
45
  {
51
46
  displayName: 'Server URL',
@@ -67,18 +62,6 @@ export class LimeFormsApi implements ICredentialType {
67
62
  required: true,
68
63
  description: 'API key obtained from Lime Forms',
69
64
  },
70
- {
71
- displayName: 'Webhook secret',
72
- name: 'webhookSecret',
73
- type: 'hidden',
74
- typeOptions: {
75
- password: true,
76
- },
77
- default: crypto.randomBytes(32).toString('hex'),
78
- required: true,
79
- description:
80
- 'A secret to verify integrity of incoming webhooks from Lime Forms',
81
- },
82
65
  ];
83
66
 
84
67
  test: ICredentialTestRequest = {
@@ -0,0 +1,92 @@
1
+ import {
2
+ ICredentialType,
3
+ INodeProperties,
4
+ IHttpRequestMethods,
5
+ IAuthenticate,
6
+ ICredentialTestRequest,
7
+ IAuthenticateRuleResponseSuccessBody,
8
+ } from 'n8n-workflow';
9
+ import { LIME_MARKETING_API_CREDENTIAL_KEY } from '../nodes/lime-marketing/models';
10
+
11
+ /**
12
+ * Credential for the Lime Marketing REST API.
13
+ *
14
+ * Authenticates by sending the user's API key in the `apikey` header on
15
+ * every request. The base URL is the customer's Lime Marketing instance
16
+ * URL (e.g. `https://app.bwz.se/bedrock/CUSTOMERNAME/api/`); a trailing
17
+ * slash is stripped before use so callers can pass paths starting with
18
+ * or without one.
19
+ *
20
+ * The credential is verified at save time via a `GET /ping/version`
21
+ * request to the configured base URL. A 2xx status alone is not trusted:
22
+ * a misconfigured URL can hit a catch-all page that also returns 2xx, so
23
+ * the test additionally asserts that the response body is a real Lime
24
+ * Marketing `VersionModel` (it carries a `Version` field). Without that
25
+ * body check the test would pass for any host that answers 2xx.
26
+ *
27
+ * @public
28
+ */
29
+ export class LimeMarketingApi implements ICredentialType {
30
+ name = LIME_MARKETING_API_CREDENTIAL_KEY;
31
+ displayName = 'Lime CRM Marketing API';
32
+ icon = 'file:assets/lime-crm.svg' as const;
33
+ properties: INodeProperties[] = [
34
+ {
35
+ displayName: 'Lime CRM Marketing API URL',
36
+ name: 'url',
37
+ type: 'string',
38
+ default: '',
39
+ placeholder: 'e.g. https://app.bwz.se/bedrock/CUSTOMERNAME/api/',
40
+ required: true,
41
+ description:
42
+ 'The URL of your Lime Marketing instance, for example https://app.bwz.se/bedrock/CUSTOMERNAME/api/',
43
+ },
44
+ {
45
+ displayName: 'API Key',
46
+ name: 'apiKey',
47
+ type: 'string',
48
+ typeOptions: {
49
+ password: true,
50
+ },
51
+ default: '',
52
+ required: true,
53
+ description: 'The API key obtained from Lime Marketing',
54
+ },
55
+ ];
56
+
57
+ authenticate: IAuthenticate = {
58
+ type: 'generic',
59
+ properties: {
60
+ headers: {
61
+ apikey: '={{$credentials.apiKey}}',
62
+ },
63
+ },
64
+ };
65
+
66
+ test: ICredentialTestRequest = {
67
+ request: {
68
+ baseURL: '={{$credentials?.url?.replace(new RegExp("/+$"), "")}}',
69
+ url: '/ping/version',
70
+ method: 'GET' as IHttpRequestMethods,
71
+ headers: {
72
+ apikey: '={{$credentials?.apiKey}}',
73
+ Accept: 'application/json',
74
+ },
75
+ },
76
+ // `responseSuccessBody` fails the test when body[key] === value. The
77
+ // real /ping/version returns a VersionModel with a `Version` field, so
78
+ // a missing `Version` (=== undefined) means we hit something other than
79
+ // the Lime Marketing API (e.g. a catch-all page) and the URL is wrong.
80
+ rules: [
81
+ {
82
+ type: 'responseSuccessBody',
83
+ properties: {
84
+ key: 'Version',
85
+ value: undefined,
86
+ message:
87
+ 'The URL does not point to a Lime Marketing API. Check it matches https://app.bwz.se/bedrock/CUSTOMERNAME/api/.',
88
+ },
89
+ } as IAuthenticateRuleResponseSuccessBody,
90
+ ],
91
+ };
92
+ }
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 1024 1025" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><clipPath id="a"><path d="M0 .03h1024v1024H0z"/></clipPath><g clip-path="url(#a)"><path d="M92.399 480.888c0-257.059 208.719-465.779 465.78-465.779C815.28 15.109 1024 223.829 1024 480.888c0 133.713-55.806 271.139-193.403 385.355-166.779 138.45-390.39 157.35-736.15 134.525-102.653-6.785-117.502-24.319-64.468-63.444 166.694-123.047 62.42-217.167 62.42-456.436Z" style="fill:#bee034"/><clipPath id="b"><path d="M92.399 480.888c0-257.059 208.719-465.779 465.78-465.779C815.28 15.109 1024 223.829 1024 480.888c0 133.713-55.806 271.139-193.403 385.355-166.779 138.45-390.39 157.35-736.15 134.525-102.653-6.785-117.502-24.319-64.468-63.444 166.694-123.047 62.42-217.167 62.42-456.436Z"/></clipPath><g clip-path="url(#b)"><path d="M1023-361.59c0 784.587-711.326 1420.62-1588.79 1420.62C-1402.638-283.55 1023-1146.18 1023-361.59Z" style="fill:#a6efff;filter:blur(200px)"/></g><path d="M433.85 723.911c-24.702-12.757-47.23-29.226-66.813-48.596-9.088-9.002-23.765-8.959-32.768.129-9.001 9.087-8.916 23.763.171 32.766 22.911 22.698 49.236 41.941 78.121 56.873 11.392 5.888 25.385 1.409 31.231-9.94 5.888-11.349 1.409-25.344-9.942-31.232Zm367.266-363.98a270.163 270.163 0 0 1 25.556 78.547c2.048 12.629 13.952 21.206 26.581 19.158 12.586-2.006 21.204-13.951 19.156-26.539a316.387 316.387 0 0 0-29.907-92.029c-5.803-11.434-19.754-15.999-31.146-10.24-11.393 5.76-16 19.713-10.24 31.103Zm-51.497 315.384c-19.584 19.37-42.069 35.839-66.815 48.596-11.349 5.888-15.786 19.883-9.94 31.232 5.887 11.349 19.881 15.828 31.229 9.94 28.929-14.932 55.253-34.175 78.164-56.873 9.045-9.003 9.131-23.679.128-32.766-9.002-9.088-23.678-9.131-32.766-.129ZM517.006 213.546a274.904 274.904 0 0 1 41.343-3.114c14.036 0 27.861 1.066 41.343 3.114 12.629 1.919 24.448-6.784 26.367-19.413 1.962-12.628-6.741-24.446-19.371-26.409a322.626 322.626 0 0 0-48.339-3.627 322.201 322.201 0 0 0-48.34 3.627c-12.672 1.963-21.332 13.781-19.413 26.409 1.92 12.629 13.739 21.332 26.41 19.413Zm41.343 490.355c-40.489 0-73.385 32.853-73.385 73.342s32.896 73.385 73.385 73.385c40.489 0 73.342-32.896 73.342-73.385 0-40.489-32.853-73.342-73.342-73.342ZM290.025 438.478c4.481-27.818 13.227-54.227 25.514-78.547 5.761-11.39 1.195-25.343-10.239-31.103-11.392-5.759-25.343-1.194-31.104 10.24a313.893 313.893 0 0 0-29.908 92.029c-2.048 12.588 6.527 24.533 19.157 26.539 12.629 2.048 24.532-6.529 26.58-19.158Zm479.092 112.254c-12.501 38.527 8.618 79.955 47.102 92.456 38.528 12.502 79.956-8.618 92.457-47.104 12.501-38.525-8.619-79.953-47.103-92.455-38.527-12.501-79.955 8.619-92.456 47.103Zm-80.51-247.802c32.766 23.808 78.675 16.554 102.482-16.212 23.808-32.767 16.512-78.675-16.256-102.482-32.723-23.809-78.675-16.512-102.439 16.254-23.808 32.725-16.555 78.633 16.213 102.44Zm-260.558 0c32.766-23.807 40.063-69.715 16.254-102.44-23.807-32.766-69.715-40.063-102.482-16.254-32.766 23.807-40.02 69.715-16.255 102.482 23.806 32.766 69.758 40.02 102.483 16.212Zm-80.51 247.802c-12.501-38.484-53.929-59.604-92.415-47.103-38.526 12.502-59.645 53.93-47.102 92.455 12.501 38.486 53.929 59.606 92.413 47.104 38.528-12.501 59.605-53.929 47.104-92.456Z" style="fill:#fff"/></g></svg>
@@ -1,2 +1,3 @@
1
1
  export * from './LimeCrmApi.credentials';
2
2
  export * from './LimeFormsApi.credentials';
3
+ export * from './LimeMarketingApi.credentials';
@@ -3,6 +3,7 @@ export declare class LimeCrmApi implements ICredentialType {
3
3
  name: string;
4
4
  displayName: string;
5
5
  documentationUrl: string;
6
+ icon: "file:assets/lime-crm.svg";
6
7
  properties: INodeProperties[];
7
8
  authenticate: IAuthenticate;
8
9
  test: ICredentialTestRequest;
@@ -7,6 +7,7 @@ class LimeCrmApi {
7
7
  this.name = nodes_1.LIME_CRM_API_CREDENTIAL_KEY;
8
8
  this.displayName = 'Lime CRM API';
9
9
  this.documentationUrl = 'https://lime-crm.com/api-docs/';
10
+ this.icon = 'file:assets/lime-crm.svg';
10
11
  this.properties = [
11
12
  {
12
13
  displayName: 'Server URL',
@@ -1 +1 @@
1
- {"version":3,"file":"LimeCrmApi.credentials.js","sourceRoot":"","sources":["../../credentials/LimeCrmApi.credentials.ts"],"names":[],"mappings":";;;AAQA,oCAAuD;AAkCvD,MAAa,UAAU;IAAvB;QACI,SAAI,GAAG,mCAA2B,CAAC;QACnC,gBAAW,GAAG,cAAc,CAAC;QAC7B,qBAAgB,GAAG,gCAAgC,CAAC;QACpD,eAAU,GAAsB;YAC5B;gBACI,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,6CAA6C;gBAC1D,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,mCAAmC;aACnD;YACD;gBACI,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;aACpD;SACJ,CAAC;QAEF,iBAAY,GAAkB;YAC1B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACR,OAAO,EAAE;oBAEL,WAAW,EAAE,0BAA0B;iBAC1C;aACJ;SACJ,CAAC;QAEF,SAAI,GAA2B;YAC3B,OAAO,EAAE;gBACL,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnD,GAAG,EAAE,UAAU;gBACf,MAAM,EAAE,KAA4B;gBACpC,OAAO,EAAE;oBACL,WAAW,EAAE,0BAA0B;oBACvC,MAAM,EAAE,kBAAkB;iBAC7B;aACJ;SACJ,CAAC;IACN,CAAC;CAAA;AAhDD,gCAgDC"}
1
+ {"version":3,"file":"LimeCrmApi.credentials.js","sourceRoot":"","sources":["../../credentials/LimeCrmApi.credentials.ts"],"names":[],"mappings":";;;AAQA,oCAAuD;AAkCvD,MAAa,UAAU;IAAvB;QACI,SAAI,GAAG,mCAA2B,CAAC;QACnC,gBAAW,GAAG,cAAc,CAAC;QAC7B,qBAAgB,GAAG,gCAAgC,CAAC;QACpD,SAAI,GAAG,0BAAmC,CAAC;QAC3C,eAAU,GAAsB;YAC5B;gBACI,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,6CAA6C;gBAC1D,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,mCAAmC;aACnD;YACD;gBACI,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;aACpD;SACJ,CAAC;QAEF,iBAAY,GAAkB;YAC1B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACR,OAAO,EAAE;oBAEL,WAAW,EAAE,0BAA0B;iBAC1C;aACJ;SACJ,CAAC;QAEF,SAAI,GAA2B;YAC3B,OAAO,EAAE;gBACL,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnD,GAAG,EAAE,UAAU;gBACf,MAAM,EAAE,KAA4B;gBACpC,OAAO,EAAE;oBACL,WAAW,EAAE,0BAA0B;oBACvC,MAAM,EAAE,kBAAkB;iBAC7B;aACJ;SACJ,CAAC;IACN,CAAC;CAAA;AAjDD,gCAiDC"}
@@ -4,6 +4,7 @@ export declare class LimeFormsApi implements ICredentialType {
4
4
  name: string;
5
5
  displayName: string;
6
6
  documentationUrl: string;
7
+ icon: "file:assets/lime-crm.svg";
7
8
  properties: INodeProperties[];
8
9
  test: ICredentialTestRequest;
9
10
  authenticate: IAuthenticate;
@@ -1,16 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.LimeFormsApi = exports.FORMS_API_CREDENTIALS_NAME = void 0;
7
- const node_crypto_1 = __importDefault(require("node:crypto"));
8
4
  exports.FORMS_API_CREDENTIALS_NAME = 'limeFormsApi';
9
5
  class LimeFormsApi {
10
6
  constructor() {
11
7
  this.name = exports.FORMS_API_CREDENTIALS_NAME;
12
8
  this.displayName = 'Lime CRM Forms API';
13
9
  this.documentationUrl = 'https://docs.lime-forms.com/';
10
+ this.icon = 'file:assets/lime-crm.svg';
14
11
  this.properties = [
15
12
  {
16
13
  displayName: 'Server URL',
@@ -32,17 +29,6 @@ class LimeFormsApi {
32
29
  required: true,
33
30
  description: 'API key obtained from Lime Forms',
34
31
  },
35
- {
36
- displayName: 'Webhook secret',
37
- name: 'webhookSecret',
38
- type: 'hidden',
39
- typeOptions: {
40
- password: true,
41
- },
42
- default: node_crypto_1.default.randomBytes(32).toString('hex'),
43
- required: true,
44
- description: 'A secret to verify integrity of incoming webhooks from Lime Forms',
45
- },
46
32
  ];
47
33
  this.test = {
48
34
  request: {
@@ -1 +1 @@
1
- {"version":3,"file":"LimeFormsApi.credentials.js","sourceRoot":"","sources":["../../credentials/LimeFormsApi.credentials.ts"],"names":[],"mappings":";;;;;;AAOA,8DAAiC;AAEpB,QAAA,0BAA0B,GAAG,cAAc,CAAC;AAmCzD,MAAa,YAAY;IAAzB;QACI,SAAI,GAAG,kCAA0B,CAAC;QAClC,gBAAW,GAAG,oBAAoB,CAAC;QACnC,qBAAgB,GAAG,8BAA8B,CAAC;QAClD,eAAU,GAAsB;YAC5B;gBACI,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,iCAAiC;gBAC9C,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,qCAAqC;aACrD;YACD;gBACI,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,kCAAkC;aAClD;YACD;gBACI,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,qBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/C,QAAQ,EAAE,IAAI;gBACd,WAAW,EACP,mEAAmE;aAC1E;SACJ,CAAC;QAEF,SAAI,GAA2B;YAC3B,OAAO,EAAE;gBACL,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnD,GAAG,EAAE,oCAAoC;gBACzC,MAAM,EAAE,KAA4B;aACvC;SACJ,CAAC;QAEF,iBAAY,GAAkB;YAC1B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACR,OAAO,EAAE;oBACL,aAAa,EAAE,iCAAiC;iBACnD;aACJ;SACJ,CAAC;IACN,CAAC;CAAA;AAvDD,oCAuDC"}
1
+ {"version":3,"file":"LimeFormsApi.credentials.js","sourceRoot":"","sources":["../../credentials/LimeFormsApi.credentials.ts"],"names":[],"mappings":";;;AAQa,QAAA,0BAA0B,GAAG,cAAc,CAAC;AA8BzD,MAAa,YAAY;IAAzB;QACI,SAAI,GAAG,kCAA0B,CAAC;QAClC,gBAAW,GAAG,oBAAoB,CAAC;QACnC,qBAAgB,GAAG,8BAA8B,CAAC;QAClD,SAAI,GAAG,0BAAmC,CAAC;QAC3C,eAAU,GAAsB;YAC5B;gBACI,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,iCAAiC;gBAC9C,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,qCAAqC;aACrD;YACD;gBACI,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,kCAAkC;aAClD;SACJ,CAAC;QAEF,SAAI,GAA2B;YAC3B,OAAO,EAAE;gBACL,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnD,GAAG,EAAE,oCAAoC;gBACzC,MAAM,EAAE,KAA4B;aACvC;SACJ,CAAC;QAEF,iBAAY,GAAkB;YAC1B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACR,OAAO,EAAE;oBACL,aAAa,EAAE,iCAAiC;iBACnD;aACJ;SACJ,CAAC;IACN,CAAC;CAAA;AA5CD,oCA4CC"}
@@ -0,0 +1,9 @@
1
+ import { ICredentialType, INodeProperties, IAuthenticate, ICredentialTestRequest } from 'n8n-workflow';
2
+ export declare class LimeMarketingApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ icon: "file:assets/lime-crm.svg";
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticate;
8
+ test: ICredentialTestRequest;
9
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LimeMarketingApi = void 0;
4
+ const models_1 = require("../nodes/lime-marketing/models");
5
+ class LimeMarketingApi {
6
+ constructor() {
7
+ this.name = models_1.LIME_MARKETING_API_CREDENTIAL_KEY;
8
+ this.displayName = 'Lime CRM Marketing API';
9
+ this.icon = 'file:assets/lime-crm.svg';
10
+ this.properties = [
11
+ {
12
+ displayName: 'Lime CRM Marketing API URL',
13
+ name: 'url',
14
+ type: 'string',
15
+ default: '',
16
+ placeholder: 'e.g. https://app.bwz.se/bedrock/CUSTOMERNAME/api/',
17
+ required: true,
18
+ description: 'The URL of your Lime Marketing instance, for example https://app.bwz.se/bedrock/CUSTOMERNAME/api/',
19
+ },
20
+ {
21
+ displayName: 'API Key',
22
+ name: 'apiKey',
23
+ type: 'string',
24
+ typeOptions: {
25
+ password: true,
26
+ },
27
+ default: '',
28
+ required: true,
29
+ description: 'The API key obtained from Lime Marketing',
30
+ },
31
+ ];
32
+ this.authenticate = {
33
+ type: 'generic',
34
+ properties: {
35
+ headers: {
36
+ apikey: '={{$credentials.apiKey}}',
37
+ },
38
+ },
39
+ };
40
+ this.test = {
41
+ request: {
42
+ baseURL: '={{$credentials?.url?.replace(new RegExp("/+$"), "")}}',
43
+ url: '/ping/version',
44
+ method: 'GET',
45
+ headers: {
46
+ apikey: '={{$credentials?.apiKey}}',
47
+ Accept: 'application/json',
48
+ },
49
+ },
50
+ rules: [
51
+ {
52
+ type: 'responseSuccessBody',
53
+ properties: {
54
+ key: 'Version',
55
+ value: undefined,
56
+ message: 'The URL does not point to a Lime Marketing API. Check it matches https://app.bwz.se/bedrock/CUSTOMERNAME/api/.',
57
+ },
58
+ },
59
+ ],
60
+ };
61
+ }
62
+ }
63
+ exports.LimeMarketingApi = LimeMarketingApi;
64
+ //# sourceMappingURL=LimeMarketingApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LimeMarketingApi.credentials.js","sourceRoot":"","sources":["../../credentials/LimeMarketingApi.credentials.ts"],"names":[],"mappings":";;;AAQA,2DAAmF;AAoBnF,MAAa,gBAAgB;IAA7B;QACI,SAAI,GAAG,0CAAiC,CAAC;QACzC,gBAAW,GAAG,wBAAwB,CAAC;QACvC,SAAI,GAAG,0BAAmC,CAAC;QAC3C,eAAU,GAAsB;YAC5B;gBACI,WAAW,EAAE,4BAA4B;gBACzC,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,mDAAmD;gBAChE,QAAQ,EAAE,IAAI;gBACd,WAAW,EACP,mGAAmG;aAC1G;YACD;gBACI,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,0CAA0C;aAC1D;SACJ,CAAC;QAEF,iBAAY,GAAkB;YAC1B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACR,OAAO,EAAE;oBACL,MAAM,EAAE,0BAA0B;iBACrC;aACJ;SACJ,CAAC;QAEF,SAAI,GAA2B;YAC3B,OAAO,EAAE;gBACL,OAAO,EAAE,wDAAwD;gBACjE,GAAG,EAAE,eAAe;gBACpB,MAAM,EAAE,KAA4B;gBACpC,OAAO,EAAE;oBACL,MAAM,EAAE,2BAA2B;oBACnC,MAAM,EAAE,kBAAkB;iBAC7B;aACJ;YAKD,KAAK,EAAE;gBACH;oBACI,IAAI,EAAE,qBAAqB;oBAC3B,UAAU,EAAE;wBACR,GAAG,EAAE,SAAS;wBACd,KAAK,EAAE,SAAS;wBAChB,OAAO,EACH,gHAAgH;qBACvH;iBACoC;aAC5C;SACJ,CAAC;IACN,CAAC;CAAA;AA/DD,4CA+DC"}
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 1024 1025" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"><clipPath id="a"><path d="M0 .03h1024v1024H0z"/></clipPath><g clip-path="url(#a)"><path d="M92.399 480.888c0-257.059 208.719-465.779 465.78-465.779C815.28 15.109 1024 223.829 1024 480.888c0 133.713-55.806 271.139-193.403 385.355-166.779 138.45-390.39 157.35-736.15 134.525-102.653-6.785-117.502-24.319-64.468-63.444 166.694-123.047 62.42-217.167 62.42-456.436Z" style="fill:#bee034"/><clipPath id="b"><path d="M92.399 480.888c0-257.059 208.719-465.779 465.78-465.779C815.28 15.109 1024 223.829 1024 480.888c0 133.713-55.806 271.139-193.403 385.355-166.779 138.45-390.39 157.35-736.15 134.525-102.653-6.785-117.502-24.319-64.468-63.444 166.694-123.047 62.42-217.167 62.42-456.436Z"/></clipPath><g clip-path="url(#b)"><path d="M1023-361.59c0 784.587-711.326 1420.62-1588.79 1420.62C-1402.638-283.55 1023-1146.18 1023-361.59Z" style="fill:#a6efff;filter:blur(200px)"/></g><path d="M433.85 723.911c-24.702-12.757-47.23-29.226-66.813-48.596-9.088-9.002-23.765-8.959-32.768.129-9.001 9.087-8.916 23.763.171 32.766 22.911 22.698 49.236 41.941 78.121 56.873 11.392 5.888 25.385 1.409 31.231-9.94 5.888-11.349 1.409-25.344-9.942-31.232Zm367.266-363.98a270.163 270.163 0 0 1 25.556 78.547c2.048 12.629 13.952 21.206 26.581 19.158 12.586-2.006 21.204-13.951 19.156-26.539a316.387 316.387 0 0 0-29.907-92.029c-5.803-11.434-19.754-15.999-31.146-10.24-11.393 5.76-16 19.713-10.24 31.103Zm-51.497 315.384c-19.584 19.37-42.069 35.839-66.815 48.596-11.349 5.888-15.786 19.883-9.94 31.232 5.887 11.349 19.881 15.828 31.229 9.94 28.929-14.932 55.253-34.175 78.164-56.873 9.045-9.003 9.131-23.679.128-32.766-9.002-9.088-23.678-9.131-32.766-.129ZM517.006 213.546a274.904 274.904 0 0 1 41.343-3.114c14.036 0 27.861 1.066 41.343 3.114 12.629 1.919 24.448-6.784 26.367-19.413 1.962-12.628-6.741-24.446-19.371-26.409a322.626 322.626 0 0 0-48.339-3.627 322.201 322.201 0 0 0-48.34 3.627c-12.672 1.963-21.332 13.781-19.413 26.409 1.92 12.629 13.739 21.332 26.41 19.413Zm41.343 490.355c-40.489 0-73.385 32.853-73.385 73.342s32.896 73.385 73.385 73.385c40.489 0 73.342-32.896 73.342-73.385 0-40.489-32.853-73.342-73.342-73.342ZM290.025 438.478c4.481-27.818 13.227-54.227 25.514-78.547 5.761-11.39 1.195-25.343-10.239-31.103-11.392-5.759-25.343-1.194-31.104 10.24a313.893 313.893 0 0 0-29.908 92.029c-2.048 12.588 6.527 24.533 19.157 26.539 12.629 2.048 24.532-6.529 26.58-19.158Zm479.092 112.254c-12.501 38.527 8.618 79.955 47.102 92.456 38.528 12.502 79.956-8.618 92.457-47.104 12.501-38.525-8.619-79.953-47.103-92.455-38.527-12.501-79.955 8.619-92.456 47.103Zm-80.51-247.802c32.766 23.808 78.675 16.554 102.482-16.212 23.808-32.767 16.512-78.675-16.256-102.482-32.723-23.809-78.675-16.512-102.439 16.254-23.808 32.725-16.555 78.633 16.213 102.44Zm-260.558 0c32.766-23.807 40.063-69.715 16.254-102.44-23.807-32.766-69.715-40.063-102.482-16.254-32.766 23.807-40.02 69.715-16.255 102.482 23.806 32.766 69.758 40.02 102.483 16.212Zm-80.51 247.802c-12.501-38.484-53.929-59.604-92.415-47.103-38.526 12.502-59.645 53.93-47.102 92.455 12.501 38.486 53.929 59.606 92.413 47.104 38.528-12.501 59.605-53.929 47.104-92.456Z" style="fill:#fff"/></g></svg>
@@ -1,2 +1,3 @@
1
1
  export * from './LimeCrmApi.credentials';
2
2
  export * from './LimeFormsApi.credentials';
3
+ export * from './LimeMarketingApi.credentials';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./LimeCrmApi.credentials"), exports);
18
18
  __exportStar(require("./LimeFormsApi.credentials"), exports);
19
+ __exportStar(require("./LimeMarketingApi.credentials"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../credentials/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../credentials/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,6DAA2C;AAC3C,iEAA+C"}
@@ -3,3 +3,4 @@ export * from './lime-crm';
3
3
  export * from './modules';
4
4
  export * from './lime-forms';
5
5
  export * from './limeHeaders';
6
+ export * from './lime-marketing';
@@ -19,4 +19,5 @@ __exportStar(require("./lime-crm"), exports);
19
19
  __exportStar(require("./modules"), exports);
20
20
  __exportStar(require("./lime-forms"), exports);
21
21
  __exportStar(require("./limeHeaders"), exports);
22
+ __exportStar(require("./lime-marketing"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../nodes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,4CAA0B;AAC1B,+CAA6B;AAC7B,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../nodes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,4CAA0B;AAC1B,+CAA6B;AAC7B,gDAA8B;AAC9B,mDAAiC"}
File without changes
@@ -52,7 +52,6 @@ const moduleHandler = new modules_1.N8NOperationModuleHandler([
52
52
  operations.bulkCreateManyObjects,
53
53
  operations.bulkUpdateManyObjects,
54
54
  operations.bulkCreateOrUpdateManyObjects,
55
- operations.iterateCsv,
56
55
  ]);
57
56
  exports.dataFields = [
58
57
  {
@@ -117,9 +116,6 @@ async function dataOperations({ operation, i }) {
117
116
  const result = await operations.bulkCreateOrUpdateManyObjects.execute.call(this, i);
118
117
  return result && { json: result };
119
118
  }
120
- case 'iterateCsv': {
121
- return await operations.iterateCsv.execute.call(this, i);
122
- }
123
119
  }
124
120
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported!`);
125
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/lime-crm/resources/data/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/lime-crm/resources/data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA,wCAuEC;AApJD,+CAMsB;AAEtB,yDAA2C;AAE3C,yCAA6C;AAC7C,8CAA6D;AAK7D,MAAM,aAAa,GAAG,IAAI,mCAAyB,CAAC;IAChD,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,cAAc;IACzB,UAAU,CAAC,aAAa;IACxB,UAAU,CAAC,qBAAqB;IAChC,UAAU,CAAC,qBAAqB;IAChC,UAAU,CAAC,6BAA6B;CAC3C,CAAC,CAAC;AAmBU,QAAA,UAAU,GAAsB;IACzC;QACI,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAA8B;QACpC,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACZ,IAAI,EAAE;gBACF,QAAQ,EAAE,CAAC,sBAAa,CAAC;aAC5B;SACJ;QACD,OAAO,EAAE,aAAa,CAAC,eAAe,EAAE;QACxC,OAAO,EAAE,gBAAgB;KAC5B;IAED,GAAG,aAAa,CAAC,aAAa,EAAE;CACnC,CAAC;AAgBK,KAAK,UAAU,cAAc,CAEhC,EAAE,SAAS,EAAE,CAAC,EAAoC;IAElD,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,OAAO;gBACH,IAAI,EAAE,MAAM,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aAClE,CAAC;QACN,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,OAAO,MAAM,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,OAAO;gBACH,GAAG,CAAC,MAAM,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACjE,CAAC;QACN,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAC7D,IAAI,EACJ,CAAC,CACJ,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CACvD,IAAI,EACJ,CAAC,CACJ,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACzB,IAAI,EAAE,IAAI;iBACb,CAAC,CAAC,CAAC;YACR,CAAC;iBAAM,CAAC;gBACJ,OAAO;oBACH,IAAI,EAAE,MAAM;iBACf,CAAC;YACN,CAAC;QACL,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAC9D,IAAI,EACJ,CAAC,CACJ,CAAC;YACF,OAAO,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtC,CAAC;QACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAC9D,IAAI,EACJ,CAAC,CACJ,CAAC;YACF,OAAO,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtC,CAAC;QACD,KAAK,+BAA+B,CAAC,CAAC,CAAC;YACnC,MAAM,MAAM,GACR,MAAM,UAAU,CAAC,6BAA6B,CAAC,OAAO,CAAC,IAAI,CACvD,IAAI,EACJ,CAAC,CACJ,CAAC;YACN,OAAO,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,iCAAkB,CACxB,IAAI,CAAC,OAAO,EAAE,EACd,kBAAkB,SAAS,qBAAqB,CACnD,CAAC;AACN,CAAC;AAED,+CAA6B"}
@@ -7,4 +7,3 @@ export * as getSingleFile from './getSingleFile.operation';
7
7
  export * as bulkCreateManyObjects from './bulkCreateManyObjects.operation';
8
8
  export * as bulkUpdateManyObjects from './bulkUpdateManyObjects.operation';
9
9
  export * as bulkCreateOrUpdateManyObjects from './bulkCreateOrUpdateManyObjects.operation';
10
- export * as iterateCsv from './iterateCsv';
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.iterateCsv = exports.bulkCreateOrUpdateManyObjects = exports.bulkUpdateManyObjects = exports.bulkCreateManyObjects = exports.getSingleFile = exports.getManyObjects = exports.deleteSingleObject = exports.updateSingleObject = exports.getSingleObject = exports.createSingleObject = void 0;
36
+ exports.bulkCreateOrUpdateManyObjects = exports.bulkUpdateManyObjects = exports.bulkCreateManyObjects = exports.getSingleFile = exports.getManyObjects = exports.deleteSingleObject = exports.updateSingleObject = exports.getSingleObject = exports.createSingleObject = void 0;
37
37
  exports.createSingleObject = __importStar(require("./createSingleObject.operation"));
38
38
  exports.getSingleObject = __importStar(require("./getSingleObject.operation"));
39
39
  exports.updateSingleObject = __importStar(require("./updateSingleObject.operation"));
@@ -43,5 +43,4 @@ exports.getSingleFile = __importStar(require("./getSingleFile.operation"));
43
43
  exports.bulkCreateManyObjects = __importStar(require("./bulkCreateManyObjects.operation"));
44
44
  exports.bulkUpdateManyObjects = __importStar(require("./bulkUpdateManyObjects.operation"));
45
45
  exports.bulkCreateOrUpdateManyObjects = __importStar(require("./bulkCreateOrUpdateManyObjects.operation"));
46
- exports.iterateCsv = __importStar(require("./iterateCsv"));
47
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/lime-crm/resources/data/operations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,qFAAqE;AAIrE,+EAA+D;AAI/D,qFAAqE;AAIrE,qFAAqE;AAIrE,6EAA6D;AAI7D,2EAA2D;AAI3D,2FAA2E;AAI3E,2FAA2E;AAI3E,2GAA2F;AAI3F,2DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/lime-crm/resources/data/operations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,qFAAqE;AAIrE,+EAA+D;AAI/D,qFAAqE;AAIrE,qFAAqE;AAIrE,6EAA6D;AAI7D,2EAA2D;AAI3D,2FAA2E;AAI3E,2FAA2E;AAI3E,2GAA2F"}
@@ -1,4 +1,4 @@
1
- import { IAllExecuteFunctions } from 'n8n-workflow';
1
+ import { IAllExecuteFunctions, JsonObject } from 'n8n-workflow';
2
2
  import { APIResponse, SuccessResponse } from '../../response';
3
3
  export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
4
4
  export declare function removeKeys<T extends object, K extends keyof T>(data: T, keys: K[]): Omit<T, K>;
@@ -11,7 +11,7 @@ interface LimeAPIArguments {
11
11
  [key: string]: unknown;
12
12
  };
13
13
  json?: boolean;
14
- errorMetadata?: Record<string, unknown>;
14
+ errorMetadata?: JsonObject;
15
15
  }
16
16
  export declare function callLimeApi<T>(nodeContext: IAllExecuteFunctions, options: LimeAPIArguments): Promise<APIResponse<T>>;
17
17
  export {};
@@ -24,10 +24,10 @@ async function getLimeUrl(context) {
24
24
  return credentials.url;
25
25
  }
26
26
  async function callLimeApi(nodeContext, options) {
27
- var _a, _b, _c, _d, _e;
27
+ var _a, _b, _c;
28
28
  try {
29
29
  const { headers: callerHeaders, ...restRequestOptions } = (_a = options.requestOptions) !== null && _a !== void 0 ? _a : {};
30
- const response = await nodeContext.helpers.requestWithAuthentication.call(nodeContext, models_1.LIME_CRM_API_CREDENTIAL_KEY, {
30
+ const response = await nodeContext.helpers.httpRequestWithAuthentication.call(nodeContext, models_1.LIME_CRM_API_CREDENTIAL_KEY, {
31
31
  method: options.method,
32
32
  url: options.url,
33
33
  json: options.json || true,
@@ -44,15 +44,16 @@ async function callLimeApi(nodeContext, options) {
44
44
  };
45
45
  }
46
46
  catch (error) {
47
- const errorBody = (_c = (_b = error === null || error === void 0 ? void 0 : error.cause) === null || _b === void 0 ? void 0 : _b.error) !== null && _c !== void 0 ? _c : (_d = error === null || error === void 0 ? void 0 : error.cause) === null || _d === void 0 ? void 0 : _d.body;
47
+ const apiBody = (_b = error.context) === null || _b === void 0 ? void 0 : _b.data;
48
48
  const errorContext = {
49
- message: error instanceof Error ? error.message : String(error),
50
- status: (_e = error === null || error === void 0 ? void 0 : error.cause) === null || _e === void 0 ? void 0 : _e.status,
51
- ...(errorBody != null && { error: errorBody }),
49
+ message: error.description
50
+ ? `${error.message}. ${error.description}`
51
+ : error.message,
52
+ status: (_c = error.httpCode) !== null && _c !== void 0 ? _c : undefined,
52
53
  metadata: {
53
- ...options.requestOptions,
54
54
  ...options.errorMetadata,
55
55
  },
56
+ ...(apiBody != null && { error: apiBody }),
56
57
  };
57
58
  return (0, utils_1.handleWorkflowError)(nodeContext.getNode(), errorContext, true);
58
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commons.js","sourceRoot":"","sources":["../../../../nodes/lime-crm/transport/commons.ts"],"names":[],"mappings":";;AAyBA,gCASC;AAED,gEAQC;AAwDD,kCAwCC;AA5ID,sCAAwD;AAExD,oCAAqE;AAErE,mDAAqD;AAqBrD,SAAgB,UAAU,CACtB,IAAO,EACP,IAAS;IAET,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAgB,0BAA0B,CACtC,QAA4B,EAC5B,IAAS;IAET,OAAO;QACH,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;KACxC,CAAC;AACN,CAAC;AAYD,KAAK,UAAU,UAAU,CAAC,OAA6B;IACnD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,CAC5C,oCAA2B,CAC9B,CAAC;IACF,OAAO,WAAW,CAAC,GAAa,CAAC;AACrC,CAAC;AAuCM,KAAK,UAAU,WAAW,CAC7B,WAAiC,EACjC,OAAyB;;IAEzB,IAAI,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,GACnD,MAAA,OAAO,CAAC,cAAc,mCAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GACV,MAAM,WAAW,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CACpD,WAAW,EACX,oCAA2B,EAC3B;YACI,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,OAAO,EAAE,MAAM,UAAU,CAAC,WAAW,CAAC;YACtC,GAAG,kBAAkB;YACrB,OAAO,EAAE;gBACL,GAAG,IAAA,8BAAgB,EAAC,WAAW,CAAC;gBAChC,GAAG,aAAa;aACnB;SACJ,CACJ,CAAC;QACN,OAAO;YACH,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;SACjB,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,KAAK,mCAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,IAAI,CAAC;QAC5D,MAAM,YAAY,GAAyB;YACvC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/D,MAAM,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,MAAM;YAC5B,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAC9C,QAAQ,EAAE;gBACN,GAAG,OAAO,CAAC,cAAc;gBACzB,GAAG,OAAO,CAAC,aAAa;aACb;SAClB,CAAC;QACF,OAAO,IAAA,2BAAmB,EAAC,WAAW,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"commons.js","sourceRoot":"","sources":["../../../../nodes/lime-crm/transport/commons.ts"],"names":[],"mappings":";;AAyBA,gCASC;AAED,gEAQC;AAwDD,kCAyCC;AA7ID,sCAAwD;AAExD,oCAAqE;AAErE,mDAAqD;AAqBrD,SAAgB,UAAU,CACtB,IAAO,EACP,IAAS;IAET,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAgB,0BAA0B,CACtC,QAA4B,EAC5B,IAAS;IAET,OAAO;QACH,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;KACxC,CAAC;AACN,CAAC;AAYD,KAAK,UAAU,UAAU,CAAC,OAA6B;IACnD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,CAC5C,oCAA2B,CAC9B,CAAC;IACF,OAAO,WAAW,CAAC,GAAa,CAAC;AACrC,CAAC;AAuCM,KAAK,UAAU,WAAW,CAC7B,WAAiC,EACjC,OAAyB;;IAEzB,IAAI,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,GACnD,MAAA,OAAO,CAAC,cAAc,mCAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GACV,MAAM,WAAW,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACxD,WAAW,EACX,oCAA2B,EAC3B;YACI,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,OAAO,EAAE,MAAM,UAAU,CAAC,WAAW,CAAC;YACtC,GAAG,kBAAkB;YACrB,OAAO,EAAE;gBACL,GAAG,IAAA,8BAAgB,EAAC,WAAW,CAAC;gBAChC,GAAG,aAAa;aACnB;SACJ,CACJ,CAAC;QACN,OAAO;YACH,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;SACjB,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,CAAC;QACpC,MAAM,YAAY,GAAyB;YACvC,OAAO,EAAE,KAAK,CAAC,WAAW;gBACtB,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,WAAW,EAAE;gBAC1C,CAAC,CAAC,KAAK,CAAC,OAAO;YACnB,MAAM,EAAE,MAAA,KAAK,CAAC,QAAQ,mCAAI,SAAS;YACnC,QAAQ,EAAE;gBACN,GAAG,OAAO,CAAC,aAAa;aAC3B;YACD,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC7C,CAAC;QACF,OAAO,IAAA,2BAAmB,EAAC,WAAW,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;AACL,CAAC"}
@@ -9,6 +9,7 @@ const credentials_1 = require("../../credentials");
9
9
  const workflow_1 = require("./utils/workflow");
10
10
  const crypto_1 = require("../crypto");
11
11
  const errorHandling_1 = require("../errorHandling");
12
+ const node_crypto_1 = require("node:crypto");
12
13
  const FORMS_OBSERVABLE_WEBHOOK_NAME_PREFIX = 'N8N';
13
14
  class LimeFormsTrigger {
14
15
  constructor() {
@@ -104,17 +105,18 @@ class LimeFormsTrigger {
104
105
  },
105
106
  async create() {
106
107
  var _a, _b, _c;
107
- const credentials = await this.getCredentials(credentials_1.FORMS_API_CREDENTIALS_NAME);
108
+ const webhookData = this.getWorkflowStaticData('node');
109
+ const rawSecret = (0, node_crypto_1.randomBytes)(32).toString('hex');
110
+ webhookData.webhookSecret = (0, crypto_1.encryptSecret)(rawSecret);
108
111
  const data = {
109
112
  name: `${FORMS_OBSERVABLE_WEBHOOK_NAME_PREFIX}: ${this.getNodeParameter('name')}`,
110
113
  observableType: ObservableType_1.ObservableType.FORM,
111
114
  observableId: this.getNodeParameter('formId'),
112
115
  action: ObservableAction_1.ObservableActionType.FORM_SUBMITTED,
113
116
  webhookUrl: this.getNodeWebhookUrl('default'),
114
- secret: credentials.webhookSecret,
117
+ secret: rawSecret,
115
118
  workflowUrl: (0, workflow_1.getWorkflowUrl)(this.getNode(), this.getWorkflow().id),
116
119
  };
117
- const webhookData = this.getWorkflowStaticData('node');
118
120
  try {
119
121
  const response = await new request_1.LimeFormsRequest(this).post('/api/v1/observable-webhooks', data);
120
122
  if (!response.success) {
@@ -127,10 +129,16 @@ class LimeFormsTrigger {
127
129
  }
128
130
  catch (error) {
129
131
  if ((error === null || error === void 0 ? void 0 : error.httpCode) == '409') {
130
- n8n_workflow_1.LoggerProxy.info(`Webhook ${webhookData.name} already exists in Lime Forms, retrieving existing webhook ID`, { errorResponse: (_a = error.context) === null || _a === void 0 ? void 0 : _a.data });
131
- const errorResponse = (_c = (_b = error.context) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.error;
132
- webhookData.id = errorResponse.id;
133
- webhookData.name = errorResponse.name.replace(`${FORMS_OBSERVABLE_WEBHOOK_NAME_PREFIX}: `, '');
132
+ const errorResponse = (_b = (_a = error.context) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.error;
133
+ n8n_workflow_1.LoggerProxy.info(`Webhook ${errorResponse === null || errorResponse === void 0 ? void 0 : errorResponse.name} already exists in Lime Forms, recreating it with a fresh secret`, { errorResponse: (_c = error.context) === null || _c === void 0 ? void 0 : _c.data });
134
+ await new request_1.LimeFormsRequest(this).delete(`/api/v1/observable-webhooks/${errorResponse.id}`);
135
+ const response = await new request_1.LimeFormsRequest(this).post('/api/v1/observable-webhooks', data);
136
+ if (!response.success) {
137
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), {
138
+ message: 'Failed to create webhook in Lime Forms',
139
+ });
140
+ }
141
+ webhookData.id = response.data.id;
134
142
  return true;
135
143
  }
136
144
  throw new n8n_workflow_1.NodeApiError(this.getNode(), {
@@ -151,7 +159,7 @@ class LimeFormsTrigger {
151
159
  });
152
160
  }
153
161
  delete webhookData.id;
154
- delete webhookData.secret;
162
+ delete webhookData.webhookSecret;
155
163
  return true;
156
164
  },
157
165
  },
@@ -165,7 +173,12 @@ class LimeFormsTrigger {
165
173
  if (!('x-signature' in headers)) {
166
174
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No signature header passed. Unable to verify integrity of the data.');
167
175
  }
168
- const webhookSecret = await this.getCredentials(credentials_1.FORMS_API_CREDENTIALS_NAME).then((c) => c.webhookSecret);
176
+ const webhookData = this.getWorkflowStaticData('node');
177
+ const encryptedSecret = webhookData.webhookSecret;
178
+ if (!encryptedSecret) {
179
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Webhook is not registered: missing secret in static data');
180
+ }
181
+ const webhookSecret = (0, crypto_1.decryptSecret)(encryptedSecret);
169
182
  const isValidSignature = (0, crypto_1.verifyHmac)(webhookSecret, Buffer.from(JSON.stringify(body)), ('sha256=' + headers['x-signature']));
170
183
  if (!isValidSignature) {
171
184
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid signature');