Split types and typings
[oweals/peertube.git] / server / typings / express.d.ts
1 import { RegisteredPlugin } from '../lib/plugins/plugin-manager'
2 import {
3   MAccountDefault,
4   MActorAccountChannelId,
5   MActorFollowActorsDefault,
6   MActorFollowActorsDefaultSubscription,
7   MActorFull,
8   MChannelAccountDefault,
9   MComment,
10   MCommentOwnerVideoReply,
11   MUserDefault,
12   MVideoAbuse,
13   MVideoBlacklist,
14   MVideoCaptionVideo,
15   MVideoFullLight,
16   MVideoIdThumbnail,
17   MVideoRedundancyVideo,
18   MVideoShareActor,
19   MVideoThumbnail,
20   MVideoWithRights
21 } from '../types/models'
22 import { MVideoPlaylistFull, MVideoPlaylistFullSummary } from '../types/models/video/video-playlist'
23 import { MVideoImportDefault } from '@server/types/models/video/video-import'
24 import { MAccountBlocklist, MActorUrl, MStreamingPlaylist, MVideoFile, MVideoImmutable } from '@server/types/models'
25 import { MVideoPlaylistElement, MVideoPlaylistElementVideoUrlPlaylistPrivacy } from '@server/types/models/video/video-playlist-element'
26 import { MAccountVideoRateAccountVideo } from '@server/types/models/video/video-rate'
27 import { MVideoChangeOwnershipFull } from '../types/models/video/video-change-ownership'
28 import { MPlugin, MServer } from '@server/types/models/server'
29 import { MServerBlocklist } from '../types/models/server/server-blocklist'
30 import { MOAuthTokenUser } from '@server/types/models/oauth/oauth-token'
31 import { UserRole } from '@shared/models'
32 import { RegisterServerAuthExternalOptions } from '@shared/models/plugins/register-server-auth.model'
33
34 declare module 'express' {
35   export interface Request {
36     query: any
37   }
38
39   interface Response {
40
41     locals: {
42       bypassLogin?: {
43         bypass: boolean
44         pluginName: string
45         authName?: string
46         user: {
47           username: string
48           email: string
49           displayName: string
50           role: UserRole
51         }
52       }
53
54       refreshTokenAuthName?: string
55
56       explicitLogout: boolean
57
58       videoAll?: MVideoFullLight
59       onlyImmutableVideo?: MVideoImmutable
60       onlyVideo?: MVideoThumbnail
61       onlyVideoWithRights?: MVideoWithRights
62       videoId?: MVideoIdThumbnail
63
64       videoShare?: MVideoShareActor
65
66       videoFile?: MVideoFile
67
68       videoImport?: MVideoImportDefault
69
70       videoBlacklist?: MVideoBlacklist
71
72       videoCaption?: MVideoCaptionVideo
73
74       videoAbuse?: MVideoAbuse
75
76       videoStreamingPlaylist?: MStreamingPlaylist
77
78       videoChannel?: MChannelAccountDefault
79
80       videoPlaylistFull?: MVideoPlaylistFull
81       videoPlaylistSummary?: MVideoPlaylistFullSummary
82
83       videoPlaylistElement?: MVideoPlaylistElement
84       videoPlaylistElementAP?: MVideoPlaylistElementVideoUrlPlaylistPrivacy
85
86       accountVideoRate?: MAccountVideoRateAccountVideo
87
88       videoCommentFull?: MCommentOwnerVideoReply
89       videoCommentThread?: MComment
90
91       follow?: MActorFollowActorsDefault
92       subscription?: MActorFollowActorsDefaultSubscription
93
94       nextOwner?: MAccountDefault
95       videoChangeOwnership?: MVideoChangeOwnershipFull
96
97       account?: MAccountDefault
98
99       actorUrl?: MActorUrl
100       actorFull?: MActorFull
101
102       user?: MUserDefault
103
104       server?: MServer
105
106       videoRedundancy?: MVideoRedundancyVideo
107
108       accountBlock?: MAccountBlocklist
109       serverBlock?: MServerBlocklist
110
111       oauth?: {
112         token: MOAuthTokenUser
113       }
114
115       signature?: {
116         actor: MActorAccountChannelId
117       }
118
119       authenticated?: boolean
120
121       registeredPlugin?: RegisteredPlugin
122
123       externalAuth?: RegisterServerAuthExternalOptions
124
125       plugin?: MPlugin
126     }
127   }
128 }