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();
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`);
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';
const wf = new WorkflowPage();

View file

@ -89,7 +89,7 @@ describe('Current Workflow Executions', () => {
.should('be.visible')
.its('0.contentDocument.body') // Access the body of the iframe document
.should('not.be.empty') // Ensure the body is not empty
// eslint-disable-next-line @typescript-eslint/unbound-method
.then(cy.wrap)
.find('.el-notification:has(.el-notification--error)')
.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')
.its('0.contentDocument.body')
.should('not.be.empty')
// eslint-disable-next-line @typescript-eslint/unbound-method
.then(cy.wrap)
.find('.jtk-connector[data-source-node="Webhook"][data-target-node="Set"]')
.should('have.class', 'success')
@ -56,7 +56,7 @@ describe('ADO-2106 connections should be colored correctly for pinned data in ex
.should('be.visible')
.its('0.contentDocument.body')
.should('not.be.empty')
// eslint-disable-next-line @typescript-eslint/unbound-method
.then(cy.wrap)
.find('.jtk-connector[data-source-node="Webhook"][data-target-node="Set"]')
.should('have.class', 'success')

View file

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import type { ClientOAuth2, ClientOAuth2Options, ClientOAuth2RequestObject } from './ClientOAuth2';
import { auth, expects, getRequestOptions } from './utils';
import { DEFAULT_HEADERS } from './constants';

View file

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import type { Headers } from './types';
export const DEFAULT_URL_BASE = 'https://example.org/';

View file

@ -9,6 +9,7 @@ import type {
} from 'n8n-workflow';
import { NodeConnectionType, NodeOperationError, tryToParseAlphanumericString } from 'n8n-workflow';
import { DynamicTool } from '@langchain/core/tools';
import { getConnectionHintNoticeField } from '../../../utils/sharedFields';
import {
@ -31,8 +32,6 @@ import {
import type { PlaceholderDefinition, ToolParameter } from './interfaces';
import { DynamicTool } from '@langchain/core/tools';
export class ToolHttpRequest implements INodeType {
description: INodeTypeDescription = {
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 type {
ParameterInputType,
ParametersValues,
PlaceholderDefinition,
ParametersValues as RawParametersValues,
SendIn,
ToolParameter,
} from './interfaces';
import set from 'lodash/set';
import get from 'lodash/get';
import unset from 'lodash/unset';
@ -28,6 +19,14 @@ import { convert } from 'html-to-text';
import { Readability } from '@mozilla/readability';
import { JSDOM } from 'jsdom';
import type {
ParameterInputType,
ParametersValues,
PlaceholderDefinition,
ParametersValues as RawParametersValues,
SendIn,
ToolParameter,
} from './interfaces';
const genericCredentialRequest = async (ctx: IExecuteFunctions, itemIndex: number) => {
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';
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
import type { EntityManager } from '@n8n/typeorm';

View file

@ -24,14 +24,12 @@ export class ExternalHooks {
credentialsRepository: CredentialsRepository,
workflowRepository: WorkflowRepository,
) {
/* eslint-disable @typescript-eslint/naming-convention */
this.dbCollections = {
User: userRepository,
Settings: settingsRepository,
Credentials: credentialsRepository,
Workflow: workflowRepository,
};
/* eslint-enable @typescript-eslint/naming-convention */
}
async init(): Promise<void> {

View file

@ -232,12 +232,10 @@ export interface IExternalHooksFileData {
export interface IExternalHooksFunctions {
dbCollections: {
/* eslint-disable @typescript-eslint/naming-convention */
User: UserRepository;
Settings: SettingsRepository;
Credentials: CredentialsRepository;
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 { Filter } from 'ldapts/filters/Filter';
import { Container } from 'typedi';

View file

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { Container } from 'typedi';
import type { Router } from 'express';
import express from 'express';

View file

@ -197,7 +197,6 @@ export function encodeWebhookResponse(
): IExecuteResponsePromiseData {
if (typeof response === 'object' && Buffer.isBuffer(response.body)) {
response.body = {
// eslint-disable-next-line @typescript-eslint/naming-convention
'__@N8nEncodedBuffer@__': response.body.toString(BINARY_ENCODING),
};
}

View file

@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-unsafe-argument */
/* 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-assignment */
import { WorkflowExecute } from 'n8n-core';

View file

@ -219,7 +219,7 @@ export async function replaceInvalidCredentials(workflow: WorkflowEntity): Promi
credentialsById[nodeCredentialType][nodeCredentials.id];
}
}
/* eslint-enable no-await-in-loop */
return workflow;
}

View file

@ -24,7 +24,7 @@ export class SecurityAudit extends BaseCommand {
default: RISK_CATEGORIES.join(','),
description: 'Comma-separated list of categories to include in the audit',
}),
// eslint-disable-next-line @typescript-eslint/naming-convention
'days-abandoned-workflow': Flags.integer({
default: config.getEnv('security.audit.daysAbandonedWorkflow'),
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 { schema } from './schema';
import type { RedisOptions } from 'ioredis';

View file

@ -20,11 +20,9 @@ interface OAuth1CredentialData {
}
const algorithmMap = {
/* eslint-disable @typescript-eslint/naming-convention */
'HMAC-SHA256': 'sha256',
'HMAC-SHA512': 'sha512',
'HMAC-SHA1': 'sha1',
/* eslint-enable */
} as const;
@RestController('/oauth1-credential')
@ -52,7 +50,7 @@ export class OAuth1CredentialController extends AbstractOAuthController {
secret: oauthCredentials.consumerSecret,
},
signature_method: signatureMethod,
// eslint-disable-next-line @typescript-eslint/naming-convention
hash_function(base, key) {
const algorithm = algorithmMap[signatureMethod] ?? 'sha1';
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 { AuthProviderSyncHistory } from './AuthProviderSyncHistory';
import { AuthUser } from './AuthUser';

View file

@ -11,7 +11,7 @@ export class MigrateIntegerKeysToString1690000000001 implements IrreversibleMigr
if (databaseType === 'mariadb') {
collation = COLLATION_57;
} 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 }>
| undefined;
collation = COLLATION_80;

View file

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { registerDecorator } from 'class-validator';
export function NoXss() {

View file

@ -24,7 +24,6 @@ import { type ServiceClass, ShutdownService } from '@/shutdown/Shutdown.service'
export const OnShutdown =
(priority = 100): MethodDecorator =>
(prototype, propertyKey, descriptor) => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const serviceClass = prototype.constructor as ServiceClass;
const methodName = String(propertyKey);
// TODO: assert that serviceClass is decorated with @Service

View file

@ -317,7 +317,6 @@ export class SourceControlGitService {
await this.setGitSshCommand();
const params = {};
if (options.ffOnly) {
// eslint-disable-next-line @typescript-eslint/naming-convention
Object.assign(params, { '--ff-only': true });
}
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 */
import { MessageEventBusDestination } from './MessageEventBusDestination.ee';

View file

@ -1,5 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { isObjectLiteral } from '@/utils';
import { plainToInstance, instanceToPlain } from 'class-transformer';
import { validate } from 'class-validator';

View file

@ -1,5 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { isStringArray } from '@/utils';
import { ApplicationError, jsonParse } from 'n8n-workflow';

View file

@ -146,7 +146,6 @@ export class InstanceRiskReporter implements RiskReporter {
const { instanceId } = this.instanceSettings;
const response = await axios.get<n8n.Version[]>(BASE_URL + currentVersionName, {
// eslint-disable-next-line @typescript-eslint/naming-convention
headers: { 'n8n-instance-id': instanceId },
});

View file

@ -56,7 +56,6 @@ export class FrontendService {
this.initSettings();
if (config.getEnv('nodes.communityPackages.enabled')) {
// eslint-disable-next-line @typescript-eslint/naming-convention
void import('@/services/communityPackages.service').then(({ CommunityPackagesService }) => {
this.communityPackagesService = Container.get(CommunityPackagesService);
});

View file

@ -130,7 +130,6 @@ export function getWorkerCommandReceivedHandler(options: WorkerCommandReceivedHa
}
logger.debug(
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
`Received unknown command via channel ${COMMAND_REDIS_CHANNEL}: "${message.command}"`,
);
break;

View file

@ -46,7 +46,6 @@ class RedisServiceBase {
this.redisClient.on('error', (error) => {
if (!String(error).includes('ECONNREFUSED')) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
this.logger.warn('Error with Redis: ', error);
}
});

View file

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { Container } from 'typedi';
import type { ServiceProviderInstance } from 'samlify';
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;
},
{}

View file

@ -29,7 +29,6 @@ beforeEach(async () => {
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 () => {
//
// ARRANGE

View file

@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/no-unsafe-argument */
/* eslint-disable @typescript-eslint/no-explicit-any */
/* 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-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-return */
@ -454,7 +454,6 @@ export async function parseRequestObject(requestObject: IRequestOptions) {
// Check support for sendImmediately
if (requestObject.auth.bearer !== undefined) {
axiosConfig.headers = Object.assign(axiosConfig.headers || {}, {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
Authorization: `Bearer ${requestObject.auth.bearer}`,
});
} else {

View file

@ -1,5 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { createHash } from 'node:crypto';
import axios from 'axios';
import { Service } from 'typedi';

View file

@ -1087,9 +1087,8 @@ export class WorkflowExecute {
}
if (nodeSuccessData instanceof NodeExecutionOutput) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
const hints: NodeExecutionHint[] = nodeSuccessData.getHints();
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
executionHints.push(...hints);
}

View file

@ -22,7 +22,9 @@ Range.prototype.getClientRects = vi.fn(() => ({
export class IntersectionObserver {
root = null;
rootMargin = '';
thresholds = [];
disconnect() {

View file

@ -38,8 +38,8 @@
:message="$locale.baseText('credentialEdit.credentialConfig.accountConnected')"
:button-label="$locale.baseText('credentialEdit.credentialConfig.reconnect')"
:button-title="$locale.baseText('credentialEdit.credentialConfig.reconnectOAuth2Credential')"
@click="$emit('oauth')"
data-test-id="oauth-connect-success-banner"
@click="$emit('oauth')"
>
<template v-if="isGoogleOAuthType" #button>
<p
@ -118,8 +118,8 @@
isOAuthType && requiredPropertiesFilled && !isOAuthConnected && credentialPermissions.update
"
:is-google-o-auth-type="isGoogleOAuthType"
@click="$emit('oauth')"
data-test-id="oauth-connect-button"
@click="$emit('oauth')"
/>
<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) {
this.showError(
error,

View file

@ -48,7 +48,7 @@ async function onUpdateConnected(value: boolean) {
if (props.beforeUpdate) {
const result = await props.beforeUpdate(value);
if (result === false) {
if (!result) {
saving.value = false;
return;
}

View file

@ -154,7 +154,7 @@ watch(
</div>
</div>
<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
v-model="form.email"
:placeholder="YOUR_EMAIL_ADDRESS"

View file

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

View file

@ -1,5 +1,5 @@
/* 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-assignment */
import { Command } from '@oclif/core';

View file

@ -15,7 +15,7 @@ export async function createTemplate(
replaceValues: object,
): Promise<void> {
// Copy the file to then replace the values in it
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
await copyFile(sourceFilePath, destinationFilePath);
// Replace the variables in the template file

View file

@ -81,7 +81,7 @@ export class ActiveCampaign implements INodeType {
description: INodeTypeDescription = {
displayName: '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' },
group: ['transform'],
version: 1,

View file

@ -26,7 +26,7 @@ export class Affinity implements INodeType {
description: INodeTypeDescription = {
displayName: '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' },
group: ['output'],
version: 1,

View file

@ -18,7 +18,7 @@ export class Amqp implements INodeType {
description: INodeTypeDescription = {
displayName: 'AMQP Sender',
name: 'amqp',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:amqp.svg',
group: ['transform'],
version: 1,

View file

@ -14,7 +14,7 @@ export class CircleCi implements INodeType {
description: INodeTypeDescription = {
displayName: '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' },
group: ['output'],
version: 1,

View file

@ -23,7 +23,7 @@ export class Cockpit implements INodeType {
description: INodeTypeDescription = {
displayName: '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' },
group: ['output'],
version: 1,

View file

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

View file

@ -318,7 +318,7 @@ const embedFields: INodeProperties[] = [
{
displayName: 'Color',
name: 'color',
// eslint-disable-next-line n8n-nodes-base/node-param-color-type-unused
type: 'color',
default: '',
description: 'Color code of the embed',

View file

@ -13,7 +13,7 @@ export class Drift implements INodeType {
description: INodeTypeDescription = {
displayName: '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' },
group: ['output'],
version: 1,

View file

@ -17,7 +17,7 @@ export class Egoi implements INodeType {
description: INodeTypeDescription = {
displayName: 'E-goi',
name: 'egoi',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:egoi.svg',
group: ['output'],
version: 1,

View file

@ -12,7 +12,6 @@ import * as toJson from './actions/toJson.operation';
import * as iCall from './actions/iCall.operation';
export class ConvertToFile implements INodeType {
// eslint-disable-next-line n8n-nodes-base/node-class-description-missing-subtitle
description: INodeTypeDescription = {
displayName: 'Convert to File',
name: 'convertToFile',

View file

@ -15,7 +15,7 @@ export class Flow implements INodeType {
description: INodeTypeDescription = {
displayName: 'Flow',
name: 'flow',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:flow.svg',
group: ['output'],
version: 1,

View file

@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
import type { INodeProperties } from 'n8n-workflow';
export const webhookPath: INodeProperties = {

View file

@ -74,7 +74,7 @@ export class Freshdesk implements INodeType {
description: INodeTypeDescription = {
displayName: 'Freshdesk',
name: 'freshdesk',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:freshdesk.svg',
group: ['output'],
version: 1,

View file

@ -16,7 +16,7 @@ export class GoogleTasks implements INodeType {
description: INodeTypeDescription = {
displayName: 'Google Tasks',
name: 'googleTasks',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:googleTasks.svg',
group: ['input'],
version: 1,

View file

@ -12,9 +12,9 @@ import set from 'lodash/set';
import isPlainObject from 'lodash/isPlainObject';
import FormData from 'form-data';
import get from 'lodash/get';
import { formatPrivateKey } from '../../utils/utilities';
import type { HttpSslAuthCredentials } from './interfaces';
import get from 'lodash/get';
export type BodyParameter = {
name: string;

View file

@ -14,7 +14,7 @@ export class HumanticAi implements INodeType {
description: INodeTypeDescription = {
displayName: 'Humantic AI',
name: 'humanticAi',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:humanticai.svg',
group: ['output'],
version: 1,

View file

@ -22,7 +22,7 @@ export class IfV1 implements INodeType {
color: '#408000',
},
inputs: ['main'],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: ['main', 'main'],
outputNames: ['true', 'false'],
properties: [

View file

@ -21,7 +21,7 @@ export class Intercom implements INodeType {
description: INodeTypeDescription = {
displayName: 'Intercom',
name: 'intercom',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:intercom.svg',
group: ['output'],
version: 1,

View file

@ -16,9 +16,9 @@ import pick from 'lodash/pick';
import set from 'lodash/set';
import unset from 'lodash/unset';
import { flattenKeys, shuffleArray, compareItems } from '@utils/utilities';
import { sortByCode } from '../V3/helpers/utils';
import * as summarize from './summarize.operation';
import { flattenKeys, shuffleArray, compareItems } from '@utils/utilities';
export class ItemListsV1 implements INodeType {
description: INodeTypeDescription;

View file

@ -17,9 +17,9 @@ import pick from 'lodash/pick';
import set from 'lodash/set';
import unset from 'lodash/unset';
import { flattenKeys, shuffleArray, compareItems } from '@utils/utilities';
import { sortByCode } from '../V3/helpers/utils';
import * as summarize from './summarize.operation';
import { flattenKeys, shuffleArray, compareItems } from '@utils/utilities';
export class ItemListsV2 implements INodeType {
description: INodeTypeDescription;

View file

@ -6,9 +6,9 @@ import isEqual from 'lodash/isEqual';
import lt from 'lodash/lt';
import pick from 'lodash/pick';
import { compareItems, flattenKeys, updateDisplayOptions } from '@utils/utilities';
import { prepareFieldsArray, typeToNumber } from '../../helpers/utils';
import { disableDotNotationBoolean } from '../common.descriptions';
import { compareItems, flattenKeys, updateDisplayOptions } from '@utils/utilities';
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',
displayName: 'Credentials to Authenticate Webhook',
displayOptions: {

View file

@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
import get from 'lodash/get';
import type {
@ -27,7 +26,7 @@ export class MergeV1 implements INodeType {
name: 'Merge',
color: '#00bbcc',
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: ['main', 'main'],
outputs: ['main'],
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 type {
@ -41,7 +39,7 @@ export class MergeV2 implements INodeType {
defaults: {
name: 'Merge',
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: ['main', 'main'],
outputs: ['main'],
inputNames: ['Input 1', 'Input 2'],

View file

@ -1,6 +1,6 @@
import nock from 'nock';
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
import type { IHttpRequestMethods } from 'n8n-workflow';
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
jest.mock('../../../../v2/transport', () => {
const originalModule = jest.requireActual('../../../../v2/transport');

View file

@ -1,6 +1,6 @@
import nock from 'nock';
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
import type { IHttpRequestMethods } from 'n8n-workflow';
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
jest.mock('../../../../v2/transport', () => {
const originalModule = jest.requireActual('../../../../v2/transport');

View file

@ -1,6 +1,6 @@
import nock from 'nock';
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
import type { IHttpRequestMethods } from 'n8n-workflow';
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
jest.mock('../../../../v2/transport', () => {
const originalModule = jest.requireActual('../../../../v2/transport');

View file

@ -1,6 +1,6 @@
import nock from 'nock';
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
import type { IHttpRequestMethods } from 'n8n-workflow';
import { equalityTest, setup, workflowToTests } from '@test/nodes/Helpers';
jest.mock('../../../../v2/transport', () => {
const originalModule = jest.requireActual('../../../../v2/transport');

View file

@ -114,7 +114,7 @@ export async function microsoftApiRequestAllItemsDelta(
do {
responseData = (await microsoftApiRequest.call(this, 'GET', '', {}, {}, uri)) as IDataObject;
uri = responseData['@odata.nextLink'] as string;
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
for (const value of responseData.value as IDataObject[]) {
if (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 {
IExecuteFunctions,
INodeType,

View file

@ -14,7 +14,7 @@ export class Msg91 implements INodeType {
description: INodeTypeDescription = {
displayName: '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' },
group: ['transform'],
version: 1,

View file

@ -21,8 +21,8 @@ import { camelCase, capitalCase, snakeCase } from 'change-case';
import moment from 'moment-timezone';
import { validate as uuidValidate } from 'uuid';
import { filters } from './descriptions/Filters';
import set from 'lodash/set';
import { filters } from './descriptions/Filters';
function uuidValidateWithoutDashes(this: IExecuteFunctions, value: string) {
if (uuidValidate(value)) return true;

View file

@ -1,8 +1,8 @@
import { NodeConnectionType } from 'n8n-workflow';
import { apiUrl } from '../Peekalink.node';
import type { WorkflowTestData } from '@test/nodes/types';
import { executeWorkflow } from '@test/nodes/ExecuteWorkflow';
import * as Helpers from '@test/nodes/Helpers';
import { NodeConnectionType } from 'n8n-workflow';
describe('Peekalink Node', () => {
const exampleComPreview = {

View file

@ -3,10 +3,10 @@ import { NodeExecutionOutput, NodeOperationError } from 'n8n-workflow';
import { configurePostgres } from '../transport';
import { configureQueryRunner } from '../helpers/utils';
import type { PostgresNodeCredentials, PostgresNodeOptions } from '../helpers/interfaces';
import type { PostgresType } from './node.type';
import * as database from './database/Database.resource';
import type { PostgresNodeCredentials, PostgresNodeOptions } from '../helpers/interfaces';
export async function router(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
let returnData: INodeExecutionData[] = [];

View file

@ -23,7 +23,7 @@ export class ProfitWell implements INodeType {
description: INodeTypeDescription = {
displayName: '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' },
group: ['output'],
version: 1,

View file

@ -20,7 +20,7 @@ export class RabbitMQ implements INodeType {
description: INodeTypeDescription = {
displayName: 'RabbitMQ',
name: 'rabbitmq',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:rabbitmq.svg',
group: ['transform'],
version: [1, 1.1],

View file

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

View file

@ -13,6 +13,7 @@ import {
NodeOperationError,
} from 'n8n-workflow';
import set from 'lodash/set';
import {
formatFeed,
formatResults,
@ -37,7 +38,6 @@ import {
} from './descriptions';
import type { SplunkCredentials, SplunkFeedResponse } from './types';
import set from 'lodash/set';
export class Splunk implements INodeType {
description: INodeTypeDescription = {

View file

@ -46,7 +46,7 @@ export class StickyNote implements INodeType {
{
displayName: 'Color',
name: 'color',
// eslint-disable-next-line n8n-nodes-base/node-param-color-type-unused
type: 'number',
required: true,
default: 1,

View file

@ -5,6 +5,7 @@ import {
type INodeType,
type INodeTypeDescription,
} from 'n8n-workflow';
import { generatePairedItemData } from '../../../utils/utilities';
import {
type Aggregations,
NUMERICAL_AGGREGATIONS,
@ -14,7 +15,6 @@ import {
fieldValueGetter,
splitData,
} from './utils';
import { generatePairedItemData } from '../../../utils/utilities';
export class Summarize implements INodeType {
description: INodeTypeDescription = {

View file

@ -12,7 +12,7 @@ export class Vonage implements INodeType {
description: INodeTypeDescription = {
displayName: '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' },
group: ['input'],
version: 1,

View file

@ -20,6 +20,7 @@ import isbot from 'isbot';
import { file as tmpFile } from 'tmp-promise';
import jwt from 'jsonwebtoken';
import { formatPrivateKey } from '../../utils/utilities';
import {
authenticationProperty,
credentialsProperty,
@ -39,7 +40,6 @@ import {
isIpWhitelisted,
setupOutputConnection,
} from './utils';
import { formatPrivateKey } from '../../utils/utilities';
export class Webhook extends Node {
authPropertyName = 'authentication';
@ -330,7 +330,7 @@ export class Webhook extends Node {
}
const authHeader = req.headers.authorization;
const token = authHeader && authHeader.split(' ')[1];
const token = authHeader?.split(' ')[1];
if (!token) {
throw new WebhookAuthorizationError(401, 'No token provided');

View file

@ -31,7 +31,7 @@ export class Wekan implements INodeType {
description: INodeTypeDescription = {
displayName: 'Wekan',
name: 'wekan',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:wekan.svg',
group: ['transform'],
version: 1,

View file

@ -1275,7 +1275,6 @@ export interface ICredentialsDisplayOptions {
[key: string]: NodeParameterValue[] | undefined;
};
show?: {
// eslint-disable-next-line @typescript-eslint/naming-convention
'@version'?: number[];
[key: string]: NodeParameterValue[] | undefined;
};
@ -1711,29 +1710,28 @@ export type ConnectionTypes =
| 'main';
export const enum NodeConnectionType {
// eslint-disable-next-line @typescript-eslint/naming-convention
AiAgent = 'ai_agent',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiChain = 'ai_chain',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiDocument = 'ai_document',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiEmbedding = 'ai_embedding',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiLanguageModel = 'ai_languageModel',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiMemory = 'ai_memory',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiOutputParser = 'ai_outputParser',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiRetriever = 'ai_retriever',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiTextSplitter = 'ai_textSplitter',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiTool = 'ai_tool',
// eslint-disable-next-line @typescript-eslint/naming-convention
AiVectorStore = 'ai_vectorStore',
// eslint-disable-next-line @typescript-eslint/naming-convention
Main = 'main',
}

View file

@ -1,7 +1,5 @@
/* 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-unsafe-assignment */
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */

View file

@ -794,7 +794,7 @@ export class WorkflowDataProxy {
if (Array.isArray(itemPreviousNode.pairedItem)) {
// Item is based on multiple items so check all of them
const results = itemPreviousNode.pairedItem
// eslint-disable-next-line @typescript-eslint/no-loop-func
.map((item) => {
try {
const itemInput = item.input || 0;
@ -1277,11 +1277,11 @@ export class WorkflowDataProxy {
$now: DateTime.now(),
$today: DateTime.now().set({ hour: 0, minute: 0, second: 0, millisecond: 0 }),
$jmesPath: jmespathWrapper,
// eslint-disable-next-line @typescript-eslint/naming-convention
DateTime,
// eslint-disable-next-line @typescript-eslint/naming-convention
Interval,
// eslint-disable-next-line @typescript-eslint/naming-convention
Duration,
...that.additionalKeys,
$getPairedItem: getPairedItem,

View file

@ -1,7 +1,5 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* 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 type {
@ -149,7 +147,7 @@ export class NodeApiError extends NodeError {
}
// if not description provided, try to find it in the error object
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
if (
!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
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
if (
!message &&
(errorResponse.message || (errorResponse?.reason as IDataObject)?.message || description)
@ -265,10 +263,8 @@ export class NodeApiError extends NodeError {
parseString(xml, { explicitArray: false }, (_, result) => {
if (!result) return;
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
const topLevelKey = Object.keys(result)[0];
this.description = this.findProperty(
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
result[topLevelKey],
ERROR_MESSAGE_PROPERTIES,
['Error'].concat(ERROR_NESTING_PROPERTIES),