import { makeEnvironmentProviders, type EnvironmentProviders, } from '@angular/core'; import { ActivityGateway, AttachmentsGateway, ProposalsGateway, CommentsGateway, IssuesGateway, NotificationsGateway, CalendarGateway, ProjectsGateway, ReleasesGateway, SavedFiltersGateway, SprintsGateway, GitGateway, WebhooksGateway, TransferGateway, AutomationsGateway, TrackerRealtimeGateway, UsersGateway, } from '@task-stream/web/tracker/domain'; import { GraphqlActivityGateway, GraphqlCommentsGateway, GraphqlReleasesGateway, GraphqlUsersGateway, } from './adapters/graphql-collaboration.gateways'; import { GraphqlIssuesGateway } from './adapters/graphql-issues.gateway'; import { GraphqlNotificationsGateway } from './adapters/graphql-notifications.gateway'; import { GraphqlCalendarGateway } from './adapters/graphql-calendar.gateway'; import { HttpAttachmentsGateway } from './adapters/http-attachments.gateway'; import { HttpProposalsGateway } from './adapters/http-proposals.gateway'; import { GraphqlProjectsGateway } from './adapters/graphql-projects.gateway'; import { GraphqlRealtimeGateway } from './adapters/graphql-realtime.gateway'; import { GraphqlSavedFiltersGateway } from './adapters/graphql-saved-filters.gateway'; import { GraphqlSprintsGateway } from './adapters/graphql-sprints.gateway'; import { GraphqlGitGateway } from './adapters/graphql-git.gateway'; import { GraphqlWebhooksGateway } from './adapters/graphql-webhooks.gateway'; import { HttpTransferGateway } from './adapters/http-transfer.gateway'; import { GraphqlAutomationsGateway } from './adapters/graphql-automations.gateway'; /** Ports → GraphQL adapters (and REST for files). */ export function provideTrackerInfrastructure(): EnvironmentProviders { return makeEnvironmentProviders([ { provide: ProjectsGateway, useClass: GraphqlProjectsGateway }, { provide: IssuesGateway, useClass: GraphqlIssuesGateway }, { provide: CommentsGateway, useClass: GraphqlCommentsGateway }, { provide: ReleasesGateway, useClass: GraphqlReleasesGateway }, { provide: ActivityGateway, useClass: GraphqlActivityGateway }, { provide: AttachmentsGateway, useClass: HttpAttachmentsGateway }, { provide: ProposalsGateway, useClass: HttpProposalsGateway }, { provide: UsersGateway, useClass: GraphqlUsersGateway }, { provide: NotificationsGateway, useClass: GraphqlNotificationsGateway }, { provide: CalendarGateway, useClass: GraphqlCalendarGateway }, { provide: TrackerRealtimeGateway, useClass: GraphqlRealtimeGateway }, { provide: SavedFiltersGateway, useClass: GraphqlSavedFiltersGateway }, { provide: SprintsGateway, useClass: GraphqlSprintsGateway }, { provide: GitGateway, useClass: GraphqlGitGateway }, { provide: WebhooksGateway, useClass: GraphqlWebhooksGateway }, { provide: TransferGateway, useClass: HttpTransferGateway }, { provide: AutomationsGateway, useClass: GraphqlAutomationsGateway }, ]); }