mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
refactor(core): Lintfix cli package (#17125)
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import type { WorkflowEntity, WorkflowRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { InstanceSettings } from 'n8n-core';
|
||||
import type {
|
||||
|
||||
@@ -7,7 +7,7 @@ import { z } from 'zod';
|
||||
import { CommandRegistry } from '../command-registry';
|
||||
|
||||
jest.mock('fast-glob');
|
||||
// eslint-disable-next-line import-x/no-default-export
|
||||
|
||||
import glob from 'fast-glob';
|
||||
|
||||
describe('CommandRegistry', () => {
|
||||
|
||||
@@ -6,9 +6,7 @@ jest.mock('@n8n/backend-common', () => {
|
||||
});
|
||||
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import { ControllerRegistryMetadata } from '@n8n/decorators';
|
||||
import { Param } from '@n8n/decorators';
|
||||
import { Get, Licensed, RestController } from '@n8n/decorators';
|
||||
import { ControllerRegistryMetadata, Param, Get, Licensed, RestController } from '@n8n/decorators';
|
||||
import { Container } from '@n8n/di';
|
||||
import express from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
@@ -100,7 +100,7 @@ describe('CredentialsOverwrites', () => {
|
||||
|
||||
expect(firstCall).toEqual(secondCall);
|
||||
expect(credentialTypes.getByName).toHaveBeenCalledTimes(2);
|
||||
// eslint-disable-next-line @typescript-eslint/dot-notation
|
||||
|
||||
expect(credentialsOverwrites['resolvedTypes']).toEqual(['parent', 'test']);
|
||||
});
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import type { CredentialsRepository, SettingsRepository } from '@n8n/db';
|
||||
import type { UserRepository } from '@n8n/db';
|
||||
import type {
|
||||
WorkflowRepository,
|
||||
CredentialsRepository,
|
||||
SettingsRepository,
|
||||
UserRepository,
|
||||
} from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { ErrorReporter } from 'n8n-core';
|
||||
import type { IWorkflowBase } from 'n8n-workflow';
|
||||
@@ -72,7 +75,6 @@ describe('ExternalHooks', () => {
|
||||
|
||||
await externalHooks.init();
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/dot-notation
|
||||
expect(externalHooks['registered']['workflow.create']).toHaveLength(1);
|
||||
|
||||
await externalHooks.run('workflow.create', [workflowData]);
|
||||
@@ -88,7 +90,6 @@ describe('ExternalHooks', () => {
|
||||
});
|
||||
|
||||
it('should execute registered hooks', async () => {
|
||||
// eslint-disable-next-line @typescript-eslint/dot-notation
|
||||
externalHooks['registered']['workflow.create'] = [hookFn];
|
||||
|
||||
await externalHooks.run('workflow.create', [workflowData]);
|
||||
@@ -108,7 +109,7 @@ describe('ExternalHooks', () => {
|
||||
it('should report error if hook execution fails', async () => {
|
||||
const error = new Error('Hook failed');
|
||||
hookFn.mockRejectedValueOnce(error);
|
||||
// eslint-disable-next-line @typescript-eslint/dot-notation
|
||||
|
||||
externalHooks['registered']['workflow.create'] = [hookFn];
|
||||
|
||||
await expect(externalHooks.run('workflow.create', [workflowData])).rejects.toThrow(error);
|
||||
|
||||
@@ -292,9 +292,9 @@ describe('LoadNodesAndCredentials', () => {
|
||||
},
|
||||
] as unknown as INodeTypeDescription[];
|
||||
// private field
|
||||
// eslint-disable-next-line @typescript-eslint/dot-notation
|
||||
|
||||
instance['known'].nodes.testNode = { className: 'TestNode', sourcePath: '/path/to/testNode' };
|
||||
// eslint-disable-next-line @typescript-eslint/dot-notation
|
||||
|
||||
instance['known'].credentials['testCredential'] = {
|
||||
className: 'TestCredential',
|
||||
sourcePath: '/path/to/testCredential',
|
||||
@@ -340,7 +340,7 @@ describe('LoadNodesAndCredentials', () => {
|
||||
|
||||
expect(instance.types.nodes).toHaveLength(2);
|
||||
// accesses private property
|
||||
// eslint-disable-next-line @typescript-eslint/dot-notation
|
||||
|
||||
expect(instance['known'].credentials.testCredential.supportedNodes).toEqual([
|
||||
'testNode',
|
||||
'testNodeTool',
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import type { Project, IExecutionResponse, ExecutionRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { InstanceSettings } from 'n8n-core';
|
||||
import type { IRun, IWorkflowBase } from 'n8n-workflow';
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { ExecutionRepository, WorkflowRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { ExternalSecretsProxy } from 'n8n-core';
|
||||
import type { IWorkflowBase } from 'n8n-workflow';
|
||||
import type {
|
||||
IWorkflowBase,
|
||||
IExecuteWorkflowInfo,
|
||||
IWorkflowExecuteAdditionalData,
|
||||
ExecuteWorkflowOptions,
|
||||
|
||||
@@ -1,26 +1,24 @@
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { ExecutionEntity } from '@n8n/db';
|
||||
import { testDb, createWorkflow, mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { User, ExecutionEntity } from '@n8n/db';
|
||||
import { Container, Service } from '@n8n/di';
|
||||
import type { Response } from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { DirectedGraph, WorkflowExecute } from 'n8n-core';
|
||||
import * as core from 'n8n-core';
|
||||
import type {
|
||||
IExecuteData,
|
||||
INode,
|
||||
IRun,
|
||||
ITaskData,
|
||||
IWaitingForExecution,
|
||||
IWaitingForExecutionSource,
|
||||
IWorkflowBase,
|
||||
IWorkflowExecutionDataProcess,
|
||||
StartNodeData,
|
||||
IWorkflowExecuteAdditionalData,
|
||||
import {
|
||||
type IExecuteData,
|
||||
type INode,
|
||||
type IRun,
|
||||
type ITaskData,
|
||||
type IWaitingForExecution,
|
||||
type IWaitingForExecutionSource,
|
||||
type IWorkflowBase,
|
||||
type IWorkflowExecutionDataProcess,
|
||||
type StartNodeData,
|
||||
type IWorkflowExecuteAdditionalData,
|
||||
Workflow,
|
||||
ExecutionError,
|
||||
} from 'n8n-workflow';
|
||||
import { Workflow, type ExecutionError } from 'n8n-workflow';
|
||||
import PCancelable from 'p-cancelable';
|
||||
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
|
||||
@@ -467,7 +467,6 @@ export class ActiveWorkflowManager {
|
||||
this.logger.error(
|
||||
`Issue on initial workflow activation try of ${formatWorkflow(dbWorkflow)} (startup)`,
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
error,
|
||||
workflowName: dbWorkflow.name,
|
||||
workflowId: dbWorkflow.id,
|
||||
@@ -778,7 +777,6 @@ export class ActiveWorkflowManager {
|
||||
error.message as string
|
||||
}" | retry in ${Math.floor(lastTimeout / 1000)} seconds`,
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
error,
|
||||
workflowId,
|
||||
workflowName,
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { InvalidAuthTokenRepository } from '@n8n/db';
|
||||
import type { UserRepository } from '@n8n/db';
|
||||
import type {
|
||||
AuthenticatedRequest,
|
||||
User,
|
||||
InvalidAuthTokenRepository,
|
||||
UserRepository,
|
||||
} from '@n8n/db';
|
||||
import type { NextFunction, Response } from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import jwt from 'jsonwebtoken';
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import { type InstalledNodes } from '@n8n/db';
|
||||
import { type CredentialsEntity } from '@n8n/db';
|
||||
import { type User } from '@n8n/db';
|
||||
import { type InstalledNodes, type CredentialsEntity, type User } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import { CommunityNode } from '../community-node';
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User, WorkflowEntity } from '@n8n/db';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { DbConnection } from '@n8n/db';
|
||||
import { WorkflowRepository, DbConnection } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { SelectQueryBuilder } from '@n8n/typeorm';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User, WorkflowEntity } from '@n8n/db';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { DbConnection } from '@n8n/db';
|
||||
import { WorkflowRepository, DbConnection } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { IRun } from 'n8n-workflow';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { Container } from '@n8n/di';
|
||||
|
||||
import { Worker } from '../worker';
|
||||
|
||||
import { PubSubRegistry } from '@/scaling/pubsub/pubsub.registry';
|
||||
import { Subscriber } from '@/scaling/pubsub/subscriber.service';
|
||||
import { WorkerStatusService } from '@/scaling/worker-status.service.ee';
|
||||
import { RedisClientService } from '@/services/redis-client.service';
|
||||
|
||||
import { Worker } from '../worker';
|
||||
|
||||
mockInstance(RedisClientService);
|
||||
mockInstance(PubSubRegistry);
|
||||
mockInstance(Subscriber);
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { IrreversibleMigration, ReversibleMigration } from '@n8n/db';
|
||||
import type { Migration, MigrationExecutor } from '@n8n/typeorm';
|
||||
import { type DataSource } from '@n8n/typeorm';
|
||||
import type { Migration, MigrationExecutor, DataSource } from '@n8n/typeorm';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import { main } from '@/commands/db/revert';
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable @typescript-eslint/no-loop-func */
|
||||
import type { User } from '@n8n/db';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { Command } from '@n8n/decorators';
|
||||
|
||||
@@ -34,7 +34,7 @@ import { WorkflowRunner } from '@/workflow-runner';
|
||||
|
||||
import { BaseCommand } from './base-command';
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
const open = require('open');
|
||||
|
||||
const flagsSchema = z.object({
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { AiWorkflowBuilderService } from '@n8n/ai-workflow-builder';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Command } from '@n8n/decorators';
|
||||
|
||||
import { Container } from '@n8n/di';
|
||||
import fs from 'fs';
|
||||
import { jsonParse, UserError } from 'n8n-workflow';
|
||||
import { z } from 'zod';
|
||||
|
||||
@@ -13,9 +13,9 @@ import { PubSubRegistry } from '@/scaling/pubsub/pubsub.registry';
|
||||
import { Subscriber } from '@/scaling/pubsub/subscriber.service';
|
||||
import type { ScalingService } from '@/scaling/scaling.service';
|
||||
import type { WorkerServerEndpointsConfig } from '@/scaling/worker-server';
|
||||
import { WorkerStatusService } from '@/scaling/worker-status.service.ee';
|
||||
|
||||
import { BaseCommand } from './base-command';
|
||||
import { WorkerStatusService } from '@/scaling/worker-status.service.ee';
|
||||
|
||||
const flagsSchema = z.object({
|
||||
concurrency: z.number().int().default(10).describe('How many jobs can run in parallel.'),
|
||||
|
||||
@@ -50,7 +50,7 @@ type NumericPath = CollectPathsByType<number>;
|
||||
|
||||
type BooleanPath = CollectPathsByType<boolean>;
|
||||
|
||||
type StringLiteralArrayPath = CollectPathsByType<Readonly<string[]>>;
|
||||
type StringLiteralArrayPath = CollectPathsByType<readonly string[]>;
|
||||
|
||||
type StringPath = CollectPathsByType<string>;
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ export class ControllerRegistry {
|
||||
controller,
|
||||
handlerName,
|
||||
) as unknown[];
|
||||
// eslint-disable-next-line @typescript-eslint/no-loop-func
|
||||
|
||||
const handler = async (req: Request, res: Response) => {
|
||||
const args: unknown[] = [req, res];
|
||||
for (let index = 0; index < route.args.length; index++) {
|
||||
@@ -83,7 +83,7 @@ export class ControllerRegistry {
|
||||
...(inProduction && route.rateLimit
|
||||
? [this.createRateLimitMiddleware(route.rateLimit)]
|
||||
: []),
|
||||
// eslint-disable-next-line @typescript-eslint/unbound-method
|
||||
|
||||
...(route.skipAuth
|
||||
? []
|
||||
: ([
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { ApiKey } from '@n8n/db';
|
||||
import type { AuthenticatedRequest, User, ApiKey } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import type { LoginRequestDto } from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { AuthenticatedRequest, User } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { Response } from 'express';
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
import { UserUpdateRequestDto } from '@n8n/api-types';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { PublicUser } from '@n8n/db';
|
||||
import { InvalidAuthTokenRepository } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import type { AuthenticatedRequest, User, PublicUser } from '@n8n/db';
|
||||
import { InvalidAuthTokenRepository, UserRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { Response } from 'express';
|
||||
import { mock, anyObject } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import type { DismissBannerRequestDto, OwnerSetupRequestDto } from '@n8n/api-types';
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { PublicUser, SettingsRepository } from '@n8n/db';
|
||||
import type { UserRepository } from '@n8n/db';
|
||||
import type {
|
||||
AuthenticatedRequest,
|
||||
User,
|
||||
PublicUser,
|
||||
SettingsRepository,
|
||||
UserRepository,
|
||||
} from '@n8n/db';
|
||||
import type { Response } from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { UserRepository } from '@n8n/db';
|
||||
import type { AuthenticatedRequest, User, UserRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import type { EventService } from '@/events/event.service';
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { Time } from '@n8n/constants';
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { CredentialsEntity, User } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import Csrf from 'csrf';
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { Time } from '@n8n/constants';
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { CredentialsEntity, User } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import Csrf from 'csrf';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { SharedCredentialsRepository } from '@n8n/db';
|
||||
import type { AuthenticatedRequest, SharedCredentialsRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import { createRawProjectData } from '@/__tests__/project.test-data';
|
||||
@@ -29,7 +28,7 @@ describe('CredentialsController', () => {
|
||||
);
|
||||
|
||||
let req: AuthenticatedRequest;
|
||||
let res = mock<Response>();
|
||||
const res = mock<Response>();
|
||||
beforeAll(() => {
|
||||
req = { user: { id: '123' } } as AuthenticatedRequest;
|
||||
});
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { CredentialsRepository } from '@n8n/db';
|
||||
import type { CredentialsEntity, CredentialsRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { CREDENTIAL_ERRORS, CredentialDataError, Credentials, type ErrorReporter } from 'n8n-core';
|
||||
import { CREDENTIAL_EMPTY_VALUE, type ICredentialType } from 'n8n-workflow';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { CredentialsEntity } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { CredentialsEntity, CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
|
||||
@@ -2,8 +2,7 @@ import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { SqliteConfig } from '@n8n/config/src/configs/database.config';
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import { ExecutionEntity } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { ExecutionEntity, ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { SelectQueryBuilder } from '@n8n/typeorm';
|
||||
import { Not, LessThanOrEqual } from '@n8n/typeorm';
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import { getPersonalProject } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { Folder } from '@n8n/db';
|
||||
import { getPersonalProject, createWorkflow, testDb } from '@n8n/backend-test-utils';
|
||||
import type { Project, User, Folder } from '@n8n/db';
|
||||
import { FolderRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { StatisticsNames, WorkflowStatistics } from '@n8n/db';
|
||||
import { WorkflowStatisticsRepository } from '@n8n/db';
|
||||
import { createWorkflow, testDb } from '@n8n/backend-test-utils';
|
||||
import { StatisticsNames, WorkflowStatistics, WorkflowStatisticsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { type InsertResult, QueryFailedError } from '@n8n/typeorm';
|
||||
import { mock, mockClear } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import type { SourceControlledFile } from '@n8n/api-types';
|
||||
import { User } from '@n8n/db';
|
||||
import type { SharedCredentials } from '@n8n/db';
|
||||
import type { SharedWorkflow } from '@n8n/db';
|
||||
import type { FolderRepository } from '@n8n/db';
|
||||
import type { TagRepository } from '@n8n/db';
|
||||
import type { WorkflowTagMappingRepository } from '@n8n/db';
|
||||
import type { SharedCredentialsRepository } from '@n8n/db';
|
||||
import type { SharedWorkflowRepository } from '@n8n/db';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import type {
|
||||
SharedCredentials,
|
||||
SharedWorkflow,
|
||||
FolderRepository,
|
||||
TagRepository,
|
||||
WorkflowTagMappingRepository,
|
||||
SharedCredentialsRepository,
|
||||
SharedWorkflowRepository,
|
||||
WorkflowRepository,
|
||||
} from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock, captor } from 'jest-mock-extended';
|
||||
import { Cipher, type InstanceSettings } from 'n8n-core';
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
import { Project, type ProjectRepository, User, WorkflowEntity } from '@n8n/db';
|
||||
import type { FolderRepository } from '@n8n/db';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import {
|
||||
type FolderRepository,
|
||||
type WorkflowRepository,
|
||||
Project,
|
||||
type ProjectRepository,
|
||||
User,
|
||||
WorkflowEntity,
|
||||
} from '@n8n/db';
|
||||
import * as fastGlob from 'fast-glob';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { type InstanceSettings } from 'n8n-core';
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import type { SourceControlledFile } from '@n8n/api-types';
|
||||
import type { Variables } from '@n8n/db';
|
||||
import type { FolderWithWorkflowAndSubFolderCount } from '@n8n/db';
|
||||
import type { TagEntity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { FolderRepository } from '@n8n/db';
|
||||
import type { TagRepository } from '@n8n/db';
|
||||
import type {
|
||||
Variables,
|
||||
FolderWithWorkflowAndSubFolderCount,
|
||||
TagEntity,
|
||||
User,
|
||||
FolderRepository,
|
||||
TagRepository,
|
||||
} from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { InstanceSettings } from 'n8n-core';
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { TestRun } from '@n8n/db';
|
||||
import type { TestCaseExecutionRepository } from '@n8n/db';
|
||||
import type { TestRunRepository } from '@n8n/db';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import { mockLogger, mockInstance } from '@n8n/backend-test-utils';
|
||||
import type {
|
||||
TestRun,
|
||||
TestCaseExecutionRepository,
|
||||
TestRunRepository,
|
||||
WorkflowRepository,
|
||||
} from '@n8n/db';
|
||||
import { readFileSync } from 'fs';
|
||||
import type { Mock } from 'jest-mock';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { ErrorReporter } from 'n8n-core';
|
||||
import { EVALUATION_NODE_TYPE, EVALUATION_TRIGGER_NODE_TYPE } from 'n8n-workflow';
|
||||
import type { IWorkflowBase } from 'n8n-workflow';
|
||||
import type { IRun, ExecutionError } from 'n8n-workflow';
|
||||
import type { IWorkflowBase, IRun, ExecutionError } from 'n8n-workflow';
|
||||
import path from 'path';
|
||||
|
||||
import type { ActiveExecutions } from '@/active-executions';
|
||||
|
||||
@@ -1,23 +1,31 @@
|
||||
import type { NodeTypes } from '@/node-types';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import type { IWorkflowDb } from '@n8n/db';
|
||||
import type { CredentialsRepository } from '@n8n/db';
|
||||
import type { ProjectRelationRepository } from '@n8n/db';
|
||||
import type { SharedWorkflowRepository } from '@n8n/db';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import type {
|
||||
CredentialsEntity,
|
||||
WorkflowEntity,
|
||||
IWorkflowDb,
|
||||
CredentialsRepository,
|
||||
ProjectRelationRepository,
|
||||
SharedWorkflowRepository,
|
||||
WorkflowRepository,
|
||||
} from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { type BinaryDataConfig, InstanceSettings } from 'n8n-core';
|
||||
import type { INode, INodesGraphResult } from 'n8n-workflow';
|
||||
import { NodeApiError, TelemetryHelpers, type IRun, type IWorkflowBase } from 'n8n-workflow';
|
||||
import {
|
||||
type INode,
|
||||
type INodesGraphResult,
|
||||
NodeApiError,
|
||||
TelemetryHelpers,
|
||||
type IRun,
|
||||
type IWorkflowBase,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
import { N8N_VERSION } from '@/constants';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import type { RelayEventMap } from '@/events/maps/relay.event-map';
|
||||
import { TelemetryEventRelay } from '@/events/relays/telemetry.event-relay';
|
||||
import type { License } from '@/license';
|
||||
import type { NodeTypes } from '@/node-types';
|
||||
import type { Telemetry } from '@/telemetry';
|
||||
|
||||
const flushPromises = async () => await new Promise((resolve) => setImmediate(resolve));
|
||||
|
||||
@@ -127,7 +127,7 @@ export class TelemetryEventRelay extends EventRelay {
|
||||
this.telemetry.track('Project settings updated', {
|
||||
user_id: userId,
|
||||
role,
|
||||
// eslint-disable-next-line @typescript-eslint/no-shadow
|
||||
|
||||
members: members.map(({ userId: user_id, role }) => ({ user_id, role })),
|
||||
project_id: projectId,
|
||||
});
|
||||
|
||||
@@ -45,7 +45,7 @@ class ModulesHooksRegistry {
|
||||
runData,
|
||||
newStaticData,
|
||||
};
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/return-await
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
return await instance[methodName].call(instance, context);
|
||||
});
|
||||
break;
|
||||
@@ -58,7 +58,7 @@ class ModulesHooksRegistry {
|
||||
nodeName,
|
||||
taskData,
|
||||
};
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/return-await
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
return await instance[methodName].call(instance, context);
|
||||
});
|
||||
break;
|
||||
@@ -72,7 +72,7 @@ class ModulesHooksRegistry {
|
||||
taskData,
|
||||
executionData,
|
||||
};
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/return-await
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
return await instance[methodName].call(instance, context);
|
||||
});
|
||||
break;
|
||||
@@ -85,7 +85,7 @@ class ModulesHooksRegistry {
|
||||
workflowInstance,
|
||||
executionData,
|
||||
};
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/return-await
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
||||
return await instance[methodName].call(instance, context);
|
||||
});
|
||||
break;
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow, testDb, mockInstance } from '@n8n/backend-test-utils';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { stringify } from 'flatted';
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import type { IExecutionResponse, ExecutionRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { WorkflowOperationError } from 'n8n-workflow';
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { SharedCredentialsRepository } from '@n8n/db';
|
||||
import type { Project, User, SharedCredentialsRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { INode } from 'n8n-workflow';
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import type { Project, User, WorkflowEntity } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { INode, Workflow } from 'n8n-workflow';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
@@ -122,7 +122,6 @@ export class ExternalHooks {
|
||||
for (let hookFilePath of externalHookFiles) {
|
||||
hookFilePath = hookFilePath.trim();
|
||||
try {
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const hookFile = require(hookFilePath) as IExternalHooksFileData;
|
||||
this.loadHooks(hookFile);
|
||||
} catch (e) {
|
||||
@@ -162,7 +161,7 @@ export class ExternalHooks {
|
||||
await hookFunction.apply(context, hookParameters);
|
||||
} catch (cause) {
|
||||
this.logger.error(`There was a problem running hook "${hookName}"`);
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
|
||||
const error = new UnexpectedError(`External hook "${hookName}" failed`, { cause });
|
||||
this.errorReporter.error(error, { level: 'fatal' });
|
||||
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { generateNanoId } from '@n8n/db';
|
||||
import { AuthIdentity } from '@n8n/db';
|
||||
import { User } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import { generateNanoId, AuthIdentity, User, UserRepository } from '@n8n/db';
|
||||
|
||||
import * as helpers from '@/ldap.ee/helpers.ee';
|
||||
|
||||
|
||||
@@ -516,7 +516,7 @@ export class LoadNodesAndCredentials {
|
||||
|
||||
async setupHotReload() {
|
||||
const { default: debounce } = await import('lodash/debounce');
|
||||
// eslint-disable-next-line import-x/no-extraneous-dependencies
|
||||
|
||||
const { watch } = await import('chokidar');
|
||||
|
||||
const { Push } = await import('@/push');
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { LicenseMetricsRepository } from '@n8n/db';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import type { LicenseMetricsRepository, WorkflowRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import { LicenseMetricsService } from '@/metrics/license-metrics.service';
|
||||
|
||||
@@ -5,12 +5,12 @@ import type express from 'express';
|
||||
import promBundle from 'express-prom-bundle';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { InstanceSettings } from 'n8n-core';
|
||||
import { EventMessageTypeNames } from 'n8n-workflow';
|
||||
import promClient from 'prom-client';
|
||||
|
||||
import config from '@/config';
|
||||
import type { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
import type { EventService } from '@/events/event.service';
|
||||
import { EventMessageTypeNames } from 'n8n-workflow';
|
||||
|
||||
import { PrometheusMetricsService } from '../prometheus-metrics.service';
|
||||
|
||||
|
||||
@@ -27,7 +27,6 @@ export class MfaService {
|
||||
try {
|
||||
await this.loadMFASettings();
|
||||
} catch (error) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
this.logger.warn('Failed to load MFA settings', { error });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import { sortByQueryMiddleware } from '../sort-by';
|
||||
describe('List query middleware', () => {
|
||||
let mockReq: ListQuery.Request;
|
||||
let mockRes: Response;
|
||||
let nextFn: NextFunction = jest.fn();
|
||||
const nextFn: NextFunction = jest.fn();
|
||||
let args: [ListQuery.Request, Response, NextFunction];
|
||||
|
||||
let sendErrorResponse: jest.SpyInstance;
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import { createTeamProject } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { testModules } from '@n8n/backend-test-utils';
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import type { IWorkflowDb } from '@n8n/db';
|
||||
import type { SharedWorkflowRepository } from '@n8n/db';
|
||||
import {
|
||||
mockLogger,
|
||||
createTeamProject,
|
||||
createWorkflow,
|
||||
testDb,
|
||||
testModules,
|
||||
} from '@n8n/backend-test-utils';
|
||||
import type { Project, WorkflowEntity, IWorkflowDb, SharedWorkflowRepository } from '@n8n/db';
|
||||
import type { WorkflowExecuteAfterContext } from '@n8n/decorators';
|
||||
import { Container } from '@n8n/di';
|
||||
import { In } from '@n8n/typeorm';
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import { createTeamProject } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { testModules } from '@n8n/backend-test-utils';
|
||||
import {
|
||||
mockLogger,
|
||||
createTeamProject,
|
||||
createWorkflow,
|
||||
testDb,
|
||||
testModules,
|
||||
} from '@n8n/backend-test-utils';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import type { LicenseState } from '@n8n/backend-common';
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import { createTeamProject } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { testModules } from '@n8n/backend-test-utils';
|
||||
import {
|
||||
mockLogger,
|
||||
createTeamProject,
|
||||
createWorkflow,
|
||||
testDb,
|
||||
testModules,
|
||||
} from '@n8n/backend-test-utils';
|
||||
import { Time } from '@n8n/constants';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import type { InsightsDateRange } from '@n8n/api-types';
|
||||
import type { LicenseState } from '@n8n/backend-common';
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import { createTeamProject } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { testModules } from '@n8n/backend-test-utils';
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import type { IWorkflowDb } from '@n8n/db';
|
||||
import {
|
||||
mockLogger,
|
||||
createTeamProject,
|
||||
createWorkflow,
|
||||
testDb,
|
||||
testModules,
|
||||
} from '@n8n/backend-test-utils';
|
||||
import type { Project, WorkflowEntity, IWorkflowDb } from '@n8n/db';
|
||||
import type { WorkflowExecuteAfterContext } from '@n8n/decorators';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { MockProxy } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
import { createTeamProject } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { testModules } from '@n8n/backend-test-utils';
|
||||
import { createTeamProject, createWorkflow, testDb, testModules } from '@n8n/backend-test-utils';
|
||||
import { Container } from '@n8n/di';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
import { createTeamProject } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { testModules } from '@n8n/backend-test-utils';
|
||||
import { createTeamProject, createWorkflow, testDb, testModules } from '@n8n/backend-test-utils';
|
||||
import { Container } from '@n8n/di';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ export async function getSharedWorkflowIds(
|
||||
|
||||
export async function getSharedWorkflow(
|
||||
user: User,
|
||||
workflowId?: string | undefined,
|
||||
workflowId?: string,
|
||||
): Promise<SharedWorkflow | null> {
|
||||
return await Container.get(SharedWorkflowRepository).findOne({
|
||||
where: {
|
||||
|
||||
@@ -94,7 +94,7 @@ export class Push extends TypedEmitter<PushEvents> {
|
||||
setupPushHandler(restEndpoint: string, app: Application) {
|
||||
app.use(
|
||||
`/${restEndpoint}/push`,
|
||||
// eslint-disable-next-line @typescript-eslint/unbound-method
|
||||
|
||||
this.authService.createAuthMiddleware(false),
|
||||
(req: SSEPushRequest | WebSocketPushRequest, res: PushResponse) =>
|
||||
this.handleRequest(req, res),
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import type { IExecutionResponse, ExecutionRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { WorkflowExecute as ActualWorkflowExecute } from 'n8n-core';
|
||||
import { ExternalSecretsProxy } from 'n8n-core';
|
||||
import { mockInstance } from 'n8n-core/test/utils';
|
||||
import type { IPinData, ITaskData, IWorkflowExecuteAdditionalData } from 'n8n-workflow';
|
||||
import { Workflow, type IRunExecutionData, type WorkflowExecuteMode } from 'n8n-workflow';
|
||||
import {
|
||||
type IPinData,
|
||||
type ITaskData,
|
||||
type IWorkflowExecuteAdditionalData,
|
||||
Workflow,
|
||||
type IRunExecutionData,
|
||||
type WorkflowExecuteMode,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
import { CredentialsHelper } from '@/credentials-helper';
|
||||
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { mockLogger, mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Container } from '@n8n/di';
|
||||
import * as BullModule from 'bull';
|
||||
|
||||
@@ -415,7 +415,7 @@ export class Server extends AbstractServer {
|
||||
});
|
||||
|
||||
// Route all UI urls to index.html to support history-api
|
||||
const nonUIRoutes: Readonly<string[]> = [
|
||||
const nonUIRoutes: readonly string[] = [
|
||||
'favicon.ico',
|
||||
'assets',
|
||||
'static',
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import { WorkflowEntity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { SharedWorkflowRepository } from '@n8n/db';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import type { User, SharedWorkflowRepository, WorkflowRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import type { ActivationErrorsService } from '@/activation-errors.service';
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
import { randomName } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { randomName, mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import { LICENSE_FEATURES } from '@n8n/constants';
|
||||
import { InstalledNodes } from '@n8n/db';
|
||||
import { InstalledPackages } from '@n8n/db';
|
||||
import { InstalledNodesRepository } from '@n8n/db';
|
||||
import { InstalledPackagesRepository } from '@n8n/db';
|
||||
import {
|
||||
InstalledNodes,
|
||||
InstalledPackages,
|
||||
InstalledNodesRepository,
|
||||
InstalledPackagesRepository,
|
||||
} from '@n8n/db';
|
||||
import axios from 'axios';
|
||||
import { exec } from 'child_process';
|
||||
import { mkdir, readFile, writeFile, rm, access, constants } from 'fs/promises';
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { SharedCredentials } from '@n8n/db';
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { CredentialsEntity, User } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { In } from '@n8n/typeorm';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { SettingsRepository, User } from '@n8n/db';
|
||||
import type { CredentialsRepository } from '@n8n/db';
|
||||
import type { WorkflowRepository } from '@n8n/db';
|
||||
import type { UserRepository } from '@n8n/db';
|
||||
import type {
|
||||
AuthenticatedRequest,
|
||||
SettingsRepository,
|
||||
User,
|
||||
CredentialsRepository,
|
||||
WorkflowRepository,
|
||||
UserRepository,
|
||||
} from '@n8n/db';
|
||||
import RudderStack from '@rudderstack/rudder-sdk-node';
|
||||
import type { Response } from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { UserRepository } from '@n8n/db';
|
||||
import type { AuthenticatedRequest, User, UserRepository } from '@n8n/db';
|
||||
import type { NextFunction, Response } from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { DateTime } from 'luxon';
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import type { CredentialsEntity, WorkflowEntity } from '@n8n/db';
|
||||
import { CredentialsRepository, WorkflowRepository } from '@n8n/db';
|
||||
|
||||
import { NamingService } from '@/services/naming.service';
|
||||
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { SharedCredentials } from '@n8n/db';
|
||||
import { Project, SharedWorkflow, User, WorkflowEntity, ProjectRelation } from '@n8n/db';
|
||||
import { ProjectRelationRepository } from '@n8n/db';
|
||||
import { SharedWorkflowRepository } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import {
|
||||
Project,
|
||||
SharedWorkflow,
|
||||
User,
|
||||
WorkflowEntity,
|
||||
ProjectRelation,
|
||||
ProjectRelationRepository,
|
||||
SharedWorkflowRepository,
|
||||
UserRepository,
|
||||
} from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import { ApiKeyRepository } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import { ApiKeyRepository, UserRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { getOwnerOnlyApiKeyScopes, type ApiKeyScope } from '@n8n/permissions';
|
||||
import type { Response, NextFunction } from 'express';
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { User } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import { User, UserRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
import { getPersonalProject } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { getPersonalProject, createWorkflow, testDb, mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { IWorkflowDb, Project, WorkflowEntity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { IWorkflowDb, Project, WorkflowEntity, User } from '@n8n/db';
|
||||
import { WorkflowStatisticsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import {
|
||||
|
||||
@@ -171,7 +171,7 @@ export class OidcService {
|
||||
} catch (error) {
|
||||
this.logger.warn(
|
||||
'Failed to load OIDC configuration from database, falling back to default configuration.',
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
|
||||
{ error },
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { AuthIdentity } from '@n8n/db';
|
||||
import { generateNanoId } from '@n8n/db';
|
||||
import { User } from '@n8n/db';
|
||||
import { AuthIdentityRepository } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import { generateNanoId, User, AuthIdentityRepository, UserRepository } from '@n8n/db';
|
||||
|
||||
import * as helpers from '@/sso.ee/saml/saml-helpers';
|
||||
import type { SamlUserAttributes } from '@/sso.ee/saml/types';
|
||||
|
||||
@@ -269,7 +269,7 @@ export class SamlService {
|
||||
// database.
|
||||
this.logger.error(
|
||||
'SAML initialization detected an invalid metadata URL in database. Trying to initialize from metadata in database if available.',
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
|
||||
{ error },
|
||||
);
|
||||
}
|
||||
|
||||
@@ -719,7 +719,7 @@ describe('TaskBroker', () => {
|
||||
describe('task execution timeouts', () => {
|
||||
let taskBroker: TaskBroker;
|
||||
let config: TaskRunnersConfig;
|
||||
let runnerLifecycleEvents = mock<TaskRunnerLifecycleEvents>();
|
||||
const runnerLifecycleEvents = mock<TaskRunnerLifecycleEvents>();
|
||||
|
||||
beforeAll(() => {
|
||||
jest.useFakeTimers();
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import type { DataRequestResponse, TaskDataRequestParams } from '@n8n/task-runner';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { IWorkflowExecuteAdditionalData } from 'n8n-workflow';
|
||||
import { type INode, type INodeExecutionData } from 'n8n-workflow';
|
||||
import type { IWorkflowExecuteAdditionalData, INode, INodeExecutionData } from 'n8n-workflow';
|
||||
|
||||
import { DataRequestResponseStripper } from '../data-request-response-stripper';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { INode } from 'n8n-workflow';
|
||||
import { NodeOperationError, type Workflow } from 'n8n-workflow';
|
||||
import type { INode, Workflow } from 'n8n-workflow';
|
||||
import { NodeOperationError } from 'n8n-workflow';
|
||||
|
||||
import { objectToError } from '../object-to-error';
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { generateNanoId } from '@n8n/db';
|
||||
import type * as express from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { ITaskData, IWorkflowBase } from 'n8n-workflow';
|
||||
import {
|
||||
type IWebhookData,
|
||||
type IWorkflowExecuteAdditionalData,
|
||||
type Workflow,
|
||||
import type {
|
||||
ITaskData,
|
||||
IWorkflowBase,
|
||||
IWebhookData,
|
||||
IWorkflowExecuteAdditionalData,
|
||||
Workflow,
|
||||
} from 'n8n-workflow';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import type { IExecutionResponse, ExecutionRepository } from '@n8n/db';
|
||||
import type express from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { FORM_NODE_TYPE, WAITING_FORMS_EXECUTION_STATUS, type Workflow } from 'n8n-workflow';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import type { IExecutionResponse, ExecutionRepository } from '@n8n/db';
|
||||
import type express from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
|
||||
@@ -13,14 +13,14 @@ import { WebhookService } from '@/webhooks/webhook.service';
|
||||
import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data';
|
||||
import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service';
|
||||
|
||||
import { authAllowlistedNodes } from './constants';
|
||||
import { sanitizeWebhookRequest } from './webhook-request-sanitizer';
|
||||
import type {
|
||||
IWebhookResponseCallbackData,
|
||||
IWebhookManager,
|
||||
WebhookAccessControlOptions,
|
||||
WebhookRequest,
|
||||
} from './webhook.types';
|
||||
import { authAllowlistedNodes } from './constants';
|
||||
import { sanitizeWebhookRequest } from './webhook-request-sanitizer';
|
||||
|
||||
/**
|
||||
* Service for handling the execution of live webhooks, i.e. webhooks
|
||||
|
||||
@@ -25,6 +25,8 @@ import * as WebhookHelpers from '@/webhooks/webhook-helpers';
|
||||
import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data';
|
||||
import type { WorkflowRequest } from '@/workflows/workflow.request';
|
||||
|
||||
import { authAllowlistedNodes } from './constants';
|
||||
import { sanitizeWebhookRequest } from './webhook-request-sanitizer';
|
||||
import { WebhookService } from './webhook.service';
|
||||
import type {
|
||||
IWebhookResponseCallbackData,
|
||||
@@ -32,8 +34,6 @@ import type {
|
||||
WebhookAccessControlOptions,
|
||||
WebhookRequest,
|
||||
} from './webhook.types';
|
||||
import { authAllowlistedNodes } from './constants';
|
||||
import { sanitizeWebhookRequest } from './webhook-request-sanitizer';
|
||||
|
||||
/**
|
||||
* Service for handling the execution of webhooks of manual executions
|
||||
|
||||
@@ -13,8 +13,8 @@ import { ConflictError } from '@/errors/response-errors/conflict.error';
|
||||
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
||||
import { WaitingWebhooks } from '@/webhooks/waiting-webhooks';
|
||||
|
||||
import type { IWebhookResponseCallbackData, WaitingWebhookRequest } from './webhook.types';
|
||||
import { sanitizeWebhookRequest } from './webhook-request-sanitizer';
|
||||
import type { IWebhookResponseCallbackData, WaitingWebhookRequest } from './webhook.types';
|
||||
|
||||
@Service()
|
||||
export class WaitingForms extends WaitingWebhooks {
|
||||
|
||||
@@ -18,13 +18,13 @@ import { NodeTypes } from '@/node-types';
|
||||
import * as WebhookHelpers from '@/webhooks/webhook-helpers';
|
||||
import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data';
|
||||
|
||||
import { sanitizeWebhookRequest } from './webhook-request-sanitizer';
|
||||
import { WebhookService } from './webhook.service';
|
||||
import type {
|
||||
IWebhookResponseCallbackData,
|
||||
IWebhookManager,
|
||||
WaitingWebhookRequest,
|
||||
} from './webhook.types';
|
||||
import { sanitizeWebhookRequest } from './webhook-request-sanitizer';
|
||||
|
||||
/**
|
||||
* Service for handling the execution of webhooks of Wait nodes that use the
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||
/* eslint-disable @typescript-eslint/prefer-optional-chain */
|
||||
/* eslint-disable @typescript-eslint/no-shadow */
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
/* eslint-disable id-denylist */
|
||||
/* eslint-disable prefer-spread */
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { AUTH_COOKIE_NAME } from '@/constants';
|
||||
import type { Request } from 'express';
|
||||
|
||||
import { AUTH_COOKIE_NAME } from '@/constants';
|
||||
|
||||
const BROWSER_ID_COOKIE_NAME = 'n8n-browserId';
|
||||
|
||||
const DISALLOWED_COOKIES = new Set([AUTH_COOKIE_NAME, BROWSER_ID_COOKIE_NAME]);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||
/* eslint-disable @typescript-eslint/no-use-before-define */
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
import type { PushMessage, PushType } from '@n8n/api-types';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
/* eslint-disable @typescript-eslint/no-shadow */
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
@@ -200,7 +200,7 @@ export class WorkflowRunner {
|
||||
}
|
||||
|
||||
/** Run the workflow in current process */
|
||||
// eslint-disable-next-line complexity
|
||||
|
||||
private async runMainProcess(
|
||||
executionId: string,
|
||||
data: IWorkflowExecutionDataProcess,
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { User } from '@n8n/db';
|
||||
import { WorkflowHistoryRepository } from '@n8n/db';
|
||||
import { mockLogger, mockInstance } from '@n8n/backend-test-utils';
|
||||
import { User, WorkflowHistoryRepository } from '@n8n/db';
|
||||
import { mockClear } from 'jest-mock-extended';
|
||||
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
import { createWorkflow } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { createWorkflow, testDb, mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { WebhookEntity } from '@n8n/db';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { ProjectRepository } from '@n8n/db';
|
||||
import { SharedCredentialsRepository } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import type { Project, User } from '@n8n/db';
|
||||
import {
|
||||
CredentialsRepository,
|
||||
ProjectRepository,
|
||||
SharedCredentialsRepository,
|
||||
UserRepository,
|
||||
} from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { randomUUID } from 'crypto';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import type { ApiKeyWithRawValue } from '@n8n/api-types';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { randomValidPassword } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { testDb, randomValidPassword, mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User } from '@n8n/db';
|
||||
import { ApiKeyRepository } from '@n8n/db';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { randomValidPassword } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { randomValidPassword, testDb } from '@n8n/backend-test-utils';
|
||||
import type { User } from '@n8n/db';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
||||
@@ -14,7 +14,7 @@ const throwFileNotFound = () => {
|
||||
};
|
||||
|
||||
const binaryDataService = mockInstance(BinaryDataService);
|
||||
let testServer = setupTestServer({ endpointGroups: ['binaryData'] });
|
||||
const testServer = setupTestServer({ endpointGroups: ['binaryData'] });
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { createWorkflow, shareWorkflowWithUsers } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import {
|
||||
createWorkflow,
|
||||
shareWorkflowWithUsers,
|
||||
testDb,
|
||||
mockInstance,
|
||||
} from '@n8n/backend-test-utils';
|
||||
import type { User } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { getPersonalProject, mockInstance } from '@n8n/backend-test-utils';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { getPersonalProject, mockInstance, testDb } from '@n8n/backend-test-utils';
|
||||
import { nanoid } from 'nanoid';
|
||||
|
||||
import '@/zod-alias-support';
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
import { mockInstance, testDb } from '@n8n/backend-test-utils';
|
||||
import { getPersonalProject } from '@n8n/backend-test-utils';
|
||||
import { getAllSharedWorkflows, getAllWorkflows } from '@n8n/backend-test-utils';
|
||||
import {
|
||||
mockInstance,
|
||||
testDb,
|
||||
getPersonalProject,
|
||||
getAllSharedWorkflows,
|
||||
getAllWorkflows,
|
||||
} from '@n8n/backend-test-utils';
|
||||
import { nanoid } from 'nanoid';
|
||||
|
||||
import '@/zod-alias-support';
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user