]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/models/activitypub/activity.ts
Optimize signature verification
[github/Chocobozzz/PeerTube.git] / shared / models / activitypub / activity.ts
CommitLineData
8e13fa7d 1import { VideoChannelObject, VideoTorrentObject } from './objects'
e4f97bab 2import { ActivityPubSignature } from './activitypub-signature'
8e13fa7d 3import { VideoAbuseObject } from './objects/video-abuse-object'
e4f97bab 4
7a7724e6 5export type Activity = ActivityCreate | ActivityAdd | ActivityUpdate | ActivityFlag |
d8465018 6 ActivityDelete | ActivityFollow | ActivityAccept | ActivityAnnounce
e4f97bab
C
7
8// Flag -> report abuse
d8465018 9export type ActivityType = 'Create' | 'Add' | 'Update' | 'Flag' | 'Delete' | 'Follow' | 'Accept' | 'Announce'
e4f97bab
C
10
11export interface BaseActivity {
12 '@context'?: any[]
13 id: string
afffe988 14 to?: string[]
9a27cdc2 15 cc?: string[]
e4f97bab
C
16 actor: string
17 type: ActivityType
afffe988 18 signature?: ActivityPubSignature
e4f97bab
C
19}
20
21export interface ActivityCreate extends BaseActivity {
22 type: 'Create'
8e13fa7d 23 object: VideoChannelObject | VideoAbuseObject
0d0e8dd0
C
24}
25
26export interface ActivityAdd extends BaseActivity {
27 type: 'Add'
20494f12 28 target: string
0d0e8dd0 29 object: VideoTorrentObject
e4f97bab
C
30}
31
32export interface ActivityUpdate extends BaseActivity {
33 type: 'Update'
34 object: VideoTorrentObject | VideoChannelObject
35}
36
37export interface ActivityFlag extends BaseActivity {
38 type: 'Flag'
39 object: string
40}
7a7724e6
C
41
42export interface ActivityDelete extends BaseActivity {
43 type: 'Delete'
44}
45
46export interface ActivityFollow extends BaseActivity {
47 type: 'Follow'
48 object: string
49}
50
51export interface ActivityAccept extends BaseActivity {
52 type: 'Accept'
53}
d8465018
C
54
55export interface ActivityAnnounce extends BaseActivity {
56 type: 'Announce'
20494f12 57 object: ActivityCreate | ActivityAdd
d8465018 58}