import { Module } from '@nestjs/common'; import { DI } from '@/di-symbols.js'; import { User, Note, Announcement, AnnouncementRead, App, NoteFavorite, NoteThreadMuting, NoteReaction, NoteUnread, Notification, Poll, PollVote, UserProfile, UserKeypair, UserPending, AttestationChallenge, UserSecurityKey, UserPublickey, UserList, UserListJoining, UserGroup, UserGroupJoining, UserGroupInvitation, UserNotePining, UserIp, UsedUsername, Following, FollowRequest, Instance, Emoji, DriveFile, DriveFolder, Meta, Muting, Blocking, SwSubscription, Hashtag, AbuseUserReport, RegistrationTicket, AuthSession, AccessToken, Signin, MessagingMessage, Page, PageLike, GalleryPost, GalleryLike, ModerationLog, Clip, ClipNote, Antenna, AntennaNote, PromoNote, PromoRead, Relay, MutedNote, Channel, ChannelFollowing, ChannelNotePining, RegistryItem, Webhook, Ad, PasswordResetRequest, RetentionAggregation } from './index.js'; import type { DataSource } from 'typeorm'; import type { Provider } from '@nestjs/common'; const $usersRepository: Provider = { provide: DI.usersRepository, useFactory: (db: DataSource) => db.getRepository(User), inject: [DI.db], }; const $notesRepository: Provider = { provide: DI.notesRepository, useFactory: (db: DataSource) => db.getRepository(Note), inject: [DI.db], }; const $announcementsRepository: Provider = { provide: DI.announcementsRepository, useFactory: (db: DataSource) => db.getRepository(Announcement), inject: [DI.db], }; const $announcementReadsRepository: Provider = { provide: DI.announcementReadsRepository, useFactory: (db: DataSource) => db.getRepository(AnnouncementRead), inject: [DI.db], }; const $appsRepository: Provider = { provide: DI.appsRepository, useFactory: (db: DataSource) => db.getRepository(App), inject: [DI.db], }; const $noteFavoritesRepository: Provider = { provide: DI.noteFavoritesRepository, useFactory: (db: DataSource) => db.getRepository(NoteFavorite), inject: [DI.db], }; const $noteThreadMutingsRepository: Provider = { provide: DI.noteThreadMutingsRepository, useFactory: (db: DataSource) => db.getRepository(NoteThreadMuting), inject: [DI.db], }; const $noteReactionsRepository: Provider = { provide: DI.noteReactionsRepository, useFactory: (db: DataSource) => db.getRepository(NoteReaction), inject: [DI.db], }; const $noteUnreadsRepository: Provider = { provide: DI.noteUnreadsRepository, useFactory: (db: DataSource) => db.getRepository(NoteUnread), inject: [DI.db], }; const $pollsRepository: Provider = { provide: DI.pollsRepository, useFactory: (db: DataSource) => db.getRepository(Poll), inject: [DI.db], }; const $pollVotesRepository: Provider = { provide: DI.pollVotesRepository, useFactory: (db: DataSource) => db.getRepository(PollVote), inject: [DI.db], }; const $userProfilesRepository: Provider = { provide: DI.userProfilesRepository, useFactory: (db: DataSource) => db.getRepository(UserProfile), inject: [DI.db], }; const $userKeypairsRepository: Provider = { provide: DI.userKeypairsRepository, useFactory: (db: DataSource) => db.getRepository(UserKeypair), inject: [DI.db], }; const $userPendingsRepository: Provider = { provide: DI.userPendingsRepository, useFactory: (db: DataSource) => db.getRepository(UserPending), inject: [DI.db], }; const $attestationChallengesRepository: Provider = { provide: DI.attestationChallengesRepository, useFactory: (db: DataSource) => db.getRepository(AttestationChallenge), inject: [DI.db], }; const $userSecurityKeysRepository: Provider = { provide: DI.userSecurityKeysRepository, useFactory: (db: DataSource) => db.getRepository(UserSecurityKey), inject: [DI.db], }; const $userPublickeysRepository: Provider = { provide: DI.userPublickeysRepository, useFactory: (db: DataSource) => db.getRepository(UserPublickey), inject: [DI.db], }; const $userListsRepository: Provider = { provide: DI.userListsRepository, useFactory: (db: DataSource) => db.getRepository(UserList), inject: [DI.db], }; const $userListJoiningsRepository: Provider = { provide: DI.userListJoiningsRepository, useFactory: (db: DataSource) => db.getRepository(UserListJoining), inject: [DI.db], }; const $userGroupsRepository: Provider = { provide: DI.userGroupsRepository, useFactory: (db: DataSource) => db.getRepository(UserGroup), inject: [DI.db], }; const $userGroupJoiningsRepository: Provider = { provide: DI.userGroupJoiningsRepository, useFactory: (db: DataSource) => db.getRepository(UserGroupJoining), inject: [DI.db], }; const $userGroupInvitationsRepository: Provider = { provide: DI.userGroupInvitationsRepository, useFactory: (db: DataSource) => db.getRepository(UserGroupInvitation), inject: [DI.db], }; const $userNotePiningsRepository: Provider = { provide: DI.userNotePiningsRepository, useFactory: (db: DataSource) => db.getRepository(UserNotePining), inject: [DI.db], }; const $userIpsRepository: Provider = { provide: DI.userIpsRepository, useFactory: (db: DataSource) => db.getRepository(UserIp), inject: [DI.db], }; const $usedUsernamesRepository: Provider = { provide: DI.usedUsernamesRepository, useFactory: (db: DataSource) => db.getRepository(UsedUsername), inject: [DI.db], }; const $followingsRepository: Provider = { provide: DI.followingsRepository, useFactory: (db: DataSource) => db.getRepository(Following), inject: [DI.db], }; const $followRequestsRepository: Provider = { provide: DI.followRequestsRepository, useFactory: (db: DataSource) => db.getRepository(FollowRequest), inject: [DI.db], }; const $instancesRepository: Provider = { provide: DI.instancesRepository, useFactory: (db: DataSource) => db.getRepository(Instance), inject: [DI.db], }; const $emojisRepository: Provider = { provide: DI.emojisRepository, useFactory: (db: DataSource) => db.getRepository(Emoji), inject: [DI.db], }; const $driveFilesRepository: Provider = { provide: DI.driveFilesRepository, useFactory: (db: DataSource) => db.getRepository(DriveFile), inject: [DI.db], }; const $driveFoldersRepository: Provider = { provide: DI.driveFoldersRepository, useFactory: (db: DataSource) => db.getRepository(DriveFolder), inject: [DI.db], }; const $notificationsRepository: Provider = { provide: DI.notificationsRepository, useFactory: (db: DataSource) => db.getRepository(Notification), inject: [DI.db], }; const $metasRepository: Provider = { provide: DI.metasRepository, useFactory: (db: DataSource) => db.getRepository(Meta), inject: [DI.db], }; const $mutingsRepository: Provider = { provide: DI.mutingsRepository, useFactory: (db: DataSource) => db.getRepository(Muting), inject: [DI.db], }; const $blockingsRepository: Provider = { provide: DI.blockingsRepository, useFactory: (db: DataSource) => db.getRepository(Blocking), inject: [DI.db], }; const $swSubscriptionsRepository: Provider = { provide: DI.swSubscriptionsRepository, useFactory: (db: DataSource) => db.getRepository(SwSubscription), inject: [DI.db], }; const $hashtagsRepository: Provider = { provide: DI.hashtagsRepository, useFactory: (db: DataSource) => db.getRepository(Hashtag), inject: [DI.db], }; const $abuseUserReportsRepository: Provider = { provide: DI.abuseUserReportsRepository, useFactory: (db: DataSource) => db.getRepository(AbuseUserReport), inject: [DI.db], }; const $registrationTicketsRepository: Provider = { provide: DI.registrationTicketsRepository, useFactory: (db: DataSource) => db.getRepository(RegistrationTicket), inject: [DI.db], }; const $authSessionsRepository: Provider = { provide: DI.authSessionsRepository, useFactory: (db: DataSource) => db.getRepository(AuthSession), inject: [DI.db], }; const $accessTokensRepository: Provider = { provide: DI.accessTokensRepository, useFactory: (db: DataSource) => db.getRepository(AccessToken), inject: [DI.db], }; const $signinsRepository: Provider = { provide: DI.signinsRepository, useFactory: (db: DataSource) => db.getRepository(Signin), inject: [DI.db], }; const $messagingMessagesRepository: Provider = { provide: DI.messagingMessagesRepository, useFactory: (db: DataSource) => db.getRepository(MessagingMessage), inject: [DI.db], }; const $pagesRepository: Provider = { provide: DI.pagesRepository, useFactory: (db: DataSource) => db.getRepository(Page), inject: [DI.db], }; const $pageLikesRepository: Provider = { provide: DI.pageLikesRepository, useFactory: (db: DataSource) => db.getRepository(PageLike), inject: [DI.db], }; const $galleryPostsRepository: Provider = { provide: DI.galleryPostsRepository, useFactory: (db: DataSource) => db.getRepository(GalleryPost), inject: [DI.db], }; const $galleryLikesRepository: Provider = { provide: DI.galleryLikesRepository, useFactory: (db: DataSource) => db.getRepository(GalleryLike), inject: [DI.db], }; const $moderationLogsRepository: Provider = { provide: DI.moderationLogsRepository, useFactory: (db: DataSource) => db.getRepository(ModerationLog), inject: [DI.db], }; const $clipsRepository: Provider = { provide: DI.clipsRepository, useFactory: (db: DataSource) => db.getRepository(Clip), inject: [DI.db], }; const $clipNotesRepository: Provider = { provide: DI.clipNotesRepository, useFactory: (db: DataSource) => db.getRepository(ClipNote), inject: [DI.db], }; const $antennasRepository: Provider = { provide: DI.antennasRepository, useFactory: (db: DataSource) => db.getRepository(Antenna), inject: [DI.db], }; const $antennaNotesRepository: Provider = { provide: DI.antennaNotesRepository, useFactory: (db: DataSource) => db.getRepository(AntennaNote), inject: [DI.db], }; const $promoNotesRepository: Provider = { provide: DI.promoNotesRepository, useFactory: (db: DataSource) => db.getRepository(PromoNote), inject: [DI.db], }; const $promoReadsRepository: Provider = { provide: DI.promoReadsRepository, useFactory: (db: DataSource) => db.getRepository(PromoRead), inject: [DI.db], }; const $relaysRepository: Provider = { provide: DI.relaysRepository, useFactory: (db: DataSource) => db.getRepository(Relay), inject: [DI.db], }; const $mutedNotesRepository: Provider = { provide: DI.mutedNotesRepository, useFactory: (db: DataSource) => db.getRepository(MutedNote), inject: [DI.db], }; const $channelsRepository: Provider = { provide: DI.channelsRepository, useFactory: (db: DataSource) => db.getRepository(Channel), inject: [DI.db], }; const $channelFollowingsRepository: Provider = { provide: DI.channelFollowingsRepository, useFactory: (db: DataSource) => db.getRepository(ChannelFollowing), inject: [DI.db], }; const $channelNotePiningsRepository: Provider = { provide: DI.channelNotePiningsRepository, useFactory: (db: DataSource) => db.getRepository(ChannelNotePining), inject: [DI.db], }; const $registryItemsRepository: Provider = { provide: DI.registryItemsRepository, useFactory: (db: DataSource) => db.getRepository(RegistryItem), inject: [DI.db], }; const $webhooksRepository: Provider = { provide: DI.webhooksRepository, useFactory: (db: DataSource) => db.getRepository(Webhook), inject: [DI.db], }; const $adsRepository: Provider = { provide: DI.adsRepository, useFactory: (db: DataSource) => db.getRepository(Ad), inject: [DI.db], }; const $passwordResetRequestsRepository: Provider = { provide: DI.passwordResetRequestsRepository, useFactory: (db: DataSource) => db.getRepository(PasswordResetRequest), inject: [DI.db], }; const $retentionAggregationsRepository: Provider = { provide: DI.retentionAggregationsRepository, useFactory: (db: DataSource) => db.getRepository(RetentionAggregation), inject: [DI.db], }; @Module({ imports: [ ], providers: [ $usersRepository, $notesRepository, $announcementsRepository, $announcementReadsRepository, $appsRepository, $noteFavoritesRepository, $noteThreadMutingsRepository, $noteReactionsRepository, $noteUnreadsRepository, $pollsRepository, $pollVotesRepository, $userProfilesRepository, $userKeypairsRepository, $userPendingsRepository, $attestationChallengesRepository, $userSecurityKeysRepository, $userPublickeysRepository, $userListsRepository, $userListJoiningsRepository, $userGroupsRepository, $userGroupJoiningsRepository, $userGroupInvitationsRepository, $userNotePiningsRepository, $userIpsRepository, $usedUsernamesRepository, $followingsRepository, $followRequestsRepository, $instancesRepository, $emojisRepository, $driveFilesRepository, $driveFoldersRepository, $notificationsRepository, $metasRepository, $mutingsRepository, $blockingsRepository, $swSubscriptionsRepository, $hashtagsRepository, $abuseUserReportsRepository, $registrationTicketsRepository, $authSessionsRepository, $accessTokensRepository, $signinsRepository, $messagingMessagesRepository, $pagesRepository, $pageLikesRepository, $galleryPostsRepository, $galleryLikesRepository, $moderationLogsRepository, $clipsRepository, $clipNotesRepository, $antennasRepository, $antennaNotesRepository, $promoNotesRepository, $promoReadsRepository, $relaysRepository, $mutedNotesRepository, $channelsRepository, $channelFollowingsRepository, $channelNotePiningsRepository, $registryItemsRepository, $webhooksRepository, $adsRepository, $passwordResetRequestsRepository, $retentionAggregationsRepository, ], exports: [ $usersRepository, $notesRepository, $announcementsRepository, $announcementReadsRepository, $appsRepository, $noteFavoritesRepository, $noteThreadMutingsRepository, $noteReactionsRepository, $noteUnreadsRepository, $pollsRepository, $pollVotesRepository, $userProfilesRepository, $userKeypairsRepository, $userPendingsRepository, $attestationChallengesRepository, $userSecurityKeysRepository, $userPublickeysRepository, $userListsRepository, $userListJoiningsRepository, $userGroupsRepository, $userGroupJoiningsRepository, $userGroupInvitationsRepository, $userNotePiningsRepository, $userIpsRepository, $usedUsernamesRepository, $followingsRepository, $followRequestsRepository, $instancesRepository, $emojisRepository, $driveFilesRepository, $driveFoldersRepository, $notificationsRepository, $metasRepository, $mutingsRepository, $blockingsRepository, $swSubscriptionsRepository, $hashtagsRepository, $abuseUserReportsRepository, $registrationTicketsRepository, $authSessionsRepository, $accessTokensRepository, $signinsRepository, $messagingMessagesRepository, $pagesRepository, $pageLikesRepository, $galleryPostsRepository, $galleryLikesRepository, $moderationLogsRepository, $clipsRepository, $clipNotesRepository, $antennasRepository, $antennaNotesRepository, $promoNotesRepository, $promoReadsRepository, $relaysRepository, $mutedNotesRepository, $channelsRepository, $channelFollowingsRepository, $channelNotePiningsRepository, $registryItemsRepository, $webhooksRepository, $adsRepository, $passwordResetRequestsRepository, $retentionAggregationsRepository, ], }) export class RepositoryModule {}