diff --git a/packages/cli/src/databases/repositories/folder-tag-mapping.repository.ts b/packages/@n8n/db/src/repositories/folder-tag-mapping.repository.ts similarity index 89% rename from packages/cli/src/databases/repositories/folder-tag-mapping.repository.ts rename to packages/@n8n/db/src/repositories/folder-tag-mapping.repository.ts index d2b57af2a1..360ea93362 100644 --- a/packages/cli/src/databases/repositories/folder-tag-mapping.repository.ts +++ b/packages/@n8n/db/src/repositories/folder-tag-mapping.repository.ts @@ -1,7 +1,8 @@ -import { FolderTagMapping } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; +import { FolderTagMapping } from '../entities/folder-tag-mapping'; + @Service() export class FolderTagMappingRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/folder.repository.ts b/packages/@n8n/db/src/repositories/folder.repository.ts similarity index 98% rename from packages/cli/src/databases/repositories/folder.repository.ts rename to packages/@n8n/db/src/repositories/folder.repository.ts index e0d2827327..a34960182d 100644 --- a/packages/cli/src/databases/repositories/folder.repository.ts +++ b/packages/@n8n/db/src/repositories/folder.repository.ts @@ -1,11 +1,10 @@ -import type { FolderWithWorkflowAndSubFolderCount } from '@n8n/db'; -import { Folder, FolderTagMapping, TagEntity } from '@n8n/db'; import { Service } from '@n8n/di'; import type { EntityManager, SelectQueryBuilder } from '@n8n/typeorm'; import { DataSource, Repository } from '@n8n/typeorm'; import { PROJECT_ROOT } from 'n8n-workflow'; -import type { ListQuery } from '@/requests'; +import { Folder, FolderTagMapping, TagEntity } from '../entities'; +import type { FolderWithWorkflowAndSubFolderCount, ListQuery } from '../entities/types-db'; @Service() export class FolderRepository extends Repository { diff --git a/packages/@n8n/db/src/repositories/index.ts b/packages/@n8n/db/src/repositories/index.ts index 2e662e6408..fdfc3da661 100644 --- a/packages/@n8n/db/src/repositories/index.ts +++ b/packages/@n8n/db/src/repositories/index.ts @@ -10,3 +10,12 @@ export { ExecutionDataRepository } from './execution-data.repository'; export { ExecutionMetadataRepository } from './execution-metadata.repository'; export { ExecutionRepository } from './execution.repository'; export { EventDestinationsRepository } from './event-destinations.repository'; +export { FolderRepository } from './folder.repository'; +export { FolderTagMappingRepository } from './folder-tag-mapping.repository'; +export { InstalledNodesRepository } from './installed-nodes.repository'; +export { InstalledPackagesRepository } from './installed-packages.repository'; +export { InvalidAuthTokenRepository } from './invalid-auth-token.repository'; +export { LicenseMetricsRepository } from './license-metrics.repository'; +export { ProjectRelationRepository } from './project-relation.repository'; +export { ProjectRepository } from './project.repository'; +export { ProcessedDataRepository } from './processed-data.repository'; diff --git a/packages/cli/src/databases/repositories/installed-nodes.repository.ts b/packages/@n8n/db/src/repositories/installed-nodes.repository.ts similarity index 84% rename from packages/cli/src/databases/repositories/installed-nodes.repository.ts rename to packages/@n8n/db/src/repositories/installed-nodes.repository.ts index b9ace43155..240b237f1a 100644 --- a/packages/cli/src/databases/repositories/installed-nodes.repository.ts +++ b/packages/@n8n/db/src/repositories/installed-nodes.repository.ts @@ -1,7 +1,8 @@ -import { InstalledNodes } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; +import { InstalledNodes } from '../entities'; + @Service() export class InstalledNodesRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/installed-packages.repository.ts b/packages/@n8n/db/src/repositories/installed-packages.repository.ts similarity index 96% rename from packages/cli/src/databases/repositories/installed-packages.repository.ts rename to packages/@n8n/db/src/repositories/installed-packages.repository.ts index 3489708ab8..f614b0445a 100644 --- a/packages/cli/src/databases/repositories/installed-packages.repository.ts +++ b/packages/@n8n/db/src/repositories/installed-packages.repository.ts @@ -1,9 +1,9 @@ -import { InstalledPackages } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; import type { PackageDirectoryLoader } from 'n8n-core'; import { InstalledNodesRepository } from './installed-nodes.repository'; +import { InstalledPackages } from '../entities'; @Service() export class InstalledPackagesRepository extends Repository { diff --git a/packages/cli/src/databases/repositories/invalid-auth-token.repository.ts b/packages/@n8n/db/src/repositories/invalid-auth-token.repository.ts similarity index 84% rename from packages/cli/src/databases/repositories/invalid-auth-token.repository.ts rename to packages/@n8n/db/src/repositories/invalid-auth-token.repository.ts index a1bdeadd39..011ff477b0 100644 --- a/packages/cli/src/databases/repositories/invalid-auth-token.repository.ts +++ b/packages/@n8n/db/src/repositories/invalid-auth-token.repository.ts @@ -1,7 +1,8 @@ -import { InvalidAuthToken } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; +import { InvalidAuthToken } from '../entities'; + @Service() export class InvalidAuthTokenRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/license-metrics.repository.ts b/packages/@n8n/db/src/repositories/license-metrics.repository.ts similarity index 100% rename from packages/cli/src/databases/repositories/license-metrics.repository.ts rename to packages/@n8n/db/src/repositories/license-metrics.repository.ts diff --git a/packages/cli/src/databases/repositories/processed-data.repository.ts b/packages/@n8n/db/src/repositories/processed-data.repository.ts similarity index 85% rename from packages/cli/src/databases/repositories/processed-data.repository.ts rename to packages/@n8n/db/src/repositories/processed-data.repository.ts index a8bcd2fa0e..8f36439d78 100644 --- a/packages/cli/src/databases/repositories/processed-data.repository.ts +++ b/packages/@n8n/db/src/repositories/processed-data.repository.ts @@ -1,7 +1,8 @@ -import { ProcessedData } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; +import { ProcessedData } from '../entities'; + @Service() export class ProcessedDataRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/project-relation.repository.ts b/packages/@n8n/db/src/repositories/project-relation.repository.ts similarity index 97% rename from packages/cli/src/databases/repositories/project-relation.repository.ts rename to packages/@n8n/db/src/repositories/project-relation.repository.ts index 2da4fa5565..27dc06931c 100644 --- a/packages/cli/src/databases/repositories/project-relation.repository.ts +++ b/packages/@n8n/db/src/repositories/project-relation.repository.ts @@ -1,8 +1,9 @@ -import { ProjectRelation } from '@n8n/db'; import { Service } from '@n8n/di'; import type { ProjectRole } from '@n8n/permissions'; import { DataSource, In, Repository } from '@n8n/typeorm'; +import { ProjectRelation } from '../entities'; + @Service() export class ProjectRelationRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/project.repository.ts b/packages/@n8n/db/src/repositories/project.repository.ts similarity index 96% rename from packages/cli/src/databases/repositories/project.repository.ts rename to packages/@n8n/db/src/repositories/project.repository.ts index 91c3c0a47c..d1f8af9580 100644 --- a/packages/cli/src/databases/repositories/project.repository.ts +++ b/packages/@n8n/db/src/repositories/project.repository.ts @@ -1,8 +1,9 @@ -import { Project } from '@n8n/db'; import { Service } from '@n8n/di'; import type { EntityManager } from '@n8n/typeorm'; import { DataSource, Repository } from '@n8n/typeorm'; +import { Project } from '../entities'; + @Service() export class ProjectRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/auth/__tests__/auth.service.test.ts b/packages/cli/src/auth/__tests__/auth.service.test.ts index db93ec1bc6..0696632642 100644 --- a/packages/cli/src/auth/__tests__/auth.service.test.ts +++ b/packages/cli/src/auth/__tests__/auth.service.test.ts @@ -1,5 +1,6 @@ import type { GlobalConfig } from '@n8n/config'; import type { User } from '@n8n/db'; +import type { InvalidAuthTokenRepository } from '@n8n/db'; import type { NextFunction, Response } from 'express'; import { mock } from 'jest-mock-extended'; import jwt from 'jsonwebtoken'; @@ -7,7 +8,6 @@ import jwt from 'jsonwebtoken'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; import { AUTH_COOKIE_NAME, Time } from '@/constants'; -import type { InvalidAuthTokenRepository } from '@/databases/repositories/invalid-auth-token.repository'; import type { UserRepository } from '@/databases/repositories/user.repository'; import type { AuthenticatedRequest } from '@/requests'; import { JwtService } from '@/services/jwt.service'; diff --git a/packages/cli/src/auth/auth.service.ts b/packages/cli/src/auth/auth.service.ts index a8ebe27d04..ace3113fce 100644 --- a/packages/cli/src/auth/auth.service.ts +++ b/packages/cli/src/auth/auth.service.ts @@ -1,5 +1,6 @@ import { GlobalConfig } from '@n8n/config'; import type { User } from '@n8n/db'; +import { InvalidAuthTokenRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import { createHash } from 'crypto'; import type { NextFunction, Response } from 'express'; @@ -8,7 +9,6 @@ import { Logger } from 'n8n-core'; import config from '@/config'; import { AUTH_COOKIE_NAME, RESPONSE_ERROR_MESSAGES, Time } from '@/constants'; -import { InvalidAuthTokenRepository } from '@/databases/repositories/invalid-auth-token.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { ForbiddenError } from '@/errors/response-errors/forbidden.error'; diff --git a/packages/cli/src/commands/community-node.ts b/packages/cli/src/commands/community-node.ts index e52d41e1e4..6746205983 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 } from '@n8n/db'; +import { CredentialsRepository, InstalledNodesRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { Flags } from '@oclif/core'; import { CredentialsService } from '@/credentials/credentials.service'; -import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { CommunityPackagesService } from '@/services/community-packages.service'; diff --git a/packages/cli/src/commands/import/credentials.ts b/packages/cli/src/commands/import/credentials.ts index 092e729a50..801a5572cd 100644 --- a/packages/cli/src/commands/import/credentials.ts +++ b/packages/cli/src/commands/import/credentials.ts @@ -1,4 +1,4 @@ -import { CredentialsEntity, Project, User, SharedCredentials } from '@n8n/db'; +import { CredentialsEntity, Project, User, SharedCredentials, ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import type { EntityManager } from '@n8n/typeorm'; @@ -10,7 +10,6 @@ import type { ICredentialsEncrypted } from 'n8n-workflow'; import { jsonParse, UserError } from 'n8n-workflow'; import { UM_FIX_INSTRUCTION } from '@/constants'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import * as Db from '@/db'; import { BaseCommand } from '../base-command'; diff --git a/packages/cli/src/commands/import/workflow.ts b/packages/cli/src/commands/import/workflow.ts index d13270534e..897c52218c 100644 --- a/packages/cli/src/commands/import/workflow.ts +++ b/packages/cli/src/commands/import/workflow.ts @@ -1,5 +1,5 @@ -import { generateNanoId } from '@n8n/db'; import type { WorkflowEntity } from '@n8n/db'; +import { generateNanoId, ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { Flags } from '@oclif/core'; import glob from 'fast-glob'; @@ -8,7 +8,6 @@ import type { IWorkflowBase, WorkflowId } from 'n8n-workflow'; import { jsonParse, UserError } from 'n8n-workflow'; import { UM_FIX_INSTRUCTION } from '@/constants'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/src/commands/ldap/reset.ts b/packages/cli/src/commands/ldap/reset.ts index 219ab2419a..e59fe0bae0 100644 --- a/packages/cli/src/commands/ldap/reset.ts +++ b/packages/cli/src/commands/ldap/reset.ts @@ -1,4 +1,9 @@ -import { AuthIdentityRepository, AuthProviderSyncHistoryRepository } from '@n8n/db'; +import { + AuthIdentityRepository, + AuthProviderSyncHistoryRepository, + ProjectRelationRepository, + ProjectRepository, +} from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; @@ -7,8 +12,6 @@ import { UserError } from 'n8n-workflow'; import { UM_FIX_INSTRUCTION } from '@/constants'; import { CredentialsService } from '@/credentials/credentials.service'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; diff --git a/packages/cli/src/commands/user-management/reset.ts b/packages/cli/src/commands/user-management/reset.ts index fe0f3e3d35..f80300fe88 100644 --- a/packages/cli/src/commands/user-management/reset.ts +++ b/packages/cli/src/commands/user-management/reset.ts @@ -1,8 +1,7 @@ import type { CredentialsEntity } from '@n8n/db'; -import { User, CredentialsRepository } from '@n8n/db'; +import { User, CredentialsRepository, ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; diff --git a/packages/cli/src/controllers/__tests__/me.controller.test.ts b/packages/cli/src/controllers/__tests__/me.controller.test.ts index e2c51a0746..6843c23319 100644 --- a/packages/cli/src/controllers/__tests__/me.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/me.controller.test.ts @@ -2,6 +2,7 @@ import { UserUpdateRequestDto } from '@n8n/api-types'; import type { User } from '@n8n/db'; import type { PublicUser } from '@n8n/db'; import { AuthUserRepository } from '@n8n/db'; +import { InvalidAuthTokenRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Response } from 'express'; import { mock, anyObject } from 'jest-mock-extended'; @@ -9,7 +10,6 @@ import jwt from 'jsonwebtoken'; import { AUTH_COOKIE_NAME } from '@/constants'; import { MeController } from '@/controllers/me.controller'; -import { InvalidAuthTokenRepository } from '@/databases/repositories/invalid-auth-token.repository'; 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'; diff --git a/packages/cli/src/controllers/project.controller.ts b/packages/cli/src/controllers/project.controller.ts index 9703fa84db..6e57ee2593 100644 --- a/packages/cli/src/controllers/project.controller.ts +++ b/packages/cli/src/controllers/project.controller.ts @@ -1,5 +1,6 @@ import { CreateProjectDto, DeleteProjectDto, UpdateProjectDto } from '@n8n/api-types'; import type { Project } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Get, Post, @@ -19,7 +20,6 @@ import type { Scope } from '@n8n/permissions'; import { In, Not } from '@n8n/typeorm'; import { Response } from 'express'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/controllers/users.controller.ts b/packages/cli/src/controllers/users.controller.ts index 83d637fe51..15cf9a8b73 100644 --- a/packages/cli/src/controllers/users.controller.ts +++ b/packages/cli/src/controllers/users.controller.ts @@ -1,6 +1,6 @@ import { RoleChangeRequestDto, SettingsUpdateRequestDto } from '@n8n/api-types'; import type { PublicUser } from '@n8n/db'; -import { Project, User, AuthIdentity } from '@n8n/db'; +import { Project, User, AuthIdentity, ProjectRepository } from '@n8n/db'; import { GlobalScope, Delete, @@ -16,7 +16,6 @@ import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; import { CredentialsService } from '@/credentials/credentials.service'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; diff --git a/packages/cli/src/credentials/credentials.controller.ts b/packages/cli/src/credentials/credentials.controller.ts index a4fa263075..3c508cf699 100644 --- a/packages/cli/src/credentials/credentials.controller.ts +++ b/packages/cli/src/credentials/credentials.controller.ts @@ -5,7 +5,7 @@ import { GenerateCredentialNameRequestQuery, } from '@n8n/api-types'; import { GlobalConfig } from '@n8n/config'; -import { SharedCredentials } from '@n8n/db'; +import { SharedCredentials, ProjectRelationRepository } from '@n8n/db'; import { Delete, Get, @@ -26,7 +26,6 @@ import { deepCopy } from 'n8n-workflow'; import type { ICredentialDataDecryptedObject } from 'n8n-workflow'; import { z } from 'zod'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import * as Db from '@/db'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; diff --git a/packages/cli/src/credentials/credentials.service.ts b/packages/cli/src/credentials/credentials.service.ts index 9310fbb44f..aef6694b0b 100644 --- a/packages/cli/src/credentials/credentials.service.ts +++ b/packages/cli/src/credentials/credentials.service.ts @@ -1,6 +1,11 @@ import type { CreateCredentialDto } from '@n8n/api-types'; import type { Project, User, ICredentialsDb, ScopesField } from '@n8n/db'; -import { CredentialsEntity, SharedCredentials, CredentialsRepository } from '@n8n/db'; +import { + CredentialsEntity, + SharedCredentials, + CredentialsRepository, + ProjectRepository, +} from '@n8n/db'; import { Service } from '@n8n/di'; import { hasGlobalScope, type Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -22,7 +27,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 { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import * as Db from '@/db'; diff --git a/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts b/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts index f0daa8db33..7e60a0c1e5 100644 --- a/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts +++ b/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts @@ -1,6 +1,7 @@ import type { Project } from '@n8n/db'; import type { User } from '@n8n/db'; import type { Folder } from '@n8n/db'; +import { FolderRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { DateTime } from 'luxon'; @@ -11,7 +12,6 @@ import { createMember, createOwner } from '@test-integration/db/users'; import { createWorkflow } from '@test-integration/db/workflows'; import * as testDb from '../../../../test/integration/shared/test-db'; -import { FolderRepository } from '../folder.repository'; describe('FolderRepository', () => { let folderRepository: FolderRepository; diff --git a/packages/cli/src/databases/repositories/workflow.repository.ts b/packages/cli/src/databases/repositories/workflow.repository.ts index 32a4ab5777..ce6fc75e66 100644 --- a/packages/cli/src/databases/repositories/workflow.repository.ts +++ b/packages/cli/src/databases/repositories/workflow.repository.ts @@ -6,6 +6,7 @@ import { TagEntity, WorkflowEntity, WorkflowTagMapping, + FolderRepository, } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository, In, Like } from '@n8n/typeorm'; @@ -22,8 +23,6 @@ import { PROJECT_ROOT } from 'n8n-workflow'; import type { ListQuery } from '@/requests'; -import { FolderRepository } from './folder.repository'; - type ResourceType = 'folder' | 'workflow'; type WorkflowFolderUnionRow = { diff --git a/packages/cli/src/deduplication/deduplication-helper.ts b/packages/cli/src/deduplication/deduplication-helper.ts index bc7d9b48c5..1b30d9bfbf 100644 --- a/packages/cli/src/deduplication/deduplication-helper.ts +++ b/packages/cli/src/deduplication/deduplication-helper.ts @@ -1,4 +1,5 @@ import type { ProcessedData } from '@n8n/db'; +import { ProcessedDataRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { createHash } from 'crypto'; import { tryToParseDateTime } from 'n8n-workflow'; @@ -15,7 +16,6 @@ import type { } from 'n8n-workflow'; import * as assert from 'node:assert/strict'; -import { ProcessedDataRepository } from '@/databases/repositories/processed-data.repository'; import { DeduplicationError } from '@/errors/deduplication.error'; export class DeduplicationHelper implements IDataDeduplicator { diff --git a/packages/cli/src/environments.ee/source-control/__tests__/source-control-export.service.test.ts b/packages/cli/src/environments.ee/source-control/__tests__/source-control-export.service.test.ts index adaf19f226..b127451ebb 100644 --- a/packages/cli/src/environments.ee/source-control/__tests__/source-control-export.service.test.ts +++ b/packages/cli/src/environments.ee/source-control/__tests__/source-control-export.service.test.ts @@ -1,12 +1,12 @@ import type { SourceControlledFile } from '@n8n/api-types'; import type { SharedCredentials } from '@n8n/db'; import type { SharedWorkflow } from '@n8n/db'; +import type { FolderRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock, captor } from 'jest-mock-extended'; import { Cipher, type InstanceSettings } from 'n8n-core'; import fsp from 'node:fs/promises'; -import type { FolderRepository } from '@/databases/repositories/folder.repository'; import type { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import type { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import type { TagRepository } from '@/databases/repositories/tag.repository'; diff --git a/packages/cli/src/environments.ee/source-control/__tests__/source-control-import.service.ee.test.ts b/packages/cli/src/environments.ee/source-control/__tests__/source-control-import.service.ee.test.ts index 06efc595f1..f82cd05077 100644 --- a/packages/cli/src/environments.ee/source-control/__tests__/source-control-import.service.ee.test.ts +++ b/packages/cli/src/environments.ee/source-control/__tests__/source-control-import.service.ee.test.ts @@ -1,10 +1,10 @@ import type { WorkflowEntity } from '@n8n/db'; +import type { FolderRepository } from '@n8n/db'; import * as fastGlob from 'fast-glob'; import { mock } from 'jest-mock-extended'; import { type InstanceSettings } from 'n8n-core'; import fsp from 'node:fs/promises'; -import type { FolderRepository } from '@/databases/repositories/folder.repository'; import type { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { SourceControlImportService } from '../source-control-import.service.ee'; diff --git a/packages/cli/src/environments.ee/source-control/__tests__/source-control.service.test.ts b/packages/cli/src/environments.ee/source-control/__tests__/source-control.service.test.ts index 643c1e17da..e10173532b 100644 --- a/packages/cli/src/environments.ee/source-control/__tests__/source-control.service.test.ts +++ b/packages/cli/src/environments.ee/source-control/__tests__/source-control.service.test.ts @@ -3,11 +3,11 @@ import type { Variables } from '@n8n/db'; import type { FolderWithWorkflowAndSubFolderCount } from '@n8n/db'; import type { TagEntity } from '@n8n/db'; import type { User } from '@n8n/db'; +import type { FolderRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import { InstanceSettings } from 'n8n-core'; -import type { FolderRepository } from '@/databases/repositories/folder.repository'; import type { TagRepository } from '@/databases/repositories/tag.repository'; import { SourceControlPreferencesService } from '@/environments.ee/source-control/source-control-preferences.service.ee'; import { SourceControlService } from '@/environments.ee/source-control/source-control.service.ee'; diff --git a/packages/cli/src/environments.ee/source-control/source-control-export.service.ee.ts b/packages/cli/src/environments.ee/source-control/source-control-export.service.ee.ts index 92cf618db7..9011e356b3 100644 --- a/packages/cli/src/environments.ee/source-control/source-control-export.service.ee.ts +++ b/packages/cli/src/environments.ee/source-control/source-control-export.service.ee.ts @@ -1,5 +1,6 @@ import type { SourceControlledFile } from '@n8n/api-types'; import type { IWorkflowDb } from '@n8n/db'; +import { FolderRepository } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; @@ -9,7 +10,6 @@ import { UnexpectedError, type ICredentialDataDecryptedObject } from 'n8n-workfl import { writeFile as fsWriteFile, rm as fsRm } from 'node:fs/promises'; import path from 'path'; -import { FolderRepository } from '@/databases/repositories/folder.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; 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 ebb3aa1343..4785420d4d 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 @@ -1,6 +1,11 @@ import type { SourceControlledFile } from '@n8n/api-types'; import type { Variables, Project, TagEntity, User, WorkflowTagMapping } from '@n8n/db'; -import { SharedCredentials, CredentialsRepository } from '@n8n/db'; +import { + SharedCredentials, + CredentialsRepository, + FolderRepository, + ProjectRepository, +} from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; @@ -12,8 +17,6 @@ import path from 'path'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import { CredentialsService } from '@/credentials/credentials.service'; -import { FolderRepository } from '@/databases/repositories/folder.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; diff --git a/packages/cli/src/environments.ee/source-control/source-control.service.ee.ts b/packages/cli/src/environments.ee/source-control/source-control.service.ee.ts index bfb1e001eb..d05e1fdff1 100644 --- a/packages/cli/src/environments.ee/source-control/source-control.service.ee.ts +++ b/packages/cli/src/environments.ee/source-control/source-control.service.ee.ts @@ -4,6 +4,7 @@ import type { SourceControlledFile, } from '@n8n/api-types'; import type { Variables, TagEntity, User } from '@n8n/db'; +import { FolderRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import { writeFileSync } from 'fs'; import { Logger } from 'n8n-core'; @@ -11,7 +12,6 @@ import { UnexpectedError, UserError } from 'n8n-workflow'; import path from 'path'; import type { PushResult } from 'simple-git'; -import { FolderRepository } from '@/databases/repositories/folder.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts b/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts index e78c163a43..40bbe9246a 100644 --- a/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts +++ b/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts @@ -3,13 +3,13 @@ import type { CredentialsEntity } from '@n8n/db'; import type { WorkflowEntity } from '@n8n/db'; import type { IWorkflowDb } from '@n8n/db'; import type { CredentialsRepository } from '@n8n/db'; +import type { ProjectRelationRepository } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { type BinaryDataConfig, InstanceSettings } from 'n8n-core'; import type { INode, INodesGraphResult } from 'n8n-workflow'; import { NodeApiError, TelemetryHelpers, type IRun, type IWorkflowBase } from 'n8n-workflow'; import { N8N_VERSION } from '@/constants'; -import type { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import type { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import type { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/events/relays/telemetry.event-relay.ts b/packages/cli/src/events/relays/telemetry.event-relay.ts index d7f7b43ce4..6c7aba8f65 100644 --- a/packages/cli/src/events/relays/telemetry.event-relay.ts +++ b/packages/cli/src/events/relays/telemetry.event-relay.ts @@ -1,5 +1,5 @@ import { GlobalConfig } from '@n8n/config'; -import { CredentialsRepository } from '@n8n/db'; +import { CredentialsRepository, ProjectRelationRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import { snakeCase } from 'change-case'; import { BinaryDataConfig, InstanceSettings } from 'n8n-core'; @@ -10,7 +10,6 @@ import { get as pslGet } from 'psl'; import config from '@/config'; import { N8N_VERSION } from '@/constants'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/metrics/__tests__/license-metrics.service.test.ts b/packages/cli/src/metrics/__tests__/license-metrics.service.test.ts index 73a6b55e65..943728ffb4 100644 --- a/packages/cli/src/metrics/__tests__/license-metrics.service.test.ts +++ b/packages/cli/src/metrics/__tests__/license-metrics.service.test.ts @@ -1,6 +1,6 @@ +import type { LicenseMetricsRepository } from '@n8n/db'; import { mock } from 'jest-mock-extended'; -import type { LicenseMetricsRepository } from '@/databases/repositories/license-metrics.repository'; import type { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { LicenseMetricsService } from '@/metrics/license-metrics.service'; diff --git a/packages/cli/src/metrics/license-metrics.service.ts b/packages/cli/src/metrics/license-metrics.service.ts index 5a4424bb71..4629d1e144 100644 --- a/packages/cli/src/metrics/license-metrics.service.ts +++ b/packages/cli/src/metrics/license-metrics.service.ts @@ -1,6 +1,6 @@ +import { LicenseMetricsRepository } from '@n8n/db'; import { Service } from '@n8n/di'; -import { LicenseMetricsRepository } from '@/databases/repositories/license-metrics.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; @Service() diff --git a/packages/cli/src/permissions.ee/check-access.ts b/packages/cli/src/permissions.ee/check-access.ts index dfdd94aa51..7fc07b5c73 100644 --- a/packages/cli/src/permissions.ee/check-access.ts +++ b/packages/cli/src/permissions.ee/check-access.ts @@ -1,11 +1,11 @@ import type { User } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { hasGlobalScope, rolesWithScope, type Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; import { UnexpectedError } from 'n8n-workflow'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; diff --git a/packages/cli/src/public-api/v1/handlers/credentials/credentials.service.ts b/packages/cli/src/public-api/v1/handlers/credentials/credentials.service.ts index 01e6bcbcc6..93d6b108c2 100644 --- a/packages/cli/src/public-api/v1/handlers/credentials/credentials.service.ts +++ b/packages/cli/src/public-api/v1/handlers/credentials/credentials.service.ts @@ -1,5 +1,10 @@ import type { User, ICredentialsDb } from '@n8n/db'; -import { CredentialsEntity, SharedCredentials, CredentialsRepository } from '@n8n/db'; +import { + CredentialsEntity, + SharedCredentials, + CredentialsRepository, + ProjectRepository, +} from '@n8n/db'; import { Container } from '@n8n/di'; import { Credentials } from 'n8n-core'; import type { @@ -9,7 +14,6 @@ import type { INodePropertyOptions, } from 'n8n-workflow'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import * as Db from '@/db'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/public-api/v1/handlers/projects/projects.handler.ts b/packages/cli/src/public-api/v1/handlers/projects/projects.handler.ts index 3feff66fde..1810225b74 100644 --- a/packages/cli/src/public-api/v1/handlers/projects/projects.handler.ts +++ b/packages/cli/src/public-api/v1/handlers/projects/projects.handler.ts @@ -1,9 +1,9 @@ import { CreateProjectDto, DeleteProjectDto, UpdateProjectDto } from '@n8n/api-types'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Response } from 'express'; import { ProjectController } from '@/controllers/project.controller'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import type { PaginatedRequest } from '@/public-api/types'; import type { AuthenticatedRequest } from '@/requests'; diff --git a/packages/cli/src/public-api/v1/handlers/users/users.handler.ee.ts b/packages/cli/src/public-api/v1/handlers/users/users.handler.ee.ts index f6722346a9..07d83fca77 100644 --- a/packages/cli/src/public-api/v1/handlers/users/users.handler.ee.ts +++ b/packages/cli/src/public-api/v1/handlers/users/users.handler.ee.ts @@ -1,11 +1,11 @@ import { InviteUsersRequestDto, RoleChangeRequestDto } from '@n8n/api-types'; +import { ProjectRelationRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type express from 'express'; import type { Response } from 'express'; import { InvitationController } from '@/controllers/invitation.controller'; import { UsersController } from '@/controllers/users.controller'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { EventService } from '@/events/event.service'; import type { AuthenticatedRequest, UserRequest } from '@/requests'; diff --git a/packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts b/packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts index 6ae737e3f7..8790925719 100644 --- a/packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts +++ b/packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts @@ -1,5 +1,5 @@ import { GlobalConfig } from '@n8n/config'; -import { WorkflowEntity } from '@n8n/db'; +import { WorkflowEntity, ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In, Like, QueryFailedError } from '@n8n/typeorm'; @@ -10,7 +10,6 @@ import { v4 as uuid } from 'uuid'; import { z } from 'zod'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/services/__tests__/community-packages.service.test.ts b/packages/cli/src/services/__tests__/community-packages.service.test.ts index f7eb4f4ef0..5cb4721ae9 100644 --- a/packages/cli/src/services/__tests__/community-packages.service.test.ts +++ b/packages/cli/src/services/__tests__/community-packages.service.test.ts @@ -1,6 +1,8 @@ import type { GlobalConfig } from '@n8n/config'; import { InstalledNodes } from '@n8n/db'; import { InstalledPackages } from '@n8n/db'; +import { InstalledNodesRepository } from '@n8n/db'; +import { InstalledPackagesRepository } from '@n8n/db'; import axios from 'axios'; import { exec } from 'child_process'; import { mkdir as fsMkdir } from 'fs/promises'; @@ -15,8 +17,6 @@ import { NPM_PACKAGE_STATUS_GOOD, RESPONSE_ERROR_MESSAGES, } from '@/constants'; -import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository'; -import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository'; import type { CommunityPackages } from '@/interfaces'; import type { License } from '@/license'; import type { LoadNodesAndCredentials } from '@/load-nodes-and-credentials'; diff --git a/packages/cli/src/services/__tests__/ownership.service.test.ts b/packages/cli/src/services/__tests__/ownership.service.test.ts index 706e6f1c0f..fb45cccbb4 100644 --- a/packages/cli/src/services/__tests__/ownership.service.test.ts +++ b/packages/cli/src/services/__tests__/ownership.service.test.ts @@ -1,9 +1,9 @@ import type { SharedCredentials } from '@n8n/db'; import { Project, SharedWorkflow, User, WorkflowEntity, ProjectRelation } from '@n8n/db'; +import { ProjectRelationRepository } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { v4 as uuid } from 'uuid'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { OwnershipService } from '@/services/ownership.service'; diff --git a/packages/cli/src/services/community-packages.service.ts b/packages/cli/src/services/community-packages.service.ts index 19f5504d1a..52931bb4d3 100644 --- a/packages/cli/src/services/community-packages.service.ts +++ b/packages/cli/src/services/community-packages.service.ts @@ -1,6 +1,7 @@ import { GlobalConfig } from '@n8n/config'; import { LICENSE_FEATURES } from '@n8n/constants'; import type { InstalledPackages } from '@n8n/db'; +import { InstalledPackagesRepository } from '@n8n/db'; import { Service } from '@n8n/di'; import axios from 'axios'; import { exec } from 'child_process'; @@ -17,7 +18,6 @@ import { RESPONSE_ERROR_MESSAGES, UNKNOWN_FAILURE_REASON, } from '@/constants'; -import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository'; import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error'; import type { CommunityPackages } from '@/interfaces'; import { License } from '@/license'; diff --git a/packages/cli/src/services/folder.service.ts b/packages/cli/src/services/folder.service.ts index d8425a2623..ceed47609f 100644 --- a/packages/cli/src/services/folder.service.ts +++ b/packages/cli/src/services/folder.service.ts @@ -1,12 +1,10 @@ import type { CreateFolderDto, DeleteFolderDto, UpdateFolderDto } from '@n8n/api-types'; -import { Folder } from '@n8n/db'; +import { Folder, FolderTagMappingRepository, FolderRepository } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import type { EntityManager } from '@n8n/typeorm'; import { UserError, PROJECT_ROOT } from 'n8n-workflow'; -import { FolderTagMappingRepository } from '@/databases/repositories/folder-tag-mapping.repository'; -import { FolderRepository } from '@/databases/repositories/folder.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { FolderNotFoundError } from '@/errors/folder-not-found.error'; import type { ListQuery } from '@/requests'; diff --git a/packages/cli/src/services/ownership.service.ts b/packages/cli/src/services/ownership.service.ts index 8d6601ef19..4ddcccb4f3 100644 --- a/packages/cli/src/services/ownership.service.ts +++ b/packages/cli/src/services/ownership.service.ts @@ -1,8 +1,7 @@ import type { Project, User, ListQueryDb } from '@n8n/db'; +import { ProjectRelationRepository, ProjectRepository } from '@n8n/db'; import { Service } from '@n8n/di'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { CacheService } from '@/services/cache/cache.service'; diff --git a/packages/cli/src/services/project.service.ee.ts b/packages/cli/src/services/project.service.ee.ts index 20e07953aa..02c428ccc7 100644 --- a/packages/cli/src/services/project.service.ee.ts +++ b/packages/cli/src/services/project.service.ee.ts @@ -1,7 +1,7 @@ import type { CreateProjectDto, ProjectType, UpdateProjectDto } from '@n8n/api-types'; import { UNLIMITED_LICENSE_QUOTA } from '@n8n/constants'; import type { User } from '@n8n/db'; -import { Project, ProjectRelation } from '@n8n/db'; +import { Project, ProjectRelation, ProjectRelationRepository, ProjectRepository } from '@n8n/db'; import { Container, Service } from '@n8n/di'; import { hasGlobalScope, rolesWithScope, type Scope, type ProjectRole } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -10,8 +10,6 @@ import type { FindOptionsWhere, EntityManager } from '@n8n/typeorm'; import { In, Not } from '@n8n/typeorm'; import { UserError } from 'n8n-workflow'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; diff --git a/packages/cli/src/telemetry/index.ts b/packages/cli/src/telemetry/index.ts index b74e30a3bc..012bed9c00 100644 --- a/packages/cli/src/telemetry/index.ts +++ b/packages/cli/src/telemetry/index.ts @@ -1,4 +1,5 @@ import { GlobalConfig } from '@n8n/config'; +import { ProjectRelationRepository, ProjectRepository } from '@n8n/db'; import { OnShutdown } from '@n8n/decorators'; import { Container, Service } from '@n8n/di'; import type RudderStack from '@rudderstack/rudder-sdk-node'; @@ -7,8 +8,6 @@ import { InstanceSettings, Logger } from 'n8n-core'; import type { ITelemetryTrackProperties } from 'n8n-workflow'; import { LOWEST_SHUTDOWN_PRIORITY, N8N_VERSION } from '@/constants'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import type { IExecutionTrackProperties } from '@/interfaces'; diff --git a/packages/cli/src/workflows/workflow-sharing.service.ts b/packages/cli/src/workflows/workflow-sharing.service.ts index 27f36bab1e..f4b207e73c 100644 --- a/packages/cli/src/workflows/workflow-sharing.service.ts +++ b/packages/cli/src/workflows/workflow-sharing.service.ts @@ -1,3 +1,4 @@ +import { ProjectRelationRepository } from '@n8n/db'; import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { @@ -10,7 +11,6 @@ import { // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { RoleService } from '@/services/role.service'; diff --git a/packages/cli/src/workflows/workflows.controller.ts b/packages/cli/src/workflows/workflows.controller.ts index d443ed47c6..7f3d167bc5 100644 --- a/packages/cli/src/workflows/workflows.controller.ts +++ b/packages/cli/src/workflows/workflows.controller.ts @@ -5,7 +5,12 @@ import { } from '@n8n/api-types'; import { GlobalConfig } from '@n8n/config'; import type { Project } from '@n8n/db'; -import { SharedWorkflow, WorkflowEntity } from '@n8n/db'; +import { + SharedWorkflow, + WorkflowEntity, + ProjectRelationRepository, + ProjectRepository, +} from '@n8n/db'; import { Body, Delete, @@ -27,8 +32,6 @@ import { Logger } from 'n8n-core'; import { UnexpectedError } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/test/integration/ai/ai.api.test.ts b/packages/cli/test/integration/ai/ai.api.test.ts index e96b24d2cc..a8afa4eab0 100644 --- a/packages/cli/test/integration/ai/ai.api.test.ts +++ b/packages/cli/test/integration/ai/ai.api.test.ts @@ -1,13 +1,13 @@ import type { Project } from '@n8n/db'; import type { User } from '@n8n/db'; import { CredentialsRepository } from '@n8n/db'; +import { ProjectRepository } 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 { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { AiService } from '@/services/ai.service'; 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 1032e4d294..c6359df5e3 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,8 +1,8 @@ import type { User } from '@n8n/db'; +import { ProjectRelationRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { Not } from '@n8n/typeorm'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { EventService } from '@/events/event.service'; import { ExternalHooks } from '@/external-hooks'; diff --git a/packages/cli/test/integration/credentials/credentials.api.ee.test.ts b/packages/cli/test/integration/credentials/credentials.api.ee.test.ts index 274f4a5178..d434e487d1 100644 --- a/packages/cli/test/integration/credentials/credentials.api.ee.test.ts +++ b/packages/cli/test/integration/credentials/credentials.api.ee.test.ts @@ -1,13 +1,13 @@ import type { Project } from '@n8n/db'; import type { User } from '@n8n/db'; import type { ListQueryDb } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { ProjectRole } from '@n8n/permissions'; import { In } from '@n8n/typeorm'; import config from '@/config'; import { CredentialsService } from '@/credentials/credentials.service'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { ProjectService } from '@/services/project.service.ee'; import { UserManagementMailer } from '@/user-management/email'; diff --git a/packages/cli/test/integration/credentials/credentials.api.test.ts b/packages/cli/test/integration/credentials/credentials.api.test.ts index ed2cf95f40..1dbfafee56 100644 --- a/packages/cli/test/integration/credentials/credentials.api.test.ts +++ b/packages/cli/test/integration/credentials/credentials.api.test.ts @@ -3,6 +3,7 @@ import type { Project } from '@n8n/db'; import type { User } from '@n8n/db'; import type { ListQueryDb } from '@n8n/db'; import { CredentialsRepository } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Scope } from '@sentry/node'; import * as a from 'assert'; @@ -13,7 +14,6 @@ import { randomString } from 'n8n-workflow'; import { CREDENTIAL_BLANKING_VALUE } from '@/constants'; import { CredentialsService } from '@/credentials/credentials.service'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { CredentialsTester } from '@/services/credentials-tester.service'; 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 635b8ae844..7ac467bd78 100644 --- a/packages/cli/test/integration/database/repositories/project.repository.test.ts +++ b/packages/cli/test/integration/database/repositories/project.repository.test.ts @@ -1,8 +1,8 @@ import { AuthIdentity } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { EntityNotFoundError } from '@n8n/typeorm'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { createTeamProject } from '../../shared/db/projects'; 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 5679fba02d..09a7ee1269 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 @@ -1,5 +1,7 @@ import type { SourceControlledFile } from '@n8n/api-types'; import { CredentialsRepository } from '@n8n/db'; +import { FolderRepository } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import { Cipher } from 'n8n-core'; @@ -8,8 +10,6 @@ import * as utils from 'n8n-workflow'; import { nanoid } from 'nanoid'; import fsp from 'node:fs/promises'; -import { FolderRepository } from '@/databases/repositories/folder.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { SourceControlImportService } from '@/environments.ee/source-control/source-control-import.service.ee'; diff --git a/packages/cli/test/integration/evaluation/test-runs.api.test.ts b/packages/cli/test/integration/evaluation/test-runs.api.test.ts index 2f5864c5ef..6f98b5b6bc 100644 --- a/packages/cli/test/integration/evaluation/test-runs.api.test.ts +++ b/packages/cli/test/integration/evaluation/test-runs.api.test.ts @@ -1,10 +1,10 @@ import type { User } from '@n8n/db'; import type { TestDefinition } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { mockInstance } from 'n8n-core/test/utils'; import type { IWorkflowBase } from 'n8n-workflow'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { TestDefinitionRepository } from '@/databases/repositories/test-definition.repository.ee'; import { TestRunRepository } from '@/databases/repositories/test-run.repository.ee'; import { TestRunnerService } from '@/evaluation.ee/test-runner/test-runner.service.ee'; diff --git a/packages/cli/test/integration/executions/pre-execution-checks/credentials-permission-checker.test.ts b/packages/cli/test/integration/executions/pre-execution-checks/credentials-permission-checker.test.ts index 537e723ffb..a0f976e69a 100644 --- a/packages/cli/test/integration/executions/pre-execution-checks/credentials-permission-checker.test.ts +++ b/packages/cli/test/integration/executions/pre-execution-checks/credentials-permission-checker.test.ts @@ -1,11 +1,11 @@ import type { Project } from '@n8n/db'; import type { User } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { INode, IWorkflowBase } from 'n8n-workflow'; import { randomInt } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/test/integration/folder/folder.controller.test.ts b/packages/cli/test/integration/folder/folder.controller.test.ts index 9dad9c96a6..8192e003d9 100644 --- a/packages/cli/test/integration/folder/folder.controller.test.ts +++ b/packages/cli/test/integration/folder/folder.controller.test.ts @@ -1,11 +1,11 @@ import type { Project } from '@n8n/db'; import type { User } from '@n8n/db'; +import { FolderRepository } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { DateTime } from 'luxon'; import { PROJECT_ROOT } from 'n8n-workflow'; -import { FolderRepository } from '@/databases/repositories/folder.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { createFolder } from '@test-integration/db/folders'; import { createTag } from '@test-integration/db/tags'; diff --git a/packages/cli/test/integration/license-metrics.repository.test.ts b/packages/cli/test/integration/license-metrics.repository.test.ts index eeefde69ae..e6e1b8e85a 100644 --- a/packages/cli/test/integration/license-metrics.repository.test.ts +++ b/packages/cli/test/integration/license-metrics.repository.test.ts @@ -1,7 +1,7 @@ import { StatisticsNames } from '@n8n/db'; +import { LicenseMetricsRepository } from '@n8n/db'; import { Container } from '@n8n/di'; -import { LicenseMetricsRepository } from '@/databases/repositories/license-metrics.repository'; import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository'; import { createManyCredentials } from './shared/db/credentials'; diff --git a/packages/cli/test/integration/me.api.test.ts b/packages/cli/test/integration/me.api.test.ts index 215515969f..7f971b4c38 100644 --- a/packages/cli/test/integration/me.api.test.ts +++ b/packages/cli/test/integration/me.api.test.ts @@ -1,10 +1,10 @@ import { GlobalConfig } from '@n8n/config'; import type { User } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { IPersonalizationSurveyAnswersV4 } from 'n8n-workflow'; import validator from 'validator'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/test/integration/project.api.test.ts b/packages/cli/test/integration/project.api.test.ts index c1c5dfd960..be1ea3f896 100644 --- a/packages/cli/test/integration/project.api.test.ts +++ b/packages/cli/test/integration/project.api.test.ts @@ -1,12 +1,12 @@ import type { Project } from '@n8n/db'; +import { FolderRepository } from '@n8n/db'; +import { ProjectRelationRepository } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { getRoleScopes, type GlobalRole, type ProjectRole, type Scope } from '@n8n/permissions'; import { EntityNotFoundError } from '@n8n/typeorm'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; -import { FolderRepository } from '@/databases/repositories/folder.repository'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { getWorkflowById } from '@/public-api/v1/handlers/workflows/workflows.service'; diff --git a/packages/cli/test/integration/public-api/endpoints-with-scopes-enabled.test.ts b/packages/cli/test/integration/public-api/endpoints-with-scopes-enabled.test.ts index 4c41b3eca2..ab27959b7e 100644 --- a/packages/cli/test/integration/public-api/endpoints-with-scopes-enabled.test.ts +++ b/packages/cli/test/integration/public-api/endpoints-with-scopes-enabled.test.ts @@ -1,11 +1,11 @@ import type { TagEntity } from '@n8n/db'; import { ApiKeyRepository } from '@n8n/db'; import { CredentialsRepository } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { randomString } from 'n8n-workflow'; import validator from 'validator'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; diff --git a/packages/cli/test/integration/public-api/workflows.test.ts b/packages/cli/test/integration/public-api/workflows.test.ts index 031b0f6da0..edeb83be32 100644 --- a/packages/cli/test/integration/public-api/workflows.test.ts +++ b/packages/cli/test/integration/public-api/workflows.test.ts @@ -2,12 +2,12 @@ import { GlobalConfig } from '@n8n/config'; import type { Project } from '@n8n/db'; import type { TagEntity } from '@n8n/db'; import type { User } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { INode } from 'n8n-workflow'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import { STARTING_NODES } from '@/constants'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository'; import { ExecutionService } from '@/executions/execution.service'; diff --git a/packages/cli/test/integration/services/project.service.test.ts b/packages/cli/test/integration/services/project.service.test.ts index d709a15586..050666f588 100644 --- a/packages/cli/test/integration/services/project.service.test.ts +++ b/packages/cli/test/integration/services/project.service.test.ts @@ -1,8 +1,8 @@ +import { ProjectRelationRepository } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { ProjectRole, Scope } from '@n8n/permissions'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { ProjectService } from '@/services/project.service.ee'; import { createMember } from '../shared/db/users'; diff --git a/packages/cli/test/integration/shared/db/credentials.ts b/packages/cli/test/integration/shared/db/credentials.ts index 91c9255b50..86f2450b4b 100644 --- a/packages/cli/test/integration/shared/db/credentials.ts +++ b/packages/cli/test/integration/shared/db/credentials.ts @@ -3,10 +3,10 @@ import type { User } from '@n8n/db'; import type { ICredentialsDb } from '@n8n/db'; import { CredentialsEntity } from '@n8n/db'; import { CredentialsRepository } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { CredentialSharingRole } from '@n8n/permissions'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import type { CredentialPayload } from '../types'; diff --git a/packages/cli/test/integration/shared/db/folders.ts b/packages/cli/test/integration/shared/db/folders.ts index c8b8803e23..e1a0364a3b 100644 --- a/packages/cli/test/integration/shared/db/folders.ts +++ b/packages/cli/test/integration/shared/db/folders.ts @@ -1,9 +1,9 @@ import type { Folder } from '@n8n/db'; import type { Project } from '@n8n/db'; import type { TagEntity } from '@n8n/db'; +import { FolderRepository } from '@n8n/db'; import { Container } from '@n8n/di'; -import { FolderRepository } from '@/databases/repositories/folder.repository'; import { randomName } from '@test-integration/random'; export const createFolder = async ( diff --git a/packages/cli/test/integration/shared/db/projects.ts b/packages/cli/test/integration/shared/db/projects.ts index 9d697bb409..5e910952dc 100644 --- a/packages/cli/test/integration/shared/db/projects.ts +++ b/packages/cli/test/integration/shared/db/projects.ts @@ -1,12 +1,11 @@ import type { Project } from '@n8n/db'; import type { User } from '@n8n/db'; import type { ProjectRelation } from '@n8n/db'; +import { ProjectRelationRepository } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { ProjectRole } from '@n8n/permissions'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; - import { randomName } from '../random'; export const createTeamProject = async (name?: string, adminUser?: User) => { diff --git a/packages/cli/test/integration/shared/db/workflows.ts b/packages/cli/test/integration/shared/db/workflows.ts index cb707ff34d..b1e19d02d4 100644 --- a/packages/cli/test/integration/shared/db/workflows.ts +++ b/packages/cli/test/integration/shared/db/workflows.ts @@ -1,7 +1,8 @@ -import { Project } from '@n8n/db'; -import { User } from '@n8n/db'; import type { SharedWorkflow } from '@n8n/db'; import type { IWorkflowDb } from '@n8n/db'; +import { Project } from '@n8n/db'; +import { User } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { WorkflowSharingRole } from '@n8n/permissions'; import type { DeepPartial } from '@n8n/typeorm'; @@ -9,7 +10,6 @@ import type { IWorkflowBase } from 'n8n-workflow'; import { NodeConnectionTypes } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/test/integration/shared/utils/community-nodes.ts b/packages/cli/test/integration/shared/utils/community-nodes.ts index 507ad4d609..7968352f40 100644 --- a/packages/cli/test/integration/shared/utils/community-nodes.ts +++ b/packages/cli/test/integration/shared/utils/community-nodes.ts @@ -1,9 +1,9 @@ import { InstalledPackages } from '@n8n/db'; +import { InstalledNodesRepository } from '@n8n/db'; +import { InstalledPackagesRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import { NODE_PACKAGE_PREFIX } from '@/constants'; -import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository'; -import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository'; import { COMMUNITY_NODE_VERSION, COMMUNITY_PACKAGE_VERSION } from '../constants'; import { randomName } from '../random'; diff --git a/packages/cli/test/integration/user.repository.test.ts b/packages/cli/test/integration/user.repository.test.ts index 1e5ce846e0..a255f42ad6 100644 --- a/packages/cli/test/integration/user.repository.test.ts +++ b/packages/cli/test/integration/user.repository.test.ts @@ -1,6 +1,6 @@ +import { ProjectRelationRepository } from '@n8n/db'; import { Container } from '@n8n/di'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { createAdmin, createMember, createOwner } from './shared/db/users'; diff --git a/packages/cli/test/integration/users.api.test.ts b/packages/cli/test/integration/users.api.test.ts index 5e16fdeaae..13c07b2631 100644 --- a/packages/cli/test/integration/users.api.test.ts +++ b/packages/cli/test/integration/users.api.test.ts @@ -1,12 +1,12 @@ import type { User } from '@n8n/db'; +import { FolderRepository } from '@n8n/db'; +import { ProjectRelationRepository } from '@n8n/db'; +import { ProjectRepository } 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 { FolderRepository } from '@/databases/repositories/folder.repository'; -import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; diff --git a/packages/cli/test/integration/workflows/workflows.controller.ee.test.ts b/packages/cli/test/integration/workflows/workflows.controller.ee.test.ts index 5f4df95ef6..fe5769ab78 100644 --- a/packages/cli/test/integration/workflows/workflows.controller.ee.test.ts +++ b/packages/cli/test/integration/workflows/workflows.controller.ee.test.ts @@ -1,6 +1,7 @@ import type { Project } from '@n8n/db'; import type { User } from '@n8n/db'; import type { WorkflowWithSharingsMetaDataAndCredentials } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { ProjectRole } from '@n8n/permissions'; import { ApplicationError, WorkflowActivationError, type INode } from 'n8n-workflow'; @@ -8,7 +9,6 @@ import { v4 as uuid } from 'uuid'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import config from '@/config'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/test/integration/workflows/workflows.controller.test.ts b/packages/cli/test/integration/workflows/workflows.controller.test.ts index 6b9cc226b1..c491581b39 100644 --- a/packages/cli/test/integration/workflows/workflows.controller.test.ts +++ b/packages/cli/test/integration/workflows/workflows.controller.test.ts @@ -1,5 +1,6 @@ import type { User } from '@n8n/db'; import type { ListQueryDb } from '@n8n/db'; +import { ProjectRepository } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; import { DateTime } from 'luxon'; @@ -7,7 +8,6 @@ import { PROJECT_ROOT, type INode, type IPinData, type IWorkflowBase } from 'n8n import { v4 as uuid } from 'uuid'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; -import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository'; import type { WorkflowFolderUnionFull } from '@/databases/repositories/workflow.repository';