mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-09 22:24:05 -08:00
refactor: Remove unused lint directives (no-changelog) (#9842)
This commit is contained in:
parent
16d3083af7
commit
44ea4c73eb
|
@ -165,7 +165,7 @@ describe('Data pinning', () => {
|
||||||
ndv.actions.close();
|
ndv.actions.close();
|
||||||
|
|
||||||
workflowPage.actions.addNodeToCanvas(EDIT_FIELDS_SET_NODE_NAME, true, true);
|
workflowPage.actions.addNodeToCanvas(EDIT_FIELDS_SET_NODE_NAME, true, true);
|
||||||
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
||||||
setExpressionOnStringValueInSet(`{{ $('${HTTP_REQUEST_NODE_NAME}').item`);
|
setExpressionOnStringValueInSet(`{{ $('${HTTP_REQUEST_NODE_NAME}').item`);
|
||||||
|
|
||||||
const output = '[Object: {"json": {"http": 123}, "pairedItem": {"item": 0}}]';
|
const output = '[Object: {"json": {"http": 123}, "pairedItem": {"item": 0}}]';
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
||||||
import { WorkflowPage, NDV } from '../pages';
|
import { WorkflowPage, NDV } from '../pages';
|
||||||
|
|
||||||
const wf = new WorkflowPage();
|
const wf = new WorkflowPage();
|
||||||
|
|
|
@ -89,7 +89,7 @@ describe('Current Workflow Executions', () => {
|
||||||
.should('be.visible')
|
.should('be.visible')
|
||||||
.its('0.contentDocument.body') // Access the body of the iframe document
|
.its('0.contentDocument.body') // Access the body of the iframe document
|
||||||
.should('not.be.empty') // Ensure the body is not empty
|
.should('not.be.empty') // Ensure the body is not empty
|
||||||
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
||||||
.then(cy.wrap)
|
.then(cy.wrap)
|
||||||
.find('.el-notification:has(.el-notification--error)')
|
.find('.el-notification:has(.el-notification--error)')
|
||||||
.should('be.visible')
|
.should('be.visible')
|
||||||
|
|
|
@ -36,7 +36,7 @@ describe('ADO-2106 connections should be colored correctly for pinned data in ex
|
||||||
.should('be.visible')
|
.should('be.visible')
|
||||||
.its('0.contentDocument.body')
|
.its('0.contentDocument.body')
|
||||||
.should('not.be.empty')
|
.should('not.be.empty')
|
||||||
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
||||||
.then(cy.wrap)
|
.then(cy.wrap)
|
||||||
.find('.jtk-connector[data-source-node="Webhook"][data-target-node="Set"]')
|
.find('.jtk-connector[data-source-node="Webhook"][data-target-node="Set"]')
|
||||||
.should('have.class', 'success')
|
.should('have.class', 'success')
|
||||||
|
@ -56,7 +56,7 @@ describe('ADO-2106 connections should be colored correctly for pinned data in ex
|
||||||
.should('be.visible')
|
.should('be.visible')
|
||||||
.its('0.contentDocument.body')
|
.its('0.contentDocument.body')
|
||||||
.should('not.be.empty')
|
.should('not.be.empty')
|
||||||
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
||||||
.then(cy.wrap)
|
.then(cy.wrap)
|
||||||
.find('.jtk-connector[data-source-node="Webhook"][data-target-node="Set"]')
|
.find('.jtk-connector[data-source-node="Webhook"][data-target-node="Set"]')
|
||||||
.should('have.class', 'success')
|
.should('have.class', 'success')
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import type { ClientOAuth2, ClientOAuth2Options, ClientOAuth2RequestObject } from './ClientOAuth2';
|
import type { ClientOAuth2, ClientOAuth2Options, ClientOAuth2RequestObject } from './ClientOAuth2';
|
||||||
import { auth, expects, getRequestOptions } from './utils';
|
import { auth, expects, getRequestOptions } from './utils';
|
||||||
import { DEFAULT_HEADERS } from './constants';
|
import { DEFAULT_HEADERS } from './constants';
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import type { Headers } from './types';
|
import type { Headers } from './types';
|
||||||
|
|
||||||
export const DEFAULT_URL_BASE = 'https://example.org/';
|
export const DEFAULT_URL_BASE = 'https://example.org/';
|
||||||
|
|
|
@ -9,6 +9,7 @@ import type {
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
import { NodeConnectionType, NodeOperationError, tryToParseAlphanumericString } from 'n8n-workflow';
|
import { NodeConnectionType, NodeOperationError, tryToParseAlphanumericString } from 'n8n-workflow';
|
||||||
|
|
||||||
|
import { DynamicTool } from '@langchain/core/tools';
|
||||||
import { getConnectionHintNoticeField } from '../../../utils/sharedFields';
|
import { getConnectionHintNoticeField } from '../../../utils/sharedFields';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
@ -31,8 +32,6 @@ import {
|
||||||
|
|
||||||
import type { PlaceholderDefinition, ToolParameter } from './interfaces';
|
import type { PlaceholderDefinition, ToolParameter } from './interfaces';
|
||||||
|
|
||||||
import { DynamicTool } from '@langchain/core/tools';
|
|
||||||
|
|
||||||
export class ToolHttpRequest implements INodeType {
|
export class ToolHttpRequest implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'HTTP Request Tool',
|
displayName: 'HTTP Request Tool',
|
||||||
|
|
|
@ -10,15 +10,6 @@ import { NodeConnectionType, NodeOperationError, jsonParse } from 'n8n-workflow'
|
||||||
|
|
||||||
import { getOAuth2AdditionalParameters } from 'n8n-nodes-base/dist/nodes/HttpRequest/GenericFunctions';
|
import { getOAuth2AdditionalParameters } from 'n8n-nodes-base/dist/nodes/HttpRequest/GenericFunctions';
|
||||||
|
|
||||||
import type {
|
|
||||||
ParameterInputType,
|
|
||||||
ParametersValues,
|
|
||||||
PlaceholderDefinition,
|
|
||||||
ParametersValues as RawParametersValues,
|
|
||||||
SendIn,
|
|
||||||
ToolParameter,
|
|
||||||
} from './interfaces';
|
|
||||||
|
|
||||||
import set from 'lodash/set';
|
import set from 'lodash/set';
|
||||||
import get from 'lodash/get';
|
import get from 'lodash/get';
|
||||||
import unset from 'lodash/unset';
|
import unset from 'lodash/unset';
|
||||||
|
@ -28,6 +19,14 @@ import { convert } from 'html-to-text';
|
||||||
|
|
||||||
import { Readability } from '@mozilla/readability';
|
import { Readability } from '@mozilla/readability';
|
||||||
import { JSDOM } from 'jsdom';
|
import { JSDOM } from 'jsdom';
|
||||||
|
import type {
|
||||||
|
ParameterInputType,
|
||||||
|
ParametersValues,
|
||||||
|
PlaceholderDefinition,
|
||||||
|
ParametersValues as RawParametersValues,
|
||||||
|
SendIn,
|
||||||
|
ToolParameter,
|
||||||
|
} from './interfaces';
|
||||||
|
|
||||||
const genericCredentialRequest = async (ctx: IExecuteFunctions, itemIndex: number) => {
|
const genericCredentialRequest = async (ctx: IExecuteFunctions, itemIndex: number) => {
|
||||||
const genericType = ctx.getNodeParameter('genericAuthType', itemIndex) as string;
|
const genericType = ctx.getNodeParameter('genericAuthType', itemIndex) as string;
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
|
||||||
import { Container } from 'typedi';
|
import { Container } from 'typedi';
|
||||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||||
import type { EntityManager } from '@n8n/typeorm';
|
import type { EntityManager } from '@n8n/typeorm';
|
||||||
|
|
|
@ -24,14 +24,12 @@ export class ExternalHooks {
|
||||||
credentialsRepository: CredentialsRepository,
|
credentialsRepository: CredentialsRepository,
|
||||||
workflowRepository: WorkflowRepository,
|
workflowRepository: WorkflowRepository,
|
||||||
) {
|
) {
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
this.dbCollections = {
|
this.dbCollections = {
|
||||||
User: userRepository,
|
User: userRepository,
|
||||||
Settings: settingsRepository,
|
Settings: settingsRepository,
|
||||||
Credentials: credentialsRepository,
|
Credentials: credentialsRepository,
|
||||||
Workflow: workflowRepository,
|
Workflow: workflowRepository,
|
||||||
};
|
};
|
||||||
/* eslint-enable @typescript-eslint/naming-convention */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async init(): Promise<void> {
|
async init(): Promise<void> {
|
||||||
|
|
|
@ -232,12 +232,10 @@ export interface IExternalHooksFileData {
|
||||||
|
|
||||||
export interface IExternalHooksFunctions {
|
export interface IExternalHooksFunctions {
|
||||||
dbCollections: {
|
dbCollections: {
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
User: UserRepository;
|
User: UserRepository;
|
||||||
Settings: SettingsRepository;
|
Settings: SettingsRepository;
|
||||||
Credentials: CredentialsRepository;
|
Credentials: CredentialsRepository;
|
||||||
Workflow: WorkflowRepository;
|
Workflow: WorkflowRepository;
|
||||||
/* eslint-enable @typescript-eslint/naming-convention */
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
||||||
import type { Entry as LdapUser } from 'ldapts';
|
import type { Entry as LdapUser } from 'ldapts';
|
||||||
import { Filter } from 'ldapts/filters/Filter';
|
import { Filter } from 'ldapts/filters/Filter';
|
||||||
import { Container } from 'typedi';
|
import { Container } from 'typedi';
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { Container } from 'typedi';
|
import { Container } from 'typedi';
|
||||||
import type { Router } from 'express';
|
import type { Router } from 'express';
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
|
|
|
@ -197,7 +197,6 @@ export function encodeWebhookResponse(
|
||||||
): IExecuteResponsePromiseData {
|
): IExecuteResponsePromiseData {
|
||||||
if (typeof response === 'object' && Buffer.isBuffer(response.body)) {
|
if (typeof response === 'object' && Buffer.isBuffer(response.body)) {
|
||||||
response.body = {
|
response.body = {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
'__@N8nEncodedBuffer@__': response.body.toString(BINARY_ENCODING),
|
'__@N8nEncodedBuffer@__': response.body.toString(BINARY_ENCODING),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||||
/* eslint-disable @typescript-eslint/no-use-before-define */
|
/* eslint-disable @typescript-eslint/no-use-before-define */
|
||||||
/* eslint-disable id-denylist */
|
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||||
import { WorkflowExecute } from 'n8n-core';
|
import { WorkflowExecute } from 'n8n-core';
|
||||||
|
|
|
@ -219,7 +219,7 @@ export async function replaceInvalidCredentials(workflow: WorkflowEntity): Promi
|
||||||
credentialsById[nodeCredentialType][nodeCredentials.id];
|
credentialsById[nodeCredentialType][nodeCredentials.id];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* eslint-enable no-await-in-loop */
|
|
||||||
return workflow;
|
return workflow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ export class SecurityAudit extends BaseCommand {
|
||||||
default: RISK_CATEGORIES.join(','),
|
default: RISK_CATEGORIES.join(','),
|
||||||
description: 'Comma-separated list of categories to include in the audit',
|
description: 'Comma-separated list of categories to include in the audit',
|
||||||
}),
|
}),
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
'days-abandoned-workflow': Flags.integer({
|
'days-abandoned-workflow': Flags.integer({
|
||||||
default: config.getEnv('security.audit.daysAbandonedWorkflow'),
|
default: config.getEnv('security.audit.daysAbandonedWorkflow'),
|
||||||
description: 'Days for a workflow to be considered abandoned if not executed',
|
description: 'Days for a workflow to be considered abandoned if not executed',
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
|
|
||||||
import type { BinaryData } from 'n8n-core';
|
import type { BinaryData } from 'n8n-core';
|
||||||
import type { schema } from './schema';
|
import type { schema } from './schema';
|
||||||
import type { RedisOptions } from 'ioredis';
|
import type { RedisOptions } from 'ioredis';
|
||||||
|
|
|
@ -20,11 +20,9 @@ interface OAuth1CredentialData {
|
||||||
}
|
}
|
||||||
|
|
||||||
const algorithmMap = {
|
const algorithmMap = {
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
'HMAC-SHA256': 'sha256',
|
'HMAC-SHA256': 'sha256',
|
||||||
'HMAC-SHA512': 'sha512',
|
'HMAC-SHA512': 'sha512',
|
||||||
'HMAC-SHA1': 'sha1',
|
'HMAC-SHA1': 'sha1',
|
||||||
/* eslint-enable */
|
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
@RestController('/oauth1-credential')
|
@RestController('/oauth1-credential')
|
||||||
|
@ -52,7 +50,7 @@ export class OAuth1CredentialController extends AbstractOAuthController {
|
||||||
secret: oauthCredentials.consumerSecret,
|
secret: oauthCredentials.consumerSecret,
|
||||||
},
|
},
|
||||||
signature_method: signatureMethod,
|
signature_method: signatureMethod,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
hash_function(base, key) {
|
hash_function(base, key) {
|
||||||
const algorithm = algorithmMap[signatureMethod] ?? 'sha1';
|
const algorithm = algorithmMap[signatureMethod] ?? 'sha1';
|
||||||
return createHmac(algorithm, key).update(base).digest('base64');
|
return createHmac(algorithm, key).update(base).digest('base64');
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { AuthIdentity } from './AuthIdentity';
|
import { AuthIdentity } from './AuthIdentity';
|
||||||
import { AuthProviderSyncHistory } from './AuthProviderSyncHistory';
|
import { AuthProviderSyncHistory } from './AuthProviderSyncHistory';
|
||||||
import { AuthUser } from './AuthUser';
|
import { AuthUser } from './AuthUser';
|
||||||
|
|
|
@ -11,7 +11,7 @@ export class MigrateIntegerKeysToString1690000000001 implements IrreversibleMigr
|
||||||
if (databaseType === 'mariadb') {
|
if (databaseType === 'mariadb') {
|
||||||
collation = COLLATION_57;
|
collation = COLLATION_57;
|
||||||
} else {
|
} else {
|
||||||
const dbVersionQuery = (await queryRunner.query('SELECT @@version')) as // eslint-disable-next-line @typescript-eslint/naming-convention
|
const dbVersionQuery = (await queryRunner.query('SELECT @@version')) as
|
||||||
| Array<{ '@@version': string }>
|
| Array<{ '@@version': string }>
|
||||||
| undefined;
|
| undefined;
|
||||||
collation = COLLATION_80;
|
collation = COLLATION_80;
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { registerDecorator } from 'class-validator';
|
import { registerDecorator } from 'class-validator';
|
||||||
|
|
||||||
export function NoXss() {
|
export function NoXss() {
|
||||||
|
|
|
@ -24,7 +24,6 @@ import { type ServiceClass, ShutdownService } from '@/shutdown/Shutdown.service'
|
||||||
export const OnShutdown =
|
export const OnShutdown =
|
||||||
(priority = 100): MethodDecorator =>
|
(priority = 100): MethodDecorator =>
|
||||||
(prototype, propertyKey, descriptor) => {
|
(prototype, propertyKey, descriptor) => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
||||||
const serviceClass = prototype.constructor as ServiceClass;
|
const serviceClass = prototype.constructor as ServiceClass;
|
||||||
const methodName = String(propertyKey);
|
const methodName = String(propertyKey);
|
||||||
// TODO: assert that serviceClass is decorated with @Service
|
// TODO: assert that serviceClass is decorated with @Service
|
||||||
|
|
|
@ -317,7 +317,6 @@ export class SourceControlGitService {
|
||||||
await this.setGitSshCommand();
|
await this.setGitSshCommand();
|
||||||
const params = {};
|
const params = {};
|
||||||
if (options.ffOnly) {
|
if (options.ffOnly) {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
Object.assign(params, { '--ff-only': true });
|
Object.assign(params, { '--ff-only': true });
|
||||||
}
|
}
|
||||||
return await this.git.pull(params);
|
return await this.git.pull(params);
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||||
|
|
||||||
import { MessageEventBusDestination } from './MessageEventBusDestination.ee';
|
import { MessageEventBusDestination } from './MessageEventBusDestination.ee';
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
|
|
||||||
import { isObjectLiteral } from '@/utils';
|
import { isObjectLiteral } from '@/utils';
|
||||||
import { plainToInstance, instanceToPlain } from 'class-transformer';
|
import { plainToInstance, instanceToPlain } from 'class-transformer';
|
||||||
import { validate } from 'class-validator';
|
import { validate } from 'class-validator';
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
|
|
||||||
import { isStringArray } from '@/utils';
|
import { isStringArray } from '@/utils';
|
||||||
import { ApplicationError, jsonParse } from 'n8n-workflow';
|
import { ApplicationError, jsonParse } from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,6 @@ export class InstanceRiskReporter implements RiskReporter {
|
||||||
const { instanceId } = this.instanceSettings;
|
const { instanceId } = this.instanceSettings;
|
||||||
|
|
||||||
const response = await axios.get<n8n.Version[]>(BASE_URL + currentVersionName, {
|
const response = await axios.get<n8n.Version[]>(BASE_URL + currentVersionName, {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
headers: { 'n8n-instance-id': instanceId },
|
headers: { 'n8n-instance-id': instanceId },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,6 @@ export class FrontendService {
|
||||||
this.initSettings();
|
this.initSettings();
|
||||||
|
|
||||||
if (config.getEnv('nodes.communityPackages.enabled')) {
|
if (config.getEnv('nodes.communityPackages.enabled')) {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
void import('@/services/communityPackages.service').then(({ CommunityPackagesService }) => {
|
void import('@/services/communityPackages.service').then(({ CommunityPackagesService }) => {
|
||||||
this.communityPackagesService = Container.get(CommunityPackagesService);
|
this.communityPackagesService = Container.get(CommunityPackagesService);
|
||||||
});
|
});
|
||||||
|
|
|
@ -130,7 +130,6 @@ export function getWorkerCommandReceivedHandler(options: WorkerCommandReceivedHa
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
||||||
`Received unknown command via channel ${COMMAND_REDIS_CHANNEL}: "${message.command}"`,
|
`Received unknown command via channel ${COMMAND_REDIS_CHANNEL}: "${message.command}"`,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -46,7 +46,6 @@ class RedisServiceBase {
|
||||||
|
|
||||||
this.redisClient.on('error', (error) => {
|
this.redisClient.on('error', (error) => {
|
||||||
if (!String(error).includes('ECONNREFUSED')) {
|
if (!String(error).includes('ECONNREFUSED')) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
||||||
this.logger.warn('Error with Redis: ', error);
|
this.logger.warn('Error with Redis: ', error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { Container } from 'typedi';
|
import { Container } from 'typedi';
|
||||||
import type { ServiceProviderInstance } from 'samlify';
|
import type { ServiceProviderInstance } from 'samlify';
|
||||||
import { UrlService } from '@/services/url.service';
|
import { UrlService } from '@/services/url.service';
|
||||||
|
|
|
@ -9,7 +9,6 @@ export declare namespace SamlConfiguration {
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
RelayState?: string;
|
RelayState?: string;
|
||||||
},
|
},
|
||||||
{}
|
{}
|
||||||
|
|
|
@ -29,7 +29,6 @@ beforeEach(async () => {
|
||||||
await testDb.truncate(['User']);
|
await testDb.truncate(['User']);
|
||||||
});
|
});
|
||||||
|
|
||||||
// eslint-disable-next-line n8n-local-rules/no-skipped-tests
|
|
||||||
test('user-management:reset should reset DB to default user state', async () => {
|
test('user-management:reset should reset DB to default user state', async () => {
|
||||||
//
|
//
|
||||||
// ARRANGE
|
// ARRANGE
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
||||||
|
@ -454,7 +454,6 @@ export async function parseRequestObject(requestObject: IRequestOptions) {
|
||||||
// Check support for sendImmediately
|
// Check support for sendImmediately
|
||||||
if (requestObject.auth.bearer !== undefined) {
|
if (requestObject.auth.bearer !== undefined) {
|
||||||
axiosConfig.headers = Object.assign(axiosConfig.headers || {}, {
|
axiosConfig.headers = Object.assign(axiosConfig.headers || {}, {
|
||||||
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
||||||
Authorization: `Bearer ${requestObject.auth.bearer}`,
|
Authorization: `Bearer ${requestObject.auth.bearer}`,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
|
|
||||||
import { createHash } from 'node:crypto';
|
import { createHash } from 'node:crypto';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { Service } from 'typedi';
|
import { Service } from 'typedi';
|
||||||
|
|
|
@ -1087,9 +1087,8 @@ export class WorkflowExecute {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodeSuccessData instanceof NodeExecutionOutput) {
|
if (nodeSuccessData instanceof NodeExecutionOutput) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
||||||
const hints: NodeExecutionHint[] = nodeSuccessData.getHints();
|
const hints: NodeExecutionHint[] = nodeSuccessData.getHints();
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
||||||
executionHints.push(...hints);
|
executionHints.push(...hints);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,9 @@ Range.prototype.getClientRects = vi.fn(() => ({
|
||||||
|
|
||||||
export class IntersectionObserver {
|
export class IntersectionObserver {
|
||||||
root = null;
|
root = null;
|
||||||
|
|
||||||
rootMargin = '';
|
rootMargin = '';
|
||||||
|
|
||||||
thresholds = [];
|
thresholds = [];
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
|
|
|
@ -38,8 +38,8 @@
|
||||||
:message="$locale.baseText('credentialEdit.credentialConfig.accountConnected')"
|
:message="$locale.baseText('credentialEdit.credentialConfig.accountConnected')"
|
||||||
:button-label="$locale.baseText('credentialEdit.credentialConfig.reconnect')"
|
:button-label="$locale.baseText('credentialEdit.credentialConfig.reconnect')"
|
||||||
:button-title="$locale.baseText('credentialEdit.credentialConfig.reconnectOAuth2Credential')"
|
:button-title="$locale.baseText('credentialEdit.credentialConfig.reconnectOAuth2Credential')"
|
||||||
@click="$emit('oauth')"
|
|
||||||
data-test-id="oauth-connect-success-banner"
|
data-test-id="oauth-connect-success-banner"
|
||||||
|
@click="$emit('oauth')"
|
||||||
>
|
>
|
||||||
<template v-if="isGoogleOAuthType" #button>
|
<template v-if="isGoogleOAuthType" #button>
|
||||||
<p
|
<p
|
||||||
|
@ -118,8 +118,8 @@
|
||||||
isOAuthType && requiredPropertiesFilled && !isOAuthConnected && credentialPermissions.update
|
isOAuthType && requiredPropertiesFilled && !isOAuthConnected && credentialPermissions.update
|
||||||
"
|
"
|
||||||
:is-google-o-auth-type="isGoogleOAuthType"
|
:is-google-o-auth-type="isGoogleOAuthType"
|
||||||
@click="$emit('oauth')"
|
|
||||||
data-test-id="oauth-connect-button"
|
data-test-id="oauth-connect-button"
|
||||||
|
@click="$emit('oauth')"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<n8n-text v-if="isMissingCredentials" color="text-base" size="medium">
|
<n8n-text v-if="isMissingCredentials" color="text-base" size="medium">
|
||||||
|
|
|
@ -665,7 +665,7 @@ export default defineComponent({
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
this.credentialName = currentCredentials.name as string;
|
this.credentialName = currentCredentials.name;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.showError(
|
this.showError(
|
||||||
error,
|
error,
|
||||||
|
|
|
@ -48,7 +48,7 @@ async function onUpdateConnected(value: boolean) {
|
||||||
|
|
||||||
if (props.beforeUpdate) {
|
if (props.beforeUpdate) {
|
||||||
const result = await props.beforeUpdate(value);
|
const result = await props.beforeUpdate(value);
|
||||||
if (result === false) {
|
if (!result) {
|
||||||
saving.value = false;
|
saving.value = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,7 +154,7 @@ watch(
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else :class="$style.email">
|
<div v-else :class="$style.email">
|
||||||
<div :class="$style.input" @keyup.enter="send" data-test-id="nps-survey-email">
|
<div :class="$style.input" data-test-id="nps-survey-email" @keyup.enter="send">
|
||||||
<n8n-input
|
<n8n-input
|
||||||
v-model="form.email"
|
v-model="form.email"
|
||||||
:placeholder="YOUR_EMAIL_ADDRESS"
|
:placeholder="YOUR_EMAIL_ADDRESS"
|
||||||
|
|
|
@ -86,7 +86,7 @@ import { toRefs } from '@vueuse/core';
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
reportError: Boolean;
|
reportError: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||||
import { Command } from '@oclif/core';
|
import { Command } from '@oclif/core';
|
||||||
|
|
|
@ -15,7 +15,7 @@ export async function createTemplate(
|
||||||
replaceValues: object,
|
replaceValues: object,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
// Copy the file to then replace the values in it
|
// Copy the file to then replace the values in it
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
||||||
await copyFile(sourceFilePath, destinationFilePath);
|
await copyFile(sourceFilePath, destinationFilePath);
|
||||||
|
|
||||||
// Replace the variables in the template file
|
// Replace the variables in the template file
|
||||||
|
|
|
@ -81,7 +81,7 @@ export class ActiveCampaign implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'ActiveCampaign',
|
displayName: 'ActiveCampaign',
|
||||||
name: 'activeCampaign',
|
name: 'activeCampaign',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: { light: 'file:activeCampaign.svg', dark: 'file:activeCampaign.dark.svg' },
|
icon: { light: 'file:activeCampaign.svg', dark: 'file:activeCampaign.dark.svg' },
|
||||||
group: ['transform'],
|
group: ['transform'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -26,7 +26,7 @@ export class Affinity implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Affinity',
|
displayName: 'Affinity',
|
||||||
name: 'affinity',
|
name: 'affinity',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: { light: 'file:affinity.svg', dark: 'file:affinity.dark.svg' },
|
icon: { light: 'file:affinity.svg', dark: 'file:affinity.dark.svg' },
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -18,7 +18,7 @@ export class Amqp implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'AMQP Sender',
|
displayName: 'AMQP Sender',
|
||||||
name: 'amqp',
|
name: 'amqp',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:amqp.svg',
|
icon: 'file:amqp.svg',
|
||||||
group: ['transform'],
|
group: ['transform'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -14,7 +14,7 @@ export class CircleCi implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'CircleCI',
|
displayName: 'CircleCI',
|
||||||
name: 'circleCi',
|
name: 'circleCi',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: { light: 'file:circleCi.svg', dark: 'file:circleCi.dark.svg' },
|
icon: { light: 'file:circleCi.svg', dark: 'file:circleCi.dark.svg' },
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -23,7 +23,7 @@ export class Cockpit implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Cockpit',
|
displayName: 'Cockpit',
|
||||||
name: 'cockpit',
|
name: 'cockpit',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: { light: 'file:cockpit.svg', dark: 'file:cockpit.dark.svg' },
|
icon: { light: 'file:cockpit.svg', dark: 'file:cockpit.dark.svg' },
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
|
|
||||||
|
|
||||||
import type {
|
import type {
|
||||||
IExecuteFunctions,
|
IExecuteFunctions,
|
||||||
INodeExecutionData,
|
INodeExecutionData,
|
||||||
|
|
|
@ -318,7 +318,7 @@ const embedFields: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Color',
|
displayName: 'Color',
|
||||||
name: 'color',
|
name: 'color',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-param-color-type-unused
|
|
||||||
type: 'color',
|
type: 'color',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Color code of the embed',
|
description: 'Color code of the embed',
|
||||||
|
|
|
@ -13,7 +13,7 @@ export class Drift implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Drift',
|
displayName: 'Drift',
|
||||||
name: 'drift',
|
name: 'drift',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: { light: 'file:drift.svg', dark: 'file:drift.dark.svg' },
|
icon: { light: 'file:drift.svg', dark: 'file:drift.dark.svg' },
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -17,7 +17,7 @@ export class Egoi implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'E-goi',
|
displayName: 'E-goi',
|
||||||
name: 'egoi',
|
name: 'egoi',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:egoi.svg',
|
icon: 'file:egoi.svg',
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -12,7 +12,6 @@ import * as toJson from './actions/toJson.operation';
|
||||||
import * as iCall from './actions/iCall.operation';
|
import * as iCall from './actions/iCall.operation';
|
||||||
|
|
||||||
export class ConvertToFile implements INodeType {
|
export class ConvertToFile implements INodeType {
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-missing-subtitle
|
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Convert to File',
|
displayName: 'Convert to File',
|
||||||
name: 'convertToFile',
|
name: 'convertToFile',
|
||||||
|
|
|
@ -15,7 +15,7 @@ export class Flow implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Flow',
|
displayName: 'Flow',
|
||||||
name: 'flow',
|
name: 'flow',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:flow.svg',
|
icon: 'file:flow.svg',
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
|
|
||||||
import type { INodeProperties } from 'n8n-workflow';
|
import type { INodeProperties } from 'n8n-workflow';
|
||||||
|
|
||||||
export const webhookPath: INodeProperties = {
|
export const webhookPath: INodeProperties = {
|
||||||
|
|
|
@ -74,7 +74,7 @@ export class Freshdesk implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Freshdesk',
|
displayName: 'Freshdesk',
|
||||||
name: 'freshdesk',
|
name: 'freshdesk',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:freshdesk.svg',
|
icon: 'file:freshdesk.svg',
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -16,7 +16,7 @@ export class GoogleTasks implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Google Tasks',
|
displayName: 'Google Tasks',
|
||||||
name: 'googleTasks',
|
name: 'googleTasks',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:googleTasks.svg',
|
icon: 'file:googleTasks.svg',
|
||||||
group: ['input'],
|
group: ['input'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -12,9 +12,9 @@ import set from 'lodash/set';
|
||||||
import isPlainObject from 'lodash/isPlainObject';
|
import isPlainObject from 'lodash/isPlainObject';
|
||||||
|
|
||||||
import FormData from 'form-data';
|
import FormData from 'form-data';
|
||||||
|
import get from 'lodash/get';
|
||||||
import { formatPrivateKey } from '../../utils/utilities';
|
import { formatPrivateKey } from '../../utils/utilities';
|
||||||
import type { HttpSslAuthCredentials } from './interfaces';
|
import type { HttpSslAuthCredentials } from './interfaces';
|
||||||
import get from 'lodash/get';
|
|
||||||
|
|
||||||
export type BodyParameter = {
|
export type BodyParameter = {
|
||||||
name: string;
|
name: string;
|
||||||
|
|
|
@ -14,7 +14,7 @@ export class HumanticAi implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Humantic AI',
|
displayName: 'Humantic AI',
|
||||||
name: 'humanticAi',
|
name: 'humanticAi',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:humanticai.svg',
|
icon: 'file:humanticai.svg',
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -22,7 +22,7 @@ export class IfV1 implements INodeType {
|
||||||
color: '#408000',
|
color: '#408000',
|
||||||
},
|
},
|
||||||
inputs: ['main'],
|
inputs: ['main'],
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
|
|
||||||
outputs: ['main', 'main'],
|
outputs: ['main', 'main'],
|
||||||
outputNames: ['true', 'false'],
|
outputNames: ['true', 'false'],
|
||||||
properties: [
|
properties: [
|
||||||
|
|
|
@ -21,7 +21,7 @@ export class Intercom implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Intercom',
|
displayName: 'Intercom',
|
||||||
name: 'intercom',
|
name: 'intercom',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:intercom.svg',
|
icon: 'file:intercom.svg',
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -16,9 +16,9 @@ import pick from 'lodash/pick';
|
||||||
import set from 'lodash/set';
|
import set from 'lodash/set';
|
||||||
import unset from 'lodash/unset';
|
import unset from 'lodash/unset';
|
||||||
|
|
||||||
import { flattenKeys, shuffleArray, compareItems } from '@utils/utilities';
|
|
||||||
import { sortByCode } from '../V3/helpers/utils';
|
import { sortByCode } from '../V3/helpers/utils';
|
||||||
import * as summarize from './summarize.operation';
|
import * as summarize from './summarize.operation';
|
||||||
|
import { flattenKeys, shuffleArray, compareItems } from '@utils/utilities';
|
||||||
|
|
||||||
export class ItemListsV1 implements INodeType {
|
export class ItemListsV1 implements INodeType {
|
||||||
description: INodeTypeDescription;
|
description: INodeTypeDescription;
|
||||||
|
|
|
@ -17,9 +17,9 @@ import pick from 'lodash/pick';
|
||||||
import set from 'lodash/set';
|
import set from 'lodash/set';
|
||||||
import unset from 'lodash/unset';
|
import unset from 'lodash/unset';
|
||||||
|
|
||||||
import { flattenKeys, shuffleArray, compareItems } from '@utils/utilities';
|
|
||||||
import { sortByCode } from '../V3/helpers/utils';
|
import { sortByCode } from '../V3/helpers/utils';
|
||||||
import * as summarize from './summarize.operation';
|
import * as summarize from './summarize.operation';
|
||||||
|
import { flattenKeys, shuffleArray, compareItems } from '@utils/utilities';
|
||||||
|
|
||||||
export class ItemListsV2 implements INodeType {
|
export class ItemListsV2 implements INodeType {
|
||||||
description: INodeTypeDescription;
|
description: INodeTypeDescription;
|
||||||
|
|
|
@ -6,9 +6,9 @@ import isEqual from 'lodash/isEqual';
|
||||||
import lt from 'lodash/lt';
|
import lt from 'lodash/lt';
|
||||||
import pick from 'lodash/pick';
|
import pick from 'lodash/pick';
|
||||||
|
|
||||||
import { compareItems, flattenKeys, updateDisplayOptions } from '@utils/utilities';
|
|
||||||
import { prepareFieldsArray, typeToNumber } from '../../helpers/utils';
|
import { prepareFieldsArray, typeToNumber } from '../../helpers/utils';
|
||||||
import { disableDotNotationBoolean } from '../common.descriptions';
|
import { disableDotNotationBoolean } from '../common.descriptions';
|
||||||
|
import { compareItems, flattenKeys, updateDisplayOptions } from '@utils/utilities';
|
||||||
|
|
||||||
const properties: INodeProperties[] = [
|
const properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,7 +56,6 @@ export class JiraTrigger implements INodeType {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-credentials-name-unsuffixed
|
|
||||||
name: 'httpQueryAuth',
|
name: 'httpQueryAuth',
|
||||||
displayName: 'Credentials to Authenticate Webhook',
|
displayName: 'Credentials to Authenticate Webhook',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
|
|
||||||
import get from 'lodash/get';
|
import get from 'lodash/get';
|
||||||
|
|
||||||
import type {
|
import type {
|
||||||
|
@ -27,7 +26,7 @@ export class MergeV1 implements INodeType {
|
||||||
name: 'Merge',
|
name: 'Merge',
|
||||||
color: '#00bbcc',
|
color: '#00bbcc',
|
||||||
},
|
},
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
|
|
||||||
inputs: ['main', 'main'],
|
inputs: ['main', 'main'],
|
||||||
outputs: ['main'],
|
outputs: ['main'],
|
||||||
inputNames: ['Input 1', 'Input 2'],
|
inputNames: ['Input 1', 'Input 2'],
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
|
|
||||||
|
|
||||||
import merge from 'lodash/merge';
|
import merge from 'lodash/merge';
|
||||||
|
|
||||||
import type {
|
import type {
|
||||||
|
@ -41,7 +39,7 @@ export class MergeV2 implements INodeType {
|
||||||
defaults: {
|
defaults: {
|
||||||
name: 'Merge',
|
name: 'Merge',
|
||||||
},
|
},
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
|
|
||||||
inputs: ['main', 'main'],
|
inputs: ['main', 'main'],
|
||||||
outputs: ['main'],
|
outputs: ['main'],
|
||||||
inputNames: ['Input 1', 'Input 2'],
|
inputNames: ['Input 1', 'Input 2'],
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import nock from 'nock';
|
import nock from 'nock';
|
||||||
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
|
|
||||||
import type { IHttpRequestMethods } from 'n8n-workflow';
|
import type { IHttpRequestMethods } from 'n8n-workflow';
|
||||||
|
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
|
||||||
|
|
||||||
jest.mock('../../../../v2/transport', () => {
|
jest.mock('../../../../v2/transport', () => {
|
||||||
const originalModule = jest.requireActual('../../../../v2/transport');
|
const originalModule = jest.requireActual('../../../../v2/transport');
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import nock from 'nock';
|
import nock from 'nock';
|
||||||
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
|
|
||||||
import type { IHttpRequestMethods } from 'n8n-workflow';
|
import type { IHttpRequestMethods } from 'n8n-workflow';
|
||||||
|
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
|
||||||
|
|
||||||
jest.mock('../../../../v2/transport', () => {
|
jest.mock('../../../../v2/transport', () => {
|
||||||
const originalModule = jest.requireActual('../../../../v2/transport');
|
const originalModule = jest.requireActual('../../../../v2/transport');
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import nock from 'nock';
|
import nock from 'nock';
|
||||||
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
|
|
||||||
import type { IHttpRequestMethods } from 'n8n-workflow';
|
import type { IHttpRequestMethods } from 'n8n-workflow';
|
||||||
|
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
|
||||||
|
|
||||||
jest.mock('../../../../v2/transport', () => {
|
jest.mock('../../../../v2/transport', () => {
|
||||||
const originalModule = jest.requireActual('../../../../v2/transport');
|
const originalModule = jest.requireActual('../../../../v2/transport');
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import nock from 'nock';
|
import nock from 'nock';
|
||||||
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
|
|
||||||
import type { IHttpRequestMethods } from 'n8n-workflow';
|
import type { IHttpRequestMethods } from 'n8n-workflow';
|
||||||
|
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
|
||||||
|
|
||||||
jest.mock('../../../../v2/transport', () => {
|
jest.mock('../../../../v2/transport', () => {
|
||||||
const originalModule = jest.requireActual('../../../../v2/transport');
|
const originalModule = jest.requireActual('../../../../v2/transport');
|
||||||
|
|
|
@ -114,7 +114,7 @@ export async function microsoftApiRequestAllItemsDelta(
|
||||||
do {
|
do {
|
||||||
responseData = (await microsoftApiRequest.call(this, 'GET', '', {}, {}, uri)) as IDataObject;
|
responseData = (await microsoftApiRequest.call(this, 'GET', '', {}, {}, uri)) as IDataObject;
|
||||||
uri = responseData['@odata.nextLink'] as string;
|
uri = responseData['@odata.nextLink'] as string;
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
||||||
for (const value of responseData.value as IDataObject[]) {
|
for (const value of responseData.value as IDataObject[]) {
|
||||||
if (value.fileSystemInfo as IDataObject) {
|
if (value.fileSystemInfo as IDataObject) {
|
||||||
const updatedTimeStamp = (value.fileSystemInfo as IDataObject)
|
const updatedTimeStamp = (value.fileSystemInfo as IDataObject)
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
|
|
||||||
import type {
|
import type {
|
||||||
IExecuteFunctions,
|
IExecuteFunctions,
|
||||||
INodeType,
|
INodeType,
|
||||||
|
|
|
@ -14,7 +14,7 @@ export class Msg91 implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'MSG91',
|
displayName: 'MSG91',
|
||||||
name: 'msg91',
|
name: 'msg91',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: { light: 'file:msg91.svg', dark: 'file:msg91.dark.svg' },
|
icon: { light: 'file:msg91.svg', dark: 'file:msg91.dark.svg' },
|
||||||
group: ['transform'],
|
group: ['transform'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -21,8 +21,8 @@ import { camelCase, capitalCase, snakeCase } from 'change-case';
|
||||||
import moment from 'moment-timezone';
|
import moment from 'moment-timezone';
|
||||||
|
|
||||||
import { validate as uuidValidate } from 'uuid';
|
import { validate as uuidValidate } from 'uuid';
|
||||||
import { filters } from './descriptions/Filters';
|
|
||||||
import set from 'lodash/set';
|
import set from 'lodash/set';
|
||||||
|
import { filters } from './descriptions/Filters';
|
||||||
|
|
||||||
function uuidValidateWithoutDashes(this: IExecuteFunctions, value: string) {
|
function uuidValidateWithoutDashes(this: IExecuteFunctions, value: string) {
|
||||||
if (uuidValidate(value)) return true;
|
if (uuidValidate(value)) return true;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
import { NodeConnectionType } from 'n8n-workflow';
|
||||||
import { apiUrl } from '../Peekalink.node';
|
import { apiUrl } from '../Peekalink.node';
|
||||||
import type { WorkflowTestData } from '@test/nodes/types';
|
import type { WorkflowTestData } from '@test/nodes/types';
|
||||||
import { executeWorkflow } from '@test/nodes/ExecuteWorkflow';
|
import { executeWorkflow } from '@test/nodes/ExecuteWorkflow';
|
||||||
import * as Helpers from '@test/nodes/Helpers';
|
import * as Helpers from '@test/nodes/Helpers';
|
||||||
import { NodeConnectionType } from 'n8n-workflow';
|
|
||||||
|
|
||||||
describe('Peekalink Node', () => {
|
describe('Peekalink Node', () => {
|
||||||
const exampleComPreview = {
|
const exampleComPreview = {
|
||||||
|
|
|
@ -3,10 +3,10 @@ import { NodeExecutionOutput, NodeOperationError } from 'n8n-workflow';
|
||||||
|
|
||||||
import { configurePostgres } from '../transport';
|
import { configurePostgres } from '../transport';
|
||||||
import { configureQueryRunner } from '../helpers/utils';
|
import { configureQueryRunner } from '../helpers/utils';
|
||||||
|
import type { PostgresNodeCredentials, PostgresNodeOptions } from '../helpers/interfaces';
|
||||||
import type { PostgresType } from './node.type';
|
import type { PostgresType } from './node.type';
|
||||||
|
|
||||||
import * as database from './database/Database.resource';
|
import * as database from './database/Database.resource';
|
||||||
import type { PostgresNodeCredentials, PostgresNodeOptions } from '../helpers/interfaces';
|
|
||||||
|
|
||||||
export async function router(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
|
export async function router(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
|
||||||
let returnData: INodeExecutionData[] = [];
|
let returnData: INodeExecutionData[] = [];
|
||||||
|
|
|
@ -23,7 +23,7 @@ export class ProfitWell implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'ProfitWell',
|
displayName: 'ProfitWell',
|
||||||
name: 'profitWell',
|
name: 'profitWell',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: { light: 'file:profitwell.svg', dark: 'file:profitwell.dark.svg' },
|
icon: { light: 'file:profitwell.svg', dark: 'file:profitwell.dark.svg' },
|
||||||
group: ['output'],
|
group: ['output'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -20,7 +20,7 @@ export class RabbitMQ implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'RabbitMQ',
|
displayName: 'RabbitMQ',
|
||||||
name: 'rabbitmq',
|
name: 'rabbitmq',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:rabbitmq.svg',
|
icon: 'file:rabbitmq.svg',
|
||||||
group: ['transform'],
|
group: ['transform'],
|
||||||
version: [1, 1.1],
|
version: [1, 1.1],
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
/* eslint-disable @typescript-eslint/no-loop-func */
|
|
||||||
import type {
|
import type {
|
||||||
ITriggerFunctions,
|
ITriggerFunctions,
|
||||||
IDataObject,
|
IDataObject,
|
||||||
|
|
|
@ -13,6 +13,7 @@ import {
|
||||||
NodeOperationError,
|
NodeOperationError,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
import set from 'lodash/set';
|
||||||
import {
|
import {
|
||||||
formatFeed,
|
formatFeed,
|
||||||
formatResults,
|
formatResults,
|
||||||
|
@ -37,7 +38,6 @@ import {
|
||||||
} from './descriptions';
|
} from './descriptions';
|
||||||
|
|
||||||
import type { SplunkCredentials, SplunkFeedResponse } from './types';
|
import type { SplunkCredentials, SplunkFeedResponse } from './types';
|
||||||
import set from 'lodash/set';
|
|
||||||
|
|
||||||
export class Splunk implements INodeType {
|
export class Splunk implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
|
|
|
@ -46,7 +46,7 @@ export class StickyNote implements INodeType {
|
||||||
{
|
{
|
||||||
displayName: 'Color',
|
displayName: 'Color',
|
||||||
name: 'color',
|
name: 'color',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-param-color-type-unused
|
|
||||||
type: 'number',
|
type: 'number',
|
||||||
required: true,
|
required: true,
|
||||||
default: 1,
|
default: 1,
|
||||||
|
|
|
@ -5,6 +5,7 @@ import {
|
||||||
type INodeType,
|
type INodeType,
|
||||||
type INodeTypeDescription,
|
type INodeTypeDescription,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
import { generatePairedItemData } from '../../../utils/utilities';
|
||||||
import {
|
import {
|
||||||
type Aggregations,
|
type Aggregations,
|
||||||
NUMERICAL_AGGREGATIONS,
|
NUMERICAL_AGGREGATIONS,
|
||||||
|
@ -14,7 +15,6 @@ import {
|
||||||
fieldValueGetter,
|
fieldValueGetter,
|
||||||
splitData,
|
splitData,
|
||||||
} from './utils';
|
} from './utils';
|
||||||
import { generatePairedItemData } from '../../../utils/utilities';
|
|
||||||
|
|
||||||
export class Summarize implements INodeType {
|
export class Summarize implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
|
|
|
@ -12,7 +12,7 @@ export class Vonage implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Vonage',
|
displayName: 'Vonage',
|
||||||
name: 'vonage',
|
name: 'vonage',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: { light: 'file:vonage.svg', dark: 'file:vonage.dark.svg' },
|
icon: { light: 'file:vonage.svg', dark: 'file:vonage.dark.svg' },
|
||||||
group: ['input'],
|
group: ['input'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -20,6 +20,7 @@ import isbot from 'isbot';
|
||||||
import { file as tmpFile } from 'tmp-promise';
|
import { file as tmpFile } from 'tmp-promise';
|
||||||
import jwt from 'jsonwebtoken';
|
import jwt from 'jsonwebtoken';
|
||||||
|
|
||||||
|
import { formatPrivateKey } from '../../utils/utilities';
|
||||||
import {
|
import {
|
||||||
authenticationProperty,
|
authenticationProperty,
|
||||||
credentialsProperty,
|
credentialsProperty,
|
||||||
|
@ -39,7 +40,6 @@ import {
|
||||||
isIpWhitelisted,
|
isIpWhitelisted,
|
||||||
setupOutputConnection,
|
setupOutputConnection,
|
||||||
} from './utils';
|
} from './utils';
|
||||||
import { formatPrivateKey } from '../../utils/utilities';
|
|
||||||
|
|
||||||
export class Webhook extends Node {
|
export class Webhook extends Node {
|
||||||
authPropertyName = 'authentication';
|
authPropertyName = 'authentication';
|
||||||
|
@ -330,7 +330,7 @@ export class Webhook extends Node {
|
||||||
}
|
}
|
||||||
|
|
||||||
const authHeader = req.headers.authorization;
|
const authHeader = req.headers.authorization;
|
||||||
const token = authHeader && authHeader.split(' ')[1];
|
const token = authHeader?.split(' ')[1];
|
||||||
|
|
||||||
if (!token) {
|
if (!token) {
|
||||||
throw new WebhookAuthorizationError(401, 'No token provided');
|
throw new WebhookAuthorizationError(401, 'No token provided');
|
||||||
|
|
|
@ -31,7 +31,7 @@ export class Wekan implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'Wekan',
|
displayName: 'Wekan',
|
||||||
name: 'wekan',
|
name: 'wekan',
|
||||||
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
|
|
||||||
icon: 'file:wekan.svg',
|
icon: 'file:wekan.svg',
|
||||||
group: ['transform'],
|
group: ['transform'],
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
|
@ -1275,7 +1275,6 @@ export interface ICredentialsDisplayOptions {
|
||||||
[key: string]: NodeParameterValue[] | undefined;
|
[key: string]: NodeParameterValue[] | undefined;
|
||||||
};
|
};
|
||||||
show?: {
|
show?: {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
'@version'?: number[];
|
'@version'?: number[];
|
||||||
[key: string]: NodeParameterValue[] | undefined;
|
[key: string]: NodeParameterValue[] | undefined;
|
||||||
};
|
};
|
||||||
|
@ -1711,29 +1710,28 @@ export type ConnectionTypes =
|
||||||
| 'main';
|
| 'main';
|
||||||
|
|
||||||
export const enum NodeConnectionType {
|
export const enum NodeConnectionType {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiAgent = 'ai_agent',
|
AiAgent = 'ai_agent',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiChain = 'ai_chain',
|
AiChain = 'ai_chain',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiDocument = 'ai_document',
|
AiDocument = 'ai_document',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiEmbedding = 'ai_embedding',
|
AiEmbedding = 'ai_embedding',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiLanguageModel = 'ai_languageModel',
|
AiLanguageModel = 'ai_languageModel',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiMemory = 'ai_memory',
|
AiMemory = 'ai_memory',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiOutputParser = 'ai_outputParser',
|
AiOutputParser = 'ai_outputParser',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiRetriever = 'ai_retriever',
|
AiRetriever = 'ai_retriever',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiTextSplitter = 'ai_textSplitter',
|
AiTextSplitter = 'ai_textSplitter',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiTool = 'ai_tool',
|
AiTool = 'ai_tool',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AiVectorStore = 'ai_vectorStore',
|
AiVectorStore = 'ai_vectorStore',
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
Main = 'main',
|
Main = 'main',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/no-use-before-define */
|
/* eslint-disable @typescript-eslint/no-use-before-define */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||||
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
||||||
|
|
|
@ -794,7 +794,7 @@ export class WorkflowDataProxy {
|
||||||
if (Array.isArray(itemPreviousNode.pairedItem)) {
|
if (Array.isArray(itemPreviousNode.pairedItem)) {
|
||||||
// Item is based on multiple items so check all of them
|
// Item is based on multiple items so check all of them
|
||||||
const results = itemPreviousNode.pairedItem
|
const results = itemPreviousNode.pairedItem
|
||||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
|
||||||
.map((item) => {
|
.map((item) => {
|
||||||
try {
|
try {
|
||||||
const itemInput = item.input || 0;
|
const itemInput = item.input || 0;
|
||||||
|
@ -1277,11 +1277,11 @@ export class WorkflowDataProxy {
|
||||||
$now: DateTime.now(),
|
$now: DateTime.now(),
|
||||||
$today: DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 }),
|
$today: DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 }),
|
||||||
$jmesPath: jmespathWrapper,
|
$jmesPath: jmespathWrapper,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
DateTime,
|
DateTime,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
Interval,
|
Interval,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
Duration,
|
Duration,
|
||||||
...that.additionalKeys,
|
...that.additionalKeys,
|
||||||
$getPairedItem: getPairedItem,
|
$getPairedItem: getPairedItem,
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
|
|
||||||
import { parseString } from 'xml2js';
|
import { parseString } from 'xml2js';
|
||||||
import type {
|
import type {
|
||||||
|
@ -149,7 +147,7 @@ export class NodeApiError extends NodeError {
|
||||||
}
|
}
|
||||||
|
|
||||||
// if not description provided, try to find it in the error object
|
// if not description provided, try to find it in the error object
|
||||||
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
||||||
if (
|
if (
|
||||||
!description &&
|
!description &&
|
||||||
(errorResponse.description || (errorResponse?.reason as IDataObject)?.description)
|
(errorResponse.description || (errorResponse?.reason as IDataObject)?.description)
|
||||||
|
@ -160,7 +158,7 @@ export class NodeApiError extends NodeError {
|
||||||
}
|
}
|
||||||
|
|
||||||
// if not message provided, try to find it in the error object or set description as message
|
// if not message provided, try to find it in the error object or set description as message
|
||||||
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
||||||
if (
|
if (
|
||||||
!message &&
|
!message &&
|
||||||
(errorResponse.message || (errorResponse?.reason as IDataObject)?.message || description)
|
(errorResponse.message || (errorResponse?.reason as IDataObject)?.message || description)
|
||||||
|
@ -265,10 +263,8 @@ export class NodeApiError extends NodeError {
|
||||||
parseString(xml, { explicitArray: false }, (_, result) => {
|
parseString(xml, { explicitArray: false }, (_, result) => {
|
||||||
if (!result) return;
|
if (!result) return;
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
||||||
const topLevelKey = Object.keys(result)[0];
|
const topLevelKey = Object.keys(result)[0];
|
||||||
this.description = this.findProperty(
|
this.description = this.findProperty(
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
|
|
||||||
result[topLevelKey],
|
result[topLevelKey],
|
||||||
ERROR_MESSAGE_PROPERTIES,
|
ERROR_MESSAGE_PROPERTIES,
|
||||||
['Error'].concat(ERROR_NESTING_PROPERTIES),
|
['Error'].concat(ERROR_NESTING_PROPERTIES),
|
||||||
|
|
Loading…
Reference in a new issue