blob: 78a3ab33bb2b3159ef9a328671db009ea00f1ca0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
import { ActivityPubActor } from './activitypub-actor.js'
import { ActivityPubSignature } from './activitypub-signature.js'
import {
ActivityFlagReasonObject,
ActivityObject,
APObjectId,
CacheFileObject,
PlaylistObject,
VideoCommentObject,
VideoObject,
WatchActionObject
} from './objects/index.js'
export type ActivityUpdateObject =
Extract<ActivityObject, VideoObject | CacheFileObject | PlaylistObject | ActivityPubActor | string> | ActivityPubActor
// Cannot Extract from Activity because of circular reference
export type ActivityUndoObject =
ActivityFollow | ActivityLike | ActivityDislike | ActivityCreate<CacheFileObject | string> | ActivityAnnounce
export type ActivityCreateObject =
Extract<ActivityObject, VideoObject | CacheFileObject | WatchActionObject | VideoCommentObject | PlaylistObject | string>
export type Activity =
ActivityCreate<ActivityCreateObject> |
ActivityUpdate<ActivityUpdateObject> |
ActivityDelete |
ActivityFollow |
ActivityAccept |
ActivityAnnounce |
ActivityUndo<ActivityUndoObject> |
ActivityLike |
ActivityReject |
ActivityView |
ActivityDislike |
ActivityFlag
export type ActivityType =
'Create' |
'Update' |
'Delete' |
'Follow' |
'Accept' |
'Announce' |
'Undo' |
'Like' |
'Reject' |
'View' |
'Dislike' |
'Flag'
export interface ActivityAudience {
to: string[]
cc: string[]
}
export interface BaseActivity {
'@context'?: any[]
id: string
to?: string[]
cc?: string[]
actor: string | ActivityPubActor
type: ActivityType
signature?: ActivityPubSignature
}
export interface ActivityCreate <T extends ActivityCreateObject> extends BaseActivity {
type: 'Create'
object: T
}
export interface ActivityUpdate <T extends ActivityUpdateObject> extends BaseActivity {
type: 'Update'
object: T
}
export interface ActivityDelete extends BaseActivity {
type: 'Delete'
object: APObjectId
}
export interface ActivityFollow extends BaseActivity {
type: 'Follow'
object: string
}
export interface ActivityAccept extends BaseActivity {
type: 'Accept'
object: ActivityFollow
}
export interface ActivityReject extends BaseActivity {
type: 'Reject'
object: ActivityFollow
}
export interface ActivityAnnounce extends BaseActivity {
type: 'Announce'
object: APObjectId
}
export interface ActivityUndo <T extends ActivityUndoObject> extends BaseActivity {
type: 'Undo'
object: T
}
export interface ActivityLike extends BaseActivity {
type: 'Like'
object: APObjectId
}
export interface ActivityView extends BaseActivity {
type: 'View'
actor: string
object: APObjectId
// If sending a "viewer" event
expires?: string
}
export interface ActivityDislike extends BaseActivity {
id: string
type: 'Dislike'
actor: string
object: APObjectId
}
export interface ActivityFlag extends BaseActivity {
type: 'Flag'
content: string
object: APObjectId | APObjectId[]
tag?: ActivityFlagReasonObject[]
startAt?: number
endAt?: number
}
|