@overlaysymphony/twitch 0.3.3 → 0.4.0

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.
Files changed (92) hide show
  1. package/package.json +3 -2
  2. package/src/authentication/authentication.ts +2 -2
  3. package/src/chat/chat.ts +6 -2
  4. package/src/eventsub/events/automod.message.hold-2.ts +3 -3
  5. package/src/eventsub/events/automod.message.update-2.ts +3 -3
  6. package/src/eventsub/events/automod.settings.update-1.ts +3 -3
  7. package/src/eventsub/events/automod.terms.update-1.ts +3 -3
  8. package/src/eventsub/events/channel.ad_break.begin-1.ts +2 -2
  9. package/src/eventsub/events/channel.ban-1.ts +2 -2
  10. package/src/eventsub/events/channel.bits.use-1.ts +2 -2
  11. package/src/eventsub/events/channel.channel_points_automatic_reward_redemption.add-2.ts +2 -2
  12. package/src/eventsub/events/channel.channel_points_custom_reward.add-1.ts +2 -2
  13. package/src/eventsub/events/channel.channel_points_custom_reward.remove-1.ts +2 -2
  14. package/src/eventsub/events/channel.channel_points_custom_reward.update-1.ts +2 -2
  15. package/src/eventsub/events/channel.channel_points_custom_reward_redemption.add-1.ts +2 -2
  16. package/src/eventsub/events/channel.channel_points_custom_reward_redemption.update-1.ts +2 -2
  17. package/src/eventsub/events/channel.charity_campaign.donate-1.ts +2 -2
  18. package/src/eventsub/events/channel.charity_campaign.progress-1.ts +2 -2
  19. package/src/eventsub/events/channel.charity_campaign.start-1.ts +2 -2
  20. package/src/eventsub/events/channel.charity_campaign.stop-1.ts +2 -2
  21. package/src/eventsub/events/channel.chat.clear-1.ts +3 -3
  22. package/src/eventsub/events/channel.chat.clear_user_messages-1.ts +3 -3
  23. package/src/eventsub/events/channel.chat.message-1.ts +3 -3
  24. package/src/eventsub/events/channel.chat.message_delete-1.ts +3 -3
  25. package/src/eventsub/events/channel.chat.notification-1.ts +3 -3
  26. package/src/eventsub/events/channel.chat.user_message_hold-1.ts +3 -3
  27. package/src/eventsub/events/channel.chat.user_message_update-1.ts +3 -3
  28. package/src/eventsub/events/channel.chat_settings.update-1.ts +3 -3
  29. package/src/eventsub/events/channel.cheer-1.ts +2 -2
  30. package/src/eventsub/events/channel.follow-2.ts +3 -3
  31. package/src/eventsub/events/channel.goal.begin-1.ts +2 -2
  32. package/src/eventsub/events/channel.goal.end-1.ts +2 -2
  33. package/src/eventsub/events/channel.goal.progress-1.ts +2 -2
  34. package/src/eventsub/events/channel.guest_star_guest.update-beta.ts +3 -3
  35. package/src/eventsub/events/channel.guest_star_session.begin-beta.ts +3 -3
  36. package/src/eventsub/events/channel.guest_star_session.end-beta.ts +3 -3
  37. package/src/eventsub/events/channel.guest_star_settings.update-beta.ts +3 -3
  38. package/src/eventsub/events/channel.hype_train.begin-2.ts +2 -2
  39. package/src/eventsub/events/channel.hype_train.end-2.ts +2 -2
  40. package/src/eventsub/events/channel.hype_train.progress-2.ts +2 -2
  41. package/src/eventsub/events/channel.moderate-2.ts +3 -3
  42. package/src/eventsub/events/channel.moderator.add-1.ts +2 -2
  43. package/src/eventsub/events/channel.moderator.remove-1.ts +2 -2
  44. package/src/eventsub/events/channel.poll.begin-1.ts +2 -2
  45. package/src/eventsub/events/channel.poll.end-1.ts +2 -2
  46. package/src/eventsub/events/channel.poll.progress-1.ts +2 -2
  47. package/src/eventsub/events/channel.prediction.begin-1.ts +2 -2
  48. package/src/eventsub/events/channel.prediction.end-1.ts +2 -2
  49. package/src/eventsub/events/channel.prediction.lock-1.ts +2 -2
  50. package/src/eventsub/events/channel.prediction.progress-1.ts +2 -2
  51. package/src/eventsub/events/channel.raid-1.ts +2 -2
  52. package/src/eventsub/events/channel.shared_chat.begin-1.ts +2 -2
  53. package/src/eventsub/events/channel.shared_chat.end-1.ts +2 -2
  54. package/src/eventsub/events/channel.shared_chat.update-1.ts +2 -2
  55. package/src/eventsub/events/channel.shield_mode.begin-1.ts +3 -3
  56. package/src/eventsub/events/channel.shield_mode.end-1.ts +3 -3
  57. package/src/eventsub/events/channel.shoutout.create-1.ts +3 -3
  58. package/src/eventsub/events/channel.shoutout.receive-1.ts +3 -3
  59. package/src/eventsub/events/channel.subscribe-1.ts +2 -2
  60. package/src/eventsub/events/channel.subscription.end-1.ts +2 -2
  61. package/src/eventsub/events/channel.subscription.gift-1.ts +2 -2
  62. package/src/eventsub/events/channel.subscription.message-1.ts +2 -2
  63. package/src/eventsub/events/channel.suspicious_user.message-1.ts +3 -3
  64. package/src/eventsub/events/channel.suspicious_user.update-1.ts +3 -3
  65. package/src/eventsub/events/channel.unban-1.ts +2 -2
  66. package/src/eventsub/events/channel.unban_request.create-1.ts +3 -3
  67. package/src/eventsub/events/channel.unban_request.resolve-1.ts +3 -3
  68. package/src/eventsub/events/channel.update-2.ts +2 -2
  69. package/src/eventsub/events/channel.vip.add-1.ts +2 -2
  70. package/src/eventsub/events/channel.vip.remove-1.ts +2 -2
  71. package/src/eventsub/events/channel.warning.acknowledge-1.ts +3 -3
  72. package/src/eventsub/events/channel.warning.send-1.ts +3 -3
  73. package/src/eventsub/events/stream.offline-1.ts +2 -2
  74. package/src/eventsub/events/stream.online-1.ts +2 -2
  75. package/src/eventsub/events/user.update-1.ts +2 -2
  76. package/src/eventsub/events/user.whisper.message-1.ts +2 -2
  77. package/src/eventsub/events-helpers.ts +11 -4
  78. package/src/eventsub/eventsub.ts +52 -34
  79. package/src/eventsub/index.ts +1 -0
  80. package/src/helix/chat/emotes.ts +59 -22
  81. package/src/helix/index.ts +1 -0
  82. package/src/helix/streams/index.ts +1 -0
  83. package/src/helix/streams/streams.ts +48 -0
  84. package/src/helix/users/users.ts +51 -0
  85. package/src/helpers/alerts/alerts.ts +3 -3
  86. package/src/helpers/charity/charity.ts +2 -2
  87. package/src/helpers/goal/goal.ts +2 -2
  88. package/src/helpers/hype-train/hype-train.ts +2 -2
  89. package/src/helpers/poll/poll.ts +2 -2
  90. package/src/helpers/prediction/prediction.ts +2 -2
  91. package/src/helpers/redemption/redemption.ts +2 -2
  92. package/src/helpers/status/status.ts +2 -2
@@ -80,11 +80,11 @@ type ChannelHypeTrainProgress = EventConfig<{
80
80
 
81
81
  registerEvent("channel.hype_train.progress", {
82
82
  scopes: ["channel:read:hype"],
83
- subscriber: (userId) => ({
83
+ subscriber: (currentUserId, targetUserId) => ({
84
84
  type: "channel.hype_train.progress",
85
85
  version: "2",
86
86
  condition: {
87
- broadcaster_user_id: userId,
87
+ broadcaster_user_id: targetUserId,
88
88
  },
89
89
  }),
90
90
  })
@@ -247,12 +247,12 @@ registerEvent("channel.moderate", {
247
247
  "moderator:read:vips",
248
248
  "moderator:read:warnings",
249
249
  ],
250
- subscriber: (userId) => ({
250
+ subscriber: (currentUserId, targetUserId) => ({
251
251
  type: "channel.moderate",
252
252
  version: "2",
253
253
  condition: {
254
- broadcaster_user_id: userId,
255
- moderator_user_id: userId,
254
+ broadcaster_user_id: targetUserId,
255
+ moderator_user_id: currentUserId,
256
256
  },
257
257
  }),
258
258
  })
@@ -34,11 +34,11 @@ type ChannelModeratorAdd = EventConfig<{
34
34
 
35
35
  registerEvent("channel.moderator.add", {
36
36
  scopes: ["moderation:read"],
37
- subscriber: (userId) => ({
37
+ subscriber: (currentUserId, targetUserId) => ({
38
38
  type: "channel.moderator.add",
39
39
  version: "1",
40
40
  condition: {
41
- broadcaster_user_id: userId,
41
+ broadcaster_user_id: targetUserId,
42
42
  },
43
43
  }),
44
44
  })
@@ -34,11 +34,11 @@ type ChannelModeratorRemove = EventConfig<{
34
34
 
35
35
  registerEvent("channel.moderator.remove", {
36
36
  scopes: ["moderation:read"],
37
- subscriber: (userId) => ({
37
+ subscriber: (currentUserId, targetUserId) => ({
38
38
  type: "channel.moderator.remove",
39
39
  version: "1",
40
40
  condition: {
41
- broadcaster_user_id: userId,
41
+ broadcaster_user_id: targetUserId,
42
42
  },
43
43
  }),
44
44
  })
@@ -63,11 +63,11 @@ type ChannelPollBegin = EventConfig<{
63
63
 
64
64
  registerEvent("channel.poll.begin", {
65
65
  scopes: ["channel:manage:polls", "channel:read:polls"],
66
- subscriber: (userId) => ({
66
+ subscriber: (currentUserId, targetUserId) => ({
67
67
  type: "channel.poll.begin",
68
68
  version: "1",
69
69
  condition: {
70
- broadcaster_user_id: userId,
70
+ broadcaster_user_id: targetUserId,
71
71
  },
72
72
  }),
73
73
  })
@@ -65,11 +65,11 @@ type ChannelPollEnd = EventConfig<{
65
65
 
66
66
  registerEvent("channel.poll.end", {
67
67
  scopes: ["channel:manage:polls", "channel:read:polls"],
68
- subscriber: (userId) => ({
68
+ subscriber: (currentUserId, targetUserId) => ({
69
69
  type: "channel.poll.end",
70
70
  version: "1",
71
71
  condition: {
72
- broadcaster_user_id: userId,
72
+ broadcaster_user_id: targetUserId,
73
73
  },
74
74
  }),
75
75
  })
@@ -63,11 +63,11 @@ type ChannelPollProgress = EventConfig<{
63
63
 
64
64
  registerEvent("channel.poll.progress", {
65
65
  scopes: ["channel:manage:polls", "channel:read:polls"],
66
- subscriber: (userId) => ({
66
+ subscriber: (currentUserId, targetUserId) => ({
67
67
  type: "channel.poll.progress",
68
68
  version: "1",
69
69
  condition: {
70
- broadcaster_user_id: userId,
70
+ broadcaster_user_id: targetUserId,
71
71
  },
72
72
  }),
73
73
  })
@@ -62,11 +62,11 @@ type ChannelPredictionBegin = EventConfig<{
62
62
 
63
63
  registerEvent("channel.prediction.begin", {
64
64
  scopes: ["channel:manage:predictions", "channel:read:predictions"],
65
- subscriber: (userId) => ({
65
+ subscriber: (currentUserId, targetUserId) => ({
66
66
  type: "channel.prediction.begin",
67
67
  version: "1",
68
68
  condition: {
69
- broadcaster_user_id: userId,
69
+ broadcaster_user_id: targetUserId,
70
70
  },
71
71
  }),
72
72
  })
@@ -66,11 +66,11 @@ type ChannelPredictionEnd = EventConfig<{
66
66
 
67
67
  registerEvent("channel.prediction.end", {
68
68
  scopes: ["channel:manage:predictions", "channel:read:predictions"],
69
- subscriber: (userId) => ({
69
+ subscriber: (currentUserId, targetUserId) => ({
70
70
  type: "channel.prediction.end",
71
71
  version: "1",
72
72
  condition: {
73
- broadcaster_user_id: userId,
73
+ broadcaster_user_id: targetUserId,
74
74
  },
75
75
  }),
76
76
  })
@@ -62,11 +62,11 @@ type ChannelPredictionLock = EventConfig<{
62
62
 
63
63
  registerEvent("channel.prediction.lock", {
64
64
  scopes: ["channel:manage:predictions", "channel:read:predictions"],
65
- subscriber: (userId) => ({
65
+ subscriber: (currentUserId, targetUserId) => ({
66
66
  type: "channel.prediction.lock",
67
67
  version: "1",
68
68
  condition: {
69
- broadcaster_user_id: userId,
69
+ broadcaster_user_id: targetUserId,
70
70
  },
71
71
  }),
72
72
  })
@@ -62,11 +62,11 @@ type ChannelPredictionProgress = EventConfig<{
62
62
 
63
63
  registerEvent("channel.prediction.progress", {
64
64
  scopes: ["channel:manage:predictions", "channel:read:predictions"],
65
- subscriber: (userId) => ({
65
+ subscriber: (currentUserId, targetUserId) => ({
66
66
  type: "channel.prediction.progress",
67
67
  version: "1",
68
68
  condition: {
69
- broadcaster_user_id: userId,
69
+ broadcaster_user_id: targetUserId,
70
70
  },
71
71
  }),
72
72
  })
@@ -38,11 +38,11 @@ type ChannelRaid = EventConfig<{
38
38
 
39
39
  registerEvent("channel.raid", {
40
40
  scopes: [],
41
- subscriber: (userId) => ({
41
+ subscriber: (currentUserId, targetUserId) => ({
42
42
  type: "channel.raid",
43
43
  version: "1",
44
44
  condition: {
45
- to_broadcaster_user_id: userId,
45
+ to_broadcaster_user_id: targetUserId,
46
46
  },
47
47
  }),
48
48
  })
@@ -45,11 +45,11 @@ type ChannelSharedChatBegin = EventConfig<{
45
45
 
46
46
  registerEvent("channel.shared_chat.begin", {
47
47
  scopes: [],
48
- subscriber: (userId) => ({
48
+ subscriber: (currentUserId, targetUserId) => ({
49
49
  type: "channel.shared_chat.begin",
50
50
  version: "1",
51
51
  condition: {
52
- broadcaster_user_id: userId,
52
+ broadcaster_user_id: targetUserId,
53
53
  },
54
54
  }),
55
55
  })
@@ -36,11 +36,11 @@ type ChannelSharedChatEnd = EventConfig<{
36
36
 
37
37
  registerEvent("channel.shared_chat.end", {
38
38
  scopes: [],
39
- subscriber: (userId) => ({
39
+ subscriber: (currentUserId, targetUserId) => ({
40
40
  type: "channel.shared_chat.end",
41
41
  version: "1",
42
42
  condition: {
43
- broadcaster_user_id: userId,
43
+ broadcaster_user_id: targetUserId,
44
44
  },
45
45
  }),
46
46
  })
@@ -45,11 +45,11 @@ type ChannelSharedChatUpdate = EventConfig<{
45
45
 
46
46
  registerEvent("channel.shared_chat.update", {
47
47
  scopes: [],
48
- subscriber: (userId) => ({
48
+ subscriber: (currentUserId, targetUserId) => ({
49
49
  type: "channel.shared_chat.update",
50
50
  version: "1",
51
51
  condition: {
52
- broadcaster_user_id: userId,
52
+ broadcaster_user_id: targetUserId,
53
53
  },
54
54
  }),
55
55
  })
@@ -40,12 +40,12 @@ type ChannelShieldModeBegin = EventConfig<{
40
40
 
41
41
  registerEvent("channel.shield_mode.begin", {
42
42
  scopes: ["moderator:manage:shield", "moderator:read:shield"],
43
- subscriber: (userId) => ({
43
+ subscriber: (currentUserId, targetUserId) => ({
44
44
  type: "channel.shield_mode.begin",
45
45
  version: "1",
46
46
  condition: {
47
- broadcaster_user_id: userId,
48
- moderator_user_id: userId,
47
+ broadcaster_user_id: targetUserId,
48
+ moderator_user_id: currentUserId,
49
49
  },
50
50
  }),
51
51
  })
@@ -40,12 +40,12 @@ type ChannelShieldModeEnd = EventConfig<{
40
40
 
41
41
  registerEvent("channel.shield_mode.end", {
42
42
  scopes: ["moderator:manage:shield", "moderator:read:shield"],
43
- subscriber: (userId) => ({
43
+ subscriber: (currentUserId, targetUserId) => ({
44
44
  type: "channel.shield_mode.end",
45
45
  version: "1",
46
46
  condition: {
47
- broadcaster_user_id: userId,
48
- moderator_user_id: userId,
47
+ broadcaster_user_id: targetUserId,
48
+ moderator_user_id: currentUserId,
49
49
  },
50
50
  }),
51
51
  })
@@ -50,12 +50,12 @@ type ChannelShoutoutCreate = EventConfig<{
50
50
 
51
51
  registerEvent("channel.shoutout.create", {
52
52
  scopes: ["moderator:manage:shoutouts", "moderator:read:shoutouts"],
53
- subscriber: (userId) => ({
53
+ subscriber: (currentUserId, targetUserId) => ({
54
54
  type: "channel.shoutout.create",
55
55
  version: "1",
56
56
  condition: {
57
- broadcaster_user_id: userId,
58
- moderator_user_id: userId,
57
+ broadcaster_user_id: targetUserId,
58
+ moderator_user_id: currentUserId,
59
59
  },
60
60
  }),
61
61
  })
@@ -40,12 +40,12 @@ type ChannelShoutoutReceive = EventConfig<{
40
40
 
41
41
  registerEvent("channel.shoutout.receive", {
42
42
  scopes: ["moderator:manage:shoutouts", "moderator:read:shoutouts"],
43
- subscriber: (userId) => ({
43
+ subscriber: (currentUserId, targetUserId) => ({
44
44
  type: "channel.shoutout.receive",
45
45
  version: "1",
46
46
  condition: {
47
- broadcaster_user_id: userId,
48
- moderator_user_id: userId,
47
+ broadcaster_user_id: targetUserId,
48
+ moderator_user_id: currentUserId,
49
49
  },
50
50
  }),
51
51
  })
@@ -38,11 +38,11 @@ type ChannelSubscribe = EventConfig<{
38
38
 
39
39
  registerEvent("channel.subscribe", {
40
40
  scopes: ["channel:read:subscriptions"],
41
- subscriber: (userId) => ({
41
+ subscriber: (currentUserId, targetUserId) => ({
42
42
  type: "channel.subscribe",
43
43
  version: "1",
44
44
  condition: {
45
- broadcaster_user_id: userId,
45
+ broadcaster_user_id: targetUserId,
46
46
  },
47
47
  }),
48
48
  })
@@ -38,11 +38,11 @@ type ChannelSubscriptionEnd = EventConfig<{
38
38
 
39
39
  registerEvent("channel.subscription.end", {
40
40
  scopes: ["channel:read:subscriptions"],
41
- subscriber: (userId) => ({
41
+ subscriber: (currentUserId, targetUserId) => ({
42
42
  type: "channel.subscription.end",
43
43
  version: "1",
44
44
  condition: {
45
- broadcaster_user_id: userId,
45
+ broadcaster_user_id: targetUserId,
46
46
  },
47
47
  }),
48
48
  })
@@ -42,11 +42,11 @@ type ChannelSubscriptionGift = EventConfig<{
42
42
 
43
43
  registerEvent("channel.subscription.gift", {
44
44
  scopes: ["channel:read:subscriptions"],
45
- subscriber: (userId) => ({
45
+ subscriber: (currentUserId, targetUserId) => ({
46
46
  type: "channel.subscription.gift",
47
47
  version: "1",
48
48
  condition: {
49
- broadcaster_user_id: userId,
49
+ broadcaster_user_id: targetUserId,
50
50
  },
51
51
  }),
52
52
  })
@@ -56,11 +56,11 @@ type ChannelSubscriptionMessage = EventConfig<{
56
56
 
57
57
  registerEvent("channel.subscription.message", {
58
58
  scopes: ["channel:read:subscriptions"],
59
- subscriber: (userId) => ({
59
+ subscriber: (currentUserId, targetUserId) => ({
60
60
  type: "channel.subscription.message",
61
61
  version: "1",
62
62
  condition: {
63
- broadcaster_user_id: userId,
63
+ broadcaster_user_id: targetUserId,
64
64
  },
65
65
  }),
66
66
  })
@@ -74,12 +74,12 @@ type ChannelSuspiciousUserMessage = EventConfig<{
74
74
 
75
75
  registerEvent("channel.suspicious_user.message", {
76
76
  scopes: ["moderator:read:suspicious"],
77
- subscriber: (userId) => ({
77
+ subscriber: (currentUserId, targetUserId) => ({
78
78
  type: "channel.suspicious_user.message",
79
79
  version: "1",
80
80
  condition: {
81
- moderator_user_id: userId,
82
- broadcaster_user_id: userId,
81
+ moderator_user_id: currentUserId,
82
+ broadcaster_user_id: targetUserId,
83
83
  },
84
84
  }),
85
85
  })
@@ -44,12 +44,12 @@ type ChannelSuspiciousUserUpdate = EventConfig<{
44
44
 
45
45
  registerEvent("channel.suspicious_user.update", {
46
46
  scopes: ["moderator:read:suspicious"],
47
- subscriber: (userId) => ({
47
+ subscriber: (currentUserId, targetUserId) => ({
48
48
  type: "channel.suspicious_user.update",
49
49
  version: "1",
50
50
  condition: {
51
- moderator_user_id: userId,
52
- broadcaster_user_id: userId,
51
+ moderator_user_id: currentUserId,
52
+ broadcaster_user_id: targetUserId,
53
53
  },
54
54
  }),
55
55
  })
@@ -40,11 +40,11 @@ type ChannelUnban = EventConfig<{
40
40
 
41
41
  registerEvent("channel.unban", {
42
42
  scopes: ["channel:moderate"],
43
- subscriber: (userId) => ({
43
+ subscriber: (currentUserId, targetUserId) => ({
44
44
  type: "channel.unban",
45
45
  version: "1",
46
46
  condition: {
47
- broadcaster_user_id: userId,
47
+ broadcaster_user_id: targetUserId,
48
48
  },
49
49
  }),
50
50
  })
@@ -42,12 +42,12 @@ type ChannelUnbanRequestCreate = EventConfig<{
42
42
 
43
43
  registerEvent("channel.unban_request.create", {
44
44
  scopes: ["moderator:manage:unban", "moderator:read:unban"],
45
- subscriber: (userId) => ({
45
+ subscriber: (currentUserId, targetUserId) => ({
46
46
  type: "channel.unban_request.create",
47
47
  version: "1",
48
48
  condition: {
49
- moderator_user_id: userId,
50
- broadcaster_user_id: userId,
49
+ moderator_user_id: currentUserId,
50
+ broadcaster_user_id: targetUserId,
51
51
  },
52
52
  }),
53
53
  })
@@ -53,12 +53,12 @@ type ChannelUnbanRequestResolve = EventConfig<{
53
53
 
54
54
  registerEvent("channel.unban_request.resolve", {
55
55
  scopes: ["moderator:manage:unban", "moderator:read:unban"],
56
- subscriber: (userId) => ({
56
+ subscriber: (currentUserId, targetUserId) => ({
57
57
  type: "channel.unban_request.resolve",
58
58
  version: "1",
59
59
  condition: {
60
- moderator_user_id: userId,
61
- broadcaster_user_id: userId,
60
+ moderator_user_id: currentUserId,
61
+ broadcaster_user_id: targetUserId,
62
62
  },
63
63
  }),
64
64
  })
@@ -38,11 +38,11 @@ type ChannelUpdate = EventConfig<{
38
38
 
39
39
  registerEvent("channel.update", {
40
40
  scopes: [],
41
- subscriber: (userId) => ({
41
+ subscriber: (currentUserId, targetUserId) => ({
42
42
  type: "channel.update",
43
43
  version: "2",
44
44
  condition: {
45
- broadcaster_user_id: userId,
45
+ broadcaster_user_id: targetUserId,
46
46
  },
47
47
  }),
48
48
  })
@@ -34,11 +34,11 @@ type ChannelVipAdd = EventConfig<{
34
34
 
35
35
  registerEvent("channel.vip.add", {
36
36
  scopes: ["channel:manage:vips", "channel:read:vips"],
37
- subscriber: (userId) => ({
37
+ subscriber: (currentUserId, targetUserId) => ({
38
38
  type: "channel.vip.add",
39
39
  version: "1",
40
40
  condition: {
41
- broadcaster_user_id: userId,
41
+ broadcaster_user_id: targetUserId,
42
42
  },
43
43
  }),
44
44
  })
@@ -34,11 +34,11 @@ type ChannelVipRemove = EventConfig<{
34
34
 
35
35
  registerEvent("channel.vip.remove", {
36
36
  scopes: ["channel:manage:vips", "channel:read:vips"],
37
- subscriber: (userId) => ({
37
+ subscriber: (currentUserId, targetUserId) => ({
38
38
  type: "channel.vip.remove",
39
39
  version: "1",
40
40
  condition: {
41
- broadcaster_user_id: userId,
41
+ broadcaster_user_id: targetUserId,
42
42
  },
43
43
  }),
44
44
  })
@@ -36,12 +36,12 @@ type ChannelWarningAcknowledge = EventConfig<{
36
36
 
37
37
  registerEvent("channel.warning.acknowledge", {
38
38
  scopes: ["moderator:manage:warnings", "moderator:read:warnings"],
39
- subscriber: (userId) => ({
39
+ subscriber: (currentUserId, targetUserId) => ({
40
40
  type: "channel.warning.acknowledge",
41
41
  version: "1",
42
42
  condition: {
43
- broadcaster_user_id: userId,
44
- moderator_user_id: userId,
43
+ broadcaster_user_id: targetUserId,
44
+ moderator_user_id: currentUserId,
45
45
  },
46
46
  }),
47
47
  })
@@ -46,12 +46,12 @@ type ChannelWarningSend = EventConfig<{
46
46
 
47
47
  registerEvent("channel.warning.send", {
48
48
  scopes: ["moderator:manage:warnings", "moderator:read:warnings"],
49
- subscriber: (userId) => ({
49
+ subscriber: (currentUserId, targetUserId) => ({
50
50
  type: "channel.warning.send",
51
51
  version: "1",
52
52
  condition: {
53
- broadcaster_user_id: userId,
54
- moderator_user_id: userId,
53
+ broadcaster_user_id: targetUserId,
54
+ moderator_user_id: currentUserId,
55
55
  },
56
56
  }),
57
57
  })
@@ -28,11 +28,11 @@ type StreamOffline = EventConfig<{
28
28
 
29
29
  registerEvent("stream.offline", {
30
30
  scopes: [],
31
- subscriber: (userId) => ({
31
+ subscriber: (currentUserId, targetUserId) => ({
32
32
  type: "stream.offline",
33
33
  version: "1",
34
34
  condition: {
35
- broadcaster_user_id: userId,
35
+ broadcaster_user_id: targetUserId,
36
36
  },
37
37
  }),
38
38
  })
@@ -34,11 +34,11 @@ type StreamOnline = EventConfig<{
34
34
 
35
35
  registerEvent("stream.online", {
36
36
  scopes: [],
37
- subscriber: (userId) => ({
37
+ subscriber: (currentUserId, targetUserId) => ({
38
38
  type: "stream.online",
39
39
  version: "1",
40
40
  condition: {
41
- broadcaster_user_id: userId,
41
+ broadcaster_user_id: targetUserId,
42
42
  },
43
43
  }),
44
44
  })
@@ -38,11 +38,11 @@ type UserUpdate = EventConfig<{
38
38
 
39
39
  registerEvent("user.update", {
40
40
  scopes: ["user:read:email"],
41
- subscriber: (userId) => ({
41
+ subscriber: (currentUserId, targetUserId) => ({
42
42
  type: "user.update",
43
43
  version: "1",
44
44
  condition: {
45
- user_id: userId,
45
+ user_id: currentUserId,
46
46
  },
47
47
  }),
48
48
  })
@@ -41,11 +41,11 @@ type UserWhisperMessage = EventConfig<{
41
41
 
42
42
  registerEvent("user.whisper.message", {
43
43
  scopes: ["user:manage:whispers", "user:read:whispers"],
44
- subscriber: (userId) => ({
44
+ subscriber: (currentUserId, targetUserId) => ({
45
45
  type: "user.whisper.message",
46
46
  version: "1",
47
47
  condition: {
48
- user_id: userId,
48
+ user_id: currentUserId,
49
49
  },
50
50
  }),
51
51
  })
@@ -32,7 +32,10 @@ export type EventConfig<
32
32
  const events: {
33
33
  [Type in EventType]?: {
34
34
  scopes: string[]
35
- subscriber: (userId: string) => EventConfigs[Type]["Subscription"]
35
+ subscriber: (
36
+ currentUserId: string,
37
+ targetUserId: string,
38
+ ) => EventConfigs[Type]["Subscription"]
36
39
  }
37
40
  } = {}
38
41
 
@@ -40,7 +43,10 @@ export function registerEvent<Type extends EventType>(
40
43
  type: Type,
41
44
  config: {
42
45
  scopes: string[]
43
- subscriber: (userId: string) => EventConfigs[Type]["Subscription"]
46
+ subscriber: (
47
+ currentUserId: string,
48
+ targetUserId: string,
49
+ ) => EventConfigs[Type]["Subscription"]
44
50
  },
45
51
  ): void {
46
52
  // @ts-expect-error too complex for typescript
@@ -49,9 +55,10 @@ export function registerEvent<Type extends EventType>(
49
55
 
50
56
  export function buildSubscription<Type extends EventType>(
51
57
  type: Type,
52
- userId: string,
58
+ currentUserId: string,
59
+ targetUserId: string,
53
60
  ): EventConfigs[Type]["Subscription"] {
54
61
  if (!events[type]) throw new Error(`Event ${type} is not registered.`)
55
62
 
56
- return events[type].subscriber(userId)
63
+ return events[type].subscriber(currentUserId, targetUserId)
57
64
  }