diff --git a/packages/@n8n/db/src/index.ts b/packages/@n8n/db/src/index.ts index de9a64a93f..7402d4b3ed 100644 --- a/packages/@n8n/db/src/index.ts +++ b/packages/@n8n/db/src/index.ts @@ -20,3 +20,4 @@ export { NoXss } from './utils/validators/no-xss.validator'; export { NoUrl } from './utils/validators/no-url.validator'; export * from './repositories'; +export * from './subscribers'; diff --git a/packages/@n8n/db/src/repositories/index.ts b/packages/@n8n/db/src/repositories/index.ts index 0b6fe8ac91..acec89570f 100644 --- a/packages/@n8n/db/src/repositories/index.ts +++ b/packages/@n8n/db/src/repositories/index.ts @@ -33,3 +33,4 @@ export { SharedWorkflowRepository } from './shared-workflow.repository'; export { SharedCredentialsRepository } from './shared-credentials.repository'; export { WorkflowRepository } from './workflow.repository'; export { WebhookRepository } from './webhook.repository'; +export { UserRepository } from './user.repository'; diff --git a/packages/cli/src/databases/repositories/user.repository.ts b/packages/@n8n/db/src/repositories/user.repository.ts similarity index 97% rename from packages/cli/src/databases/repositories/user.repository.ts rename to packages/@n8n/db/src/repositories/user.repository.ts index a52302717e..5b022024b4 100644 --- a/packages/cli/src/databases/repositories/user.repository.ts +++ b/packages/@n8n/db/src/repositories/user.repository.ts @@ -1,10 +1,10 @@ -import { Project, ProjectRelation, User } from '@n8n/db'; import { Service } from '@n8n/di'; import type { GlobalRole } from '@n8n/permissions'; import type { DeepPartial, EntityManager, FindManyOptions } from '@n8n/typeorm'; import { DataSource, In, IsNull, Not, Repository } from '@n8n/typeorm'; -import type { ListQuery } from '@/requests'; +import { Project, ProjectRelation, User } from '../entities'; +import type { ListQuery } from '../entities/types-db'; @Service() export class UserRepository extends Repository { diff --git a/packages/cli/src/databases/subscribers/index.ts b/packages/@n8n/db/src/subscribers/index.ts similarity index 100% rename from packages/cli/src/databases/subscribers/index.ts rename to packages/@n8n/db/src/subscribers/index.ts diff --git a/packages/cli/src/databases/subscribers/user-subscriber.ts b/packages/@n8n/db/src/subscribers/user-subscriber.ts similarity index 98% rename from packages/cli/src/databases/subscribers/user-subscriber.ts rename to packages/@n8n/db/src/subscribers/user-subscriber.ts index 8d9428839e..56d69c135f 100644 --- a/packages/cli/src/databases/subscribers/user-subscriber.ts +++ b/packages/@n8n/db/src/subscribers/user-subscriber.ts @@ -1,10 +1,10 @@ -import { Project, User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { EntitySubscriberInterface, UpdateEvent } from '@n8n/typeorm'; import { EventSubscriber } from '@n8n/typeorm'; import { ErrorReporter, Logger } from 'n8n-core'; import { UnexpectedError } from 'n8n-workflow'; +import { Project, User } from '../entities'; import { UserRepository } from '../repositories/user.repository'; @EventSubscriber() diff --git a/packages/cli/src/__tests__/external-hooks.test.ts b/packages/cli/src/__tests__/external-hooks.test.ts index e0b8d1ca12..28781d86d6 100644 --- a/packages/cli/src/__tests__/external-hooks.test.ts +++ b/packages/cli/src/__tests__/external-hooks.test.ts @@ -1,12 +1,12 @@ 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 { mock } from 'jest-mock-extended'; import type { ErrorReporter, Logger } from 'n8n-core'; import type { IWorkflowBase } from 'n8n-workflow'; import { UnexpectedError } from 'n8n-workflow'; -import type { UserRepository } from '@/databases/repositories/user.repository'; import { ExternalHooks } from '@/external-hooks'; describe('ExternalHooks', () => { diff --git a/packages/cli/src/auth/__tests__/auth.service.test.ts b/packages/cli/src/auth/__tests__/auth.service.test.ts index 0696632642..e6903a344b 100644 --- a/packages/cli/src/auth/__tests__/auth.service.test.ts +++ b/packages/cli/src/auth/__tests__/auth.service.test.ts @@ -1,6 +1,7 @@ import type { GlobalConfig } from '@n8n/config'; import type { User } from '@n8n/db'; import type { InvalidAuthTokenRepository } from '@n8n/db'; +import type { UserRepository } from '@n8n/db'; import type { NextFunction, Response } from 'express'; import { mock } from 'jest-mock-extended'; import jwt from 'jsonwebtoken'; @@ -8,7 +9,6 @@ import jwt from 'jsonwebtoken'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; import { AUTH_COOKIE_NAME, Time } from '@/constants'; -import type { UserRepository } from '@/databases/repositories/user.repository'; import type { AuthenticatedRequest } from '@/requests'; import { JwtService } from '@/services/jwt.service'; import type { UrlService } from '@/services/url.service'; diff --git a/packages/cli/src/auth/auth.service.ts b/packages/cli/src/auth/auth.service.ts index ace3113fce..1860ac6d6b 100644 --- a/packages/cli/src/auth/auth.service.ts +++ b/packages/cli/src/auth/auth.service.ts @@ -1,6 +1,6 @@ import { GlobalConfig } from '@n8n/config'; import type { User } from '@n8n/db'; -import { InvalidAuthTokenRepository } from '@n8n/db'; +import { InvalidAuthTokenRepository, UserRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import { createHash } from 'crypto'; import type { NextFunction, Response } from 'express'; @@ -9,7 +9,6 @@ import { Logger } from 'n8n-core'; import config from '@/config'; import { AUTH_COOKIE_NAME, RESPONSE_ERROR_MESSAGES, Time } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { ForbiddenError } from '@/errors/response-errors/forbidden.error'; import { License } from '@/license'; diff --git a/packages/cli/src/auth/methods/email.ts b/packages/cli/src/auth/methods/email.ts index d2088d4036..81b8af35a2 100644 --- a/packages/cli/src/auth/methods/email.ts +++ b/packages/cli/src/auth/methods/email.ts @@ -1,7 +1,7 @@ import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { EventService } from '@/events/event.service'; import { isLdapLoginEnabled } from '@/ldap.ee/helpers.ee'; diff --git a/packages/cli/src/collaboration/collaboration.service.ts b/packages/cli/src/collaboration/collaboration.service.ts index 70c5334f4c..f448b2ddca 100644 --- a/packages/cli/src/collaboration/collaboration.service.ts +++ b/packages/cli/src/collaboration/collaboration.service.ts @@ -1,12 +1,12 @@ import type { PushPayload } from '@n8n/api-types'; import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import { ErrorReporter } from 'n8n-core'; import type { Workflow } from 'n8n-workflow'; import { UnexpectedError } from 'n8n-workflow'; import { CollaborationState } from '@/collaboration/collaboration.state'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { Push } from '@/push'; import type { OnPushMessage } from '@/push/types'; import { AccessService } from '@/services/access.service'; diff --git a/packages/cli/src/commands/community-node.ts b/packages/cli/src/commands/community-node.ts index 6746205983..94abf0be36 100644 --- a/packages/cli/src/commands/community-node.ts +++ b/packages/cli/src/commands/community-node.ts @@ -1,10 +1,9 @@ import { type InstalledNodes, type InstalledPackages, type User } from '@n8n/db'; -import { CredentialsRepository, InstalledNodesRepository } from '@n8n/db'; +import { CredentialsRepository, InstalledNodesRepository, UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { Flags } from '@oclif/core'; import { CredentialsService } from '@/credentials/credentials.service'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { CommunityPackagesService } from '@/services/community-packages.service'; import { BaseCommand } from './base-command'; diff --git a/packages/cli/src/commands/import/workflow.ts b/packages/cli/src/commands/import/workflow.ts index ebfaf52264..98e945a072 100644 --- a/packages/cli/src/commands/import/workflow.ts +++ b/packages/cli/src/commands/import/workflow.ts @@ -4,6 +4,7 @@ import { ProjectRepository, SharedWorkflowRepository, WorkflowRepository, + UserRepository, } from '@n8n/db'; import { Container } from '@n8n/di'; import { Flags } from '@oclif/core'; @@ -13,7 +14,6 @@ import type { IWorkflowBase, WorkflowId } from 'n8n-workflow'; import { jsonParse, UserError } from 'n8n-workflow'; import { UM_FIX_INSTRUCTION } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import type { IWorkflowToImport } from '@/interfaces'; import { ImportService } from '@/services/import.service'; diff --git a/packages/cli/src/commands/ldap/reset.ts b/packages/cli/src/commands/ldap/reset.ts index c829671f3a..1d730eb1eb 100644 --- a/packages/cli/src/commands/ldap/reset.ts +++ b/packages/cli/src/commands/ldap/reset.ts @@ -6,6 +6,7 @@ import { SettingsRepository, SharedCredentialsRepository, SharedWorkflowRepository, + UserRepository, } from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -15,7 +16,6 @@ import { UserError } from 'n8n-workflow'; import { UM_FIX_INSTRUCTION } from '@/constants'; import { CredentialsService } from '@/credentials/credentials.service'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { LDAP_DEFAULT_CONFIGURATION, LDAP_FEATURE_NAME } from '@/ldap.ee/constants'; import { WorkflowService } from '@/workflows/workflow.service'; diff --git a/packages/cli/src/commands/user-management/reset.ts b/packages/cli/src/commands/user-management/reset.ts index 8909e3be0a..15f3e9a716 100644 --- a/packages/cli/src/commands/user-management/reset.ts +++ b/packages/cli/src/commands/user-management/reset.ts @@ -6,11 +6,10 @@ import { SettingsRepository, SharedCredentialsRepository, SharedWorkflowRepository, + UserRepository, } from '@n8n/db'; import { Container } from '@n8n/di'; -import { UserRepository } from '@/databases/repositories/user.repository'; - import { BaseCommand } from '../base-command'; const defaultUserProps = { diff --git a/packages/cli/src/controllers/__tests__/auth.controller.test.ts b/packages/cli/src/controllers/__tests__/auth.controller.test.ts index 43c37401ac..c8d98cedc2 100644 --- a/packages/cli/src/controllers/__tests__/auth.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/auth.controller.test.ts @@ -1,5 +1,6 @@ import type { LoginRequestDto } from '@n8n/api-types'; import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Response } from 'express'; import { mock } from 'jest-mock-extended'; @@ -8,7 +9,6 @@ import { Logger } from 'n8n-core'; import * as auth from '@/auth'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { EventService } from '@/events/event.service'; import { License } from '@/license'; import { MfaService } from '@/mfa/mfa.service'; diff --git a/packages/cli/src/controllers/__tests__/me.controller.test.ts b/packages/cli/src/controllers/__tests__/me.controller.test.ts index 6843c23319..15e9fddcd8 100644 --- a/packages/cli/src/controllers/__tests__/me.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/me.controller.test.ts @@ -3,6 +3,7 @@ import type { User } from '@n8n/db'; import type { PublicUser } from '@n8n/db'; import { AuthUserRepository } from '@n8n/db'; import { InvalidAuthTokenRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Response } from 'express'; import { mock, anyObject } from 'jest-mock-extended'; @@ -10,7 +11,6 @@ import jwt from 'jsonwebtoken'; import { AUTH_COOKIE_NAME } from '@/constants'; import { MeController } from '@/controllers/me.controller'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { InvalidMfaCodeError } from '@/errors/response-errors/invalid-mfa-code.error'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/controllers/__tests__/owner.controller.test.ts b/packages/cli/src/controllers/__tests__/owner.controller.test.ts index 5a35cbacc7..be83ba15aa 100644 --- a/packages/cli/src/controllers/__tests__/owner.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/owner.controller.test.ts @@ -1,6 +1,7 @@ import type { DismissBannerRequestDto, OwnerSetupRequestDto } from '@n8n/api-types'; import type { User } from '@n8n/db'; import type { PublicUser, SettingsRepository } from '@n8n/db'; +import type { UserRepository } from '@n8n/db'; import type { Response } from 'express'; import { mock } from 'jest-mock-extended'; import type { Logger } from 'n8n-core'; @@ -8,7 +9,6 @@ import type { Logger } from 'n8n-core'; import type { AuthService } from '@/auth/auth.service'; import config from '@/config'; import { OwnerController } from '@/controllers/owner.controller'; -import type { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import type { EventService } from '@/events/event.service'; import type { AuthenticatedRequest } from '@/requests'; diff --git a/packages/cli/src/controllers/__tests__/users.controller.test.ts b/packages/cli/src/controllers/__tests__/users.controller.test.ts index b266e2aee7..be794fc929 100644 --- a/packages/cli/src/controllers/__tests__/users.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/users.controller.test.ts @@ -1,7 +1,7 @@ import type { User } from '@n8n/db'; +import type { UserRepository } from '@n8n/db'; import { mock } from 'jest-mock-extended'; -import type { UserRepository } from '@/databases/repositories/user.repository'; import type { EventService } from '@/events/event.service'; import type { AuthenticatedRequest } from '@/requests'; import type { ProjectService } from '@/services/project.service.ee'; diff --git a/packages/cli/src/controllers/auth.controller.ts b/packages/cli/src/controllers/auth.controller.ts index 0d4f85f997..bdaa4630dc 100644 --- a/packages/cli/src/controllers/auth.controller.ts +++ b/packages/cli/src/controllers/auth.controller.ts @@ -1,5 +1,6 @@ import { LoginRequestDto, ResolveSignupTokenQueryDto } from '@n8n/api-types'; import type { User, PublicUser } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Body, Get, Post, Query, RestController } from '@n8n/decorators'; import { isEmail } from 'class-validator'; import { Response } from 'express'; @@ -8,7 +9,6 @@ import { Logger } from 'n8n-core'; import { handleEmailLogin, handleLdapLogin } from '@/auth'; import { AuthService } from '@/auth/auth.service'; import { RESPONSE_ERROR_MESSAGES } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { ForbiddenError } from '@/errors/response-errors/forbidden.error'; diff --git a/packages/cli/src/controllers/e2e.controller.ts b/packages/cli/src/controllers/e2e.controller.ts index e2fba58f8d..82f009d7f3 100644 --- a/packages/cli/src/controllers/e2e.controller.ts +++ b/packages/cli/src/controllers/e2e.controller.ts @@ -1,7 +1,7 @@ import type { PushMessage } from '@n8n/api-types'; import type { BooleanLicenseFeature, NumericLicenseFeature } from '@n8n/constants'; import { LICENSE_FEATURES, LICENSE_QUOTAS, UNLIMITED_LICENSE_QUOTA } from '@n8n/constants'; -import { AuthUserRepository, SettingsRepository } from '@n8n/db'; +import { AuthUserRepository, SettingsRepository, UserRepository } from '@n8n/db'; import { Patch, Post, RestController } from '@n8n/decorators'; import { Container } from '@n8n/di'; import { Request } from 'express'; @@ -11,7 +11,6 @@ import { v4 as uuid } from 'uuid'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import config from '@/config'; import { inE2ETests } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus'; import type { FeatureReturnType } from '@/license'; import { License } from '@/license'; diff --git a/packages/cli/src/controllers/invitation.controller.ts b/packages/cli/src/controllers/invitation.controller.ts index 088c15d60f..5f0238b074 100644 --- a/packages/cli/src/controllers/invitation.controller.ts +++ b/packages/cli/src/controllers/invitation.controller.ts @@ -1,5 +1,6 @@ import { AcceptInvitationRequestDto, InviteUsersRequestDto } from '@n8n/api-types'; import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Post, GlobalScope, RestController, Body, Param } from '@n8n/decorators'; import { Response } from 'express'; import { Logger } from 'n8n-core'; @@ -7,7 +8,6 @@ import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; import { RESPONSE_ERROR_MESSAGES } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { ForbiddenError } from '@/errors/response-errors/forbidden.error'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/controllers/me.controller.ts b/packages/cli/src/controllers/me.controller.ts index 15d0314247..6f0e07a123 100644 --- a/packages/cli/src/controllers/me.controller.ts +++ b/packages/cli/src/controllers/me.controller.ts @@ -5,13 +5,13 @@ import { UserUpdateRequestDto, } from '@n8n/api-types'; import type { User, PublicUser } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Body, Patch, Post, RestController } from '@n8n/decorators'; import { plainToInstance } from 'class-transformer'; import { Response } from 'express'; import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { InvalidMfaCodeError } from '@/errors/response-errors/invalid-mfa-code.error'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/controllers/owner.controller.ts b/packages/cli/src/controllers/owner.controller.ts index 35c61ee02e..7c5973faa3 100644 --- a/packages/cli/src/controllers/owner.controller.ts +++ b/packages/cli/src/controllers/owner.controller.ts @@ -1,12 +1,11 @@ import { DismissBannerRequestDto, OwnerSetupRequestDto } from '@n8n/api-types'; -import { SettingsRepository } from '@n8n/db'; +import { SettingsRepository, UserRepository } from '@n8n/db'; import { Body, GlobalScope, Post, RestController } from '@n8n/decorators'; import { Response } from 'express'; import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { EventService } from '@/events/event.service'; import { validateEntity } from '@/generic-helpers'; diff --git a/packages/cli/src/controllers/password-reset.controller.ts b/packages/cli/src/controllers/password-reset.controller.ts index cf8622128e..ddd7ae45d7 100644 --- a/packages/cli/src/controllers/password-reset.controller.ts +++ b/packages/cli/src/controllers/password-reset.controller.ts @@ -3,6 +3,7 @@ import { ForgotPasswordRequestDto, ResolvePasswordTokenQueryDto, } from '@n8n/api-types'; +import { UserRepository } from '@n8n/db'; import { Body, Get, Post, Query, RestController } from '@n8n/decorators'; import { hasGlobalScope } from '@n8n/permissions'; import { Response } from 'express'; @@ -10,7 +11,6 @@ import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; import { RESPONSE_ERROR_MESSAGES } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { ForbiddenError } from '@/errors/response-errors/forbidden.error'; import { InternalServerError } from '@/errors/response-errors/internal-server.error'; diff --git a/packages/cli/src/controllers/users.controller.ts b/packages/cli/src/controllers/users.controller.ts index 0346f96635..0ffde3e279 100644 --- a/packages/cli/src/controllers/users.controller.ts +++ b/packages/cli/src/controllers/users.controller.ts @@ -7,6 +7,7 @@ import { ProjectRepository, SharedCredentialsRepository, SharedWorkflowRepository, + UserRepository, } from '@n8n/db'; import { GlobalScope, @@ -23,7 +24,6 @@ import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; import { CredentialsService } from '@/credentials/credentials.service'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { ForbiddenError } from '@/errors/response-errors/forbidden.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; diff --git a/packages/cli/src/credentials/credentials.service.ts b/packages/cli/src/credentials/credentials.service.ts index 68516c9ed2..9bbce1a16b 100644 --- a/packages/cli/src/credentials/credentials.service.ts +++ b/packages/cli/src/credentials/credentials.service.ts @@ -6,6 +6,7 @@ import { CredentialsRepository, ProjectRepository, SharedCredentialsRepository, + UserRepository, } from '@n8n/db'; import { Service } from '@n8n/di'; import { hasGlobalScope, type Scope } from '@n8n/permissions'; @@ -28,7 +29,6 @@ import { CREDENTIAL_EMPTY_VALUE, deepCopy, NodeHelpers, UnexpectedError } from ' import { CREDENTIAL_BLANKING_VALUE } from '@/constants'; import { CredentialTypes } from '@/credential-types'; import { createCredentialsFromCredentialsEntity } from '@/credentials-helper'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; import { ExternalHooks } from '@/external-hooks'; diff --git a/packages/cli/src/databases/db-connection-options.ts b/packages/cli/src/databases/db-connection-options.ts index 979101f4c8..ea8eb55bbe 100644 --- a/packages/cli/src/databases/db-connection-options.ts +++ b/packages/cli/src/databases/db-connection-options.ts @@ -1,5 +1,5 @@ import { DatabaseConfig, InstanceSettingsConfig } from '@n8n/config'; -import { entities } from '@n8n/db'; +import { entities, subscribers } from '@n8n/db'; import { Service } from '@n8n/di'; import type { DataSourceOptions, LoggerOptions } from '@n8n/typeorm'; import type { MysqlConnectionOptions } from '@n8n/typeorm/driver/mysql/MysqlConnectionOptions'; @@ -17,7 +17,6 @@ import { InsightsRaw } from '@/modules/insights/database/entities/insights-raw'; import { mysqlMigrations } from './migrations/mysqldb'; import { postgresMigrations } from './migrations/postgresdb'; import { sqliteMigrations } from './migrations/sqlite'; -import { subscribers } from './subscribers'; @Service() export class DbConnectionOptions { diff --git a/packages/cli/src/environments.ee/source-control/source-control-import.service.ee.ts b/packages/cli/src/environments.ee/source-control/source-control-import.service.ee.ts index d858e9be7a..c41f0cf57f 100644 --- a/packages/cli/src/environments.ee/source-control/source-control-import.service.ee.ts +++ b/packages/cli/src/environments.ee/source-control/source-control-import.service.ee.ts @@ -11,6 +11,7 @@ import { SharedCredentialsRepository, SharedWorkflowRepository, WorkflowRepository, + UserRepository, } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -23,7 +24,6 @@ import path from 'path'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import { CredentialsService } from '@/credentials/credentials.service'; -import { UserRepository } from '@/databases/repositories/user.repository'; import type { IWorkflowToImport } from '@/interfaces'; import { isUniqueConstraintError } from '@/response-helper'; import { TagService } from '@/services/tag.service'; diff --git a/packages/cli/src/external-hooks.ts b/packages/cli/src/external-hooks.ts index 93b386a259..7a93c950cd 100644 --- a/packages/cli/src/external-hooks.ts +++ b/packages/cli/src/external-hooks.ts @@ -2,7 +2,12 @@ import type { FrontendSettings, UserUpdateRequestDto } from '@n8n/api-types'; import type { ClientOAuth2Options } from '@n8n/client-oauth2'; import { GlobalConfig } from '@n8n/config'; import type { TagEntity, User, ICredentialsDb, PublicUser } from '@n8n/db'; -import { CredentialsRepository, WorkflowRepository, SettingsRepository } from '@n8n/db'; +import { + CredentialsRepository, + WorkflowRepository, + SettingsRepository, + UserRepository, +} from '@n8n/db'; import { Service } from '@n8n/di'; import { ErrorReporter, Logger } from 'n8n-core'; import type { IRun, IWorkflowBase, Workflow, WorkflowExecuteMode } from 'n8n-workflow'; @@ -11,7 +16,6 @@ import type clientOAuth1 from 'oauth-1.0a'; import type { AbstractServer } from '@/abstract-server'; import type { Config } from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; type Repositories = { User: UserRepository; diff --git a/packages/cli/src/ldap.ee/__tests__/helpers.test.ts b/packages/cli/src/ldap.ee/__tests__/helpers.test.ts index 75fa4e6e09..32b5f01983 100644 --- a/packages/cli/src/ldap.ee/__tests__/helpers.test.ts +++ b/packages/cli/src/ldap.ee/__tests__/helpers.test.ts @@ -1,8 +1,8 @@ import { generateNanoId } from '@n8n/db'; import { AuthIdentity } from '@n8n/db'; import { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; -import { UserRepository } from '@/databases/repositories/user.repository'; import * as helpers from '@/ldap.ee/helpers.ee'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/src/ldap.ee/helpers.ee.ts b/packages/cli/src/ldap.ee/helpers.ee.ts index 379c8c4f9b..52b39871f5 100644 --- a/packages/cli/src/ldap.ee/helpers.ee.ts +++ b/packages/cli/src/ldap.ee/helpers.ee.ts @@ -4,6 +4,7 @@ import { User, AuthIdentityRepository, AuthProviderSyncHistoryRepository, + UserRepository, } from '@n8n/db'; import { Container } from '@n8n/di'; import { validate } from 'jsonschema'; @@ -12,7 +13,6 @@ import { Filter } from 'ldapts/filters/Filter'; import { randomString } from 'n8n-workflow'; import config from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { License } from '@/license'; import { diff --git a/packages/cli/src/mfa/helpers.ts b/packages/cli/src/mfa/helpers.ts index 9e785d293c..584e9ded06 100644 --- a/packages/cli/src/mfa/helpers.ts +++ b/packages/cli/src/mfa/helpers.ts @@ -1,7 +1,7 @@ +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import config from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { MFA_FEATURE_ENABLED } from './constants'; diff --git a/packages/cli/src/public-api/v1/handlers/users/users.service.ee.ts b/packages/cli/src/public-api/v1/handlers/users/users.service.ee.ts index 1b6fccb786..a7fb047af6 100644 --- a/packages/cli/src/public-api/v1/handlers/users/users.service.ee.ts +++ b/packages/cli/src/public-api/v1/handlers/users/users.service.ee.ts @@ -1,12 +1,11 @@ import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; import pick from 'lodash/pick'; import { validate as uuidValidate } from 'uuid'; -import { UserRepository } from '@/databases/repositories/user.repository'; - export async function getUser(data: { withIdentifier: string; includeRole?: boolean; diff --git a/packages/cli/src/services/__tests__/hooks.service.test.ts b/packages/cli/src/services/__tests__/hooks.service.test.ts index e351609ddb..461fbadd99 100644 --- a/packages/cli/src/services/__tests__/hooks.service.test.ts +++ b/packages/cli/src/services/__tests__/hooks.service.test.ts @@ -2,12 +2,12 @@ import type { AuthUser, SettingsRepository } from '@n8n/db'; import type { AuthUserRepository } from '@n8n/db'; import type { CredentialsRepository } from '@n8n/db'; import type { WorkflowRepository } from '@n8n/db'; +import type { UserRepository } from '@n8n/db'; import RudderStack from '@rudderstack/rudder-sdk-node'; import type { Response } from 'express'; import { mock } from 'jest-mock-extended'; import type { AuthService } from '@/auth/auth.service'; -import type { UserRepository } from '@/databases/repositories/user.repository'; import type { Invitation } from '@/interfaces'; import type { AuthenticatedRequest } from '@/requests'; import { HooksService } from '@/services/hooks.service'; diff --git a/packages/cli/src/services/__tests__/ownership.service.test.ts b/packages/cli/src/services/__tests__/ownership.service.test.ts index 4600cb5aab..a145ed4b34 100644 --- a/packages/cli/src/services/__tests__/ownership.service.test.ts +++ b/packages/cli/src/services/__tests__/ownership.service.test.ts @@ -2,10 +2,10 @@ 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 { mock } from 'jest-mock-extended'; import { v4 as uuid } from 'uuid'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { OwnershipService } from '@/services/ownership.service'; import { mockCredential, mockProject } from '@test/mock-objects'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/src/services/__tests__/public-api-key.service.test.ts b/packages/cli/src/services/__tests__/public-api-key.service.test.ts index b62f411202..6bb63c76de 100644 --- a/packages/cli/src/services/__tests__/public-api-key.service.test.ts +++ b/packages/cli/src/services/__tests__/public-api-key.service.test.ts @@ -1,4 +1,5 @@ import { ApiKeyRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { ApiKeyScope } from '@n8n/permissions'; import type { Response, NextFunction } from 'express'; @@ -8,7 +9,6 @@ import type { InstanceSettings } from 'n8n-core'; import { randomString } from 'n8n-workflow'; import type { OpenAPIV3 } from 'openapi-types'; -import { UserRepository } from '@/databases/repositories/user.repository'; import type { EventService } from '@/events/event.service'; import { getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee'; import type { AuthenticatedRequest } from '@/requests'; diff --git a/packages/cli/src/services/__tests__/user.service.test.ts b/packages/cli/src/services/__tests__/user.service.test.ts index 3577c7da17..b439762a44 100644 --- a/packages/cli/src/services/__tests__/user.service.test.ts +++ b/packages/cli/src/services/__tests__/user.service.test.ts @@ -1,9 +1,9 @@ import { GlobalConfig } from '@n8n/config'; import { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { v4 as uuid } from 'uuid'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { UrlService } from '@/services/url.service'; import { UserService } from '@/services/user.service'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/src/services/access.service.ts b/packages/cli/src/services/access.service.ts index 9181ad30fa..c81ed37175 100644 --- a/packages/cli/src/services/access.service.ts +++ b/packages/cli/src/services/access.service.ts @@ -1,8 +1,8 @@ import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import type { Workflow } from 'n8n-workflow'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { WorkflowFinderService } from '@/workflows/workflow-finder.service'; /** diff --git a/packages/cli/src/services/hooks.service.ts b/packages/cli/src/services/hooks.service.ts index c69fe6c51d..301099b59b 100644 --- a/packages/cli/src/services/hooks.service.ts +++ b/packages/cli/src/services/hooks.service.ts @@ -4,6 +4,7 @@ import { CredentialsRepository, WorkflowRepository, SettingsRepository, + UserRepository, } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -13,7 +14,6 @@ import RudderStack, { type constructorOptions } from '@rudderstack/rudder-sdk-no import type { NextFunction, Response } from 'express'; import { AuthService } from '@/auth/auth.service'; -import { UserRepository } from '@/databases/repositories/user.repository'; import type { Invitation } from '@/interfaces'; import type { AuthenticatedRequest } from '@/requests'; import { UserService } from '@/services/user.service'; diff --git a/packages/cli/src/services/ownership.service.ts b/packages/cli/src/services/ownership.service.ts index b975461f41..9f7ad7d458 100644 --- a/packages/cli/src/services/ownership.service.ts +++ b/packages/cli/src/services/ownership.service.ts @@ -1,8 +1,12 @@ import type { Project, User, ListQueryDb } from '@n8n/db'; -import { ProjectRelationRepository, ProjectRepository, SharedWorkflowRepository } from '@n8n/db'; +import { + ProjectRelationRepository, + ProjectRepository, + SharedWorkflowRepository, + UserRepository, +} from '@n8n/db'; import { Service } from '@n8n/di'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { CacheService } from '@/services/cache/cache.service'; @Service() diff --git a/packages/cli/src/services/public-api-key.service.ts b/packages/cli/src/services/public-api-key.service.ts index 450e2939db..1601477cca 100644 --- a/packages/cli/src/services/public-api-key.service.ts +++ b/packages/cli/src/services/public-api-key.service.ts @@ -1,7 +1,7 @@ import type { UnixTimestamp, UpdateApiKeyRequestDto } from '@n8n/api-types'; import type { CreateApiKeyRequestDto } from '@n8n/api-types/src/dto/api-keys/create-api-key-request.dto'; import type { User } from '@n8n/db'; -import { ApiKey, ApiKeyRepository } from '@n8n/db'; +import { ApiKey, ApiKeyRepository, UserRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import type { GlobalRole, ApiKeyScope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -10,7 +10,6 @@ import type { NextFunction, Request, Response } from 'express'; import { TokenExpiredError } from 'jsonwebtoken'; import type { OpenAPIV3 } from 'openapi-types'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { EventService } from '@/events/event.service'; import { getApiKeyScopesForRole, getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee'; import type { AuthenticatedRequest } from '@/requests'; diff --git a/packages/cli/src/services/user.service.ts b/packages/cli/src/services/user.service.ts index 168f32710a..c4d9abda76 100644 --- a/packages/cli/src/services/user.service.ts +++ b/packages/cli/src/services/user.service.ts @@ -1,13 +1,12 @@ import type { RoleChangeRequestDto } from '@n8n/api-types'; -import { User } from '@n8n/db'; import type { PublicUser } from '@n8n/db'; +import { User, UserRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import { getGlobalScopes, type AssignableGlobalRole } from '@n8n/permissions'; import { Logger } from 'n8n-core'; import type { IUserSettings } from 'n8n-workflow'; import { UnexpectedError } from 'n8n-workflow'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { InternalServerError } from '@/errors/response-errors/internal-server.error'; import { EventService } from '@/events/event.service'; import type { Invitation } from '@/interfaces'; diff --git a/packages/cli/src/sso.ee/saml/__tests__/saml-helpers.test.ts b/packages/cli/src/sso.ee/saml/__tests__/saml-helpers.test.ts index c119521d92..9d497600f9 100644 --- a/packages/cli/src/sso.ee/saml/__tests__/saml-helpers.test.ts +++ b/packages/cli/src/sso.ee/saml/__tests__/saml-helpers.test.ts @@ -2,8 +2,8 @@ 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 { UserRepository } from '@/databases/repositories/user.repository'; import * as helpers from '@/sso.ee/saml/saml-helpers'; import type { SamlUserAttributes } from '@/sso.ee/saml/types'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/src/sso.ee/saml/saml-helpers.ts b/packages/cli/src/sso.ee/saml/saml-helpers.ts index 28c11095ec..26ebd71e90 100644 --- a/packages/cli/src/sso.ee/saml/saml-helpers.ts +++ b/packages/cli/src/sso.ee/saml/saml-helpers.ts @@ -1,12 +1,11 @@ import type { SamlAcsDto, SamlPreferences } from '@n8n/api-types'; import type { User } from '@n8n/db'; -import { AuthIdentity, AuthIdentityRepository } from '@n8n/db'; +import { AuthIdentity, AuthIdentityRepository, UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { randomString } from 'n8n-workflow'; import type { FlowResult } from 'samlify/types/src/flow'; import config from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { InternalServerError } from '@/errors/response-errors/internal-server.error'; import { License } from '@/license'; diff --git a/packages/cli/src/sso.ee/saml/saml.service.ee.ts b/packages/cli/src/sso.ee/saml/saml.service.ee.ts index 66467db934..f33b0dfba6 100644 --- a/packages/cli/src/sso.ee/saml/saml.service.ee.ts +++ b/packages/cli/src/sso.ee/saml/saml.service.ee.ts @@ -1,6 +1,6 @@ import type { SamlPreferences } from '@n8n/api-types'; -import { SettingsRepository } from '@n8n/db'; import type { Settings, User } from '@n8n/db'; +import { SettingsRepository, UserRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import axios from 'axios'; import type express from 'express'; @@ -10,7 +10,6 @@ import { jsonParse, UnexpectedError } from 'n8n-workflow'; import type { IdentityProviderInstance, ServiceProviderInstance } from 'samlify'; import type { BindingContext, PostBindingContext } from 'samlify/types/src/entity'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { UrlService } from '@/services/url.service'; diff --git a/packages/cli/src/telemetry/index.ts b/packages/cli/src/telemetry/index.ts index e9b9c32fc1..1cd0dc876d 100644 --- a/packages/cli/src/telemetry/index.ts +++ b/packages/cli/src/telemetry/index.ts @@ -1,5 +1,10 @@ import { GlobalConfig } from '@n8n/config'; -import { ProjectRelationRepository, ProjectRepository, WorkflowRepository } from '@n8n/db'; +import { + ProjectRelationRepository, + ProjectRepository, + WorkflowRepository, + UserRepository, +} from '@n8n/db'; import { OnShutdown } from '@n8n/decorators'; import { Container, Service } from '@n8n/di'; import type RudderStack from '@rudderstack/rudder-sdk-node'; @@ -8,7 +13,6 @@ import { InstanceSettings, Logger } from 'n8n-core'; import type { ITelemetryTrackProperties } from 'n8n-workflow'; import { LOWEST_SHUTDOWN_PRIORITY, N8N_VERSION } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import type { IExecutionTrackProperties } from '@/interfaces'; import { License } from '@/license'; import { PostHogClient } from '@/posthog'; diff --git a/packages/cli/src/user-management/email/user-management-mailer.ts b/packages/cli/src/user-management/email/user-management-mailer.ts index e076c238d1..b0af7ff052 100644 --- a/packages/cli/src/user-management/email/user-management-mailer.ts +++ b/packages/cli/src/user-management/email/user-management-mailer.ts @@ -1,5 +1,6 @@ import { GlobalConfig } from '@n8n/config'; import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container, Service } from '@n8n/di'; import { existsSync } from 'fs'; import { readFile } from 'fs/promises'; @@ -9,7 +10,6 @@ import type { IWorkflowBase } from 'n8n-workflow'; import { join as pathJoin } from 'path'; import { inTest } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { InternalServerError } from '@/errors/response-errors/internal-server.error'; import { EventService } from '@/events/event.service'; import { UrlService } from '@/services/url.service'; diff --git a/packages/cli/test/integration/ai/ai.api.test.ts b/packages/cli/test/integration/ai/ai.api.test.ts index 2e6ffd2ac0..1da3f46476 100644 --- a/packages/cli/test/integration/ai/ai.api.test.ts +++ b/packages/cli/test/integration/ai/ai.api.test.ts @@ -3,13 +3,13 @@ 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 { Container } from '@n8n/di'; import { randomUUID } from 'crypto'; import { mock } from 'jest-mock-extended'; import { OPEN_AI_API_CREDENTIAL_TYPE } from 'n8n-workflow'; import { FREE_AI_CREDITS_CREDENTIAL_NAME } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { AiService } from '@/services/ai.service'; import { createOwner } from '../shared/db/users'; diff --git a/packages/cli/test/integration/auth.api.test.ts b/packages/cli/test/integration/auth.api.test.ts index 7c504623d6..b163bd74bf 100644 --- a/packages/cli/test/integration/auth.api.test.ts +++ b/packages/cli/test/integration/auth.api.test.ts @@ -1,10 +1,10 @@ import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import validator from 'validator'; import config from '@/config'; import { AUTH_COOKIE_NAME } from '@/constants'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { MfaService } from '@/mfa/mfa.service'; import { LOGGED_OUT_RESPONSE_BODY } from './shared/constants'; diff --git a/packages/cli/test/integration/commands/reset.cmd.test.ts b/packages/cli/test/integration/commands/reset.cmd.test.ts index c4c61f91eb..8f67073c8b 100644 --- a/packages/cli/test/integration/commands/reset.cmd.test.ts +++ b/packages/cli/test/integration/commands/reset.cmd.test.ts @@ -2,10 +2,10 @@ import { CredentialsEntity, SettingsRepository } from '@n8n/db'; import { CredentialsRepository } from '@n8n/db'; import { SharedCredentialsRepository } from '@n8n/db'; import { SharedWorkflowRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { Reset } from '@/commands/user-management/reset'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials'; import { NodeTypes } from '@/node-types'; import { setupTestCommand } from '@test-integration/utils/test-command'; diff --git a/packages/cli/test/integration/controllers/invitation/invitation.controller.integration.test.ts b/packages/cli/test/integration/controllers/invitation/invitation.controller.integration.test.ts index c6359df5e3..47d01c6518 100644 --- a/packages/cli/test/integration/controllers/invitation/invitation.controller.integration.test.ts +++ b/packages/cli/test/integration/controllers/invitation/invitation.controller.integration.test.ts @@ -1,9 +1,9 @@ import type { User } from '@n8n/db'; import { ProjectRelationRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { Not } from '@n8n/typeorm'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { EventService } from '@/events/event.service'; import { ExternalHooks } from '@/external-hooks'; import { PasswordUtility } from '@/services/password.utility'; diff --git a/packages/cli/test/integration/database/repositories/project.repository.test.ts b/packages/cli/test/integration/database/repositories/project.repository.test.ts index 7ac467bd78..b05f5b9254 100644 --- a/packages/cli/test/integration/database/repositories/project.repository.test.ts +++ b/packages/cli/test/integration/database/repositories/project.repository.test.ts @@ -1,10 +1,9 @@ import { AuthIdentity } from '@n8n/db'; import { ProjectRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { EntityNotFoundError } from '@n8n/typeorm'; -import { UserRepository } from '@/databases/repositories/user.repository'; - import { createTeamProject } from '../../shared/db/projects'; import { createMember, createOwner } from '../../shared/db/users'; import * as testDb from '../../shared/test-db'; diff --git a/packages/cli/test/integration/environments/source-control-import.service.test.ts b/packages/cli/test/integration/environments/source-control-import.service.test.ts index 122dc2d833..88ad5e178b 100644 --- a/packages/cli/test/integration/environments/source-control-import.service.test.ts +++ b/packages/cli/test/integration/environments/source-control-import.service.test.ts @@ -3,6 +3,7 @@ import { CredentialsRepository } from '@n8n/db'; import { FolderRepository } from '@n8n/db'; import { ProjectRepository } from '@n8n/db'; import { SharedCredentialsRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import { Cipher } from 'n8n-core'; @@ -11,7 +12,6 @@ import * as utils from 'n8n-workflow'; import { nanoid } from 'nanoid'; import fsp from 'node:fs/promises'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { SourceControlImportService } from '@/environments.ee/source-control/source-control-import.service.ee'; import type { ExportableCredential } from '@/environments.ee/source-control/types/exportable-credential'; diff --git a/packages/cli/test/integration/ldap/ldap.api.test.ts b/packages/cli/test/integration/ldap/ldap.api.test.ts index c3f9c74b6c..14aee4c777 100644 --- a/packages/cli/test/integration/ldap/ldap.api.test.ts +++ b/packages/cli/test/integration/ldap/ldap.api.test.ts @@ -1,12 +1,12 @@ import type { User } from '@n8n/db'; import { AuthProviderSyncHistoryRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { Not } from '@n8n/typeorm'; import type { Entry as LdapUser } from 'ldapts'; import { Cipher } from 'n8n-core'; import config from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { LDAP_DEFAULT_CONFIGURATION } from '@/ldap.ee/constants'; import { saveLdapSynchronization } from '@/ldap.ee/helpers.ee'; import { LdapService } from '@/ldap.ee/ldap.service.ee'; diff --git a/packages/cli/test/integration/me.api.test.ts b/packages/cli/test/integration/me.api.test.ts index 7f971b4c38..cb31f3acd8 100644 --- a/packages/cli/test/integration/me.api.test.ts +++ b/packages/cli/test/integration/me.api.test.ts @@ -1,11 +1,11 @@ import { GlobalConfig } from '@n8n/config'; import type { User } from '@n8n/db'; import { ProjectRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { IPersonalizationSurveyAnswersV4 } from 'n8n-workflow'; import validator from 'validator'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { mockInstance } from '@test/mocking'; import { SUCCESS_RESPONSE_BODY } from './shared/constants'; diff --git a/packages/cli/test/integration/owner.api.test.ts b/packages/cli/test/integration/owner.api.test.ts index bb15c40bd3..04f646ac7a 100644 --- a/packages/cli/test/integration/owner.api.test.ts +++ b/packages/cli/test/integration/owner.api.test.ts @@ -1,9 +1,9 @@ import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import validator from 'validator'; import config from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { createUserShell } from './shared/db/users'; import { diff --git a/packages/cli/test/integration/password-reset.api.test.ts b/packages/cli/test/integration/password-reset.api.test.ts index 7a39c20580..dbe291f03a 100644 --- a/packages/cli/test/integration/password-reset.api.test.ts +++ b/packages/cli/test/integration/password-reset.api.test.ts @@ -1,4 +1,5 @@ import type { User } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { compare } from 'bcryptjs'; import { mock } from 'jest-mock-extended'; @@ -7,7 +8,6 @@ import { v4 as uuid } from 'uuid'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { ExternalHooks } from '@/external-hooks'; import { License } from '@/license'; import { JwtService } from '@/services/jwt.service'; diff --git a/packages/cli/test/integration/shared/db/users.ts b/packages/cli/test/integration/shared/db/users.ts index 4f59a51bb3..5b447826c4 100644 --- a/packages/cli/test/integration/shared/db/users.ts +++ b/packages/cli/test/integration/shared/db/users.ts @@ -2,11 +2,11 @@ import { AuthIdentity } from '@n8n/db'; import { type User } from '@n8n/db'; import { AuthIdentityRepository } from '@n8n/db'; import { AuthUserRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { ApiKeyScope, GlobalRole } from '@n8n/permissions'; import { hash } from 'bcryptjs'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { MfaService } from '@/mfa/mfa.service'; import { TOTPService } from '@/mfa/totp.service'; import { getApiKeyScopesForRole } from '@/public-api/permissions.ee'; diff --git a/packages/cli/test/integration/user.repository.test.ts b/packages/cli/test/integration/user.repository.test.ts index a255f42ad6..a3bc444a96 100644 --- a/packages/cli/test/integration/user.repository.test.ts +++ b/packages/cli/test/integration/user.repository.test.ts @@ -1,8 +1,7 @@ import { ProjectRelationRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; -import { UserRepository } from '@/databases/repositories/user.repository'; - import { createAdmin, createMember, createOwner } from './shared/db/users'; import { randomEmail } from './shared/random'; import * as testDb from './shared/test-db'; diff --git a/packages/cli/test/integration/users.api.test.ts b/packages/cli/test/integration/users.api.test.ts index b87d89112b..f16a637241 100644 --- a/packages/cli/test/integration/users.api.test.ts +++ b/packages/cli/test/integration/users.api.test.ts @@ -4,12 +4,12 @@ import { ProjectRelationRepository } from '@n8n/db'; import { ProjectRepository } from '@n8n/db'; import { SharedCredentialsRepository } from '@n8n/db'; import { SharedWorkflowRepository } from '@n8n/db'; +import { UserRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { v4 as uuid } from 'uuid'; import { RESPONSE_ERROR_MESSAGES } from '@/constants'; import { UsersController } from '@/controllers/users.controller'; -import { UserRepository } from '@/databases/repositories/user.repository'; import { ExecutionService } from '@/executions/execution.service'; import { CacheService } from '@/services/cache/cache.service'; import { Telemetry } from '@/telemetry';