mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
refactor: Enable import/order for design-system, workflow and @n8n packages (#10847)
This commit is contained in:
@@ -12,7 +12,6 @@ module.exports = {
|
||||
complexity: 'error',
|
||||
|
||||
// TODO: remove these
|
||||
'import/order': 'off',
|
||||
'@typescript-eslint/no-base-to-string': 'warn',
|
||||
'@typescript-eslint/no-explicit-any': 'warn',
|
||||
'@typescript-eslint/no-redundant-type-constituents': 'warn',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as Logger from './LoggerProxy';
|
||||
import { ApplicationError, type ReportingOptions } from './errors/application.error';
|
||||
import * as Logger from './LoggerProxy';
|
||||
|
||||
interface ErrorReporter {
|
||||
report: (error: Error | string, options?: ReportingOptions) => void;
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
import { DateTime, Duration, Interval } from 'luxon';
|
||||
import * as tmpl from '@n8n_io/riot-tmpl';
|
||||
import { DateTime, Duration, Interval } from 'luxon';
|
||||
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import { ExpressionExtensionError } from './errors/expression-extension.error';
|
||||
import { ExpressionError } from './errors/expression.error';
|
||||
import { evaluateExpression, setErrorHandler } from './ExpressionEvaluatorProxy';
|
||||
import { sanitizer, sanitizerName } from './ExpressionSandboxing';
|
||||
import { extend, extendOptional } from './Extensions';
|
||||
import { extendSyntax } from './Extensions/ExpressionExtension';
|
||||
import { extendedFunctions } from './Extensions/ExtendedFunctions';
|
||||
import { getGlobalState } from './GlobalState';
|
||||
import type {
|
||||
IDataObject,
|
||||
IExecuteData,
|
||||
@@ -15,18 +24,8 @@ import type {
|
||||
NodeParameterValueType,
|
||||
WorkflowExecuteMode,
|
||||
} from './Interfaces';
|
||||
import { ExpressionError } from './errors/expression.error';
|
||||
import { ExpressionExtensionError } from './errors/expression-extension.error';
|
||||
import { WorkflowDataProxy } from './WorkflowDataProxy';
|
||||
import type { Workflow } from './Workflow';
|
||||
|
||||
import { extend, extendOptional } from './Extensions';
|
||||
import { extendedFunctions } from './Extensions/ExtendedFunctions';
|
||||
import { extendSyntax } from './Extensions/ExpressionExtension';
|
||||
import { evaluateExpression, setErrorHandler } from './ExpressionEvaluatorProxy';
|
||||
import { getGlobalState } from './GlobalState';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import { sanitizer, sanitizerName } from './ExpressionSandboxing';
|
||||
import { WorkflowDataProxy } from './WorkflowDataProxy';
|
||||
|
||||
const IS_FRONTEND_IN_DEV_MODE =
|
||||
typeof process === 'object' &&
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import * as tmpl from '@n8n_io/riot-tmpl';
|
||||
import type { ReturnValue, TmplDifference } from '@n8n/tournament';
|
||||
import { Tournament } from '@n8n/tournament';
|
||||
import * as tmpl from '@n8n_io/riot-tmpl';
|
||||
|
||||
import { PrototypeSanitizer } from './ExpressionSandboxing';
|
||||
import type { ExpressionEvaluatorType } from './Interfaces';
|
||||
import * as LoggerProxy from './LoggerProxy';
|
||||
import { PrototypeSanitizer } from './ExpressionSandboxing';
|
||||
|
||||
type Evaluator = (expr: string, data: unknown) => tmpl.ReturnValue;
|
||||
type ErrorHandler = (error: Error) => void;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type ASTAfterHook, astBuilders as b, astVisit } from '@n8n/tournament';
|
||||
|
||||
import { ExpressionError } from './errors';
|
||||
|
||||
const forbiddenMembers = ['__proto__', 'prototype', 'constructor', 'getPrototypeOf'];
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import deepEqual from 'deep-equal';
|
||||
import uniqWith from 'lodash/uniqWith';
|
||||
|
||||
import { ExpressionError } from '../errors/expression.error';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
import type { Extension, ExtensionMap } from './Extensions';
|
||||
import { compact as oCompact } from './ObjectExtensions';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
import { ExpressionError } from '../errors/expression.error';
|
||||
import { randomInt } from '../utils';
|
||||
|
||||
function first(value: unknown[]): unknown {
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
|
||||
import { DateTime } from 'luxon';
|
||||
import type {
|
||||
DateTimeUnit,
|
||||
@@ -8,9 +6,11 @@ import type {
|
||||
LocaleOptions,
|
||||
WeekdayNumbers,
|
||||
} from 'luxon';
|
||||
|
||||
import type { ExtensionMap } from './Extensions';
|
||||
import { convertToDateTime } from './utils';
|
||||
import { toDateTime as stringToDateTime } from './StringExtensions';
|
||||
import { convertToDateTime } from './utils';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
|
||||
const durationUnits = [
|
||||
'milliseconds',
|
||||
|
||||
@@ -1,23 +1,22 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
import { DateTime } from 'luxon';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
import { parse, visit, types, print } from 'recast';
|
||||
import { getOption } from 'recast/lib/util';
|
||||
import type { ExpressionKind } from 'ast-types/gen/kinds';
|
||||
import type { Config as EsprimaConfig } from 'esprima-next';
|
||||
import { parse as esprimaParse } from 'esprima-next';
|
||||
import { DateTime } from 'luxon';
|
||||
import { parse, visit, types, print } from 'recast';
|
||||
import { getOption } from 'recast/lib/util';
|
||||
|
||||
import { arrayExtensions } from './ArrayExtensions';
|
||||
import { dateExtensions } from './DateExtensions';
|
||||
import { numberExtensions } from './NumberExtensions';
|
||||
import { stringExtensions } from './StringExtensions';
|
||||
import { objectExtensions } from './ObjectExtensions';
|
||||
import type { ExpressionKind } from 'ast-types/gen/kinds';
|
||||
|
||||
import type { ExpressionChunk, ExpressionCode } from './ExpressionParser';
|
||||
import { joinExpression, splitExpression } from './ExpressionParser';
|
||||
import { booleanExtensions } from './BooleanExtensions';
|
||||
import { dateExtensions } from './DateExtensions';
|
||||
import { joinExpression, splitExpression } from './ExpressionParser';
|
||||
import type { ExpressionChunk, ExpressionCode } from './ExpressionParser';
|
||||
import type { ExtensionMap } from './Extensions';
|
||||
import { numberExtensions } from './NumberExtensions';
|
||||
import { objectExtensions } from './ObjectExtensions';
|
||||
import { stringExtensions } from './StringExtensions';
|
||||
import { checkIfValueDefinedOrThrow } from './utils';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
|
||||
const EXPRESSION_EXTENDER = 'extend';
|
||||
const EXPRESSION_EXTENDER_OPTIONAL = 'extendOptional';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ExpressionError } from '../errors/expression.error';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
import { average as aAverage } from './ArrayExtensions';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
import { ExpressionError } from '../errors/expression.error';
|
||||
|
||||
const min = Math.min;
|
||||
const max = Math.max;
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
* @jest-environment jsdom
|
||||
*/
|
||||
import { DateTime } from 'luxon';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
|
||||
import type { ExtensionMap } from './Extensions';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
|
||||
function format(value: number, extraArgs: unknown[]): string {
|
||||
const [locales = 'en-US', config = {}] = extraArgs as [
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
import type { ExtensionMap } from './Extensions';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
|
||||
function isEmpty(value: object): boolean {
|
||||
return Object.keys(value).length === 0;
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import SHA from 'jssha';
|
||||
import MD5 from 'md5';
|
||||
import { toBase64, fromBase64 } from 'js-base64';
|
||||
import { titleCase } from 'title-case';
|
||||
import type { Extension, ExtensionMap } from './Extensions';
|
||||
import { transliterate } from 'transliteration';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
import SHA from 'jssha';
|
||||
import { DateTime } from 'luxon';
|
||||
import { tryToParseDateTime } from '../TypeValidation';
|
||||
import MD5 from 'md5';
|
||||
import { titleCase } from 'title-case';
|
||||
import { transliterate } from 'transliteration';
|
||||
|
||||
import type { Extension, ExtensionMap } from './Extensions';
|
||||
import { toDateTime as numberToDateTime } from './NumberExtensions';
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
import { tryToParseDateTime } from '../TypeValidation';
|
||||
|
||||
export const SupportedHashAlgorithms = [
|
||||
'md5',
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
import { ExpressionExtensionError } from '../errors/expression-extension.error';
|
||||
|
||||
// Utility functions and type guards for expression extensions
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
|
||||
import type { CallbackManager as CallbackManagerLC } from '@langchain/core/callbacks/manager';
|
||||
import type { AxiosProxyConfig } from 'axios';
|
||||
import type * as express from 'express';
|
||||
import type FormData from 'form-data';
|
||||
import type { PathLike } from 'fs';
|
||||
import type { IncomingHttpHeaders } from 'http';
|
||||
import type { SecureContextOptions } from 'tls';
|
||||
import type { Readable } from 'stream';
|
||||
import type { URLSearchParams } from 'url';
|
||||
import type { RequestBodyMatcher } from 'nock';
|
||||
import type { Client as SSHClient } from 'ssh2';
|
||||
import type { Readable } from 'stream';
|
||||
import type { SecureContextOptions } from 'tls';
|
||||
import type { URLSearchParams } from 'url';
|
||||
|
||||
import type { CODE_EXECUTION_MODES, CODE_LANGUAGES, LOG_LEVELS } from './Constants';
|
||||
import type { IDeferredPromise } from './DeferredPromise';
|
||||
import type { ExecutionStatus } from './ExecutionStatus';
|
||||
import type { ExecutionCancelledError } from './errors';
|
||||
import type { ExpressionError } from './errors/expression.error';
|
||||
import type { Workflow } from './Workflow';
|
||||
import type { NodeApiError } from './errors/node-api.error';
|
||||
import type { NodeOperationError } from './errors/node-operation.error';
|
||||
import type { WorkflowActivationError } from './errors/workflow-activation.error';
|
||||
import type { WorkflowOperationError } from './errors/workflow-operation.error';
|
||||
import type { ExecutionStatus } from './ExecutionStatus';
|
||||
import type { Workflow } from './Workflow';
|
||||
import type { WorkflowHooks } from './WorkflowHooks';
|
||||
import type { ExecutionCancelledError } from './errors';
|
||||
import type { NodeOperationError } from './errors/node-operation.error';
|
||||
import type { NodeApiError } from './errors/node-api.error';
|
||||
import type { AxiosProxyConfig } from 'axios';
|
||||
import type { CallbackManager as CallbackManagerLC } from '@langchain/core/callbacks/manager';
|
||||
|
||||
export interface IAdditionalCredentialOptions {
|
||||
oauth2?: IOAuth2Options;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { DateTime } from 'luxon';
|
||||
|
||||
import type { INodeCredentials } from './Interfaces';
|
||||
|
||||
// ===============================
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { stringMethods } from './String.methods';
|
||||
import { arrayMethods } from './Array.methods';
|
||||
import { booleanMethods } from './Boolean.methods';
|
||||
import { numberMethods } from './Number.methods';
|
||||
import { objectMethods } from './Object.Methods';
|
||||
import { stringMethods } from './String.methods';
|
||||
import type { NativeDoc } from '../Extensions/Extensions';
|
||||
import { booleanMethods } from './Boolean.methods';
|
||||
|
||||
const NATIVE_METHODS: NativeDoc[] = [
|
||||
stringMethods,
|
||||
|
||||
@@ -10,6 +10,8 @@ import get from 'lodash/get';
|
||||
import isEqual from 'lodash/isEqual';
|
||||
import uniqBy from 'lodash/uniqBy';
|
||||
|
||||
import { SINGLE_EXECUTION_NODES } from './Constants';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import { NodeConnectionType } from './Interfaces';
|
||||
import type {
|
||||
FieldType,
|
||||
@@ -44,18 +46,15 @@ import type {
|
||||
NodeHint,
|
||||
INodeExecutionData,
|
||||
} from './Interfaces';
|
||||
import { validateFilterParameter } from './NodeParameters/FilterParameter';
|
||||
import {
|
||||
isFilterValue,
|
||||
isResourceMapperValue,
|
||||
isValidResourceLocatorParameterValue,
|
||||
} from './type-guards';
|
||||
import { deepCopy } from './utils';
|
||||
|
||||
import type { Workflow } from './Workflow';
|
||||
import { validateFilterParameter } from './NodeParameters/FilterParameter';
|
||||
import { validateFieldType } from './TypeValidation';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import { SINGLE_EXECUTION_NODES } from './Constants';
|
||||
import { deepCopy } from './utils';
|
||||
import type { Workflow } from './Workflow';
|
||||
|
||||
export const cronNodeOptions: INodePropertyCollection[] = [
|
||||
{
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import type { DateTime } from 'luxon';
|
||||
|
||||
import { ApplicationError } from '../errors/application.error';
|
||||
import type {
|
||||
FilterConditionValue,
|
||||
FilterOperatorType,
|
||||
@@ -8,9 +10,8 @@ import type {
|
||||
Result,
|
||||
ValidationResult,
|
||||
} from '../Interfaces';
|
||||
import { validateFieldType } from '../TypeValidation';
|
||||
import * as LoggerProxy from '../LoggerProxy';
|
||||
import { ApplicationError } from '../errors/application.error';
|
||||
import { validateFieldType } from '../TypeValidation';
|
||||
|
||||
type FilterConditionMetadata = {
|
||||
index: number;
|
||||
|
||||
@@ -11,6 +11,8 @@ import merge from 'lodash/merge';
|
||||
import set from 'lodash/set';
|
||||
import url from 'node:url';
|
||||
|
||||
import { NodeApiError } from './errors/node-api.error';
|
||||
import { NodeOperationError } from './errors/node-operation.error';
|
||||
import type {
|
||||
ICredentialDataDecryptedObject,
|
||||
ICredentialsDecrypted,
|
||||
@@ -40,14 +42,9 @@ import type {
|
||||
JsonObject,
|
||||
CloseFunction,
|
||||
} from './Interfaces';
|
||||
|
||||
import * as NodeHelpers from './NodeHelpers';
|
||||
|
||||
import type { Workflow } from './Workflow';
|
||||
|
||||
import { NodeOperationError } from './errors/node-operation.error';
|
||||
import { NodeApiError } from './errors/node-api.error';
|
||||
import { sleep } from './utils';
|
||||
import type { Workflow } from './Workflow';
|
||||
|
||||
export class RoutingNode {
|
||||
additionalData: IWorkflowExecuteAdditionalData;
|
||||
|
||||
@@ -1,16 +1,3 @@
|
||||
import { getNodeParameters } from './NodeHelpers';
|
||||
import type {
|
||||
IConnection,
|
||||
INode,
|
||||
INodeNameIndex,
|
||||
INodesGraph,
|
||||
INodeGraphItem,
|
||||
INodesGraphResult,
|
||||
IWorkflowBase,
|
||||
INodeTypes,
|
||||
IDataObject,
|
||||
} from './Interfaces';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import {
|
||||
AGENT_LANGCHAIN_NODE_TYPE,
|
||||
AI_TRANSFORM_NODE_TYPE,
|
||||
@@ -26,6 +13,19 @@ import {
|
||||
WEBHOOK_NODE_TYPE,
|
||||
WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE,
|
||||
} from './Constants';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import type {
|
||||
IConnection,
|
||||
INode,
|
||||
INodeNameIndex,
|
||||
INodesGraph,
|
||||
INodeGraphItem,
|
||||
INodesGraphResult,
|
||||
IWorkflowBase,
|
||||
INodeTypes,
|
||||
IDataObject,
|
||||
} from './Interfaces';
|
||||
import { getNodeParameters } from './NodeHelpers';
|
||||
|
||||
export function getNodeTypeForName(workflow: IWorkflowBase, nodeName: string): INode | undefined {
|
||||
return workflow.nodes.find((node) => node.name === nodeName);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import type { FieldType, INodePropertyOptions, ValidationResult } from './Interfaces';
|
||||
import isObject from 'lodash/isObject';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
import { ApplicationError } from './errors';
|
||||
import type { FieldType, INodePropertyOptions, ValidationResult } from './Interfaces';
|
||||
import { jsonParse } from './utils';
|
||||
|
||||
export const tryToParseNumber = (value: unknown): number => {
|
||||
|
||||
@@ -7,6 +7,15 @@
|
||||
|
||||
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
||||
|
||||
import {
|
||||
MANUAL_CHAT_TRIGGER_LANGCHAIN_NODE_TYPE,
|
||||
NODES_WITH_RENAMABLE_CONTENT,
|
||||
STARTING_NODE_TYPES,
|
||||
} from './Constants';
|
||||
import type { IDeferredPromise } from './DeferredPromise';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import { Expression } from './Expression';
|
||||
import { getGlobalState } from './GlobalState';
|
||||
import type {
|
||||
IConnections,
|
||||
IExecuteResponsePromiseData,
|
||||
@@ -45,19 +54,9 @@ import type {
|
||||
INodeOutputConfiguration,
|
||||
} from './Interfaces';
|
||||
import { Node, NodeConnectionType } from './Interfaces';
|
||||
import type { IDeferredPromise } from './DeferredPromise';
|
||||
|
||||
import * as NodeHelpers from './NodeHelpers';
|
||||
import * as ObservableObject from './ObservableObject';
|
||||
import { RoutingNode } from './RoutingNode';
|
||||
import { Expression } from './Expression';
|
||||
import {
|
||||
MANUAL_CHAT_TRIGGER_LANGCHAIN_NODE_TYPE,
|
||||
NODES_WITH_RENAMABLE_CONTENT,
|
||||
STARTING_NODE_TYPES,
|
||||
} from './Constants';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import { getGlobalState } from './GlobalState';
|
||||
|
||||
function dedupe<T>(arr: T[]): T[] {
|
||||
return [...new Set(arr)];
|
||||
|
||||
@@ -2,9 +2,14 @@
|
||||
/* eslint-disable @typescript-eslint/no-this-alias */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
||||
|
||||
import { DateTime, Duration, Interval, Settings } from 'luxon';
|
||||
import * as jmespath from 'jmespath';
|
||||
import { DateTime, Duration, Interval, Settings } from 'luxon';
|
||||
|
||||
import { augmentArray, augmentObject } from './AugmentObject';
|
||||
import { SCRIPTING_NODE_TYPES } from './Constants';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import { ExpressionError, type ExpressionErrorOptions } from './errors/expression.error';
|
||||
import { getGlobalState } from './GlobalState';
|
||||
import {
|
||||
type IDataObject,
|
||||
type IExecuteData,
|
||||
@@ -23,13 +28,8 @@ import {
|
||||
NodeConnectionType,
|
||||
} from './Interfaces';
|
||||
import * as NodeHelpers from './NodeHelpers';
|
||||
import { ExpressionError, type ExpressionErrorOptions } from './errors/expression.error';
|
||||
import type { Workflow } from './Workflow';
|
||||
import { augmentArray, augmentObject } from './AugmentObject';
|
||||
import { deepCopy } from './utils';
|
||||
import { getGlobalState } from './GlobalState';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import { SCRIPTING_NODE_TYPES } from './Constants';
|
||||
import type { Workflow } from './Workflow';
|
||||
import { getPinDataIfManualExecution } from './WorkflowDataProxyHelpers';
|
||||
|
||||
export function isResourceLocatorValue(value: unknown): value is INodeParameterResourceLocator {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { isTraversableObject, jsonParse } from '../../utils';
|
||||
import type { IDataObject, INode, JsonObject } from '../../Interfaces';
|
||||
import { ExecutionBaseError } from './execution-base.error';
|
||||
import type { IDataObject, INode, JsonObject } from '../../Interfaces';
|
||||
import { isTraversableObject, jsonParse } from '../../utils';
|
||||
|
||||
/**
|
||||
* Descriptive messages for common errors.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import callsites from 'callsites';
|
||||
import type { Event } from '@sentry/node';
|
||||
import callsites from 'callsites';
|
||||
|
||||
export type Level = 'warning' | 'error' | 'fatal' | 'info';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { INode } from '../Interfaces';
|
||||
import { ExecutionBaseError } from './abstract/execution-base.error';
|
||||
import type { INode } from '../Interfaces';
|
||||
|
||||
export class CredentialAccessError extends ExecutionBaseError {
|
||||
override readonly description =
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { IDataObject } from '../Interfaces';
|
||||
import { ExecutionBaseError } from './abstract/execution-base.error';
|
||||
import type { IDataObject } from '../Interfaces';
|
||||
|
||||
export interface ExpressionErrorOptions {
|
||||
cause?: Error;
|
||||
|
||||
@@ -1,7 +1,17 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||
|
||||
import { AxiosError } from 'axios';
|
||||
import { parseString } from 'xml2js';
|
||||
|
||||
import { NodeError } from './abstract/node.error';
|
||||
import type { ReportingOptions } from './application.error';
|
||||
import {
|
||||
NO_OP_NODE_TYPE,
|
||||
UNKNOWN_ERROR_DESCRIPTION,
|
||||
UNKNOWN_ERROR_MESSAGE,
|
||||
UNKNOWN_ERROR_MESSAGE_CRED,
|
||||
} from '../Constants';
|
||||
import type {
|
||||
INode,
|
||||
JsonObject,
|
||||
@@ -9,16 +19,7 @@ import type {
|
||||
IStatusCodeMessages,
|
||||
Functionality,
|
||||
} from '../Interfaces';
|
||||
import { NodeError } from './abstract/node.error';
|
||||
import { removeCircularRefs } from '../utils';
|
||||
import type { ReportingOptions } from './application.error';
|
||||
import { AxiosError } from 'axios';
|
||||
import {
|
||||
NO_OP_NODE_TYPE,
|
||||
UNKNOWN_ERROR_DESCRIPTION,
|
||||
UNKNOWN_ERROR_MESSAGE,
|
||||
UNKNOWN_ERROR_MESSAGE_CRED,
|
||||
} from '../Constants';
|
||||
|
||||
export interface NodeOperationErrorOptions {
|
||||
message?: string;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { INode, JsonObject } from '../Interfaces';
|
||||
import type { NodeOperationErrorOptions } from './node-api.error';
|
||||
import { NodeError } from './abstract/node.error';
|
||||
import { ApplicationError } from './application.error';
|
||||
import type { NodeOperationErrorOptions } from './node-api.error';
|
||||
import type { INode, JsonObject } from '../Interfaces';
|
||||
|
||||
/**
|
||||
* Class for instantiating an operational error, e.g. an invalid credentials error.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { INode } from '../Interfaces';
|
||||
import { ApplicationError, type Level } from './application.error';
|
||||
import type { INode } from '../Interfaces';
|
||||
|
||||
interface TriggerCloseErrorOptions extends ErrorOptions {
|
||||
level: Level;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { INode } from '../Interfaces';
|
||||
import { ExecutionBaseError } from './abstract/execution-base.error';
|
||||
import type { ApplicationError } from './application.error';
|
||||
import type { INode } from '../Interfaces';
|
||||
|
||||
interface WorkflowActivationErrorOptions {
|
||||
cause?: Error;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { INode } from '../Interfaces';
|
||||
import { ExecutionBaseError } from './abstract/execution-base.error';
|
||||
import type { INode } from '../Interfaces';
|
||||
|
||||
/**
|
||||
* Class for instantiating an operational error, e.g. a timeout error.
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import FormData from 'form-data';
|
||||
import { merge } from 'lodash';
|
||||
|
||||
import { ALPHABET } from './Constants';
|
||||
import type { BinaryFileType, IDisplayOptions, INodeProperties, JsonObject } from './Interfaces';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
|
||||
import {
|
||||
parse as esprimaParse,
|
||||
Syntax,
|
||||
type Node as SyntaxNode,
|
||||
type ExpressionStatement,
|
||||
} from 'esprima-next';
|
||||
import FormData from 'form-data';
|
||||
import { merge } from 'lodash';
|
||||
|
||||
import { ALPHABET } from './Constants';
|
||||
import { ApplicationError } from './errors/application.error';
|
||||
import type { BinaryFileType, IDisplayOptions, INodeProperties, JsonObject } from './Interfaces';
|
||||
|
||||
const readStreamClasses = new Set(['ReadStream', 'Readable', 'ReadableStream']);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { IDataObject } from '@/Interfaces';
|
||||
import { augmentArray, augmentObject } from '@/AugmentObject';
|
||||
import type { IDataObject } from '@/Interfaces';
|
||||
import { deepCopy } from '@/utils';
|
||||
|
||||
describe('AugmentObject', () => {
|
||||
|
||||
@@ -3,15 +3,17 @@
|
||||
*/
|
||||
|
||||
import { DateTime, Duration, Interval } from 'luxon';
|
||||
import { Workflow } from '@/Workflow';
|
||||
import * as Helpers from './Helpers';
|
||||
import type { ExpressionTestEvaluation, ExpressionTestTransform } from './ExpressionFixtures/base';
|
||||
import { baseFixtures } from './ExpressionFixtures/base';
|
||||
import type { INodeExecutionData } from '@/Interfaces';
|
||||
import { extendSyntax } from '@/Extensions/ExpressionExtension';
|
||||
|
||||
import { ExpressionError } from '@/errors/expression.error';
|
||||
import { setDifferEnabled, setEvaluator } from '@/ExpressionEvaluatorProxy';
|
||||
import { extendSyntax } from '@/Extensions/ExpressionExtension';
|
||||
import type { INodeExecutionData } from '@/Interfaces';
|
||||
import { Workflow } from '@/Workflow';
|
||||
|
||||
import { workflow } from './ExpressionExtensions/Helpers';
|
||||
import { baseFixtures } from './ExpressionFixtures/base';
|
||||
import type { ExpressionTestEvaluation, ExpressionTestTransform } from './ExpressionFixtures/base';
|
||||
import * as Helpers from './Helpers';
|
||||
|
||||
setDifferEnabled(true);
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
* @jest-environment jsdom
|
||||
*/
|
||||
|
||||
import { arrayExtensions } from '../../src/Extensions/ArrayExtensions';
|
||||
import { evaluate } from './Helpers';
|
||||
import { arrayExtensions } from '../../src/Extensions/ArrayExtensions';
|
||||
|
||||
describe('Data Transformation Functions', () => {
|
||||
describe('Array Data Transformation Functions', () => {
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
* @jest-environment jsdom
|
||||
*/
|
||||
|
||||
import { booleanExtensions } from '../../src/Extensions/BooleanExtensions';
|
||||
import { evaluate } from './Helpers';
|
||||
import { booleanExtensions } from '../../src/Extensions/BooleanExtensions';
|
||||
|
||||
describe('Data Transformation Functions', () => {
|
||||
describe('Boolean Data Transformation Functions', () => {
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
*/
|
||||
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
import { getGlobalState } from '@/GlobalState';
|
||||
|
||||
import { evaluate, getLocalISOString } from './Helpers';
|
||||
import { dateExtensions } from '../../src/Extensions/DateExtensions';
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
import { extendTransform, extend } from '@/Extensions';
|
||||
import { joinExpression, splitExpression } from '@/Extensions/ExpressionParser';
|
||||
|
||||
import { evaluate } from './Helpers';
|
||||
import { ExpressionExtensionError } from '../../src/errors/expression-extension.error';
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { IDataObject } from '@/Interfaces';
|
||||
import { Workflow } from '@/Workflow';
|
||||
|
||||
import * as Helpers from '../Helpers';
|
||||
|
||||
export const nodeTypes = Helpers.NodeTypes();
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
*/
|
||||
|
||||
import { numberExtensions } from '@/Extensions/NumberExtensions';
|
||||
|
||||
import { evaluate } from './Helpers';
|
||||
|
||||
describe('Data Transformation Functions', () => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { objectExtensions } from '../../src/Extensions/ObjectExtensions';
|
||||
import { evaluate } from './Helpers';
|
||||
import { objectExtensions } from '../../src/Extensions/ObjectExtensions';
|
||||
|
||||
describe('Data Transformation Functions', () => {
|
||||
describe('Object Data Transformation Functions', () => {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
* @jest-environment jsdom
|
||||
*/
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
import { evaluate } from './Helpers';
|
||||
import { ExpressionExtensionError } from '../../src/errors';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { GenericValue, IDataObject } from '@/Interfaces';
|
||||
import { ExpressionError } from '@/errors/expression.error';
|
||||
import type { GenericValue, IDataObject } from '@/Interfaces';
|
||||
|
||||
interface ExpressionTestBase {
|
||||
type: 'evaluation' | 'transform';
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { PrototypeSanitizer, sanitizer } from '@/ExpressionSandboxing';
|
||||
import { Tournament } from '@n8n/tournament';
|
||||
|
||||
import { PrototypeSanitizer, sanitizer } from '@/ExpressionSandboxing';
|
||||
|
||||
const tournament = new Tournament(
|
||||
(e) => {
|
||||
throw e;
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { arrayContainsValue, executeFilter } from '@/NodeParameters/FilterParameter';
|
||||
import type { FilterConditionValue, FilterValue } from '@/Interfaces';
|
||||
import merge from 'lodash/merge';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
import type { FilterConditionValue, FilterValue } from '@/Interfaces';
|
||||
import { arrayContainsValue, executeFilter } from '@/NodeParameters/FilterParameter';
|
||||
|
||||
type DeepPartial<T> = {
|
||||
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { readFileSync } from 'fs';
|
||||
import path from 'path';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import get from 'lodash/get';
|
||||
import path from 'path';
|
||||
|
||||
import type {
|
||||
IExecuteSingleFunctions,
|
||||
@@ -13,6 +13,7 @@ import type {
|
||||
IRunExecutionData,
|
||||
} from '@/Interfaces';
|
||||
import type { Workflow } from '@/Workflow';
|
||||
|
||||
import { NodeTypes as NodeTypesClass } from './NodeTypes';
|
||||
|
||||
export function getExecuteSingleFunctions(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { INode, JsonObject } from '@/Interfaces';
|
||||
import { NodeOperationError } from '@/errors';
|
||||
import { NodeApiError } from '@/errors/node-api.error';
|
||||
import type { INode, JsonObject } from '@/Interfaces';
|
||||
|
||||
import { UNKNOWN_ERROR_DESCRIPTION, UNKNOWN_ERROR_MESSAGE } from '../src/Constants';
|
||||
|
||||
const node: INode = {
|
||||
|
||||
@@ -6,7 +6,6 @@ import {
|
||||
type INodeType,
|
||||
type INodeTypeDescription,
|
||||
} from '@/Interfaces';
|
||||
import type { Workflow } from '@/Workflow';
|
||||
import {
|
||||
getNodeParameters,
|
||||
getNodeHints,
|
||||
@@ -15,6 +14,7 @@ import {
|
||||
applyDeclarativeNodeOptionParameters,
|
||||
convertNodeToAiTool,
|
||||
} from '@/NodeHelpers';
|
||||
import type { Workflow } from '@/Workflow';
|
||||
|
||||
describe('NodeHelpers', () => {
|
||||
describe('getNodeParameters', () => {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import {
|
||||
NodeConnectionType,
|
||||
type IDataObject,
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import type {
|
||||
INode,
|
||||
INodeExecutionData,
|
||||
@@ -16,14 +18,12 @@ import type {
|
||||
IWorkflowExecuteAdditionalData,
|
||||
IExecuteFunctions,
|
||||
} from '@/Interfaces';
|
||||
import { applyDeclarativeNodeOptionParameters } from '@/NodeHelpers';
|
||||
import { RoutingNode } from '@/RoutingNode';
|
||||
import * as utilsModule from '@/utils';
|
||||
import { Workflow } from '@/Workflow';
|
||||
|
||||
import * as utilsModule from '@/utils';
|
||||
|
||||
import * as Helpers from './Helpers';
|
||||
import { applyDeclarativeNodeOptionParameters } from '@/NodeHelpers';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
const postReceiveFunction1 = async function (
|
||||
this: IExecuteSingleFunctions,
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
import { v5 as uuidv5, v3 as uuidv3, v4 as uuidv4, v1 as uuidv1 } from 'uuid';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { v5 as uuidv5, v3 as uuidv3, v4 as uuidv4, v1 as uuidv1 } from 'uuid';
|
||||
|
||||
import { STICKY_NODE_TYPE } from '@/Constants';
|
||||
import { ApplicationError } from '@/errors';
|
||||
import { NodeConnectionType, type IWorkflowBase } from '@/Interfaces';
|
||||
import * as nodeHelpers from '@/NodeHelpers';
|
||||
import {
|
||||
ANONYMIZATION_CHARACTER as CHAR,
|
||||
generateNodesGraph,
|
||||
getDomainBase,
|
||||
getDomainPath,
|
||||
} from '@/TelemetryHelpers';
|
||||
import { nodeTypes } from './ExpressionExtensions/Helpers';
|
||||
import * as nodeHelpers from '@/NodeHelpers';
|
||||
import { NodeConnectionType, type IWorkflowBase } from '@/Interfaces';
|
||||
import { STICKY_NODE_TYPE } from '@/Constants';
|
||||
import { ApplicationError } from '@/errors';
|
||||
import { randomInt } from '@/utils';
|
||||
|
||||
import { nodeTypes } from './ExpressionExtensions/Helpers';
|
||||
|
||||
describe('getDomainBase should return protocol plus domain', () => {
|
||||
test('in valid URLs', () => {
|
||||
for (const url of validUrls(numericId)) {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
import { getValueDescription, validateFieldType } from '@/TypeValidation';
|
||||
|
||||
describe('Type Validation', () => {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import { NodeConnectionType } from '@/Interfaces';
|
||||
import type {
|
||||
IBinaryKeyData,
|
||||
@@ -18,8 +19,8 @@ import type {
|
||||
IWorkflowExecuteAdditionalData,
|
||||
NodeParameterValueType,
|
||||
} from '@/Interfaces';
|
||||
import { Workflow, type WorkflowParameters } from '@/Workflow';
|
||||
import * as NodeHelpers from '@/NodeHelpers';
|
||||
import { Workflow, type WorkflowParameters } from '@/Workflow';
|
||||
|
||||
process.env.TEST_VARIABLE_1 = 'valueEnvVariable1';
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { ExpressionError } from '@/errors/expression.error';
|
||||
import type {
|
||||
IExecuteData,
|
||||
INode,
|
||||
@@ -8,7 +9,7 @@ import type {
|
||||
} from '@/Interfaces';
|
||||
import { Workflow } from '@/Workflow';
|
||||
import { WorkflowDataProxy } from '@/WorkflowDataProxy';
|
||||
import { ExpressionError } from '@/errors/expression.error';
|
||||
|
||||
import * as Helpers from './Helpers';
|
||||
|
||||
const loadFixture = (fixture: string) => {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { INode } from '@/Interfaces';
|
||||
|
||||
import { NodeApiError } from '@/errors/node-api.error';
|
||||
import { NodeOperationError } from '@/errors/node-operation.error';
|
||||
import type { INode } from '@/Interfaces';
|
||||
|
||||
describe('NodeError', () => {
|
||||
const node = mock<INode>();
|
||||
|
||||
Reference in New Issue
Block a user