chore: Enfore consistent file-name casing on all backend packages (#15755)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2025-05-27 16:45:50 +02:00
committed by GitHub
parent 66d339c0d8
commit 3a2a70f193
152 changed files with 309 additions and 279 deletions

View File

@@ -4,4 +4,7 @@ const sharedOptions = require('@n8n/eslint-config/shared');
module.exports = { module.exports = {
extends: ['@n8n/eslint-config/base'], extends: ['@n8n/eslint-config/base'],
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
},
}; };

View File

@@ -1,6 +1,6 @@
import { Z } from 'zod-class'; import { Z } from 'zod-class';
import { booleanFromString } from '../../schemas/booleanFromString'; import { booleanFromString } from '../../schemas/boolean-from-string';
export class CredentialsGetManyRequestQuery extends Z.class({ export class CredentialsGetManyRequestQuery extends Z.class({
/** /**

View File

@@ -1,6 +1,6 @@
import { Z } from 'zod-class'; import { Z } from 'zod-class';
import { booleanFromString } from '../../schemas/booleanFromString'; import { booleanFromString } from '../../schemas/boolean-from-string';
export class CredentialsGetOneRequestQuery extends Z.class({ export class CredentialsGetOneRequestQuery extends Z.class({
/** /**

View File

@@ -2,7 +2,7 @@ import type { INodeCredentials, INodeParameters, INodeTypeNameVersion } from 'n8
import { z } from 'zod'; import { z } from 'zod';
import { Z } from 'zod-class'; import { Z } from 'zod-class';
import { nodeVersionSchema } from '../../schemas/nodeVersion.schema'; import { nodeVersionSchema } from '../../schemas/node-version.schema';
export class BaseDynamicParametersRequestDto extends Z.class({ export class BaseDynamicParametersRequestDto extends Z.class({
path: z.string(), path: z.string(),

View File

@@ -1,4 +1,4 @@
import { bannerNameSchema } from '../../../schemas/bannerName.schema'; import { bannerNameSchema } from '../../../schemas/banner-name.schema';
import { DismissBannerRequestDto } from '../dismiss-banner-request.dto'; import { DismissBannerRequestDto } from '../dismiss-banner-request.dto';
describe('DismissBannerRequestDto', () => { describe('DismissBannerRequestDto', () => {

View File

@@ -1,6 +1,6 @@
import { Z } from 'zod-class'; import { Z } from 'zod-class';
import { bannerNameSchema } from '../../schemas/bannerName.schema'; import { bannerNameSchema } from '../../schemas/banner-name.schema';
export class DismissBannerRequestDto extends Z.class({ export class DismissBannerRequestDto extends Z.class({
banner: bannerNameSchema.optional(), banner: bannerNameSchema.optional(),

View File

@@ -1,8 +1,8 @@
import { z } from 'zod'; import { z } from 'zod';
import { Z } from 'zod-class'; import { Z } from 'zod-class';
import { passwordResetTokenSchema } from '../../schemas/password-reset-token.schema';
import { passwordSchema } from '../../schemas/password.schema'; import { passwordSchema } from '../../schemas/password.schema';
import { passwordResetTokenSchema } from '../../schemas/passwordResetToken.schema';
export class ChangePasswordRequestDto extends Z.class({ export class ChangePasswordRequestDto extends Z.class({
token: passwordResetTokenSchema, token: passwordResetTokenSchema,

View File

@@ -1,6 +1,6 @@
import { Z } from 'zod-class'; import { Z } from 'zod-class';
import { passwordResetTokenSchema } from '../../schemas/passwordResetToken.schema'; import { passwordResetTokenSchema } from '../../schemas/password-reset-token.schema';
export class ResolvePasswordTokenQueryDto extends Z.class({ export class ResolvePasswordTokenQueryDto extends Z.class({
token: passwordResetTokenSchema, token: passwordResetTokenSchema,

View File

@@ -1,6 +1,6 @@
import { Z } from 'zod-class'; import { Z } from 'zod-class';
import { booleanFromString } from '../../schemas/booleanFromString'; import { booleanFromString } from '../../schemas/boolean-from-string';
export class RetrieveTagQueryDto extends Z.class({ export class RetrieveTagQueryDto extends Z.class({
withUsageCount: booleanFromString.optional().default('false'), withUsageCount: booleanFromString.optional().default('false'),

View File

@@ -12,8 +12,8 @@ export type { HeartbeatMessage } from './push/heartbeat';
export { createHeartbeatMessage, heartbeatMessageSchema } from './push/heartbeat'; export { createHeartbeatMessage, heartbeatMessageSchema } from './push/heartbeat';
export type { SendWorkerStatusMessage } from './push/worker'; export type { SendWorkerStatusMessage } from './push/worker';
export type { BannerName } from './schemas/bannerName.schema'; export type { BannerName } from './schemas/banner-name.schema';
export { ViewableMimeTypes } from './schemas/binaryData.schema'; export { ViewableMimeTypes } from './schemas/binary-data.schema';
export { passwordSchema } from './schemas/password.schema'; export { passwordSchema } from './schemas/password.schema';
export type { export type {

View File

@@ -1,4 +1,4 @@
import { nodeVersionSchema } from '../nodeVersion.schema'; import { nodeVersionSchema } from '../node-version.schema';
describe('nodeVersionSchema', () => { describe('nodeVersionSchema', () => {
describe('valid versions', () => { describe('valid versions', () => {

View File

@@ -4,4 +4,7 @@ const sharedOptions = require('@n8n/eslint-config/shared');
module.exports = { module.exports = {
extends: ['@n8n/eslint-config/base'], extends: ['@n8n/eslint-config/base'],
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
},
}; };

View File

@@ -9,6 +9,7 @@ module.exports = {
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: { rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
'@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/consistent-type-imports': 'error',
'n8n-local-rules/no-plain-errors': 'off', 'n8n-local-rules/no-plain-errors': 'off',
'n8n-local-rules/no-uncaught-json-parse': 'off', 'n8n-local-rules/no-uncaught-json-parse': 'off',

View File

@@ -1,6 +1,6 @@
import * as a from 'node:assert'; import * as a from 'node:assert';
import type { ClientOAuth2, ClientOAuth2Options, ClientOAuth2RequestObject } from './ClientOAuth2'; import type { ClientOAuth2, ClientOAuth2Options, ClientOAuth2RequestObject } from './client-oauth2';
import { DEFAULT_HEADERS } from './constants'; import { DEFAULT_HEADERS } from './constants';
import { auth, expects, getRequestOptions } from './utils'; import { auth, expects, getRequestOptions } from './utils';

View File

@@ -4,10 +4,10 @@ import type { AxiosRequestConfig, AxiosResponse } from 'axios';
import { Agent } from 'https'; import { Agent } from 'https';
import * as qs from 'querystring'; import * as qs from 'querystring';
import type { ClientOAuth2TokenData } from './ClientOAuth2Token'; import type { ClientOAuth2TokenData } from './client-oauth2-token';
import { ClientOAuth2Token } from './ClientOAuth2Token'; import { ClientOAuth2Token } from './client-oauth2-token';
import { CodeFlow } from './CodeFlow'; import { CodeFlow } from './code-flow';
import { CredentialsFlow } from './CredentialsFlow'; import { CredentialsFlow } from './credentials-flow';
import type { Headers, OAuth2AccessTokenErrorResponse } from './types'; import type { Headers, OAuth2AccessTokenErrorResponse } from './types';
import { getAuthError } from './utils'; import { getAuthError } from './utils';

View File

@@ -1,7 +1,7 @@
import * as qs from 'querystring'; import * as qs from 'querystring';
import type { ClientOAuth2, ClientOAuth2Options } from './ClientOAuth2'; import type { ClientOAuth2, ClientOAuth2Options } from './client-oauth2';
import type { ClientOAuth2Token } from './ClientOAuth2Token'; import type { ClientOAuth2Token } from './client-oauth2-token';
import { DEFAULT_HEADERS, DEFAULT_URL_BASE } from './constants'; import { DEFAULT_HEADERS, DEFAULT_URL_BASE } from './constants';
import { auth, expects, getAuthError, getRequestOptions } from './utils'; import { auth, expects, getAuthError, getRequestOptions } from './utils';

View File

@@ -1,5 +1,5 @@
import type { ClientOAuth2 } from './ClientOAuth2'; import type { ClientOAuth2 } from './client-oauth2';
import type { ClientOAuth2Token } from './ClientOAuth2Token'; import type { ClientOAuth2Token } from './client-oauth2-token';
import { DEFAULT_HEADERS } from './constants'; import { DEFAULT_HEADERS } from './constants';
import type { Headers } from './types'; import type { Headers } from './types';
import { auth, expects, getRequestOptions } from './utils'; import { auth, expects, getRequestOptions } from './utils';

View File

@@ -1,3 +1,3 @@
export { ClientOAuth2, ClientOAuth2Options, ClientOAuth2RequestObject } from './ClientOAuth2'; export { ClientOAuth2, ClientOAuth2Options, ClientOAuth2RequestObject } from './client-oauth2';
export { ClientOAuth2Token, ClientOAuth2TokenData } from './ClientOAuth2Token'; export { ClientOAuth2Token, ClientOAuth2TokenData } from './client-oauth2-token';
export type * from './types'; export type * from './types';

View File

@@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
import type { ClientOAuth2Options, ClientOAuth2RequestObject } from './ClientOAuth2'; import type { ClientOAuth2Options, ClientOAuth2RequestObject } from './client-oauth2';
import { ERROR_RESPONSES } from './constants'; import { ERROR_RESPONSES } from './constants';
/** /**

View File

@@ -1,7 +1,7 @@
import axios from 'axios'; import axios from 'axios';
import nock from 'nock'; import nock from 'nock';
import { ClientOAuth2, ResponseError } from '@/ClientOAuth2'; import { ClientOAuth2, ResponseError } from '@/client-oauth2';
import { ERROR_RESPONSES } from '@/constants'; import { ERROR_RESPONSES } from '@/constants';
import { auth, AuthError } from '@/utils'; import { auth, AuthError } from '@/utils';

View File

@@ -1,9 +1,10 @@
import nock from 'nock'; import nock from 'nock';
import { ClientOAuth2 } from '@/client-oauth2';
import { ClientOAuth2Token } from '@/client-oauth2-token';
import { AuthError } from '@/utils'; import { AuthError } from '@/utils';
import * as config from './config'; import * as config from './config';
import { ClientOAuth2, ClientOAuth2Token } from '../src';
describe('CodeFlow', () => { describe('CodeFlow', () => {
beforeAll(async () => { beforeAll(async () => {

View File

@@ -1,9 +1,10 @@
import nock from 'nock'; import nock from 'nock';
import { ClientOAuth2, type ClientOAuth2Options } from '@/client-oauth2';
import { ClientOAuth2Token } from '@/client-oauth2-token';
import type { Headers } from '@/types';
import * as config from './config'; import * as config from './config';
import type { ClientOAuth2Options } from '../src';
import { ClientOAuth2, ClientOAuth2Token } from '../src';
import type { Headers } from '../src/types';
describe('CredentialsFlow', () => { describe('CredentialsFlow', () => {
beforeAll(async () => { beforeAll(async () => {

View File

@@ -8,6 +8,10 @@ module.exports = {
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
},
overrides: [ overrides: [
{ {
files: ['**/*.config.ts'], files: ['**/*.config.ts'],

View File

@@ -1,6 +1,6 @@
import { z } from 'zod'; import { z } from 'zod';
import { AiAssistantConfig } from './configs/aiAssistant.config'; import { AiAssistantConfig } from './configs/ai-assistant.config';
import { AuthConfig } from './configs/auth.config'; import { AuthConfig } from './configs/auth.config';
import { CacheConfig } from './configs/cache.config'; import { CacheConfig } from './configs/cache.config';
import { CredentialsConfig } from './configs/credentials.config'; import { CredentialsConfig } from './configs/credentials.config';

View File

@@ -4,4 +4,7 @@ const sharedOptions = require('@n8n/eslint-config/shared');
module.exports = { module.exports = {
extends: ['@n8n/eslint-config/base'], extends: ['@n8n/eslint-config/base'],
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
},
}; };

View File

@@ -4,4 +4,15 @@ const sharedOptions = require('@n8n/eslint-config/shared');
module.exports = { module.exports = {
extends: ['@n8n/eslint-config/base'], extends: ['@n8n/eslint-config/base'],
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
},
overrides: [
{
files: ['./src/migrations/**/*.ts'],
rules: {
'unicorn/filename-case': 'off',
},
},
],
}; };

View File

@@ -4,4 +4,7 @@ const sharedOptions = require('@n8n/eslint-config/shared');
module.exports = { module.exports = {
extends: ['@n8n/eslint-config/base'], extends: ['@n8n/eslint-config/base'],
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
},
}; };

View File

@@ -4,4 +4,7 @@ const sharedOptions = require('@n8n/eslint-config/shared');
module.exports = { module.exports = {
extends: ['@n8n/eslint-config/base'], extends: ['@n8n/eslint-config/base'],
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
},
}; };

View File

@@ -1,5 +1,5 @@
import { ServiceA } from './fixtures/ServiceA'; import { ServiceA } from './fixtures/service-a';
import { ServiceB } from './fixtures/ServiceB'; import { ServiceB } from './fixtures/service-b';
import { Container } from '../di'; import { Container } from '../di';
describe('DI Container', () => { describe('DI Container', () => {

View File

@@ -1,5 +1,5 @@
// eslint-disable-next-line import/no-cycle // eslint-disable-next-line import/no-cycle
import { ServiceB } from './ServiceB'; import { ServiceB } from './service-b';
import { Service } from '../../di'; import { Service } from '../../di';
@Service() @Service()

View File

@@ -1,5 +1,5 @@
// eslint-disable-next-line import/no-cycle // eslint-disable-next-line import/no-cycle
import { ServiceA } from './ServiceA'; import { ServiceA } from './service-a';
import { Service } from '../../di'; import { Service } from '../../di';
@Service() @Service()

View File

@@ -9,6 +9,7 @@ module.exports = {
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: { rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
'@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/consistent-type-imports': 'error',
'n8n-local-rules/no-plain-errors': 'off', 'n8n-local-rules/no-plain-errors': 'off',
}, },

View File

@@ -3,8 +3,8 @@ import { EventEmitter } from 'events';
import type Imap from 'imap'; import type Imap from 'imap';
import { type ImapMessage } from 'imap'; import { type ImapMessage } from 'imap';
import { getMessage } from './helpers/getMessage'; import { getMessage } from './helpers/get-message';
import { PartData } from './PartData'; import { PartData } from './part-data';
import type { Message, MessagePart } from './types'; import type { Message, MessagePart } from './types';
const IMAP_EVENTS = ['alert', 'mail', 'expunge', 'uidvalidity', 'update', 'close', 'end'] as const; const IMAP_EVENTS = ['alert', 'mail', 'expunge', 'uidvalidity', 'update', 'close', 'end'] as const;

View File

@@ -3,7 +3,7 @@
import Imap from 'imap'; import Imap from 'imap';
import { ConnectionClosedError, ConnectionEndedError, ConnectionTimeoutError } from './errors'; import { ConnectionClosedError, ConnectionEndedError, ConnectionTimeoutError } from './errors';
import { ImapSimple } from './ImapSimple'; import { ImapSimple } from './imap-simple';
import type { ImapSimpleOptions, MessagePart } from './types'; import type { ImapSimpleOptions, MessagePart } from './types';
/** /**
@@ -95,6 +95,6 @@ export function getParts(
return parts; return parts;
} }
export * from './ImapSimple'; export * from './imap-simple';
export * from './errors'; export * from './errors';
export * from './types'; export * from './types';

View File

@@ -5,7 +5,7 @@ import {
SevenBitPartData, SevenBitPartData,
BinaryPartData, BinaryPartData,
UuencodedPartData, UuencodedPartData,
} from '../src/PartData'; } from '../src/part-data';
describe('PartData', () => { describe('PartData', () => {
describe('fromData', () => { describe('fromData', () => {

View File

@@ -1,10 +1,10 @@
const sharedOptions = require('@n8n/eslint-config/shared'); const sharedOptions = require('@n8n/eslint-config/shared');
/** /** @type {import('@types/eslint').ESLint.ConfigData} */
* @type {import('@types/eslint').ESLint.ConfigData}
*/
module.exports = { module.exports = {
extends: ['@n8n/eslint-config/base'], extends: ['@n8n/eslint-config/base'],
...sharedOptions(__dirname), ...sharedOptions(__dirname),
rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
},
}; };

View File

@@ -7,10 +7,10 @@ export * from './roles/all-roles';
export { projectRoleSchema } from './schemas.ee'; export { projectRoleSchema } from './schemas.ee';
export { hasScope } from './utilities/hasScope.ee'; export { hasScope } from './utilities/has-scope.ee';
export { hasGlobalScope } from './utilities/hasGlobalScope.ee'; export { hasGlobalScope } from './utilities/has-global-scope.ee';
export { combineScopes } from './utilities/combineScopes.ee'; export { combineScopes } from './utilities/combine-scopes.ee';
export { rolesWithScope } from './utilities/rolesWithScope.ee'; export { rolesWithScope } from './utilities/roles-with-scope.ee';
export { getGlobalScopes } from './utilities/getGlobalScopes.ee'; export { getGlobalScopes } from './utilities/get-global-scopes.ee';
export { getRoleScopes } from './utilities/getRoleScopes.ee'; export { getRoleScopes } from './utilities/get-role-scopes.ee';
export * from './public-api-permissions.ee'; export * from './public-api-permissions.ee';

View File

@@ -5,7 +5,7 @@ import {
WORKFLOW_SHARING_SCOPE_MAP, WORKFLOW_SHARING_SCOPE_MAP,
} from './role-maps.ee'; } from './role-maps.ee';
import type { AllRolesMap, AllRoleTypes, Scope } from '../types.ee'; import type { AllRolesMap, AllRoleTypes, Scope } from '../types.ee';
import { getRoleScopes } from '../utilities/getRoleScopes.ee'; import { getRoleScopes } from '../utilities/get-role-scopes.ee';
const ROLE_NAMES: Record<AllRoleTypes, string> = { const ROLE_NAMES: Record<AllRoleTypes, string> = {
'global:owner': 'Owner', 'global:owner': 'Owner',

View File

@@ -1,5 +1,5 @@
import type { Scope, ScopeLevels, MaskLevels } from '../../types.ee'; import type { Scope, ScopeLevels, MaskLevels } from '../../types.ee';
import { combineScopes } from '../combineScopes.ee'; import { combineScopes } from '../combine-scopes.ee';
describe('combineScopes', () => { describe('combineScopes', () => {
describe('basic scope combining', () => { describe('basic scope combining', () => {

View File

@@ -1,6 +1,6 @@
import { GLOBAL_SCOPE_MAP } from '../../roles/role-maps.ee'; import { GLOBAL_SCOPE_MAP } from '../../roles/role-maps.ee';
import type { GlobalRole } from '../../types.ee'; import type { GlobalRole } from '../../types.ee';
import { getGlobalScopes } from '../getGlobalScopes.ee'; import { getGlobalScopes } from '../get-global-scopes.ee';
describe('getGlobalScopes', () => { describe('getGlobalScopes', () => {
test.each(['global:owner', 'global:admin', 'global:member'] as const)( test.each(['global:owner', 'global:admin', 'global:member'] as const)(

View File

@@ -1,5 +1,5 @@
import type { AllRoleTypes, Resource } from '../../types.ee'; import type { AllRoleTypes, Resource } from '../../types.ee';
import { getRoleScopes, COMBINED_ROLE_MAP } from '../getRoleScopes.ee'; import { getRoleScopes, COMBINED_ROLE_MAP } from '../get-role-scopes.ee';
describe('getRoleScopes', () => { describe('getRoleScopes', () => {
describe('role scope retrieval', () => { describe('role scope retrieval', () => {

View File

@@ -1,5 +1,5 @@
import type { GlobalRole, Scope } from '../../types.ee'; import type { GlobalRole, Scope } from '../../types.ee';
import { hasGlobalScope } from '../hasGlobalScope.ee'; import { hasGlobalScope } from '../has-global-scope.ee';
describe('hasGlobalScope', () => { describe('hasGlobalScope', () => {
describe('single scope checks', () => { describe('single scope checks', () => {

View File

@@ -1,5 +1,5 @@
import type { Scope, ScopeLevels } from '../../types.ee'; import type { Scope, ScopeLevels } from '../../types.ee';
import { hasScope } from '../hasScope.ee'; import { hasScope } from '../has-scope.ee';
describe('hasScope', () => { describe('hasScope', () => {
const userScopes: ScopeLevels = { const userScopes: ScopeLevels = {

View File

@@ -1,5 +1,5 @@
import type { GlobalRole, Scope } from '../../types.ee'; import type { GlobalRole, Scope } from '../../types.ee';
import { rolesWithScope } from '../rolesWithScope.ee'; import { rolesWithScope } from '../roles-with-scope.ee';
describe('rolesWithScope', () => { describe('rolesWithScope', () => {
describe('global roles', () => { describe('global roles', () => {

View File

@@ -1,5 +1,5 @@
import { getGlobalScopes } from './getGlobalScopes.ee'; import { getGlobalScopes } from './get-global-scopes.ee';
import { hasScope } from './hasScope.ee'; import { hasScope } from './has-scope.ee';
import type { AuthPrincipal, Scope, ScopeOptions } from '../types.ee'; import type { AuthPrincipal, Scope, ScopeOptions } from '../types.ee';
/** /**

View File

@@ -1,4 +1,4 @@
import { combineScopes } from './combineScopes.ee'; import { combineScopes } from './combine-scopes.ee';
import type { Scope, ScopeLevels, ScopeOptions, MaskLevels } from '../types.ee'; import type { Scope, ScopeLevels, ScopeOptions, MaskLevels } from '../types.ee';
/** /**

View File

@@ -12,7 +12,7 @@ module.exports = {
rules: { rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }], 'unicorn/filename-case': ['error', { case: 'kebabCase' }],
'@typescript-eslint/no-duplicate-imports': 'off', // '@typescript-eslint/no-duplicate-imports': 'off',
complexity: 'error', complexity: 'error',
}, },

View File

@@ -12,11 +12,7 @@ module.exports = {
project: './tsconfig.json', project: './tsconfig.json',
}, },
ignorePatterns: [ ignorePatterns: ['jest.config.js'],
'jest.config.js',
// TODO: Remove these
'src/databases/ormconfig.ts',
],
rules: { rules: {
'unicorn/filename-case': ['error', { case: 'kebabCase' }], 'unicorn/filename-case': ['error', { case: 'kebabCase' }],
@@ -39,12 +35,6 @@ module.exports = {
}, },
overrides: [ overrides: [
{
files: ['./src/databases/migrations/**/*.ts'],
rules: {
'unicorn/filename-case': 'off',
},
},
{ {
files: [ files: [
'./src/databases/**/*.ts', './src/databases/**/*.ts',

View File

@@ -2,12 +2,11 @@ import { TaskRunnersConfig } from '@n8n/config';
import { Container } from '@n8n/di'; import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended'; import { mock } from 'jest-mock-extended';
import { DefaultTaskRunnerDisconnectAnalyzer } from '@/task-runners/default-task-runner-disconnect-analyzer';
import { MissingAuthTokenError } from '@/task-runners/errors/missing-auth-token.error'; import { MissingAuthTokenError } from '@/task-runners/errors/missing-auth-token.error';
import { TaskBrokerWsServer } from '@/task-runners/task-broker/task-broker-ws-server'; import { TaskBrokerWsServer } from '@/task-runners/task-broker/task-broker-ws-server';
import { TaskRunnerModule } from '@/task-runners/task-runner-module'; import { TaskRunnerModule } from '@/task-runners/task-runner-module';
import { DefaultTaskRunnerDisconnectAnalyzer } from '../../../src/task-runners/default-task-runner-disconnect-analyzer';
describe('TaskRunnerModule in external mode', () => { describe('TaskRunnerModule in external mode', () => {
const runnerConfig = Container.get(TaskRunnersConfig); const runnerConfig = Container.get(TaskRunnersConfig);
runnerConfig.mode = 'external'; runnerConfig.mode = 'external';

View File

@@ -1,11 +1,10 @@
import { TaskRunnersConfig } from '@n8n/config'; import { TaskRunnersConfig } from '@n8n/config';
import { Container } from '@n8n/di'; import { Container } from '@n8n/di';
import { InternalTaskRunnerDisconnectAnalyzer } from '@/task-runners/internal-task-runner-disconnect-analyzer';
import { TaskBrokerWsServer } from '@/task-runners/task-broker/task-broker-ws-server'; import { TaskBrokerWsServer } from '@/task-runners/task-broker/task-broker-ws-server';
import { TaskRunnerModule } from '@/task-runners/task-runner-module'; import { TaskRunnerModule } from '@/task-runners/task-runner-module';
import { InternalTaskRunnerDisconnectAnalyzer } from '../../../src/task-runners/internal-task-runner-disconnect-analyzer';
describe('TaskRunnerModule in internal mode', () => { describe('TaskRunnerModule in internal mode', () => {
const runnerConfig = Container.get(TaskRunnersConfig); const runnerConfig = Container.get(TaskRunnersConfig);
runnerConfig.port = 0; // Random port runnerConfig.port = 0; // Random port

View File

@@ -10,6 +10,7 @@ module.exports = {
rules: { rules: {
complexity: 'error', complexity: 'error',
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
// TODO: remove these // TODO: remove these
'@typescript-eslint/no-base-to-string': 'warn', '@typescript-eslint/no-base-to-string': 'warn',

View File

@@ -1,16 +0,0 @@
import { arrayMethods } from './Array.methods';
import { booleanMethods } from './Boolean.methods';
import { numberMethods } from './Number.methods';
import { objectMethods } from './Object.Methods';
import { stringMethods } from './String.methods';
import type { NativeDoc } from '../Extensions/Extensions';
const NATIVE_METHODS: NativeDoc[] = [
stringMethods,
arrayMethods,
numberMethods,
objectMethods,
booleanMethods,
];
export { NATIVE_METHODS as NativeMethods };

View File

@@ -1,4 +1,4 @@
import type { IDataObject } from './Interfaces'; import type { IDataObject } from './interfaces';
const defaultPropertyDescriptor = Object.freeze({ enumerable: true, configurable: true }); const defaultPropertyDescriptor = Object.freeze({ enumerable: true, configurable: true });

View File

@@ -1,4 +1,4 @@
import type { CronExpression } from './Interfaces'; import type { CronExpression } from './interfaces';
import { randomInt } from './utils'; import { randomInt } from './utils';
interface BaseTriggerTime<T extends string> { interface BaseTriggerTime<T extends string> {

View File

@@ -1,4 +1,4 @@
import type { Functionality, IDataObject, JsonObject } from '../../Interfaces'; import type { Functionality, IDataObject, JsonObject } from '../../interfaces';
import { ApplicationError } from '../application.error'; import { ApplicationError } from '../application.error';
import type { ReportingOptions } from '../error.types'; import type { ReportingOptions } from '../error.types';

View File

@@ -1,5 +1,5 @@
import { ExecutionBaseError } from './execution-base.error'; import { ExecutionBaseError } from './execution-base.error';
import type { IDataObject, INode, JsonObject } from '../../Interfaces'; import type { IDataObject, INode, JsonObject } from '../../interfaces';
import { isTraversableObject, jsonParse } from '../../utils'; import { isTraversableObject, jsonParse } from '../../utils';
/** /**

View File

@@ -1,5 +1,5 @@
import { ExecutionBaseError } from './abstract/execution-base.error'; import { ExecutionBaseError } from './abstract/execution-base.error';
import type { IDataObject } from '../Interfaces'; import type { IDataObject } from '../interfaces';
export interface ExpressionErrorOptions { export interface ExpressionErrorOptions {
cause?: Error; cause?: Error;

View File

@@ -11,7 +11,7 @@ import {
UNKNOWN_ERROR_DESCRIPTION, UNKNOWN_ERROR_DESCRIPTION,
UNKNOWN_ERROR_MESSAGE, UNKNOWN_ERROR_MESSAGE,
UNKNOWN_ERROR_MESSAGE_CRED, UNKNOWN_ERROR_MESSAGE_CRED,
} from '../Constants'; } from '../constants';
import type { import type {
INode, INode,
JsonObject, JsonObject,
@@ -19,7 +19,7 @@ import type {
IStatusCodeMessages, IStatusCodeMessages,
Functionality, Functionality,
RelatedExecution, RelatedExecution,
} from '../Interfaces'; } from '../interfaces';
import { removeCircularRefs } from '../utils'; import { removeCircularRefs } from '../utils';
export interface NodeOperationErrorOptions { export interface NodeOperationErrorOptions {

View File

@@ -1,7 +1,7 @@
import { NodeError } from './abstract/node.error'; import { NodeError } from './abstract/node.error';
import { ApplicationError } from './application.error'; import { ApplicationError } from './application.error';
import type { NodeOperationErrorOptions } from './node-api.error'; import type { NodeOperationErrorOptions } from './node-api.error';
import type { INode, JsonObject } from '../Interfaces'; import type { INode, JsonObject } from '../interfaces';
/** /**
* Class for instantiating an operational error, e.g. an invalid credentials error. * Class for instantiating an operational error, e.g. an invalid credentials error.

View File

@@ -1,6 +1,6 @@
import { ApplicationError } from './application.error'; import { ApplicationError } from './application.error';
import type { ErrorLevel } from './error.types'; import type { ErrorLevel } from './error.types';
import type { INode } from '../Interfaces'; import type { INode } from '../interfaces';
interface TriggerCloseErrorOptions extends ErrorOptions { interface TriggerCloseErrorOptions extends ErrorOptions {
level: ErrorLevel; level: ErrorLevel;

View File

@@ -1,6 +1,6 @@
import { ExecutionBaseError } from './abstract/execution-base.error'; import { ExecutionBaseError } from './abstract/execution-base.error';
import type { ApplicationError } from './application.error'; import type { ApplicationError } from './application.error';
import type { INode } from '../Interfaces'; import type { INode } from '../interfaces';
interface WorkflowActivationErrorOptions { interface WorkflowActivationErrorOptions {
cause?: Error; cause?: Error;

View File

@@ -1,5 +1,5 @@
import { ExecutionBaseError } from './abstract/execution-base.error'; import { ExecutionBaseError } from './abstract/execution-base.error';
import type { INode } from '../Interfaces'; import type { INode } from '../interfaces';
/** /**
* Class for instantiating an operational error, e.g. a timeout error. * Class for instantiating an operational error, e.g. a timeout error.

View File

@@ -1,6 +1,6 @@
import { Tournament } from '@n8n/tournament'; import { Tournament } from '@n8n/tournament';
import { PrototypeSanitizer } from './ExpressionSandboxing'; import { PrototypeSanitizer } from './expression-sandboxing';
type Evaluator = (expr: string, data: unknown) => string | null | (() => unknown); type Evaluator = (expr: string, data: unknown) => string | null | (() => unknown);
type ErrorHandler = (error: Error) => void; type ErrorHandler = (error: Error) => void;

View File

@@ -3,12 +3,12 @@ import { DateTime, Duration, Interval } from 'luxon';
import { ApplicationError } from './errors/application.error'; import { ApplicationError } from './errors/application.error';
import { ExpressionExtensionError } from './errors/expression-extension.error'; import { ExpressionExtensionError } from './errors/expression-extension.error';
import { ExpressionError } from './errors/expression.error'; import { ExpressionError } from './errors/expression.error';
import { evaluateExpression, setErrorHandler } from './ExpressionEvaluatorProxy'; import { evaluateExpression, setErrorHandler } from './expression-evaluator-proxy';
import { sanitizer, sanitizerName } from './ExpressionSandboxing'; import { sanitizer, sanitizerName } from './expression-sandboxing';
import { extend, extendOptional } from './Extensions'; import { extend, extendOptional } from './extensions';
import { extendSyntax } from './Extensions/ExpressionExtension'; import { extendSyntax } from './extensions/expression-extension';
import { extendedFunctions } from './Extensions/ExtendedFunctions'; import { extendedFunctions } from './extensions/extended-functions';
import { getGlobalState } from './GlobalState'; import { getGlobalState } from './global-state';
import type { import type {
IDataObject, IDataObject,
IExecuteData, IExecuteData,
@@ -22,9 +22,9 @@ import type {
NodeParameterValue, NodeParameterValue,
NodeParameterValueType, NodeParameterValueType,
WorkflowExecuteMode, WorkflowExecuteMode,
} from './Interfaces'; } from './interfaces';
import type { Workflow } from './Workflow'; import type { Workflow } from './workflow';
import { WorkflowDataProxy } from './WorkflowDataProxy'; import { WorkflowDataProxy } from './workflow-data-proxy';
const IS_FRONTEND_IN_DEV_MODE = const IS_FRONTEND_IN_DEV_MODE =
typeof process === 'object' && typeof process === 'object' &&

View File

@@ -1,8 +1,8 @@
import deepEqual from 'deep-equal'; import deepEqual from 'deep-equal';
import uniqWith from 'lodash/uniqWith'; import uniqWith from 'lodash/uniqWith';
import type { Extension, ExtensionMap } from './Extensions'; import type { Extension, ExtensionMap } from './extensions';
import { compact as oCompact } from './ObjectExtensions'; import { compact as oCompact } from './object-extensions';
import { ExpressionExtensionError } from '../errors/expression-extension.error'; import { ExpressionExtensionError } from '../errors/expression-extension.error';
import { ExpressionError } from '../errors/expression.error'; import { ExpressionError } from '../errors/expression.error';
import { randomInt } from '../utils'; import { randomInt } from '../utils';

View File

@@ -1,4 +1,4 @@
import type { Extension, ExtensionMap } from './Extensions'; import type { Extension, ExtensionMap } from './extensions';
export function toBoolean(value: boolean) { export function toBoolean(value: boolean) {
return value; return value;

View File

@@ -7,8 +7,8 @@ import type {
WeekdayNumbers, WeekdayNumbers,
} from 'luxon'; } from 'luxon';
import type { ExtensionMap } from './Extensions'; import type { ExtensionMap } from './extensions';
import { toDateTime as stringToDateTime } from './StringExtensions'; import { toDateTime as stringToDateTime } from './string-extensions';
import { convertToDateTime } from './utils'; import { convertToDateTime } from './utils';
import { ExpressionExtensionError } from '../errors/expression-extension.error'; import { ExpressionExtensionError } from '../errors/expression-extension.error';

View File

@@ -6,15 +6,15 @@ import { DateTime } from 'luxon';
import { parse, visit, types, print } from 'recast'; import { parse, visit, types, print } from 'recast';
import { getOption } from 'recast/lib/util'; import { getOption } from 'recast/lib/util';
import { arrayExtensions } from './ArrayExtensions'; import { arrayExtensions } from './array-extensions';
import { booleanExtensions } from './BooleanExtensions'; import { booleanExtensions } from './boolean-extensions';
import { dateExtensions } from './DateExtensions'; import { dateExtensions } from './date-extensions';
import { joinExpression, splitExpression } from './ExpressionParser'; import { joinExpression, splitExpression } from './expression-parser';
import type { ExpressionChunk, ExpressionCode } from './ExpressionParser'; import type { ExpressionChunk, ExpressionCode } from './expression-parser';
import type { ExtensionMap } from './Extensions'; import type { ExtensionMap } from './extensions';
import { numberExtensions } from './NumberExtensions'; import { numberExtensions } from './number-extensions';
import { objectExtensions } from './ObjectExtensions'; import { objectExtensions } from './object-extensions';
import { stringExtensions } from './StringExtensions'; import { stringExtensions } from './string-extensions';
import { checkIfValueDefinedOrThrow } from './utils'; import { checkIfValueDefinedOrThrow } from './utils';
import { ExpressionExtensionError } from '../errors/expression-extension.error'; import { ExpressionExtensionError } from '../errors/expression-extension.error';

View File

@@ -1,4 +1,4 @@
import { average as aAverage } from './ArrayExtensions'; import { average as aAverage } from './array-extensions';
import { ExpressionExtensionError } from '../errors/expression-extension.error'; import { ExpressionExtensionError } from '../errors/expression-extension.error';
import { ExpressionError } from '../errors/expression.error'; import { ExpressionError } from '../errors/expression.error';

View File

@@ -5,7 +5,7 @@ export {
hasNativeMethod, hasNativeMethod,
extendTransform, extendTransform,
EXTENSION_OBJECTS as ExpressionExtensions, EXTENSION_OBJECTS as ExpressionExtensions,
} from './ExpressionExtension'; } from './expression-extension';
export type { export type {
DocMetadata, DocMetadata,
@@ -13,4 +13,4 @@ export type {
Extension, Extension,
DocMetadataArgument, DocMetadataArgument,
DocMetadataExample, DocMetadataExample,
} from './Extensions'; } from './extensions';

View File

@@ -3,7 +3,7 @@
*/ */
import { DateTime } from 'luxon'; import { DateTime } from 'luxon';
import type { ExtensionMap } from './Extensions'; import type { ExtensionMap } from './extensions';
import { ExpressionExtensionError } from '../errors/expression-extension.error'; import { ExpressionExtensionError } from '../errors/expression-extension.error';
function format(value: number, extraArgs: unknown[]): string { function format(value: number, extraArgs: unknown[]): string {

View File

@@ -1,4 +1,4 @@
import type { ExtensionMap } from './Extensions'; import type { ExtensionMap } from './extensions';
import { ExpressionExtensionError } from '../errors/expression-extension.error'; import { ExpressionExtensionError } from '../errors/expression-extension.error';
function isEmpty(value: object): boolean { function isEmpty(value: object): boolean {

View File

@@ -5,10 +5,10 @@ import MD5 from 'md5';
import { titleCase } from 'title-case'; import { titleCase } from 'title-case';
import { transliterate } from 'transliteration'; import { transliterate } from 'transliteration';
import type { Extension, ExtensionMap } from './Extensions'; import type { Extension, ExtensionMap } from './extensions';
import { toDateTime as numberToDateTime } from './NumberExtensions'; import { toDateTime as numberToDateTime } from './number-extensions';
import { ExpressionExtensionError } from '../errors/expression-extension.error'; import { ExpressionExtensionError } from '../errors/expression-extension.error';
import { tryToParseDateTime } from '../TypeValidation'; import { tryToParseDateTime } from '../type-validation';
export const SupportedHashAlgorithms = [ export const SupportedHashAlgorithms = [
'md5', 'md5',

View File

@@ -1,25 +1,25 @@
import * as LoggerProxy from './LoggerProxy'; import * as LoggerProxy from './logger-proxy';
import * as NodeHelpers from './NodeHelpers'; import * as NodeHelpers from './node-helpers';
import * as ObservableObject from './ObservableObject'; import * as ObservableObject from './observable-object';
import * as TelemetryHelpers from './TelemetryHelpers'; import * as TelemetryHelpers from './telemetry-helpers';
export * from './errors'; export * from './errors';
export * from './Constants'; export * from './constants';
export * from './Cron'; export * from './cron';
export * from './DeferredPromise'; export * from './deferred-promise';
export * from './GlobalState'; export * from './global-state';
export * from './Interfaces'; export * from './interfaces';
export * from './MessageEventBus'; export * from './message-event-bus';
export * from './ExecutionStatus'; export * from './execution-status';
export * from './Expression'; export * from './expression';
export * from './FromAIParseUtils'; export * from './from-ai-parse-utils';
export * from './NodeHelpers'; export * from './node-helpers';
export * from './MetadataUtils'; export * from './metadata-utils';
export * from './Workflow'; export * from './workflow';
export * from './WorkflowDataProxy'; export * from './workflow-data-proxy';
export * from './WorkflowDataProxyEnvProvider'; export * from './workflow-data-proxy-env-provider';
export * from './VersionedNodeType'; export * from './versioned-node-type';
export * from './TypeValidation'; export * from './type-validation';
export * from './result'; export * from './result';
export { LoggerProxy, NodeHelpers, ObservableObject, TelemetryHelpers }; export { LoggerProxy, NodeHelpers, ObservableObject, TelemetryHelpers };
export { export {
@@ -50,10 +50,10 @@ export {
isFilterValue, isFilterValue,
} from './type-guards'; } from './type-guards';
export { ExpressionExtensions } from './Extensions'; export { ExpressionExtensions } from './extensions';
export * as ExpressionParser from './Extensions/ExpressionParser'; export * as ExpressionParser from './extensions/expression-parser';
export { NativeMethods } from './NativeMethods'; export { NativeMethods } from './native-methods';
export * from './NodeParameters/FilterParameter'; export * from './node-parameters/filter-parameter';
export type { export type {
DocMetadata, DocMetadata,
@@ -61,7 +61,7 @@ export type {
DocMetadataArgument, DocMetadataArgument,
DocMetadataExample, DocMetadataExample,
Extension, Extension,
} from './Extensions'; } from './extensions';
declare module 'http' { declare module 'http' {
export interface IncomingMessage { export interface IncomingMessage {

View File

@@ -12,18 +12,18 @@ import type { Readable } from 'stream';
import type { SecureContextOptions } from 'tls'; import type { SecureContextOptions } from 'tls';
import type { URLSearchParams } from 'url'; import type { URLSearchParams } from 'url';
import type { CODE_EXECUTION_MODES, CODE_LANGUAGES, LOG_LEVELS } from './Constants'; import type { CODE_EXECUTION_MODES, CODE_LANGUAGES, LOG_LEVELS } from './constants';
import type { IDeferredPromise } from './DeferredPromise'; import type { IDeferredPromise } from './deferred-promise';
import type { ExecutionCancelledError } from './errors'; import type { ExecutionCancelledError } from './errors';
import type { ExpressionError } from './errors/expression.error'; import type { ExpressionError } from './errors/expression.error';
import type { NodeApiError } from './errors/node-api.error'; import type { NodeApiError } from './errors/node-api.error';
import type { NodeOperationError } from './errors/node-operation.error'; import type { NodeOperationError } from './errors/node-operation.error';
import type { WorkflowActivationError } from './errors/workflow-activation.error'; import type { WorkflowActivationError } from './errors/workflow-activation.error';
import type { WorkflowOperationError } from './errors/workflow-operation.error'; import type { WorkflowOperationError } from './errors/workflow-operation.error';
import type { ExecutionStatus } from './ExecutionStatus'; import type { ExecutionStatus } from './execution-status';
import type { Result } from './result'; import type { Result } from './result';
import type { Workflow } from './Workflow'; import type { Workflow } from './workflow';
import type { EnvProviderState } from './WorkflowDataProxyEnvProvider'; import type { EnvProviderState } from './workflow-data-proxy-env-provider';
export interface IAdditionalCredentialOptions { export interface IAdditionalCredentialOptions {
oauth2?: IOAuth2Options; oauth2?: IOAuth2Options;

View File

@@ -1,4 +1,4 @@
import type { Logger } from './Interfaces'; import type { Logger } from './interfaces';
const noOp = () => {}; const noOp = () => {};
export let error: Logger['error'] = noOp; export let error: Logger['error'] = noOp;

View File

@@ -1,6 +1,6 @@
import type { DateTime } from 'luxon'; import type { DateTime } from 'luxon';
import type { INodeCredentials } from './Interfaces'; import type { INodeCredentials } from './interfaces';
// =============================== // ===============================
// General Enums And Interfaces // General Enums And Interfaces

Some files were not shown because too many files have changed in this diff Show More