@overlaysymphony/twitch 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/authentication/authentication.ts +1 -1
- package/src/authentication/index.ts +1 -1
- package/src/chat/chat.ts +4 -4
- package/src/chat/helpers.ts +1 -1
- package/src/chat/index.ts +4 -3
- package/src/chat/interfaces/index.ts +2 -2
- package/src/chat/parser.ts +1 -1
- package/src/eventsub/events/automod.message.hold-2.ts +81 -0
- package/src/eventsub/events/automod.message.update-2.ts +94 -0
- package/src/eventsub/events/automod.settings.update-1.ts +65 -0
- package/src/eventsub/events/automod.terms.update-1.ts +59 -0
- package/src/eventsub/events/channel.ad_break.begin-1.ts +50 -0
- package/src/eventsub/events/channel.ban-1.ts +58 -0
- package/src/eventsub/events/channel.bits.use-1.ts +112 -0
- package/src/eventsub/events/channel.channel_points_automatic_reward_redemption.add-2.ts +88 -0
- package/src/eventsub/events/channel.channel_points_custom_reward.add-1.ts +101 -0
- package/src/eventsub/events/channel.channel_points_custom_reward.remove-1.ts +103 -0
- package/src/eventsub/events/channel.channel_points_custom_reward.update-1.ts +103 -0
- package/src/eventsub/events/channel.channel_points_custom_reward_redemption.add-1.ts +65 -0
- package/src/eventsub/events/channel.channel_points_custom_reward_redemption.update-1.ts +65 -0
- package/src/eventsub/events/channel.charity_campaign.donate-1.ts +69 -0
- package/src/eventsub/events/channel.charity_campaign.progress-1.ts +74 -0
- package/src/eventsub/events/channel.charity_campaign.start-1.ts +76 -0
- package/src/eventsub/events/channel.charity_campaign.stop-1.ts +76 -0
- package/src/eventsub/events/channel.chat.clear-1.ts +41 -0
- package/src/eventsub/events/channel.chat.clear_user_messages-1.ts +47 -0
- package/src/eventsub/events/channel.chat.message-1.ts +160 -0
- package/src/eventsub/events/channel.chat.message_delete-1.ts +49 -0
- package/src/eventsub/events/channel.chat.notification-1.ts +317 -0
- package/src/eventsub/events/channel.chat.user_message_hold-1.ts +75 -0
- package/src/eventsub/events/channel.chat.user_message_update-1.ts +82 -0
- package/src/eventsub/events/channel.chat_settings.update-1.ts +83 -0
- package/src/eventsub/events/channel.cheer-1.ts +50 -0
- package/src/eventsub/events/channel.follow-2.ts +49 -0
- package/src/eventsub/events/channel.goal.begin-1.ts +80 -0
- package/src/eventsub/events/channel.goal.end-1.ts +80 -0
- package/src/eventsub/events/channel.goal.progress-1.ts +80 -0
- package/src/eventsub/events/channel.guest_star_guest.update-beta.ts +85 -0
- package/src/eventsub/events/channel.guest_star_session.begin-beta.ts +50 -0
- package/src/eventsub/events/channel.guest_star_session.end-beta.ts +58 -0
- package/src/eventsub/events/channel.guest_star_settings.update-beta.ts +62 -0
- package/src/eventsub/events/channel.hype_train.begin-2.ts +90 -0
- package/src/eventsub/events/channel.hype_train.end-2.ts +70 -0
- package/src/eventsub/events/channel.hype_train.progress-2.ts +90 -0
- package/src/eventsub/events/channel.moderate-2.ts +258 -0
- package/src/eventsub/events/channel.moderator.add-1.ts +44 -0
- package/src/eventsub/events/channel.moderator.remove-1.ts +44 -0
- package/src/eventsub/events/channel.poll.begin-1.ts +73 -0
- package/src/eventsub/events/channel.poll.end-1.ts +75 -0
- package/src/eventsub/events/channel.poll.progress-1.ts +73 -0
- package/src/eventsub/events/channel.prediction.begin-1.ts +72 -0
- package/src/eventsub/events/channel.prediction.end-1.ts +76 -0
- package/src/eventsub/events/channel.prediction.lock-1.ts +72 -0
- package/src/eventsub/events/channel.prediction.progress-1.ts +72 -0
- package/src/eventsub/events/channel.raid-1.ts +48 -0
- package/src/eventsub/events/channel.shared_chat.begin-1.ts +55 -0
- package/src/eventsub/events/channel.shared_chat.end-1.ts +46 -0
- package/src/eventsub/events/channel.shared_chat.update-1.ts +55 -0
- package/src/eventsub/events/channel.shield_mode.begin-1.ts +51 -0
- package/src/eventsub/events/channel.shield_mode.end-1.ts +51 -0
- package/src/eventsub/events/channel.shoutout.create-1.ts +61 -0
- package/src/eventsub/events/channel.shoutout.receive-1.ts +51 -0
- package/src/eventsub/events/channel.subscribe-1.ts +48 -0
- package/src/eventsub/events/channel.subscription.end-1.ts +48 -0
- package/src/eventsub/events/channel.subscription.gift-1.ts +52 -0
- package/src/eventsub/events/channel.subscription.message-1.ts +66 -0
- package/src/eventsub/events/channel.suspicious_user.message-1.ts +85 -0
- package/src/eventsub/events/channel.suspicious_user.update-1.ts +55 -0
- package/src/eventsub/events/channel.unban-1.ts +50 -0
- package/src/eventsub/events/channel.unban_request.create-1.ts +53 -0
- package/src/eventsub/events/channel.unban_request.resolve-1.ts +64 -0
- package/src/eventsub/events/channel.update-2.ts +48 -0
- package/src/eventsub/events/channel.vip.add-1.ts +44 -0
- package/src/eventsub/events/channel.vip.remove-1.ts +44 -0
- package/src/eventsub/events/channel.warning.acknowledge-1.ts +47 -0
- package/src/eventsub/events/channel.warning.send-1.ts +57 -0
- package/src/eventsub/events/index.ts +73 -284
- package/src/eventsub/events/stream.offline-1.ts +38 -0
- package/src/eventsub/events/stream.online-1.ts +44 -0
- package/src/eventsub/events/user.update-1.ts +48 -0
- package/src/eventsub/events/user.whisper.message-1.ts +51 -0
- package/src/eventsub/events-helpers.ts +53 -25
- package/src/eventsub/eventsub.ts +37 -74
- package/src/eventsub/index.ts +8 -6
- package/src/eventsub/messages.ts +16 -4
- package/src/helix/channel-points/custom-rewards.ts +3 -3
- package/src/helix/channel-points/index.ts +1 -1
- package/src/helix/helix.ts +1 -1
- package/src/helix/subscriptions/index.ts +1 -1
- package/src/helix/subscriptions/subscriptions.ts +40 -47
- package/src/helix/users/index.ts +1 -1
- package/src/helix/users/users.ts +3 -3
- package/src/helpers/alerts/alerts.ts +5 -5
- package/src/helpers/alerts/index.ts +2 -2
- package/src/helpers/charity/charity.ts +2 -2
- package/src/helpers/charity/index.ts +1 -1
- package/src/helpers/goal/goal.ts +2 -2
- package/src/helpers/goal/index.ts +1 -1
- package/src/helpers/hype-train/hype-train.ts +2 -2
- package/src/helpers/hype-train/index.ts +1 -1
- package/src/helpers/poll/index.ts +1 -1
- package/src/helpers/poll/poll.ts +3 -3
- package/src/helpers/prediction/index.ts +1 -1
- package/src/helpers/prediction/prediction.ts +3 -3
- package/src/helpers/redemption/index.ts +1 -1
- package/src/helpers/redemption/redemption.ts +3 -3
- package/src/helpers/status/index.ts +1 -1
- package/src/helpers/status/status.ts +2 -2
- package/src/ui/authentication.ts +1 -1
- package/src/ui/popup.ts +26 -3
- package/src/eventsub/events/channel.ad_break.begin.ts +0 -51
- package/src/eventsub/events/channel.ban.ts +0 -59
- package/src/eventsub/events/channel.channel_points_custom_reward._.ts +0 -29
- package/src/eventsub/events/channel.channel_points_custom_reward.add.ts +0 -75
- package/src/eventsub/events/channel.channel_points_custom_reward.remove.ts +0 -77
- package/src/eventsub/events/channel.channel_points_custom_reward.update.ts +0 -77
- package/src/eventsub/events/channel.channel_points_custom_reward_redemption._.ts +0 -10
- package/src/eventsub/events/channel.channel_points_custom_reward_redemption.add.ts +0 -59
- package/src/eventsub/events/channel.channel_points_custom_reward_redemption.update.ts +0 -59
- package/src/eventsub/events/channel.charity_campaign.donate.ts +0 -66
- package/src/eventsub/events/channel.charity_campaign.progress.ts +0 -67
- package/src/eventsub/events/channel.charity_campaign.start.ts +0 -69
- package/src/eventsub/events/channel.charity_campaign.stop.ts +0 -69
- package/src/eventsub/events/channel.chat.clear.ts +0 -42
- package/src/eventsub/events/channel.chat.clear_user_messages.ts +0 -48
- package/src/eventsub/events/channel.chat.message_delete.ts +0 -50
- package/src/eventsub/events/channel.chat.notification.ts +0 -50
- package/src/eventsub/events/channel.cheer.ts +0 -51
- package/src/eventsub/events/channel.follow.ts +0 -50
- package/src/eventsub/events/channel.goal.begin.ts +0 -51
- package/src/eventsub/events/channel.goal.end.ts +0 -55
- package/src/eventsub/events/channel.goal.progress.ts +0 -51
- package/src/eventsub/events/channel.guest_star_guest.update.ts +0 -66
- package/src/eventsub/events/channel.guest_star_session.begin.ts +0 -46
- package/src/eventsub/events/channel.guest_star_session.end.ts +0 -48
- package/src/eventsub/events/channel.guest_star_settings.update.ts +0 -50
- package/src/eventsub/events/channel.hype_train._.ts +0 -12
- package/src/eventsub/events/channel.hype_train.begin.ts +0 -57
- package/src/eventsub/events/channel.hype_train.end.ts +0 -55
- package/src/eventsub/events/channel.hype_train.progress.ts +0 -70
- package/src/eventsub/events/channel.moderator.add.ts +0 -45
- package/src/eventsub/events/channel.moderator.remove.ts +0 -45
- package/src/eventsub/events/channel.poll._.ts +0 -26
- package/src/eventsub/events/channel.poll.begin.ts +0 -55
- package/src/eventsub/events/channel.poll.end.ts +0 -57
- package/src/eventsub/events/channel.poll.progress.ts +0 -55
- package/src/eventsub/events/channel.prediction._.ts +0 -25
- package/src/eventsub/events/channel.prediction.begin.ts +0 -51
- package/src/eventsub/events/channel.prediction.end.ts +0 -55
- package/src/eventsub/events/channel.prediction.lock.ts +0 -51
- package/src/eventsub/events/channel.prediction.progress.ts +0 -51
- package/src/eventsub/events/channel.raid.ts +0 -49
- package/src/eventsub/events/channel.shield_mode.begin.ts +0 -50
- package/src/eventsub/events/channel.shield_mode.end.ts +0 -50
- package/src/eventsub/events/channel.shoutout.create.ts +0 -62
- package/src/eventsub/events/channel.shoutout.receive.ts +0 -52
- package/src/eventsub/events/channel.subscribe.ts +0 -49
- package/src/eventsub/events/channel.subscription.end.ts +0 -49
- package/src/eventsub/events/channel.subscription.gift.ts +0 -53
- package/src/eventsub/events/channel.subscription.message.ts +0 -67
- package/src/eventsub/events/channel.unban.ts +0 -51
- package/src/eventsub/events/channel.update.ts +0 -49
- package/src/eventsub/events/stream.offline.ts +0 -39
- package/src/eventsub/events/stream.online.ts +0 -45
- package/src/eventsub/events/user.update.ts +0 -45
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.prediction.begin": ChannelPredictionBegin
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Prediction Begin v1: When a Prediction started on the specified channel. */
|
|
10
|
+
type ChannelPredictionBegin = EventConfig<{
|
|
11
|
+
Type: "channel.prediction.begin"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when a Prediction started on the specified channel. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The broadcaster user ID of the channel for which "prediction begin" notifications will be received. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
}
|
|
18
|
+
/** The event fired when a Prediction started on the specified channel. */
|
|
19
|
+
Event: {
|
|
20
|
+
/** Channel Points Prediction ID. */
|
|
21
|
+
id: string
|
|
22
|
+
/** The requested broadcaster ID. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The requested broadcaster login. */
|
|
25
|
+
broadcaster_user_login: string
|
|
26
|
+
/** The requested broadcaster display name. */
|
|
27
|
+
broadcaster_user_name: string
|
|
28
|
+
/** Title for the Channel Points Prediction. */
|
|
29
|
+
title: string
|
|
30
|
+
/** An array of outcomes for the Channel Points Prediction. */
|
|
31
|
+
outcomes: Array<{
|
|
32
|
+
/** The outcome ID. */
|
|
33
|
+
id: string
|
|
34
|
+
/** The outcome title. */
|
|
35
|
+
title: string
|
|
36
|
+
/** The color for the outcome. Valid values are pink and blue. */
|
|
37
|
+
color: string
|
|
38
|
+
/** The number of users who used Channel Points on this outcome. */
|
|
39
|
+
users: number
|
|
40
|
+
/** The total number of Channel Points used on this outcome. */
|
|
41
|
+
channel_points: number
|
|
42
|
+
/** An array of users who used the most Channel Points on this outcome. */
|
|
43
|
+
top_predictors: {
|
|
44
|
+
/** The ID of the user. */
|
|
45
|
+
user_id: string
|
|
46
|
+
/** The login of the user. */
|
|
47
|
+
user_login: string
|
|
48
|
+
/** The display name of the user. */
|
|
49
|
+
user_name: string
|
|
50
|
+
/** The number of Channel Points won. This value is always null in the event payload for Prediction progress and Prediction lock. This value is 0 if the outcome did not win or if the Prediction was canceled and Channel Points were refunded. */
|
|
51
|
+
channel_points_won: number
|
|
52
|
+
/** The number of Channel Points used to participate in the Prediction. */
|
|
53
|
+
channel_points_used: number
|
|
54
|
+
}
|
|
55
|
+
}>
|
|
56
|
+
/** The time the Channel Points Prediction started. */
|
|
57
|
+
started_at: string
|
|
58
|
+
/** The time the Channel Points Prediction will automatically lock. */
|
|
59
|
+
locks_at: string
|
|
60
|
+
}
|
|
61
|
+
}>
|
|
62
|
+
|
|
63
|
+
registerEvent("channel.prediction.begin", {
|
|
64
|
+
scopes: ["channel:manage:predictions", "channel:read:predictions"],
|
|
65
|
+
subscriber: (userId) => ({
|
|
66
|
+
type: "channel.prediction.begin",
|
|
67
|
+
version: "1",
|
|
68
|
+
condition: {
|
|
69
|
+
broadcaster_user_id: userId,
|
|
70
|
+
},
|
|
71
|
+
}),
|
|
72
|
+
})
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.prediction.end": ChannelPredictionEnd
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Prediction End v1: When a Prediction ended on the specified channel. */
|
|
10
|
+
type ChannelPredictionEnd = EventConfig<{
|
|
11
|
+
Type: "channel.prediction.end"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when a Prediction ended on the specified channel. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The broadcaster user ID of the channel for which "prediction end" notifications will be received. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
}
|
|
18
|
+
/** The event fired when a Prediction ended on the specified channel. */
|
|
19
|
+
Event: {
|
|
20
|
+
/** Channel Points Prediction ID. */
|
|
21
|
+
id: string
|
|
22
|
+
/** The requested broadcaster ID. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The requested broadcaster login. */
|
|
25
|
+
broadcaster_user_login: string
|
|
26
|
+
/** The requested broadcaster display name. */
|
|
27
|
+
broadcaster_user_name: string
|
|
28
|
+
/** Title for the Channel Points Prediction. */
|
|
29
|
+
title: string
|
|
30
|
+
/** ID of the winning outcome. */
|
|
31
|
+
winning_outcome_id: string
|
|
32
|
+
/** An array of outcomes for the Channel Points Prediction. Includes top_predictors. */
|
|
33
|
+
outcomes: Array<{
|
|
34
|
+
/** The outcome ID. */
|
|
35
|
+
id: string
|
|
36
|
+
/** The outcome title. */
|
|
37
|
+
title: string
|
|
38
|
+
/** The color for the outcome. Valid values are pink and blue. */
|
|
39
|
+
color: string
|
|
40
|
+
/** The number of users who used Channel Points on this outcome. */
|
|
41
|
+
users: number
|
|
42
|
+
/** The total number of Channel Points used on this outcome. */
|
|
43
|
+
channel_points: number
|
|
44
|
+
/** An array of users who used the most Channel Points on this outcome. */
|
|
45
|
+
top_predictors: {
|
|
46
|
+
/** The ID of the user. */
|
|
47
|
+
user_id: string
|
|
48
|
+
/** The login of the user. */
|
|
49
|
+
user_login: string
|
|
50
|
+
/** The display name of the user. */
|
|
51
|
+
user_name: string
|
|
52
|
+
/** The number of Channel Points won. This value is always null in the event payload for Prediction progress and Prediction lock. This value is 0 if the outcome did not win or if the Prediction was canceled and Channel Points were refunded. */
|
|
53
|
+
channel_points_won: number
|
|
54
|
+
/** The number of Channel Points used to participate in the Prediction. */
|
|
55
|
+
channel_points_used: number
|
|
56
|
+
}
|
|
57
|
+
}>
|
|
58
|
+
/** The status of the Channel Points Prediction. Valid values are resolved and canceled. */
|
|
59
|
+
status: string
|
|
60
|
+
/** The time the Channel Points Prediction started. */
|
|
61
|
+
started_at: string
|
|
62
|
+
/** The time the Channel Points Prediction ended. */
|
|
63
|
+
ended_at: string
|
|
64
|
+
}
|
|
65
|
+
}>
|
|
66
|
+
|
|
67
|
+
registerEvent("channel.prediction.end", {
|
|
68
|
+
scopes: ["channel:manage:predictions", "channel:read:predictions"],
|
|
69
|
+
subscriber: (userId) => ({
|
|
70
|
+
type: "channel.prediction.end",
|
|
71
|
+
version: "1",
|
|
72
|
+
condition: {
|
|
73
|
+
broadcaster_user_id: userId,
|
|
74
|
+
},
|
|
75
|
+
}),
|
|
76
|
+
})
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.prediction.lock": ChannelPredictionLock
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Prediction Lock v1: When a Prediction was locked on the specified channel. */
|
|
10
|
+
type ChannelPredictionLock = EventConfig<{
|
|
11
|
+
Type: "channel.prediction.lock"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when a Prediction was locked on the specified channel. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The broadcaster user ID of the channel for which "prediction lock" notifications will be received. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
}
|
|
18
|
+
/** The event fired when a Prediction was locked on the specified channel. */
|
|
19
|
+
Event: {
|
|
20
|
+
/** Channel Points Prediction ID. */
|
|
21
|
+
id: string
|
|
22
|
+
/** The requested broadcaster ID. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The requested broadcaster login. */
|
|
25
|
+
broadcaster_user_login: string
|
|
26
|
+
/** The requested broadcaster display name. */
|
|
27
|
+
broadcaster_user_name: string
|
|
28
|
+
/** Title for the Channel Points Prediction. */
|
|
29
|
+
title: string
|
|
30
|
+
/** An array of outcomes for the Channel Points Prediction. Includes top_predictors. */
|
|
31
|
+
outcomes: Array<{
|
|
32
|
+
/** The outcome ID. */
|
|
33
|
+
id: string
|
|
34
|
+
/** The outcome title. */
|
|
35
|
+
title: string
|
|
36
|
+
/** The color for the outcome. Valid values are pink and blue. */
|
|
37
|
+
color: string
|
|
38
|
+
/** The number of users who used Channel Points on this outcome. */
|
|
39
|
+
users: number
|
|
40
|
+
/** The total number of Channel Points used on this outcome. */
|
|
41
|
+
channel_points: number
|
|
42
|
+
/** An array of users who used the most Channel Points on this outcome. */
|
|
43
|
+
top_predictors: {
|
|
44
|
+
/** The ID of the user. */
|
|
45
|
+
user_id: string
|
|
46
|
+
/** The login of the user. */
|
|
47
|
+
user_login: string
|
|
48
|
+
/** The display name of the user. */
|
|
49
|
+
user_name: string
|
|
50
|
+
/** The number of Channel Points won. This value is always null in the event payload for Prediction progress and Prediction lock. This value is 0 if the outcome did not win or if the Prediction was canceled and Channel Points were refunded. */
|
|
51
|
+
channel_points_won: number
|
|
52
|
+
/** The number of Channel Points used to participate in the Prediction. */
|
|
53
|
+
channel_points_used: number
|
|
54
|
+
}
|
|
55
|
+
}>
|
|
56
|
+
/** The time the Channel Points Prediction started. */
|
|
57
|
+
started_at: string
|
|
58
|
+
/** The time the Channel Points Prediction was locked. */
|
|
59
|
+
locked_at: string
|
|
60
|
+
}
|
|
61
|
+
}>
|
|
62
|
+
|
|
63
|
+
registerEvent("channel.prediction.lock", {
|
|
64
|
+
scopes: ["channel:manage:predictions", "channel:read:predictions"],
|
|
65
|
+
subscriber: (userId) => ({
|
|
66
|
+
type: "channel.prediction.lock",
|
|
67
|
+
version: "1",
|
|
68
|
+
condition: {
|
|
69
|
+
broadcaster_user_id: userId,
|
|
70
|
+
},
|
|
71
|
+
}),
|
|
72
|
+
})
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.prediction.progress": ChannelPredictionProgress
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Prediction Progress v1: When users participated in a Prediction on the specified channel. */
|
|
10
|
+
type ChannelPredictionProgress = EventConfig<{
|
|
11
|
+
Type: "channel.prediction.progress"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when users participated in a Prediction on the specified channel. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The broadcaster user ID of the channel for which "prediction progress" notifications will be received. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
}
|
|
18
|
+
/** The event fired when users participated in a Prediction on the specified channel. */
|
|
19
|
+
Event: {
|
|
20
|
+
/** Channel Points Prediction ID. */
|
|
21
|
+
id: string
|
|
22
|
+
/** The requested broadcaster ID. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The requested broadcaster login. */
|
|
25
|
+
broadcaster_user_login: string
|
|
26
|
+
/** The requested broadcaster display name. */
|
|
27
|
+
broadcaster_user_name: string
|
|
28
|
+
/** Title for the Channel Points Prediction. */
|
|
29
|
+
title: string
|
|
30
|
+
/** An array of outcomes for the Channel Points Prediction. Includes top_predictors. */
|
|
31
|
+
outcomes: Array<{
|
|
32
|
+
/** The outcome ID. */
|
|
33
|
+
id: string
|
|
34
|
+
/** The outcome title. */
|
|
35
|
+
title: string
|
|
36
|
+
/** The color for the outcome. Valid values are pink and blue. */
|
|
37
|
+
color: string
|
|
38
|
+
/** The number of users who used Channel Points on this outcome. */
|
|
39
|
+
users: number
|
|
40
|
+
/** The total number of Channel Points used on this outcome. */
|
|
41
|
+
channel_points: number
|
|
42
|
+
/** An array of users who used the most Channel Points on this outcome. */
|
|
43
|
+
top_predictors: {
|
|
44
|
+
/** The ID of the user. */
|
|
45
|
+
user_id: string
|
|
46
|
+
/** The login of the user. */
|
|
47
|
+
user_login: string
|
|
48
|
+
/** The display name of the user. */
|
|
49
|
+
user_name: string
|
|
50
|
+
/** The number of Channel Points won. This value is always null in the event payload for Prediction progress and Prediction lock. This value is 0 if the outcome did not win or if the Prediction was canceled and Channel Points were refunded. */
|
|
51
|
+
channel_points_won: number
|
|
52
|
+
/** The number of Channel Points used to participate in the Prediction. */
|
|
53
|
+
channel_points_used: number
|
|
54
|
+
}
|
|
55
|
+
}>
|
|
56
|
+
/** The time the Channel Points Prediction started. */
|
|
57
|
+
started_at: string
|
|
58
|
+
/** The time the Channel Points Prediction will automatically lock. */
|
|
59
|
+
locks_at: string
|
|
60
|
+
}
|
|
61
|
+
}>
|
|
62
|
+
|
|
63
|
+
registerEvent("channel.prediction.progress", {
|
|
64
|
+
scopes: ["channel:manage:predictions", "channel:read:predictions"],
|
|
65
|
+
subscriber: (userId) => ({
|
|
66
|
+
type: "channel.prediction.progress",
|
|
67
|
+
version: "1",
|
|
68
|
+
condition: {
|
|
69
|
+
broadcaster_user_id: userId,
|
|
70
|
+
},
|
|
71
|
+
}),
|
|
72
|
+
})
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.raid": ChannelRaid
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Raid v1: When the broadcaster raids another broadcaster's channel. */
|
|
10
|
+
type ChannelRaid = EventConfig<{
|
|
11
|
+
Type: "channel.raid"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when the broadcaster raids another broadcaster's channel. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The broadcaster user ID that created the channel raid you want to get notifications for. Use this parameter if you want to know when a specific broadcaster raids another broadcaster. The channel raid condition must include either from_broadcaster_user_id or to_broadcaster_user_id. */
|
|
16
|
+
from_broadcaster_user_id?: string
|
|
17
|
+
/** The broadcaster user ID that received the channel raid you want to get notifications for. Use this parameter if you want to know when a specific broadcaster is raided by another broadcaster. The channel raid condition must include either from_broadcaster_user_id or to_broadcaster_user_id. */
|
|
18
|
+
to_broadcaster_user_id?: string
|
|
19
|
+
}
|
|
20
|
+
/** The event fired when the broadcaster raids another broadcaster's channel. */
|
|
21
|
+
Event: {
|
|
22
|
+
/** The broadcaster ID that created the raid. */
|
|
23
|
+
from_broadcaster_user_id: string
|
|
24
|
+
/** The broadcaster login that created the raid. */
|
|
25
|
+
from_broadcaster_user_login: string
|
|
26
|
+
/** The broadcaster display name that created the raid. */
|
|
27
|
+
from_broadcaster_user_name: string
|
|
28
|
+
/** The broadcaster ID that received the raid. */
|
|
29
|
+
to_broadcaster_user_id: string
|
|
30
|
+
/** The broadcaster login that received the raid. */
|
|
31
|
+
to_broadcaster_user_login: string
|
|
32
|
+
/** The broadcaster display name that received the raid. */
|
|
33
|
+
to_broadcaster_user_name: string
|
|
34
|
+
/** The number of viewers in the raid. */
|
|
35
|
+
viewers: number
|
|
36
|
+
}
|
|
37
|
+
}>
|
|
38
|
+
|
|
39
|
+
registerEvent("channel.raid", {
|
|
40
|
+
scopes: [],
|
|
41
|
+
subscriber: (userId) => ({
|
|
42
|
+
type: "channel.raid",
|
|
43
|
+
version: "1",
|
|
44
|
+
condition: {
|
|
45
|
+
to_broadcaster_user_id: userId,
|
|
46
|
+
},
|
|
47
|
+
}),
|
|
48
|
+
})
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.shared_chat.begin": ChannelSharedChatBegin
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Shared Chat Begin v1: When a channel becomes active in an active shared chat session. */
|
|
10
|
+
type ChannelSharedChatBegin = EventConfig<{
|
|
11
|
+
Type: "channel.shared_chat.begin"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when a channel becomes active in an active shared chat session. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The User ID of the channel to receive shared chat session begin events for. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
}
|
|
18
|
+
/** The event fired when a channel becomes active in an active shared chat session. */
|
|
19
|
+
Event: {
|
|
20
|
+
/** The unique identifier for the shared chat session. */
|
|
21
|
+
session_id: string
|
|
22
|
+
/** The User ID of the channel in the subscription condition which is now active in the shared chat session. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The display name of the channel in the subscription condition which is now active in the shared chat session. */
|
|
25
|
+
broadcaster_user_name: string
|
|
26
|
+
/** The user login of the channel in the subscription condition which is now active in the shared chat session. */
|
|
27
|
+
broadcaster_user_login: string
|
|
28
|
+
/** The User ID of the host channel. */
|
|
29
|
+
host_broadcaster_user_id: string
|
|
30
|
+
/** The display name of the host channel. */
|
|
31
|
+
host_broadcaster_user_name: string
|
|
32
|
+
/** The user login of the host channel. */
|
|
33
|
+
host_broadcaster_user_login: string
|
|
34
|
+
/** The list of participants in the session. */
|
|
35
|
+
participants: {
|
|
36
|
+
/** The User ID of the participant channel. */
|
|
37
|
+
broadcaster_user_id: string
|
|
38
|
+
/** The display name of the participant channel. */
|
|
39
|
+
broadcaster_user_name: string
|
|
40
|
+
/** The user login of the participant channel. */
|
|
41
|
+
broadcaster_user_login: string
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}>
|
|
45
|
+
|
|
46
|
+
registerEvent("channel.shared_chat.begin", {
|
|
47
|
+
scopes: [],
|
|
48
|
+
subscriber: (userId) => ({
|
|
49
|
+
type: "channel.shared_chat.begin",
|
|
50
|
+
version: "1",
|
|
51
|
+
condition: {
|
|
52
|
+
broadcaster_user_id: userId,
|
|
53
|
+
},
|
|
54
|
+
}),
|
|
55
|
+
})
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.shared_chat.end": ChannelSharedChatEnd
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Shared Chat End v1: When a channel leaves a shared chat session or the session ends. */
|
|
10
|
+
type ChannelSharedChatEnd = EventConfig<{
|
|
11
|
+
Type: "channel.shared_chat.end"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when a channel leaves a shared chat session or the session ends. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The User ID of the channel to receive shared chat session end events for. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
}
|
|
18
|
+
/** The event fired when a channel leaves a shared chat session or the session ends. */
|
|
19
|
+
Event: {
|
|
20
|
+
/** The unique identifier for the shared chat session. */
|
|
21
|
+
session_id: string
|
|
22
|
+
/** The User ID of the channel in the subscription condition which is no longer active in the shared chat session. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The display name of the channel in the subscription condition which is no longer active in the shared chat session. */
|
|
25
|
+
broadcaster_user_name: string
|
|
26
|
+
/** The user login of the channel in the subscription condition which is no longer active in the shared chat session. */
|
|
27
|
+
broadcaster_user_login: string
|
|
28
|
+
/** The User ID of the host channel. */
|
|
29
|
+
host_broadcaster_user_id: string
|
|
30
|
+
/** The display name of the host channel. */
|
|
31
|
+
host_broadcaster_user_name: string
|
|
32
|
+
/** The user login of the host channel. */
|
|
33
|
+
host_broadcaster_user_login: string
|
|
34
|
+
}
|
|
35
|
+
}>
|
|
36
|
+
|
|
37
|
+
registerEvent("channel.shared_chat.end", {
|
|
38
|
+
scopes: [],
|
|
39
|
+
subscriber: (userId) => ({
|
|
40
|
+
type: "channel.shared_chat.end",
|
|
41
|
+
version: "1",
|
|
42
|
+
condition: {
|
|
43
|
+
broadcaster_user_id: userId,
|
|
44
|
+
},
|
|
45
|
+
}),
|
|
46
|
+
})
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.shared_chat.update": ChannelSharedChatUpdate
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Shared Chat Update v1: When the active shared chat session the channel is in changes. */
|
|
10
|
+
type ChannelSharedChatUpdate = EventConfig<{
|
|
11
|
+
Type: "channel.shared_chat.update"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when the active shared chat session the channel is in changes. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The User ID of the channel to receive shared chat session update events for. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
}
|
|
18
|
+
/** The event fired when the active shared chat session the channel is in changes. */
|
|
19
|
+
Event: {
|
|
20
|
+
/** The unique identifier for the shared chat session. */
|
|
21
|
+
session_id: string
|
|
22
|
+
/** The User ID of the channel in the subscription condition. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The display name of the channel in the subscription condition. */
|
|
25
|
+
broadcaster_user_name: string
|
|
26
|
+
/** The user login of the channel in the subscription condition. */
|
|
27
|
+
broadcaster_user_login: string
|
|
28
|
+
/** The User ID of the host channel. */
|
|
29
|
+
host_broadcaster_user_id: string
|
|
30
|
+
/** The display name of the host channel. */
|
|
31
|
+
host_broadcaster_user_name: string
|
|
32
|
+
/** The user login of the host channel. */
|
|
33
|
+
host_broadcaster_user_login: string
|
|
34
|
+
/** The list of participants in the session. */
|
|
35
|
+
participants: {
|
|
36
|
+
/** The User ID of the participant channel. */
|
|
37
|
+
broadcaster_user_id: string
|
|
38
|
+
/** The display name of the participant channel. */
|
|
39
|
+
broadcaster_user_name: string
|
|
40
|
+
/** The user login of the participant channel. */
|
|
41
|
+
broadcaster_user_login: string
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}>
|
|
45
|
+
|
|
46
|
+
registerEvent("channel.shared_chat.update", {
|
|
47
|
+
scopes: [],
|
|
48
|
+
subscriber: (userId) => ({
|
|
49
|
+
type: "channel.shared_chat.update",
|
|
50
|
+
version: "1",
|
|
51
|
+
condition: {
|
|
52
|
+
broadcaster_user_id: userId,
|
|
53
|
+
},
|
|
54
|
+
}),
|
|
55
|
+
})
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.shield_mode.begin": ChannelShieldModeBegin
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Shield Mode Begin v1: When the broadcaster activates Shield Mode. */
|
|
10
|
+
type ChannelShieldModeBegin = EventConfig<{
|
|
11
|
+
Type: "channel.shield_mode.begin"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when the broadcaster activates Shield Mode. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The ID of the broadcaster that you want to receive notifications about when they activate Shield Mode. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
/** The ID of the broadcaster or one of the broadcaster's moderators. */
|
|
18
|
+
moderator_user_id: string
|
|
19
|
+
}
|
|
20
|
+
/** The event fired when the broadcaster activates Shield Mode. */
|
|
21
|
+
Event: {
|
|
22
|
+
/** An ID that identifies the broadcaster whose Shield Mode status was updated. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The broadcaster's login name. */
|
|
25
|
+
broadcaster_user_login: string
|
|
26
|
+
/** The broadcaster's display name. */
|
|
27
|
+
broadcaster_user_name: string
|
|
28
|
+
/** An ID that identifies the moderator that updated the Shield Mode's status. If the broadcaster updated the status, this ID will be the same as broadcaster_user_id. */
|
|
29
|
+
moderator_user_id: string
|
|
30
|
+
/** The moderator's login name. */
|
|
31
|
+
moderator_user_login: string
|
|
32
|
+
/** The moderator's display name. */
|
|
33
|
+
moderator_user_name: string
|
|
34
|
+
/** The UTC timestamp (in RFC3339 format) of when the moderator activated Shield Mode. The object includes this field only for channel.shield_mode.begin events. */
|
|
35
|
+
started_at: string
|
|
36
|
+
/** The UTC timestamp (in RFC3339 format) of when the moderator deactivated Shield Mode. The object includes this field only for channel.shield_mode.end events. */
|
|
37
|
+
ended_at: string
|
|
38
|
+
}
|
|
39
|
+
}>
|
|
40
|
+
|
|
41
|
+
registerEvent("channel.shield_mode.begin", {
|
|
42
|
+
scopes: ["moderator:manage:shield", "moderator:read:shield"],
|
|
43
|
+
subscriber: (userId) => ({
|
|
44
|
+
type: "channel.shield_mode.begin",
|
|
45
|
+
version: "1",
|
|
46
|
+
condition: {
|
|
47
|
+
broadcaster_user_id: userId,
|
|
48
|
+
moderator_user_id: userId,
|
|
49
|
+
},
|
|
50
|
+
}),
|
|
51
|
+
})
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.shield_mode.end": ChannelShieldModeEnd
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Shield Mode End v1: When the broadcaster deactivates Shield Mode. */
|
|
10
|
+
type ChannelShieldModeEnd = EventConfig<{
|
|
11
|
+
Type: "channel.shield_mode.end"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when the broadcaster deactivates Shield Mode. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The ID of the broadcaster that you want to receive notifications about when they deactivate Shield Mode. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
/** The ID of the broadcaster or one of the broadcaster's moderators. */
|
|
18
|
+
moderator_user_id: string
|
|
19
|
+
}
|
|
20
|
+
/** The event fired when the broadcaster deactivates Shield Mode. */
|
|
21
|
+
Event: {
|
|
22
|
+
/** An ID that identifies the broadcaster whose Shield Mode status was updated. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The broadcaster's login name. */
|
|
25
|
+
broadcaster_user_login: string
|
|
26
|
+
/** The broadcaster's display name. */
|
|
27
|
+
broadcaster_user_name: string
|
|
28
|
+
/** An ID that identifies the moderator that updated the Shield Mode's status. If the broadcaster updated the status, this ID will be the same as broadcaster_user_id. */
|
|
29
|
+
moderator_user_id: string
|
|
30
|
+
/** The moderator's login name. */
|
|
31
|
+
moderator_user_login: string
|
|
32
|
+
/** The moderator's display name. */
|
|
33
|
+
moderator_user_name: string
|
|
34
|
+
/** The UTC timestamp (in RFC3339 format) of when the moderator activated Shield Mode. The object includes this field only for channel.shield_mode.begin events. */
|
|
35
|
+
started_at: string
|
|
36
|
+
/** The UTC timestamp (in RFC3339 format) of when the moderator deactivated Shield Mode. The object includes this field only for channel.shield_mode.end events. */
|
|
37
|
+
ended_at: string
|
|
38
|
+
}
|
|
39
|
+
}>
|
|
40
|
+
|
|
41
|
+
registerEvent("channel.shield_mode.end", {
|
|
42
|
+
scopes: ["moderator:manage:shield", "moderator:read:shield"],
|
|
43
|
+
subscriber: (userId) => ({
|
|
44
|
+
type: "channel.shield_mode.end",
|
|
45
|
+
version: "1",
|
|
46
|
+
condition: {
|
|
47
|
+
broadcaster_user_id: userId,
|
|
48
|
+
moderator_user_id: userId,
|
|
49
|
+
},
|
|
50
|
+
}),
|
|
51
|
+
})
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type EventConfig, registerEvent } from "../events-helpers.ts"
|
|
2
|
+
|
|
3
|
+
declare module "../events-helpers.ts" {
|
|
4
|
+
interface EventConfigs {
|
|
5
|
+
"channel.shoutout.create": ChannelShoutoutCreate
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Channel Shoutout Create v1: When the specified broadcaster sends a Shoutout. */
|
|
10
|
+
type ChannelShoutoutCreate = EventConfig<{
|
|
11
|
+
Type: "channel.shoutout.create"
|
|
12
|
+
Version: "1"
|
|
13
|
+
/** The conditions to listen for when the specified broadcaster sends a Shoutout. */
|
|
14
|
+
Condition: {
|
|
15
|
+
/** The ID of the broadcaster that you want to receive notifications about when they send a Shoutout. */
|
|
16
|
+
broadcaster_user_id: string
|
|
17
|
+
/** The ID of the broadcaster that gave the Shoutout or one of the broadcaster's moderators. */
|
|
18
|
+
moderator_user_id: string
|
|
19
|
+
}
|
|
20
|
+
/** The event fired when the specified broadcaster sends a Shoutout. */
|
|
21
|
+
Event: {
|
|
22
|
+
/** An ID that identifies the broadcaster that sent the Shoutout. */
|
|
23
|
+
broadcaster_user_id: string
|
|
24
|
+
/** The broadcaster's login name. */
|
|
25
|
+
broadcaster_user_login: string
|
|
26
|
+
/** The broadcaster's display name. */
|
|
27
|
+
broadcaster_user_name: string
|
|
28
|
+
/** An ID that identifies the broadcaster that received the Shoutout. */
|
|
29
|
+
to_broadcaster_user_id: string
|
|
30
|
+
/** The broadcaster's login name. */
|
|
31
|
+
to_broadcaster_user_login: string
|
|
32
|
+
/** The broadcaster's display name. */
|
|
33
|
+
to_broadcaster_user_name: string
|
|
34
|
+
/** An ID that identifies the moderator that sent the Shoutout. If the broadcaster sent the Shoutout, this ID is the same as the ID in broadcaster_user_id. */
|
|
35
|
+
moderator_user_id: string
|
|
36
|
+
/** The moderator's login name. */
|
|
37
|
+
moderator_user_login: string
|
|
38
|
+
/** The moderator's display name. */
|
|
39
|
+
moderator_user_name: string
|
|
40
|
+
/** The number of users that were watching the broadcaster's stream at the time of the Shoutout. */
|
|
41
|
+
viewer_count: number
|
|
42
|
+
/** The UTC timestamp (in RFC3339 format) of when the moderator sent the Shoutout. */
|
|
43
|
+
started_at: string
|
|
44
|
+
/** The UTC timestamp (in RFC3339 format) of when the broadcaster may send a Shoutout to a different broadcaster. */
|
|
45
|
+
cooldown_ends_at: string
|
|
46
|
+
/** The UTC timestamp (in RFC3339 format) of when the broadcaster may send another Shoutout to the broadcaster in to_broadcaster_user_id. */
|
|
47
|
+
target_cooldown_ends_at: string
|
|
48
|
+
}
|
|
49
|
+
}>
|
|
50
|
+
|
|
51
|
+
registerEvent("channel.shoutout.create", {
|
|
52
|
+
scopes: ["moderator:manage:shoutouts", "moderator:read:shoutouts"],
|
|
53
|
+
subscriber: (userId) => ({
|
|
54
|
+
type: "channel.shoutout.create",
|
|
55
|
+
version: "1",
|
|
56
|
+
condition: {
|
|
57
|
+
broadcaster_user_id: userId,
|
|
58
|
+
moderator_user_id: userId,
|
|
59
|
+
},
|
|
60
|
+
}),
|
|
61
|
+
})
|