mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			194 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			194 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
| 
 | |
| import { OutgoingHttpHeaders } from 'http'
 | |
| import { RegisterServerAuthExternalOptions } from '@server/types'
 | |
| import {
 | |
|   MAbuseMessage,
 | |
|   MAbuseReporter,
 | |
|   MAccountBlocklist,
 | |
|   MActorFollowActorsDefault,
 | |
|   MActorUrl,
 | |
|   MChannelBannerAccountDefault,
 | |
|   MStreamingPlaylist,
 | |
|   MVideoChangeOwnershipFull,
 | |
|   MVideoFile,
 | |
|   MVideoFormattableDetails,
 | |
|   MVideoId,
 | |
|   MVideoImmutable,
 | |
|   MVideoLive,
 | |
|   MVideoPlaylistFull,
 | |
|   MVideoPlaylistFullSummary
 | |
| } from '@server/types/models'
 | |
| import { MOAuthTokenUser } from '@server/types/models/oauth/oauth-token'
 | |
| import { MPlugin, MServer, MServerBlocklist } from '@server/types/models/server'
 | |
| import { MVideoImportDefault } from '@server/types/models/video/video-import'
 | |
| import { MVideoPlaylistElement, MVideoPlaylistElementVideoUrlPlaylistPrivacy } from '@server/types/models/video/video-playlist-element'
 | |
| import { MAccountVideoRateAccountVideo } from '@server/types/models/video/video-rate'
 | |
| import { HttpMethod, PeerTubeProblemDocumentData, ServerErrorCode, VideoCreate } from '@shared/models'
 | |
| import { File as UploadXFile, Metadata } from '@uploadx/core'
 | |
| import { RegisteredPlugin } from '../../lib/plugins/plugin-manager'
 | |
| import {
 | |
|   MAccountDefault,
 | |
|   MActorAccountChannelId,
 | |
|   MActorFollowActorsDefaultSubscription,
 | |
|   MActorFull,
 | |
|   MComment,
 | |
|   MCommentOwnerVideoReply,
 | |
|   MUserDefault,
 | |
|   MVideoBlacklist,
 | |
|   MVideoCaptionVideo,
 | |
|   MVideoFullLight,
 | |
|   MVideoRedundancyVideo,
 | |
|   MVideoShareActor,
 | |
|   MVideoThumbnail
 | |
| } from './models'
 | |
| import { Writable } from 'stream'
 | |
| 
 | |
| declare module 'express' {
 | |
|   export interface Request {
 | |
|     query: any
 | |
|     method: HttpMethod
 | |
|   }
 | |
| 
 | |
|   // Upload using multer or uploadx middleware
 | |
|   export type MulterOrUploadXFile = UploadXFile | Express.Multer.File
 | |
| 
 | |
|   export type UploadFiles = {
 | |
|     [fieldname: string]: MulterOrUploadXFile[]
 | |
|   } | MulterOrUploadXFile[]
 | |
| 
 | |
|   // Partial object used by some functions to check the file mimetype/extension
 | |
|   export type UploadFileForCheck = {
 | |
|     originalname: string
 | |
|     mimetype: string
 | |
|     size: number
 | |
|   }
 | |
| 
 | |
|   export type UploadFilesForCheck = {
 | |
|     [fieldname: string]: UploadFileForCheck[]
 | |
|   } | UploadFileForCheck[]
 | |
| 
 | |
|   // Upload file with a duration added by our middleware
 | |
|   export type VideoUploadFile = Pick<Express.Multer.File, 'path' | 'filename' | 'size'> & {
 | |
|     duration: number
 | |
|   }
 | |
| 
 | |
|   // Extends Metadata property of UploadX object
 | |
|   export type UploadXFileMetadata = Metadata & VideoCreate & {
 | |
|     previewfile: Express.Multer.File[]
 | |
|     thumbnailfile: Express.Multer.File[]
 | |
|   }
 | |
| 
 | |
|   // Our custom UploadXFile object using our custom metadata
 | |
|   export type CustomUploadXFile <T extends Metadata> = UploadXFile & { metadata: T }
 | |
| 
 | |
|   export type EnhancedUploadXFile = CustomUploadXFile<UploadXFileMetadata> & {
 | |
|     duration: number
 | |
|     path: string
 | |
|     filename: string
 | |
|   }
 | |
| 
 | |
|   // Extends Response with added functions and potential variables passed by middlewares
 | |
|   interface Response {
 | |
|     fail: (options: {
 | |
|       message: string
 | |
| 
 | |
|       title?: string
 | |
|       status?: number
 | |
|       type?: ServerErrorCode
 | |
|       instance?: string
 | |
| 
 | |
|       data?: PeerTubeProblemDocumentData
 | |
|     }) => void
 | |
| 
 | |
|     locals: {
 | |
|       apicache: {
 | |
|         content: string | Buffer
 | |
|         write: Writable['write']
 | |
|         writeHead: Response['writeHead']
 | |
|         end: Response['end']
 | |
|         cacheable: boolean
 | |
|         headers: OutgoingHttpHeaders
 | |
|       }
 | |
| 
 | |
|       docUrl?: string
 | |
| 
 | |
|       videoAPI?: MVideoFormattableDetails
 | |
|       videoAll?: MVideoFullLight
 | |
|       onlyImmutableVideo?: MVideoImmutable
 | |
|       onlyVideo?: MVideoThumbnail
 | |
|       videoId?: MVideoId
 | |
| 
 | |
|       videoLive?: MVideoLive
 | |
|       videoLiveSession?: MVideoLiveSession
 | |
| 
 | |
|       videoShare?: MVideoShareActor
 | |
| 
 | |
|       videoFile?: MVideoFile
 | |
| 
 | |
|       videoFileResumable?: EnhancedUploadXFile
 | |
| 
 | |
|       videoImport?: MVideoImportDefault
 | |
| 
 | |
|       videoBlacklist?: MVideoBlacklist
 | |
| 
 | |
|       videoCaption?: MVideoCaptionVideo
 | |
| 
 | |
|       abuse?: MAbuseReporter
 | |
|       abuseMessage?: MAbuseMessage
 | |
| 
 | |
|       videoStreamingPlaylist?: MStreamingPlaylist
 | |
| 
 | |
|       videoChannel?: MChannelBannerAccountDefault
 | |
| 
 | |
|       videoPlaylistFull?: MVideoPlaylistFull
 | |
|       videoPlaylistSummary?: MVideoPlaylistFullSummary
 | |
| 
 | |
|       videoPlaylistElement?: MVideoPlaylistElement
 | |
|       videoPlaylistElementAP?: MVideoPlaylistElementVideoUrlPlaylistPrivacy
 | |
| 
 | |
|       accountVideoRate?: MAccountVideoRateAccountVideo
 | |
| 
 | |
|       videoCommentFull?: MCommentOwnerVideoReply
 | |
|       videoCommentThread?: MComment
 | |
| 
 | |
|       follow?: MActorFollowActorsDefault
 | |
|       subscription?: MActorFollowActorsDefaultSubscription
 | |
| 
 | |
|       nextOwner?: MAccountDefault
 | |
|       videoChangeOwnership?: MVideoChangeOwnershipFull
 | |
| 
 | |
|       account?: MAccountDefault
 | |
| 
 | |
|       actorUrl?: MActorUrl
 | |
|       actorFull?: MActorFull
 | |
| 
 | |
|       user?: MUserDefault
 | |
| 
 | |
|       server?: MServer
 | |
| 
 | |
|       videoRedundancy?: MVideoRedundancyVideo
 | |
| 
 | |
|       accountBlock?: MAccountBlocklist
 | |
|       serverBlock?: MServerBlocklist
 | |
| 
 | |
|       oauth?: {
 | |
|         token: MOAuthTokenUser
 | |
|       }
 | |
| 
 | |
|       signature?: {
 | |
|         actor: MActorAccountChannelId
 | |
|       }
 | |
| 
 | |
|       authenticated?: boolean
 | |
| 
 | |
|       registeredPlugin?: RegisteredPlugin
 | |
| 
 | |
|       externalAuth?: RegisterServerAuthExternalOptions
 | |
| 
 | |
|       plugin?: MPlugin
 | |
| 
 | |
|       localViewerFull?: MLocalVideoViewerWithWatchSections
 | |
|     }
 | |
|   }
 | |
| }
 |