refactor: Remove unused lint directives (no-changelog) (#9842)

This commit is contained in:
Iván Ovejero 2024-06-24 12:13:18 +02:00 committed by GitHub
parent 16d3083af7
commit 44ea4c73eb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
92 changed files with 85 additions and 138 deletions

View file

@ -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}}]';

View file

@ -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();

View file

@ -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')

View file

@ -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')

View file

@ -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';

View file

@ -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/';

View file

@ -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',

View file

@ -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;

View file

@ -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';

View file

@ -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> {

View file

@ -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 */
}; };
} }

View file

@ -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';

View file

@ -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';

View file

@ -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),
}; };
} }

View file

@ -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';

View file

@ -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;
} }

View file

@ -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',

View file

@ -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';

View file

@ -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');

View file

@ -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';

View file

@ -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;

View file

@ -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() {

View file

@ -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

View file

@ -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);

View file

@ -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';

View file

@ -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';

View file

@ -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';

View file

@ -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 },
}); });

View file

@ -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);
}); });

View file

@ -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;

View file

@ -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);
} }
}); });

View file

@ -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';

View file

@ -9,7 +9,6 @@ export declare namespace SamlConfiguration {
{}, {},
{}, {},
{ {
// eslint-disable-next-line @typescript-eslint/naming-convention
RelayState?: string; RelayState?: string;
}, },
{} {}

View file

@ -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

View file

@ -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 {

View file

@ -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';

View file

@ -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);
} }

View file

@ -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() {

View file

@ -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">

View file

@ -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,

View file

@ -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;
} }

View file

@ -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"

View file

@ -86,7 +86,7 @@ import { toRefs } from '@vueuse/core';
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
const props = defineProps<{ const props = defineProps<{
reportError: Boolean; reportError: boolean;
}>(); }>();
// #endregion // #endregion

View file

@ -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';

View file

@ -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

View 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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
import type { import type {
IExecuteFunctions, IExecuteFunctions,
INodeExecutionData, INodeExecutionData,

View file

@ -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',

View file

@ -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,

View file

@ -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,

View file

@ -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',

View file

@ -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,

View file

@ -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 = {

View file

@ -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,

View file

@ -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,

View file

@ -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;

View file

@ -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,

View file

@ -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: [

View file

@ -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,

View file

@ -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;

View file

@ -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;

View file

@ -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[] = [
{ {

View file

@ -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: {

View file

@ -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'],

View file

@ -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'],

View file

@ -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');

View file

@ -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');

View file

@ -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');

View file

@ -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');

View file

@ -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)

View file

@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
import type { import type {
IExecuteFunctions, IExecuteFunctions,
INodeType, INodeType,

View file

@ -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,

View file

@ -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;

View file

@ -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 = {

View file

@ -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[] = [];

View file

@ -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,

View file

@ -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],

View file

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/no-loop-func */
import type { import type {
ITriggerFunctions, ITriggerFunctions,
IDataObject, IDataObject,

View file

@ -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 = {

View file

@ -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,

View file

@ -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 = {

View file

@ -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,

View file

@ -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');

View file

@ -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,

View file

@ -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',
} }

View file

@ -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 */

View file

@ -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,

View file

@ -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),