first commit
This commit is contained in:
27
node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.d.ts
generated
vendored
Normal file
27
node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.d.ts
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
import { ApplicationError, type ReportingOptions } from '@n8n/errors';
|
||||
import type { Functionality, IDataObject, JsonObject } from '../../interfaces';
|
||||
interface ExecutionBaseErrorOptions extends ReportingOptions {
|
||||
cause?: Error;
|
||||
errorResponse?: JsonObject;
|
||||
}
|
||||
export declare abstract class ExecutionBaseError extends ApplicationError {
|
||||
description: string | null | undefined;
|
||||
cause?: Error;
|
||||
errorResponse?: JsonObject;
|
||||
timestamp: number;
|
||||
context: IDataObject;
|
||||
lineNumber: number | undefined;
|
||||
functionality: Functionality;
|
||||
constructor(message: string, options?: ExecutionBaseErrorOptions);
|
||||
toJSON?(): {
|
||||
message: string;
|
||||
lineNumber: number | undefined;
|
||||
timestamp: number;
|
||||
name: string;
|
||||
description: string | null | undefined;
|
||||
context: IDataObject;
|
||||
cause: Error | undefined;
|
||||
};
|
||||
}
|
||||
export {};
|
||||
//# sourceMappingURL=execution-base.error.d.ts.map
|
||||
1
node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.d.ts.map
generated
vendored
Normal file
1
node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"execution-base.error.d.ts","sourceRoot":"","sources":["../../../../src/errors/abstract/execution-base.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE/E,UAAU,yBAA0B,SAAQ,gBAAgB;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,aAAa,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,8BAAsB,kBAAmB,SAAQ,gBAAgB;IAChE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE9B,KAAK,CAAC,EAAE,KAAK,CAAC;IAEvB,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,WAAW,CAAM;IAE1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B,aAAa,EAAE,aAAa,CAAa;gBAE7B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B;IAgBpE,MAAM,CAAC;;;;;;;;;CAWP"}
|
||||
36
node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.js
generated
vendored
Normal file
36
node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
import { ApplicationError } from '@n8n/errors';
|
||||
export class ExecutionBaseError extends ApplicationError {
|
||||
description;
|
||||
cause;
|
||||
errorResponse;
|
||||
timestamp;
|
||||
context = {};
|
||||
lineNumber;
|
||||
functionality = 'regular';
|
||||
constructor(message, options = {}) {
|
||||
super(message, options);
|
||||
this.name = this.constructor.name;
|
||||
this.timestamp = Date.now();
|
||||
const { cause, errorResponse } = options;
|
||||
if (cause instanceof ExecutionBaseError) {
|
||||
this.context = cause.context;
|
||||
}
|
||||
else if (cause && !(cause instanceof Error)) {
|
||||
this.cause = cause;
|
||||
}
|
||||
if (errorResponse)
|
||||
this.errorResponse = errorResponse;
|
||||
}
|
||||
toJSON() {
|
||||
return {
|
||||
message: this.message,
|
||||
lineNumber: this.lineNumber,
|
||||
timestamp: this.timestamp,
|
||||
name: this.name,
|
||||
description: this.description,
|
||||
context: this.context,
|
||||
cause: this.cause,
|
||||
};
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=execution-base.error.js.map
|
||||
1
node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.js.map
generated
vendored
Normal file
1
node_modules/n8n-workflow/dist/esm/errors/abstract/execution-base.error.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"execution-base.error.js","sourceRoot":"","sources":["../../../../src/errors/abstract/execution-base.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,aAAa,CAAC;AAStE,MAAM,OAAgB,kBAAmB,SAAQ,gBAAgB;IAChE,WAAW,CAA4B;IAE9B,KAAK,CAAS;IAEvB,aAAa,CAAc;IAE3B,SAAS,CAAS;IAElB,OAAO,GAAgB,EAAE,CAAC;IAE1B,UAAU,CAAqB;IAE/B,aAAa,GAAkB,SAAS,CAAC;IAEzC,YAAY,OAAe,EAAE,UAAqC,EAAE;QACnE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE5B,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;QACzC,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,aAAa;YAAE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvD,CAAC;IAED,MAAM;QACL,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC;IACH,CAAC;CACD"}
|
||||
48
node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.d.ts
generated
vendored
Normal file
48
node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.d.ts
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
import { ExecutionBaseError } from './execution-base.error';
|
||||
import type { INode, JsonObject } from '../../interfaces';
|
||||
/**
|
||||
* Base class for specific NodeError-types, with functionality for finding
|
||||
* a value recursively inside an error object.
|
||||
*/
|
||||
export declare abstract class NodeError extends ExecutionBaseError {
|
||||
readonly node: INode;
|
||||
messages: string[];
|
||||
constructor(node: INode, error: Error | JsonObject);
|
||||
/**
|
||||
* Finds property through exploration based on potential keys and traversal keys.
|
||||
* Depth-first approach.
|
||||
*
|
||||
* This method iterates over `potentialKeys` and, if the value at the key is a
|
||||
* truthy value, the type of the value is checked:
|
||||
* (1) if a string or number, the value is returned as a string; or
|
||||
* (2) if an array,
|
||||
* its string or number elements are collected as a long string,
|
||||
* its object elements are traversed recursively (restart this function
|
||||
* with each object as a starting point), or
|
||||
* (3) if it is an object, it traverses the object and nested ones recursively
|
||||
* based on the `potentialKeys` and returns a string if found.
|
||||
*
|
||||
* If nothing found via `potentialKeys` this method iterates over `traversalKeys` and
|
||||
* if the value at the key is a traversable object, it restarts with the object as the
|
||||
* new starting point (recursion).
|
||||
* If nothing found for any of the `traversalKeys`, exploration continues with remaining
|
||||
* `traversalKeys`.
|
||||
*
|
||||
* Otherwise, if all the paths have been exhausted and no value is eligible, `null` is
|
||||
* returned.
|
||||
*
|
||||
*/
|
||||
protected findProperty(jsonError: JsonObject, potentialKeys: string[], traversalKeys?: string[]): string | null;
|
||||
/**
|
||||
* Preserve the original error message before setting the new one
|
||||
*/
|
||||
protected addToMessages(message: string): void;
|
||||
/**
|
||||
* Set descriptive error message if code is provided or if message contains any of the common errors,
|
||||
* update description to include original message plus the description
|
||||
*/
|
||||
protected setDescriptiveErrorMessage(message: string, messages: string[], code?: string | null, messageMapping?: {
|
||||
[key: string]: string;
|
||||
}): [string, string[]];
|
||||
}
|
||||
//# sourceMappingURL=node.error.d.ts.map
|
||||
1
node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.d.ts.map
generated
vendored
Normal file
1
node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"node.error.d.ts","sourceRoot":"","sources":["../../../../src/errors/abstract/node.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAe,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA+BvE;;;GAGG;AACH,8BAAsB,SAAU,SAAQ,kBAAkB;IAIxD,QAAQ,CAAC,IAAI,EAAE,KAAK;IAHrB,QAAQ,EAAE,MAAM,EAAE,CAAM;gBAGd,IAAI,EAAE,KAAK,EACpB,KAAK,EAAE,KAAK,GAAG,UAAU;IAY1B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,YAAY,CACrB,SAAS,EAAE,UAAU,EACrB,aAAa,EAAE,MAAM,EAAE,EACvB,aAAa,GAAE,MAAM,EAAO,GAC1B,MAAM,GAAG,IAAI;IAqDhB;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9C;;;OAGG;IACH,SAAS,CAAC,0BAA0B,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EACpB,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GACxC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAkCrB"}
|
||||
163
node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.js
generated
vendored
Normal file
163
node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.js
generated
vendored
Normal file
@@ -0,0 +1,163 @@
|
||||
import { ExecutionBaseError } from './execution-base.error';
|
||||
import { isTraversableObject, jsonParse } from '../../utils';
|
||||
/**
|
||||
* Descriptive messages for common errors.
|
||||
*/
|
||||
const COMMON_ERRORS = {
|
||||
// nodeJS errors
|
||||
ECONNREFUSED: 'The service refused the connection - perhaps it is offline',
|
||||
ECONNRESET: 'The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later.',
|
||||
ENOTFOUND: 'The connection cannot be established, this usually occurs due to an incorrect host (domain) value',
|
||||
ETIMEDOUT: "The connection timed out, consider setting the 'Retry on Fail' option in the node settings",
|
||||
ERRADDRINUSE: 'The port is already occupied by some other application, if possible change the port or kill the application that is using it',
|
||||
EADDRNOTAVAIL: 'The address is not available, ensure that you have the right IP address',
|
||||
ECONNABORTED: 'The connection was aborted, perhaps the server is offline',
|
||||
EHOSTUNREACH: 'The host is unreachable, perhaps the server is offline',
|
||||
EAI_AGAIN: 'The DNS server returned an error, perhaps the server is offline',
|
||||
ENOENT: 'The file or directory does not exist',
|
||||
EISDIR: 'The file path was expected but the given path is a directory',
|
||||
ENOTDIR: 'The directory path was expected but the given path is a file',
|
||||
EACCES: 'Forbidden by access permissions, make sure you have the right permissions',
|
||||
EEXIST: 'The file or directory already exists',
|
||||
EPERM: 'Operation not permitted, make sure you have the right permissions',
|
||||
// other errors
|
||||
GETADDRINFO: 'The server closed the connection unexpectedly',
|
||||
};
|
||||
/**
|
||||
* Base class for specific NodeError-types, with functionality for finding
|
||||
* a value recursively inside an error object.
|
||||
*/
|
||||
export class NodeError extends ExecutionBaseError {
|
||||
node;
|
||||
messages = [];
|
||||
constructor(node, error) {
|
||||
const isError = error instanceof Error;
|
||||
const message = isError ? error.message : '';
|
||||
const options = isError ? { cause: error } : { errorResponse: error };
|
||||
super(message, options);
|
||||
this.node = node;
|
||||
if (error instanceof NodeError) {
|
||||
this.tags.reWrapped = true;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Finds property through exploration based on potential keys and traversal keys.
|
||||
* Depth-first approach.
|
||||
*
|
||||
* This method iterates over `potentialKeys` and, if the value at the key is a
|
||||
* truthy value, the type of the value is checked:
|
||||
* (1) if a string or number, the value is returned as a string; or
|
||||
* (2) if an array,
|
||||
* its string or number elements are collected as a long string,
|
||||
* its object elements are traversed recursively (restart this function
|
||||
* with each object as a starting point), or
|
||||
* (3) if it is an object, it traverses the object and nested ones recursively
|
||||
* based on the `potentialKeys` and returns a string if found.
|
||||
*
|
||||
* If nothing found via `potentialKeys` this method iterates over `traversalKeys` and
|
||||
* if the value at the key is a traversable object, it restarts with the object as the
|
||||
* new starting point (recursion).
|
||||
* If nothing found for any of the `traversalKeys`, exploration continues with remaining
|
||||
* `traversalKeys`.
|
||||
*
|
||||
* Otherwise, if all the paths have been exhausted and no value is eligible, `null` is
|
||||
* returned.
|
||||
*
|
||||
*/
|
||||
findProperty(jsonError, potentialKeys, traversalKeys = []) {
|
||||
for (const key of potentialKeys) {
|
||||
let value = jsonError[key];
|
||||
if (value) {
|
||||
if (typeof value === 'string') {
|
||||
try {
|
||||
value = jsonParse(value);
|
||||
}
|
||||
catch (error) {
|
||||
return value;
|
||||
}
|
||||
if (typeof value === 'string')
|
||||
return value;
|
||||
}
|
||||
if (typeof value === 'number')
|
||||
return value.toString();
|
||||
if (Array.isArray(value)) {
|
||||
const resolvedErrors = value
|
||||
.map((jsonError) => {
|
||||
if (typeof jsonError === 'string')
|
||||
return jsonError;
|
||||
if (typeof jsonError === 'number')
|
||||
return jsonError.toString();
|
||||
if (isTraversableObject(jsonError)) {
|
||||
return this.findProperty(jsonError, potentialKeys);
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.filter((errorValue) => errorValue !== null);
|
||||
if (resolvedErrors.length === 0) {
|
||||
return null;
|
||||
}
|
||||
return resolvedErrors.join(' | ');
|
||||
}
|
||||
if (isTraversableObject(value)) {
|
||||
const property = this.findProperty(value, potentialKeys);
|
||||
if (property) {
|
||||
return property;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const key of traversalKeys) {
|
||||
const value = jsonError[key];
|
||||
if (isTraversableObject(value)) {
|
||||
const property = this.findProperty(value, potentialKeys, traversalKeys);
|
||||
if (property) {
|
||||
return property;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Preserve the original error message before setting the new one
|
||||
*/
|
||||
addToMessages(message) {
|
||||
if (message && !this.messages.includes(message)) {
|
||||
this.messages.push(message);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Set descriptive error message if code is provided or if message contains any of the common errors,
|
||||
* update description to include original message plus the description
|
||||
*/
|
||||
setDescriptiveErrorMessage(message, messages, code, messageMapping) {
|
||||
let newMessage = message;
|
||||
if (messageMapping) {
|
||||
for (const [mapKey, mapMessage] of Object.entries(messageMapping)) {
|
||||
if ((message || '').toUpperCase().includes(mapKey.toUpperCase())) {
|
||||
newMessage = mapMessage;
|
||||
messages.push(message);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (newMessage !== message) {
|
||||
return [newMessage, messages];
|
||||
}
|
||||
}
|
||||
// if code is provided and it is in the list of common errors set the message and return early
|
||||
if (code && typeof code === 'string' && COMMON_ERRORS[code.toUpperCase()]) {
|
||||
newMessage = COMMON_ERRORS[code];
|
||||
messages.push(message);
|
||||
return [newMessage, messages];
|
||||
}
|
||||
// check if message contains any of the common errors and set the message and description
|
||||
for (const [errorCode, errorDescriptiveMessage] of Object.entries(COMMON_ERRORS)) {
|
||||
if ((message || '').toUpperCase().includes(errorCode.toUpperCase())) {
|
||||
newMessage = errorDescriptiveMessage;
|
||||
messages.push(message);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return [newMessage, messages];
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=node.error.js.map
|
||||
1
node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.js.map
generated
vendored
Normal file
1
node_modules/n8n-workflow/dist/esm/errors/abstract/node.error.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"node.error.js","sourceRoot":"","sources":["../../../../src/errors/abstract/node.error.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user