@limetech/n8n-nodes-lime 3.11.0-dev.1 → 3.11.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 (126) hide show
  1. package/CHANGELOG.md +37 -2
  2. package/README.md +5 -1
  3. package/credentials/LimeCrmApi.credentials.ts +1 -0
  4. package/credentials/LimeFormsApi.credentials.ts +1 -18
  5. package/credentials/LimeMarketingApi.credentials.ts +92 -0
  6. package/credentials/assets/lime-crm.svg +1 -0
  7. package/credentials/index.ts +1 -0
  8. package/dist/credentials/LimeCrmApi.credentials.d.ts +1 -0
  9. package/dist/credentials/LimeCrmApi.credentials.js +1 -0
  10. package/dist/credentials/LimeCrmApi.credentials.js.map +1 -1
  11. package/dist/credentials/LimeFormsApi.credentials.d.ts +1 -0
  12. package/dist/credentials/LimeFormsApi.credentials.js +1 -15
  13. package/dist/credentials/LimeFormsApi.credentials.js.map +1 -1
  14. package/dist/credentials/LimeMarketingApi.credentials.d.ts +9 -0
  15. package/dist/credentials/LimeMarketingApi.credentials.js +64 -0
  16. package/dist/credentials/LimeMarketingApi.credentials.js.map +1 -0
  17. package/dist/credentials/assets/lime-crm.svg +1 -0
  18. package/dist/credentials/index.d.ts +1 -0
  19. package/dist/credentials/index.js +1 -0
  20. package/dist/credentials/index.js.map +1 -1
  21. package/dist/nodes/index.d.ts +1 -0
  22. package/dist/nodes/index.js +1 -0
  23. package/dist/nodes/index.js.map +1 -1
  24. package/dist/nodes/lime-crm/assets/lime-crm.svg +0 -0
  25. package/dist/nodes/lime-crm/resources/data/index.js +0 -4
  26. package/dist/nodes/lime-crm/resources/data/index.js.map +1 -1
  27. package/dist/nodes/lime-crm/resources/data/operations/index.d.ts +0 -1
  28. package/dist/nodes/lime-crm/resources/data/operations/index.js +1 -2
  29. package/dist/nodes/lime-crm/resources/data/operations/index.js.map +1 -1
  30. package/dist/nodes/lime-crm/transport/commons.d.ts +2 -2
  31. package/dist/nodes/lime-crm/transport/commons.js +8 -7
  32. package/dist/nodes/lime-crm/transport/commons.js.map +1 -1
  33. package/dist/nodes/lime-forms/LimeFormsTrigger.node.js +22 -9
  34. package/dist/nodes/lime-forms/LimeFormsTrigger.node.js.map +1 -1
  35. package/dist/nodes/lime-forms/assets/lime-crm.svg +0 -0
  36. package/dist/nodes/lime-marketing/LimeMarketing.node.d.ts +16 -0
  37. package/dist/nodes/lime-marketing/LimeMarketing.node.js +121 -0
  38. package/dist/nodes/lime-marketing/LimeMarketing.node.js.map +1 -0
  39. package/dist/nodes/lime-marketing/assets/lime-crm.svg +1 -0
  40. package/dist/nodes/lime-marketing/index.d.ts +1 -0
  41. package/dist/nodes/lime-marketing/index.js +18 -0
  42. package/dist/nodes/lime-marketing/index.js.map +1 -0
  43. package/dist/nodes/lime-marketing/methods/getTemplateMergeCodeMappingColumns.d.ts +3 -0
  44. package/dist/nodes/lime-marketing/methods/getTemplateMergeCodeMappingColumns.js +52 -0
  45. package/dist/nodes/lime-marketing/methods/getTemplateMergeCodeMappingColumns.js.map +1 -0
  46. package/dist/nodes/lime-marketing/methods/getTemplates.d.ts +2 -0
  47. package/dist/nodes/lime-marketing/methods/getTemplates.js +24 -0
  48. package/dist/nodes/lime-marketing/methods/getTemplates.js.map +1 -0
  49. package/dist/nodes/lime-marketing/methods/index.d.ts +2 -0
  50. package/dist/nodes/lime-marketing/methods/index.js +8 -0
  51. package/dist/nodes/lime-marketing/methods/index.js.map +1 -0
  52. package/dist/nodes/lime-marketing/models/constants.d.ts +9 -0
  53. package/dist/nodes/lime-marketing/models/constants.js +13 -0
  54. package/dist/nodes/lime-marketing/models/constants.js.map +1 -0
  55. package/dist/nodes/lime-marketing/models/index.d.ts +6 -0
  56. package/dist/nodes/lime-marketing/models/index.js +14 -0
  57. package/dist/nodes/lime-marketing/models/index.js.map +1 -0
  58. package/dist/nodes/lime-marketing/models/operationInputs.d.ts +36 -0
  59. package/dist/nodes/lime-marketing/models/operationInputs.js +3 -0
  60. package/dist/nodes/lime-marketing/models/operationInputs.js.map +1 -0
  61. package/dist/nodes/lime-marketing/models/template.d.ts +10 -0
  62. package/dist/nodes/lime-marketing/models/template.js +3 -0
  63. package/dist/nodes/lime-marketing/models/template.js.map +1 -0
  64. package/dist/nodes/lime-marketing/models/transactionMail.d.ts +60 -0
  65. package/dist/nodes/lime-marketing/models/transactionMail.js +3 -0
  66. package/dist/nodes/lime-marketing/models/transactionMail.js.map +1 -0
  67. package/dist/nodes/lime-marketing/models/transactionSms.d.ts +20 -0
  68. package/dist/nodes/lime-marketing/models/transactionSms.js +3 -0
  69. package/dist/nodes/lime-marketing/models/transactionSms.js.map +1 -0
  70. package/dist/nodes/lime-marketing/models/transportError.d.ts +7 -0
  71. package/dist/nodes/lime-marketing/models/transportError.js +3 -0
  72. package/dist/nodes/lime-marketing/models/transportError.js.map +1 -0
  73. package/dist/nodes/lime-marketing/resources/transactionmail/index.d.ts +6 -0
  74. package/dist/nodes/lime-marketing/resources/transactionmail/index.js +56 -0
  75. package/dist/nodes/lime-marketing/resources/transactionmail/index.js.map +1 -0
  76. package/dist/nodes/lime-marketing/resources/transactionmail/operations/send.operation.d.ts +10 -0
  77. package/dist/nodes/lime-marketing/resources/transactionmail/operations/send.operation.js +543 -0
  78. package/dist/nodes/lime-marketing/resources/transactionmail/operations/send.operation.js.map +1 -0
  79. package/dist/nodes/lime-marketing/resources/transactionsms/index.d.ts +6 -0
  80. package/dist/nodes/lime-marketing/resources/transactionsms/index.js +56 -0
  81. package/dist/nodes/lime-marketing/resources/transactionsms/index.js.map +1 -0
  82. package/dist/nodes/{lime-crm/resources/data/operations/iterateCsv.d.ts → lime-marketing/resources/transactionsms/operations/send.operation.d.ts} +3 -2
  83. package/dist/nodes/lime-marketing/resources/transactionsms/operations/send.operation.js +171 -0
  84. package/dist/nodes/lime-marketing/resources/transactionsms/operations/send.operation.js.map +1 -0
  85. package/dist/nodes/lime-marketing/transport/index.d.ts +7 -0
  86. package/dist/nodes/lime-marketing/transport/index.js +34 -0
  87. package/dist/nodes/lime-marketing/transport/index.js.map +1 -0
  88. package/dist/nodes/lime-marketing/utils/index.d.ts +8 -0
  89. package/dist/nodes/lime-marketing/utils/index.js +62 -0
  90. package/dist/nodes/lime-marketing/utils/index.js.map +1 -0
  91. package/dist/nodes/lime-marketing/utils/mergeCodes.d.ts +26 -0
  92. package/dist/nodes/lime-marketing/utils/mergeCodes.js +85 -0
  93. package/dist/nodes/lime-marketing/utils/mergeCodes.js.map +1 -0
  94. package/dist/package.json +5 -6
  95. package/dist/tsconfig.build.tsbuildinfo +1 -1
  96. package/nodes/index.ts +1 -0
  97. package/nodes/lime-crm/assets/lime-crm.svg +0 -0
  98. package/nodes/lime-crm/resources/data/index.ts +0 -4
  99. package/nodes/lime-crm/resources/data/operations/index.ts +0 -4
  100. package/nodes/lime-crm/transport/commons.ts +9 -8
  101. package/nodes/lime-forms/LimeFormsTrigger.node.ts +51 -19
  102. package/nodes/lime-forms/assets/lime-crm.svg +0 -0
  103. package/nodes/lime-marketing/LimeMarketing.node.ts +180 -0
  104. package/nodes/lime-marketing/assets/lime-crm.svg +1 -0
  105. package/nodes/lime-marketing/index.ts +1 -0
  106. package/nodes/lime-marketing/methods/getTemplateMergeCodeMappingColumns.ts +70 -0
  107. package/nodes/lime-marketing/methods/getTemplates.ts +33 -0
  108. package/nodes/lime-marketing/methods/index.ts +2 -0
  109. package/nodes/lime-marketing/models/constants.ts +12 -0
  110. package/nodes/lime-marketing/models/index.ts +32 -0
  111. package/nodes/lime-marketing/models/operationInputs.ts +40 -0
  112. package/nodes/lime-marketing/models/template.ts +10 -0
  113. package/nodes/lime-marketing/models/transactionMail.ts +65 -0
  114. package/nodes/lime-marketing/models/transactionSms.ts +22 -0
  115. package/nodes/lime-marketing/models/transportError.ts +6 -0
  116. package/nodes/lime-marketing/resources/transactionmail/index.ts +22 -0
  117. package/nodes/lime-marketing/resources/transactionmail/operations/send.operation.ts +664 -0
  118. package/nodes/lime-marketing/resources/transactionsms/index.ts +22 -0
  119. package/nodes/lime-marketing/resources/transactionsms/operations/send.operation.ts +228 -0
  120. package/nodes/lime-marketing/transport/index.ts +68 -0
  121. package/nodes/lime-marketing/utils/index.ts +139 -0
  122. package/nodes/lime-marketing/utils/mergeCodes.ts +121 -0
  123. package/package.json +6 -7
  124. package/dist/nodes/lime-crm/resources/data/operations/iterateCsv.js +0 -225
  125. package/dist/nodes/lime-crm/resources/data/operations/iterateCsv.js.map +0 -1
  126. package/nodes/lime-crm/resources/data/operations/iterateCsv.ts +0 -377
@@ -0,0 +1,56 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.transactionSmsOperations = exports.transactionSmsFields = void 0;
37
+ const models_1 = require("../../models");
38
+ const send = __importStar(require("./operations/send.operation"));
39
+ exports.transactionSmsFields = [
40
+ {
41
+ displayName: 'Operation',
42
+ name: 'operation',
43
+ type: 'options',
44
+ noDataExpression: true,
45
+ displayOptions: {
46
+ show: { resource: [models_1.TRANSACTIONAL_SMS_RESOURCE] },
47
+ },
48
+ options: [send.description],
49
+ default: models_1.SEND_OPERATION,
50
+ },
51
+ ...send.properties,
52
+ ];
53
+ exports.transactionSmsOperations = {
54
+ [models_1.SEND_OPERATION]: send.execute,
55
+ };
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/lime-marketing/resources/transactionsms/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAA0E;AAC1E,kEAAoD;AAEvC,QAAA,oBAAoB,GAAsB;IACnD;QACI,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACZ,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,mCAA0B,CAAC,EAAE;SACnD;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3B,OAAO,EAAE,uBAAc;KAC1B;IACD,GAAG,IAAI,CAAC,UAAU;CACrB,CAAC;AAEW,QAAA,wBAAwB,GAAG;IACpC,CAAC,uBAAc,CAAC,EAAE,IAAI,CAAC,OAAO;CACjC,CAAC"}
@@ -1,4 +1,5 @@
1
- import { IExecuteFunctions, INodeExecutionData, INodeProperties } from 'n8n-workflow';
1
+ import { IExecuteFunctions, INodeProperties } from 'n8n-workflow';
2
+ import { TransactionSmsModel } from '../../../models';
2
3
  export declare const description: {
3
4
  name: string;
4
5
  value: string;
@@ -6,4 +7,4 @@ export declare const description: {
6
7
  action: string;
7
8
  };
8
9
  export declare const properties: INodeProperties[];
9
- export declare function execute(this: IExecuteFunctions, i: number): Promise<INodeExecutionData[]>;
10
+ export declare function execute(this: IExecuteFunctions, i: number, baseURL?: string): Promise<import("../../../..").APIResponse<TransactionSmsModel>>;
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = exports.description = void 0;
4
+ exports.execute = execute;
5
+ const models_1 = require("../../../models");
6
+ const utils_1 = require("../../../utils");
7
+ const mergeCodes_1 = require("../../../utils/mergeCodes");
8
+ const transport_1 = require("../../../transport");
9
+ exports.description = {
10
+ name: 'Send',
11
+ value: models_1.SEND_OPERATION,
12
+ description: 'Send an SMS',
13
+ action: 'Send an SMS',
14
+ };
15
+ exports.properties = [
16
+ {
17
+ displayName: 'From Number',
18
+ name: 'fromNumber',
19
+ type: 'string',
20
+ required: true,
21
+ default: '',
22
+ placeholder: 'e.g. MyCompany',
23
+ description: 'The alphanumeric sender ID shown to the recipient (2–11 characters).',
24
+ displayOptions: {
25
+ show: {
26
+ resource: [models_1.TRANSACTIONAL_SMS_RESOURCE],
27
+ operation: [models_1.SEND_OPERATION],
28
+ },
29
+ },
30
+ },
31
+ {
32
+ displayName: 'Destination Number',
33
+ name: 'destinationNumber',
34
+ type: 'string',
35
+ required: true,
36
+ default: '',
37
+ placeholder: 'e.g. +46701234567',
38
+ description: 'The recipient phone number in international format, starting with "+".',
39
+ displayOptions: {
40
+ show: {
41
+ resource: [models_1.TRANSACTIONAL_SMS_RESOURCE],
42
+ operation: [models_1.SEND_OPERATION],
43
+ },
44
+ },
45
+ },
46
+ {
47
+ displayName: 'Text',
48
+ name: 'text',
49
+ type: 'string',
50
+ typeOptions: { rows: 4 },
51
+ required: true,
52
+ default: '',
53
+ description: 'The SMS body. Use merge codes like {{firstname}} and provide values in Merge Code Mapping below.',
54
+ displayOptions: {
55
+ show: {
56
+ resource: [models_1.TRANSACTIONAL_SMS_RESOURCE],
57
+ operation: [models_1.SEND_OPERATION],
58
+ },
59
+ },
60
+ },
61
+ (0, mergeCodes_1.mergeCodesInputMethodProperty)({
62
+ resource: [models_1.TRANSACTIONAL_SMS_RESOURCE],
63
+ operation: [models_1.SEND_OPERATION],
64
+ }),
65
+ {
66
+ displayName: 'Merge Code Mapping',
67
+ name: 'textContentTagModels',
68
+ type: 'fixedCollection',
69
+ typeOptions: { multipleValues: true },
70
+ placeholder: 'Add Merge Code',
71
+ default: {},
72
+ description: 'Merge codes and values to substitute into the SMS text.',
73
+ displayOptions: {
74
+ show: {
75
+ resource: [models_1.TRANSACTIONAL_SMS_RESOURCE],
76
+ operation: [models_1.SEND_OPERATION],
77
+ mergeCodesInputMethod: [models_1.MERGE_CODES_INPUT_FIELDS],
78
+ },
79
+ },
80
+ options: mergeCodes_1.mergeCodesTagFieldOptions,
81
+ },
82
+ {
83
+ displayName: 'Merge Codes (JSON)',
84
+ name: 'mergeCodesJson',
85
+ type: 'json',
86
+ required: true,
87
+ default: '{\n "{{firstname}}": "John"\n}',
88
+ description: 'Object mapping each merge code (with braces) to its replacement value.',
89
+ typeOptions: {
90
+ alwaysOpenEditWindow: true,
91
+ },
92
+ displayOptions: {
93
+ show: {
94
+ resource: [models_1.TRANSACTIONAL_SMS_RESOURCE],
95
+ operation: [models_1.SEND_OPERATION],
96
+ mergeCodesInputMethod: [models_1.MERGE_CODES_INPUT_JSON],
97
+ },
98
+ },
99
+ },
100
+ {
101
+ displayName: 'Additional Options',
102
+ name: 'additionalOptions',
103
+ type: 'collection',
104
+ placeholder: 'Add Option',
105
+ default: {},
106
+ displayOptions: {
107
+ show: {
108
+ resource: [models_1.TRANSACTIONAL_SMS_RESOURCE],
109
+ operation: [models_1.SEND_OPERATION],
110
+ },
111
+ },
112
+ options: [
113
+ {
114
+ displayName: 'Delivery Timeout Hours',
115
+ name: 'deliveryTimeoutHours',
116
+ type: 'number',
117
+ typeOptions: { minValue: 0, maxValue: 168 },
118
+ default: null,
119
+ description: 'How long (in hours, 0–168) the provider should keep retrying delivery before giving up.',
120
+ },
121
+ {
122
+ displayName: 'Max Parts',
123
+ name: 'maxParts',
124
+ type: 'number',
125
+ typeOptions: { minValue: 1 },
126
+ default: null,
127
+ description: 'Maximum number of SMS segments the message is allowed to split into.',
128
+ },
129
+ {
130
+ displayName: 'Scheduled Send Date',
131
+ name: 'scheduledSendDate',
132
+ type: 'dateTime',
133
+ default: '',
134
+ description: 'When to send the SMS. Leave empty to send immediately.',
135
+ },
136
+ ],
137
+ },
138
+ ];
139
+ function readMergeCodes(ctx, i) {
140
+ const method = ctx.getNodeParameter('mergeCodesInputMethod', i, models_1.MERGE_CODES_INPUT_FIELDS);
141
+ if (method === models_1.MERGE_CODES_INPUT_JSON)
142
+ return (0, mergeCodes_1.parseMergeCodesJson)(ctx, i);
143
+ return (0, mergeCodes_1.readFreeFormTagModels)(ctx.getNodeParameter('textContentTagModels', i, {}));
144
+ }
145
+ async function execute(i, baseURL) {
146
+ const fromNumber = this.getNodeParameter('fromNumber', i);
147
+ const destinationNumber = this.getNodeParameter('destinationNumber', i);
148
+ const text = this.getNodeParameter('text', i);
149
+ (0, utils_1.assertValidSmsFromNumber)(this, fromNumber, 'From Number', i);
150
+ (0, utils_1.assertValidSmsDestinationNumber)(this, destinationNumber, 'Destination Number', i);
151
+ const additional = this.getNodeParameter('additionalOptions', i, {});
152
+ const textContentTagModels = readMergeCodes(this, i);
153
+ const body = {
154
+ Text: text,
155
+ FromNumber: fromNumber,
156
+ DestinationNumber: destinationNumber,
157
+ MaxParts: (0, utils_1.omitEmpty)(additional.maxParts),
158
+ DeliveryTimeoutHours: (0, utils_1.omitEmpty)(additional.deliveryTimeoutHours),
159
+ ScheduledSendDate: (0, utils_1.omitEmpty)(additional.scheduledSendDate),
160
+ TextContentTagModels: textContentTagModels.length > 0 ? textContentTagModels : undefined,
161
+ };
162
+ return (0, transport_1.limeMarketingRequest)(this, {
163
+ method: 'POST',
164
+ url: 'transactionsms/send',
165
+ body,
166
+ json: true,
167
+ errorContext: 'send SMS',
168
+ baseURL,
169
+ });
170
+ }
171
+ //# sourceMappingURL=send.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.operation.js","sourceRoot":"","sources":["../../../../../../nodes/lime-marketing/resources/transactionsms/operations/send.operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { IAllExecuteFunctions, IHttpRequestOptions } from 'n8n-workflow';
2
+ import { APIResponse } from '../../response';
3
+ export type LimeMarketingRequestOptions = Omit<IHttpRequestOptions, 'baseURL'> & {
4
+ errorContext?: string;
5
+ baseURL?: string;
6
+ };
7
+ export declare function limeMarketingRequest<T>(context: IAllExecuteFunctions, options: LimeMarketingRequestOptions): Promise<APIResponse<T>>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.limeMarketingRequest = limeMarketingRequest;
4
+ const models_1 = require("../models");
5
+ const utils_1 = require("../utils");
6
+ const errorHandling_1 = require("../../errorHandling");
7
+ const formatErrorDetails = (details) => (details !== null && details !== void 0 ? details : [])
8
+ .map((d) => [d === null || d === void 0 ? void 0 : d.Message, d === null || d === void 0 ? void 0 : d.Context].filter(Boolean).join(': '))
9
+ .filter(Boolean)
10
+ .join('; ');
11
+ const createErrorMessage = (error) => {
12
+ var _a;
13
+ const data = error.context.data;
14
+ const message = (_a = data.Message) !== null && _a !== void 0 ? _a : '';
15
+ const details = formatErrorDetails(data.ErrorDetails);
16
+ return details ? `${message}: ${details}` : message;
17
+ };
18
+ async function limeMarketingRequest(context, options) {
19
+ const { baseURL: providedBaseURL, ...httpOptions } = options;
20
+ const baseURL = providedBaseURL !== null && providedBaseURL !== void 0 ? providedBaseURL : (await (0, utils_1.getBaseUrl)(context));
21
+ try {
22
+ const data = await context.helpers.httpRequestWithAuthentication.call(context, models_1.LIME_MARKETING_API_CREDENTIAL_KEY, { ...httpOptions, baseURL });
23
+ return {
24
+ success: true,
25
+ data: data,
26
+ };
27
+ }
28
+ catch (error) {
29
+ return (0, errorHandling_1.handleWorkflowError)(context.getNode(), {
30
+ message: createErrorMessage(error),
31
+ }, true);
32
+ }
33
+ }
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/lime-marketing/transport/index.ts"],"names":[],"mappings":";;AA0CA,oDAyBC;AA9DD,sCAA8D;AAC9D,oCAAsC;AACtC,uDAA0D;AAI1D,MAAM,kBAAkB,GAAG,CACvB,OAA+C,EACzC,EAAE,CACR,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;KACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/D,MAAM,CAAC,OAAO,CAAC;KACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,kBAAkB,GAAG,CAAC,KAAmB,EAAU,EAAE;;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAA8B,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACxD,CAAC,CAAC;AAkBK,KAAK,UAAU,oBAAoB,CACtC,OAA6B,EAC7B,OAAoC;IAEpC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAC7D,MAAM,OAAO,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,CAAC,MAAM,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACjE,OAAO,EACP,0CAAiC,EACjC,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAC9B,CAAC;QACF,OAAO;YACH,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;SACb,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,IAAA,mCAAmB,EACtB,OAAO,CAAC,OAAO,EAAE,EACjB;YACI,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC;SACrC,EACD,IAAI,CACP,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { IAllExecuteFunctions, IExecuteFunctions } from 'n8n-workflow';
2
+ import { AttachmentModel } from '../models';
3
+ export declare function assertValidEmail(context: IExecuteFunctions, email: string, fieldLabel: string, itemIndex: number): void;
4
+ export declare function assertValidSmsDestinationNumber(context: IExecuteFunctions, value: string, fieldLabel: string, itemIndex: number): void;
5
+ export declare function assertValidSmsFromNumber(context: IExecuteFunctions, value: string, fieldLabel: string, itemIndex: number): void;
6
+ export declare function getBaseUrl(context: IAllExecuteFunctions): Promise<string>;
7
+ export declare function omitEmpty<T>(value: T | '' | null | undefined): T | undefined;
8
+ export declare function buildAttachment(context: IExecuteFunctions, i: number, binaryPropertyName: string, fileNameOverride?: string): Promise<AttachmentModel>;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertValidEmail = assertValidEmail;
4
+ exports.assertValidSmsDestinationNumber = assertValidSmsDestinationNumber;
5
+ exports.assertValidSmsFromNumber = assertValidSmsFromNumber;
6
+ exports.getBaseUrl = getBaseUrl;
7
+ exports.omitEmpty = omitEmpty;
8
+ exports.buildAttachment = buildAttachment;
9
+ const n8n_workflow_1 = require("n8n-workflow");
10
+ const models_1 = require("../models");
11
+ const LIME_MARKETING_EMAIL_REGEX = /^([a-zA-Z0-9_\-.'+!#$%&?=^{}|~*]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z0-9\-_]+\.)*([a-zA-Z0-9-]+)\.[a-zA-Z0-9]{2,15}))$/;
12
+ function assertValidEmail(context, email, fieldLabel, itemIndex) {
13
+ if (LIME_MARKETING_EMAIL_REGEX.test(email))
14
+ return;
15
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `${fieldLabel} is not a valid email address: ${email}`, {
16
+ itemIndex,
17
+ description: 'Expected a format like name@example.com. Lime Marketing rejects addresses that do not match its email pattern.',
18
+ });
19
+ }
20
+ const LIME_MARKETING_SMS_DESTINATION_REGEX = /^([+]+[1-9]{2})+\d{5,20}$/;
21
+ const LIME_MARKETING_SMS_FROM_NUMBER_REGEX = /^[a-zA-ZåäöÅÄÖæÆøØüÜ_\-\d][a-zA-ZåäöÅÄÖæÆøØüÜ_\-\d\s]{0,9}[a-zA-ZåäöÅÄÖæÆøØüÜ_\-\d]$/;
22
+ function assertValidSmsDestinationNumber(context, value, fieldLabel, itemIndex) {
23
+ if (LIME_MARKETING_SMS_DESTINATION_REGEX.test(value))
24
+ return;
25
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `${fieldLabel} is not a valid phone number: ${value}`, {
26
+ itemIndex,
27
+ description: 'Expected an international format starting with "+", e.g. +46701234567.',
28
+ });
29
+ }
30
+ function assertValidSmsFromNumber(context, value, fieldLabel, itemIndex) {
31
+ if (LIME_MARKETING_SMS_FROM_NUMBER_REGEX.test(value))
32
+ return;
33
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `${fieldLabel} is not a valid sender ID: ${value}`, {
34
+ itemIndex,
35
+ description: 'Expected 2–11 characters: letters, digits, underscores, hyphens, or spaces (spaces not allowed at start/end).',
36
+ });
37
+ }
38
+ async function getBaseUrl(context) {
39
+ const credentials = (await context.getCredentials(models_1.LIME_MARKETING_API_CREDENTIAL_KEY));
40
+ let url = credentials.url;
41
+ while (url.endsWith('/'))
42
+ url = url.slice(0, -1);
43
+ return url;
44
+ }
45
+ function omitEmpty(value) {
46
+ if (value === '' || value === null || value === undefined)
47
+ return undefined;
48
+ return value;
49
+ }
50
+ async function buildAttachment(context, i, binaryPropertyName, fileNameOverride) {
51
+ const binaryData = context.helpers.assertBinaryData(i, binaryPropertyName);
52
+ const fileName = fileNameOverride || binaryData.fileName;
53
+ if (!fileName) {
54
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Attachment "${binaryPropertyName}" is missing a file name. Set one via "File Name Override" or ensure the upstream node sets it.`);
55
+ }
56
+ return {
57
+ FileData: binaryData.data,
58
+ FileNameWithExtension: fileName,
59
+ MimeType: binaryData.mimeType,
60
+ };
61
+ }
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/lime-marketing/utils/index.ts"],"names":[],"mappings":";;AAmBA,4CAgBC;AAkBD,0EAgBC;AAED,4DAgBC;AAOD,gCASC;AAWD,8BAGC;AAED,0CAmBC;AA1ID,+CAIsB;AACtB,sCAA+E;AAU/E,MAAM,0BAA0B,GAE5B,qJAAqJ,CAAC;AAE1J,SAAgB,gBAAgB,CAC5B,OAA0B,EAC1B,KAAa,EACb,UAAkB,EAClB,SAAiB;IAEjB,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO;IACnD,MAAM,IAAI,iCAAkB,CACxB,OAAO,CAAC,OAAO,EAAE,EACjB,GAAG,UAAU,kCAAkC,KAAK,EAAE,EACtD;QACI,SAAS;QACT,WAAW,EACP,gHAAgH;KACvH,CACJ,CAAC;AACN,CAAC;AAOD,MAAM,oCAAoC,GAAG,2BAA2B,CAAC;AAQzE,MAAM,oCAAoC,GACtC,sFAAsF,CAAC;AAE3F,SAAgB,+BAA+B,CAC3C,OAA0B,EAC1B,KAAa,EACb,UAAkB,EAClB,SAAiB;IAEjB,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO;IAC7D,MAAM,IAAI,iCAAkB,CACxB,OAAO,CAAC,OAAO,EAAE,EACjB,GAAG,UAAU,iCAAiC,KAAK,EAAE,EACrD;QACI,SAAS;QACT,WAAW,EACP,wEAAwE;KAC/E,CACJ,CAAC;AACN,CAAC;AAED,SAAgB,wBAAwB,CACpC,OAA0B,EAC1B,KAAa,EACb,UAAkB,EAClB,SAAiB;IAEjB,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO;IAC7D,MAAM,IAAI,iCAAkB,CACxB,OAAO,CAAC,OAAO,EAAE,EACjB,GAAG,UAAU,8BAA8B,KAAK,EAAE,EAClD;QACI,SAAS;QACT,WAAW,EACP,+GAA+G;KACtH,CACJ,CAAC;AACN,CAAC;AAOM,KAAK,UAAU,UAAU,CAC5B,OAA6B;IAE7B,MAAM,WAAW,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,CAC7C,0CAAiC,CACpC,CAAwC,CAAC;IAC1C,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;IAC1B,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC;AACf,CAAC;AAWD,SAAgB,SAAS,CAAI,KAAgC;IACzD,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5E,OAAO,KAAK,CAAC;AACjB,CAAC;AAEM,KAAK,UAAU,eAAe,CACjC,OAA0B,EAC1B,CAAS,EACT,kBAA0B,EAC1B,gBAAyB;IAEzB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,gBAAgB,IAAI,UAAU,CAAC,QAAQ,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,iCAAkB,CACxB,OAAO,CAAC,OAAO,EAAE,EACjB,eAAe,kBAAkB,iGAAiG,CACrI,CAAC;IACN,CAAC;IACD,OAAO;QACH,QAAQ,EAAE,UAAU,CAAC,IAAI;QACzB,qBAAqB,EAAE,QAAQ;QAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAChC,CAAC;AACN,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { IDisplayOptions, IExecuteFunctions, INodeProperties } from 'n8n-workflow';
2
+ import { TagListInput, TagModel } from '../models';
3
+ export declare function parseMergeCodesJson(ctx: IExecuteFunctions, i: number): TagModel[];
4
+ export declare function readFreeFormTagModels(input: TagListInput | undefined): TagModel[];
5
+ export declare function mergeCodesInputMethodProperty(displayOptionsShow: NonNullable<IDisplayOptions['show']>): INodeProperties;
6
+ export declare const mergeCodesTagFieldOptions: {
7
+ name: string;
8
+ displayName: string;
9
+ values: ({
10
+ displayName: string;
11
+ name: string;
12
+ type: "string";
13
+ default: string;
14
+ required: boolean;
15
+ placeholder: string;
16
+ description: string;
17
+ } | {
18
+ displayName: string;
19
+ name: string;
20
+ type: "string";
21
+ default: string;
22
+ required?: undefined;
23
+ placeholder?: undefined;
24
+ description?: undefined;
25
+ })[];
26
+ }[];
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeCodesTagFieldOptions = void 0;
4
+ exports.parseMergeCodesJson = parseMergeCodesJson;
5
+ exports.readFreeFormTagModels = readFreeFormTagModels;
6
+ exports.mergeCodesInputMethodProperty = mergeCodesInputMethodProperty;
7
+ const n8n_workflow_1 = require("n8n-workflow");
8
+ const models_1 = require("../models");
9
+ function parseMergeCodesJson(ctx, i) {
10
+ const jsonInput = ctx.getNodeParameter('mergeCodesJson', i);
11
+ let parsed;
12
+ try {
13
+ parsed =
14
+ typeof jsonInput === 'string' ? JSON.parse(jsonInput) : jsonInput;
15
+ }
16
+ catch (error_) {
17
+ const message = error_ instanceof Error ? error_.message : String(error_);
18
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), `Merge Codes (JSON) is not valid JSON: ${message}`, {
19
+ itemIndex: i,
20
+ description: 'Enter a valid JSON object, for example: { "{{firstname}}": "John" }',
21
+ });
22
+ }
23
+ if (parsed === null ||
24
+ typeof parsed !== 'object' ||
25
+ Array.isArray(parsed)) {
26
+ throw new n8n_workflow_1.NodeOperationError(ctx.getNode(), 'Merge Codes (JSON) must be a JSON object of { mergeCode: value } pairs.', {
27
+ itemIndex: i,
28
+ description: 'Example: { "{{firstname}}": "John", "{{custom}}": "value" }',
29
+ });
30
+ }
31
+ return Object.entries(parsed).map(([Name, Value]) => ({
32
+ Name,
33
+ Value: Value === null || Value === undefined ? '' : String(Value),
34
+ }));
35
+ }
36
+ function readFreeFormTagModels(input) {
37
+ var _a;
38
+ return ((_a = input === null || input === void 0 ? void 0 : input.tag) !== null && _a !== void 0 ? _a : []).map((t) => ({ Name: t.name, Value: t.value }));
39
+ }
40
+ function mergeCodesInputMethodProperty(displayOptionsShow) {
41
+ return {
42
+ displayName: 'Merge Codes Input Method',
43
+ name: 'mergeCodesInputMethod',
44
+ type: 'options',
45
+ options: [
46
+ {
47
+ name: 'Form',
48
+ value: models_1.MERGE_CODES_INPUT_FIELDS,
49
+ description: 'Provide merge codes and values using the UI',
50
+ },
51
+ {
52
+ name: 'JSON Object',
53
+ value: models_1.MERGE_CODES_INPUT_JSON,
54
+ description: 'Provide merge codes and values as a JSON object',
55
+ },
56
+ ],
57
+ default: models_1.MERGE_CODES_INPUT_FIELDS,
58
+ description: 'Form: fill in merge codes and values. JSON: provide them as an object.',
59
+ displayOptions: { show: displayOptionsShow },
60
+ };
61
+ }
62
+ exports.mergeCodesTagFieldOptions = [
63
+ {
64
+ name: 'tag',
65
+ displayName: 'Merge Code',
66
+ values: [
67
+ {
68
+ displayName: 'Name',
69
+ name: 'name',
70
+ type: 'string',
71
+ default: '',
72
+ required: true,
73
+ placeholder: 'e.g. {{firstname}}',
74
+ description: 'The full merge code including braces, e.g. {{firstname}}.',
75
+ },
76
+ {
77
+ displayName: 'Value',
78
+ name: 'value',
79
+ type: 'string',
80
+ default: '',
81
+ },
82
+ ],
83
+ },
84
+ ];
85
+ //# sourceMappingURL=mergeCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeCodes.js","sourceRoot":"","sources":["../../../../nodes/lime-marketing/utils/mergeCodes.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "license": "Apache-2.0",
10
10
  "main": "nodes/index.ts",
11
11
  "scripts": {
12
- "build": "tsc -p tsconfig.build.json && copyfiles \"nodes/**/*.svg\" dist",
12
+ "build": "tsc -p tsconfig.build.json && copyfiles \"nodes/**/*.svg\" \"credentials/**/*.svg\" dist",
13
13
  "dev": "tsc --watch",
14
14
  "watch": "tsc --watch",
15
15
  "lint": "eslint --max-warnings=0 .",
@@ -34,12 +34,14 @@
34
34
  "n8nNodesApiVersion": 1,
35
35
  "credentials": [
36
36
  "dist/credentials/LimeCrmApi.credentials.js",
37
- "dist/credentials/LimeFormsApi.credentials.js"
37
+ "dist/credentials/LimeFormsApi.credentials.js",
38
+ "dist/credentials/LimeMarketingApi.credentials.js"
38
39
  ],
39
40
  "nodes": [
40
41
  "dist/nodes/lime-crm/LimeCrmNode.node.js",
41
42
  "dist/nodes/lime-crm/LimeCrmTrigger.node.js",
42
- "dist/nodes/lime-forms/LimeFormsTrigger.node.js"
43
+ "dist/nodes/lime-forms/LimeFormsTrigger.node.js",
44
+ "dist/nodes/lime-marketing/LimeMarketing.node.js"
43
45
  ]
44
46
  },
45
47
  "devDependencies": {
@@ -67,8 +69,5 @@
67
69
  },
68
70
  "publishConfig": {
69
71
  "access": "public"
70
- },
71
- "dependencies": {
72
- "csv-parse": "^7.0.0"
73
72
  }
74
73
  }