n8n-workflow 1.2.0 → 1.3.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/dist/Interfaces.d.ts +5 -0
- package/dist/NodeErrors.d.ts +21 -14
- package/dist/NodeErrors.js +112 -57
- package/dist/NodeErrors.js.map +1 -1
- package/package.json +1 -1
package/dist/Interfaces.d.ts
CHANGED
|
@@ -1548,6 +1548,8 @@ export interface IN8nUISettings {
|
|
|
1548
1548
|
variables: boolean;
|
|
1549
1549
|
sourceControl: boolean;
|
|
1550
1550
|
auditLogs: boolean;
|
|
1551
|
+
showNonProdBanner: boolean;
|
|
1552
|
+
debugInEditor: boolean;
|
|
1551
1553
|
};
|
|
1552
1554
|
hideUsagePage: boolean;
|
|
1553
1555
|
license: {
|
|
@@ -1559,6 +1561,9 @@ export interface IN8nUISettings {
|
|
|
1559
1561
|
banners: {
|
|
1560
1562
|
dismissed: string[];
|
|
1561
1563
|
};
|
|
1564
|
+
ai: {
|
|
1565
|
+
enabled: boolean;
|
|
1566
|
+
};
|
|
1562
1567
|
}
|
|
1563
1568
|
export type Banners = 'V1' | 'TRIAL_OVER' | 'TRIAL';
|
|
1564
1569
|
export {};
|
package/dist/NodeErrors.d.ts
CHANGED
|
@@ -3,6 +3,21 @@ type Severity = 'warning' | 'error';
|
|
|
3
3
|
interface ExecutionBaseErrorOptions {
|
|
4
4
|
cause?: Error | JsonObject;
|
|
5
5
|
}
|
|
6
|
+
interface NodeOperationErrorOptions {
|
|
7
|
+
message?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
runIndex?: number;
|
|
10
|
+
itemIndex?: number;
|
|
11
|
+
severity?: Severity;
|
|
12
|
+
messageMapping?: {
|
|
13
|
+
[key: string]: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
interface NodeApiErrorOptions extends NodeOperationErrorOptions {
|
|
17
|
+
message?: string;
|
|
18
|
+
httpCode?: string;
|
|
19
|
+
parseXml?: boolean;
|
|
20
|
+
}
|
|
6
21
|
export declare abstract class ExecutionBaseError extends Error {
|
|
7
22
|
description: string | null | undefined;
|
|
8
23
|
cause: Error | JsonObject | undefined;
|
|
@@ -17,28 +32,20 @@ export declare abstract class NodeError extends ExecutionBaseError {
|
|
|
17
32
|
severity: Severity;
|
|
18
33
|
constructor(node: INode, error: Error | JsonObject);
|
|
19
34
|
protected findProperty(jsonError: JsonObject, potentialKeys: string[], traversalKeys?: string[]): string | null;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
description
|
|
24
|
-
runIndex?: number;
|
|
25
|
-
itemIndex?: number;
|
|
26
|
-
severity?: Severity;
|
|
35
|
+
protected setDescriptiveErrorMessage(message: string, description: string | undefined | null, code?: string | null, messageMapping?: {
|
|
36
|
+
[key: string]: string;
|
|
37
|
+
}): string[];
|
|
38
|
+
protected updateDescription(message: string, description: string | undefined | null): string;
|
|
27
39
|
}
|
|
28
40
|
export declare class NodeOperationError extends NodeError {
|
|
29
41
|
lineNumber: number | undefined;
|
|
30
42
|
constructor(node: INode, error: Error | string, options?: NodeOperationErrorOptions);
|
|
31
43
|
}
|
|
32
|
-
interface NodeApiErrorOptions extends NodeOperationErrorOptions {
|
|
33
|
-
message?: string;
|
|
34
|
-
httpCode?: string;
|
|
35
|
-
parseXml?: boolean;
|
|
36
|
-
}
|
|
37
44
|
export declare class NodeApiError extends NodeError {
|
|
38
45
|
httpCode: string | null;
|
|
39
|
-
constructor(node: INode, error: JsonObject, { message, description, httpCode, parseXml, runIndex, itemIndex, severity, }?: NodeApiErrorOptions);
|
|
46
|
+
constructor(node: INode, error: JsonObject, { message, description, httpCode, parseXml, runIndex, itemIndex, severity, messageMapping, }?: NodeApiErrorOptions);
|
|
40
47
|
private setDescriptionFromXml;
|
|
41
|
-
private
|
|
48
|
+
private setDefaultStatusCodeMessage;
|
|
42
49
|
}
|
|
43
50
|
export declare class NodeSSLError extends ExecutionBaseError {
|
|
44
51
|
constructor(cause: Error);
|
package/dist/NodeErrors.js
CHANGED
|
@@ -38,6 +38,41 @@ const ERROR_STATUS_PROPERTIES = [
|
|
|
38
38
|
'error_code',
|
|
39
39
|
];
|
|
40
40
|
const ERROR_NESTING_PROPERTIES = ['error', 'err', 'response', 'body', 'data'];
|
|
41
|
+
const COMMON_ERRORS = {
|
|
42
|
+
ECONNREFUSED: 'The service refused the connection - perhaps it is offline',
|
|
43
|
+
ECONNRESET: 'The connection to the server wes closed unexpectedly, perhaps it is offline. You can retry request immidiately or wait and retry later.',
|
|
44
|
+
ENOTFOUND: 'The connection cannot be established, this usually occurs due to an incorrect host(domain) value',
|
|
45
|
+
ETIMEDOUT: "The connection timed out, consider setting 'Retry on Fail' option in the node settings",
|
|
46
|
+
ERRADDRINUSE: 'The port is already occupied by some other application, if possible change the port or kill the application that is using it',
|
|
47
|
+
EADDRNOTAVAIL: 'The address is not available, ensure that you have the right IP address',
|
|
48
|
+
ECONNABORTED: 'The connection was aborted, perhaps the server is offline',
|
|
49
|
+
EHOSTUNREACH: 'The host is unreachable, perhaps the server is offline',
|
|
50
|
+
EAI_AGAIN: 'The DNS server returned an error, perhaps the server is offline',
|
|
51
|
+
ENOENT: 'The file or directory does not exist',
|
|
52
|
+
EISDIR: 'The file path expected but a given path is a directory',
|
|
53
|
+
ENOTDIR: 'The directory path expected but a given path is a file',
|
|
54
|
+
EACCES: 'Forbidden by access permissions, make sure you have the right permissions',
|
|
55
|
+
EEXIST: 'The file or directory already exists',
|
|
56
|
+
EPERM: 'Operation not permitted, make sure you have the right permissions',
|
|
57
|
+
GETADDRINFO: 'The server closed the connection unexpectedly',
|
|
58
|
+
};
|
|
59
|
+
const STATUS_CODE_MESSAGES = {
|
|
60
|
+
'4XX': 'Your request is invalid or could not be processed by the service',
|
|
61
|
+
'400': 'Bad request - please check your parameters',
|
|
62
|
+
'401': 'Authorization failed - please check your credentials',
|
|
63
|
+
'402': 'Payment required - perhaps check your payment details?',
|
|
64
|
+
'403': 'Forbidden - perhaps check your credentials?',
|
|
65
|
+
'404': 'The resource you are requesting could not be found',
|
|
66
|
+
'405': 'Method not allowed - please check you are using the right HTTP method',
|
|
67
|
+
'429': 'The service is receiving too many requests from you! Perhaps take a break?',
|
|
68
|
+
'5XX': 'The service failed to process your request',
|
|
69
|
+
'500': 'The service was not able to process your request',
|
|
70
|
+
'502': 'Bad gateway - the service failed to handle your request',
|
|
71
|
+
'503': 'Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)',
|
|
72
|
+
'504': 'Gateway timed out - perhaps try again later?',
|
|
73
|
+
};
|
|
74
|
+
const UNKNOWN_ERROR_MESSAGE = 'UNKNOWN ERROR - check the detailed error for more information';
|
|
75
|
+
const UNKNOWN_ERROR_MESSAGE_CRED = 'UNKNOWN ERROR';
|
|
41
76
|
class ExecutionBaseError extends Error {
|
|
42
77
|
constructor(message, { cause }) {
|
|
43
78
|
const options = cause instanceof Error ? { cause } : {};
|
|
@@ -117,6 +152,38 @@ class NodeError extends ExecutionBaseError {
|
|
|
117
152
|
}
|
|
118
153
|
return null;
|
|
119
154
|
}
|
|
155
|
+
setDescriptiveErrorMessage(message, description, code, messageMapping) {
|
|
156
|
+
let newMessage = message;
|
|
157
|
+
let newDescription = description;
|
|
158
|
+
if (messageMapping) {
|
|
159
|
+
for (const [mapKey, mapMessage] of Object.entries(messageMapping)) {
|
|
160
|
+
if ((message || '').toUpperCase().includes(mapKey.toUpperCase())) {
|
|
161
|
+
newMessage = mapMessage;
|
|
162
|
+
newDescription = this.updateDescription(message, description);
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (newMessage !== message) {
|
|
167
|
+
return [newMessage, newDescription];
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (code && COMMON_ERRORS[code.toUpperCase()]) {
|
|
171
|
+
newMessage = COMMON_ERRORS[code];
|
|
172
|
+
newDescription = this.updateDescription(message, description);
|
|
173
|
+
return [newMessage, newDescription];
|
|
174
|
+
}
|
|
175
|
+
for (const [errorCode, errorDescriptiveMessage] of Object.entries(COMMON_ERRORS)) {
|
|
176
|
+
if ((message || '').toUpperCase().includes(errorCode.toUpperCase())) {
|
|
177
|
+
newMessage = errorDescriptiveMessage;
|
|
178
|
+
newDescription = this.updateDescription(message, description);
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return [newMessage, newDescription];
|
|
183
|
+
}
|
|
184
|
+
updateDescription(message, description) {
|
|
185
|
+
return `${message}${description ? ` - ${description}` : ''}`;
|
|
186
|
+
}
|
|
120
187
|
}
|
|
121
188
|
exports.NodeError = NodeError;
|
|
122
189
|
class NodeOperationError extends NodeError {
|
|
@@ -132,30 +199,16 @@ class NodeOperationError extends NodeError {
|
|
|
132
199
|
this.description = options.description;
|
|
133
200
|
this.context.runIndex = options.runIndex;
|
|
134
201
|
this.context.itemIndex = options.itemIndex;
|
|
202
|
+
if (this.message === this.description) {
|
|
203
|
+
this.description = undefined;
|
|
204
|
+
}
|
|
205
|
+
[this.message, this.description] = this.setDescriptiveErrorMessage(this.message, this.description, undefined, options.messageMapping);
|
|
135
206
|
}
|
|
136
207
|
}
|
|
137
208
|
exports.NodeOperationError = NodeOperationError;
|
|
138
|
-
const STATUS_CODE_MESSAGES = {
|
|
139
|
-
'4XX': 'Your request is invalid or could not be processed by the service',
|
|
140
|
-
'400': 'Bad request - please check your parameters',
|
|
141
|
-
'401': 'Authorization failed - please check your credentials',
|
|
142
|
-
'402': 'Payment required - perhaps check your payment details?',
|
|
143
|
-
'403': 'Forbidden - perhaps check your credentials?',
|
|
144
|
-
'404': 'The resource you are requesting could not be found',
|
|
145
|
-
'405': 'Method not allowed - please check you are using the right HTTP method',
|
|
146
|
-
'429': 'The service is receiving too many requests from you! Perhaps take a break?',
|
|
147
|
-
'5XX': 'The service failed to process your request',
|
|
148
|
-
'500': 'The service was not able to process your request',
|
|
149
|
-
'502': 'Bad gateway - the service failed to handle your request',
|
|
150
|
-
'503': 'Service unavailable - try again later or consider setting this node to retry automatically (in the node settings)',
|
|
151
|
-
'504': 'Gateway timed out - perhaps try again later?',
|
|
152
|
-
ECONNREFUSED: 'The service refused the connection - perhaps it is offline',
|
|
153
|
-
};
|
|
154
|
-
const UNKNOWN_ERROR_MESSAGE = 'UNKNOWN ERROR - check the detailed error for more information';
|
|
155
|
-
const UNKNOWN_ERROR_MESSAGE_CRED = 'UNKNOWN ERROR';
|
|
156
209
|
class NodeApiError extends NodeError {
|
|
157
|
-
constructor(node, error, { message, description, httpCode, parseXml, runIndex, itemIndex, severity, } = {}) {
|
|
158
|
-
var _a, _b, _c, _d, _e, _f
|
|
210
|
+
constructor(node, error, { message, description, httpCode, parseXml, runIndex, itemIndex, severity, messageMapping, } = {}) {
|
|
211
|
+
var _a, _b, _c, _d, _e, _f;
|
|
159
212
|
super(node, error);
|
|
160
213
|
if (severity)
|
|
161
214
|
this.severity = severity;
|
|
@@ -164,31 +217,14 @@ class NodeApiError extends NodeError {
|
|
|
164
217
|
if (error.error) {
|
|
165
218
|
(0, utils_1.removeCircularRefs)(error.error);
|
|
166
219
|
}
|
|
167
|
-
if (
|
|
168
|
-
this.
|
|
220
|
+
if (!description && (error.description || ((_a = error === null || error === void 0 ? void 0 : error.reason) === null || _a === void 0 ? void 0 : _a.description))) {
|
|
221
|
+
this.description = (error.description ||
|
|
222
|
+
((_b = error === null || error === void 0 ? void 0 : error.reason) === null || _b === void 0 ? void 0 : _b.description));
|
|
169
223
|
}
|
|
170
|
-
if (!
|
|
171
|
-
this.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
!message &&
|
|
175
|
-
this.message &&
|
|
176
|
-
this.message.toUpperCase().includes('ECONNREFUSED')) {
|
|
177
|
-
httpCode = 'ECONNREFUSED';
|
|
178
|
-
const originalMessage = this.message;
|
|
179
|
-
if (!description) {
|
|
180
|
-
this.description = `${originalMessage}; ${(_h = this.description) !== null && _h !== void 0 ? _h : ''}`;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
if (!httpCode &&
|
|
184
|
-
!message &&
|
|
185
|
-
this.message &&
|
|
186
|
-
this.message.toLowerCase().includes('bad gateway')) {
|
|
187
|
-
httpCode = '502';
|
|
188
|
-
const originalMessage = this.message;
|
|
189
|
-
if (!description) {
|
|
190
|
-
this.description = `${originalMessage}; ${(_j = this.description) !== null && _j !== void 0 ? _j : ''}`;
|
|
191
|
-
}
|
|
224
|
+
if (!message && (error.message || ((_c = error === null || error === void 0 ? void 0 : error.reason) === null || _c === void 0 ? void 0 : _c.message) || description)) {
|
|
225
|
+
this.message = (error.message ||
|
|
226
|
+
((_d = error === null || error === void 0 ? void 0 : error.reason) === null || _d === void 0 ? void 0 : _d.message) ||
|
|
227
|
+
description);
|
|
192
228
|
}
|
|
193
229
|
if (error.reason) {
|
|
194
230
|
const reason = error.reason;
|
|
@@ -196,24 +232,37 @@ class NodeApiError extends NodeError {
|
|
|
196
232
|
error = reason.response;
|
|
197
233
|
}
|
|
198
234
|
}
|
|
199
|
-
if (message) {
|
|
200
|
-
this.message = message;
|
|
201
|
-
this.description = description;
|
|
202
|
-
this.httpCode = httpCode !== null && httpCode !== void 0 ? httpCode : null;
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
235
|
if (httpCode) {
|
|
206
236
|
this.httpCode = httpCode;
|
|
207
237
|
}
|
|
208
238
|
else {
|
|
209
|
-
this.httpCode =
|
|
239
|
+
this.httpCode =
|
|
240
|
+
(_e = this.findProperty(error, ERROR_STATUS_PROPERTIES, ERROR_NESTING_PROPERTIES)) !== null && _e !== void 0 ? _e : null;
|
|
210
241
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
this.setDescriptionFromXml(error.error);
|
|
214
|
-
return;
|
|
242
|
+
if (description) {
|
|
243
|
+
this.description = description;
|
|
215
244
|
}
|
|
216
|
-
this.description
|
|
245
|
+
if (!this.description) {
|
|
246
|
+
if (parseXml) {
|
|
247
|
+
this.setDescriptionFromXml(error.error);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
this.description = this.findProperty(error, ERROR_MESSAGE_PROPERTIES, ERROR_NESTING_PROPERTIES);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (message) {
|
|
254
|
+
this.message = message;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
this.setDefaultStatusCodeMessage();
|
|
258
|
+
}
|
|
259
|
+
if (this.message === this.description) {
|
|
260
|
+
this.description = undefined;
|
|
261
|
+
}
|
|
262
|
+
[this.message, this.description] = this.setDescriptiveErrorMessage(this.message, this.description, this.httpCode ||
|
|
263
|
+
(error === null || error === void 0 ? void 0 : error.code) ||
|
|
264
|
+
((_f = error === null || error === void 0 ? void 0 : error.reason) === null || _f === void 0 ? void 0 : _f.code) ||
|
|
265
|
+
undefined, messageMapping);
|
|
217
266
|
if (runIndex !== undefined)
|
|
218
267
|
this.context.runIndex = runIndex;
|
|
219
268
|
if (itemIndex !== undefined)
|
|
@@ -227,21 +276,27 @@ class NodeApiError extends NodeError {
|
|
|
227
276
|
this.description = this.findProperty(result[topLevelKey], ERROR_MESSAGE_PROPERTIES, ['Error'].concat(ERROR_NESTING_PROPERTIES));
|
|
228
277
|
});
|
|
229
278
|
}
|
|
230
|
-
|
|
279
|
+
setDefaultStatusCodeMessage() {
|
|
280
|
+
if (!this.httpCode && this.message && this.message.toLowerCase().includes('bad gateway')) {
|
|
281
|
+
this.httpCode = '502';
|
|
282
|
+
}
|
|
231
283
|
if (!this.httpCode) {
|
|
232
284
|
this.httpCode = null;
|
|
233
285
|
this.message = this.message || this.description || UNKNOWN_ERROR_MESSAGE;
|
|
234
286
|
return;
|
|
235
287
|
}
|
|
236
288
|
if (STATUS_CODE_MESSAGES[this.httpCode]) {
|
|
289
|
+
this.description = this.updateDescription(this.message, this.description);
|
|
237
290
|
this.message = STATUS_CODE_MESSAGES[this.httpCode];
|
|
238
291
|
return;
|
|
239
292
|
}
|
|
240
293
|
switch (this.httpCode.charAt(0)) {
|
|
241
294
|
case '4':
|
|
295
|
+
this.description = this.updateDescription(this.message, this.description);
|
|
242
296
|
this.message = STATUS_CODE_MESSAGES['4XX'];
|
|
243
297
|
break;
|
|
244
298
|
case '5':
|
|
299
|
+
this.description = this.updateDescription(this.message, this.description);
|
|
245
300
|
this.message = STATUS_CODE_MESSAGES['5XX'];
|
|
246
301
|
break;
|
|
247
302
|
default:
|
package/dist/NodeErrors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeErrors.js","sourceRoot":"","sources":["../src/NodeErrors.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"NodeErrors.js","sourceRoot":"","sources":["../src/NodeErrors.ts"],"names":[],"mappings":"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"}
|