@lumiastream/lumia-types 3.3.7 → 3.3.9

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.
@@ -1160,6 +1160,21 @@ export declare enum SystemVariables {
1160
1160
  SESSION_START_DATE = "session_start_date",
1161
1161
  /** Last overlay screenshot path. Use as {{last_overlay_screenshot_path}}. */
1162
1162
  LAST_OVERLAY_SCREENSHOT_PATH = "last_overlay_screenshot_path",
1163
+ /**
1164
+ * Streamer's display name. Platform-agnostic — resolves to the streamer's
1165
+ * username on whichever platform is currently connected, preferring the
1166
+ * primary platform when multiple are connected. Use as {{streamer}}.
1167
+ *
1168
+ * Resolution order in the renderer: twitch_username → kick_username →
1169
+ * youtube_username → facebook_username → tiktok_username, falling back to
1170
+ * '' when no platform is connected. Re-evaluated whenever any of those
1171
+ * underlying username variables changes.
1172
+ *
1173
+ * Useful for templates that want to say "{{streamer}}'s overlay" without
1174
+ * knowing which platform the streamer is on — and for SE imports which
1175
+ * use the same `{streamer}` token as a platform-agnostic placeholder.
1176
+ */
1177
+ STREAMER = "streamer",
1163
1178
  /** Last player to trigger a game. Use as {{game_last_player}}. */
1164
1179
  GAME_LAST_PLAYER = "game_last_player",
1165
1180
  /** Lumia app uptime. Use as {{lumia_uptime}}. */
@@ -1160,6 +1160,21 @@ export declare enum SystemVariables {
1160
1160
  SESSION_START_DATE = "session_start_date",
1161
1161
  /** Last overlay screenshot path. Use as {{last_overlay_screenshot_path}}. */
1162
1162
  LAST_OVERLAY_SCREENSHOT_PATH = "last_overlay_screenshot_path",
1163
+ /**
1164
+ * Streamer's display name. Platform-agnostic — resolves to the streamer's
1165
+ * username on whichever platform is currently connected, preferring the
1166
+ * primary platform when multiple are connected. Use as {{streamer}}.
1167
+ *
1168
+ * Resolution order in the renderer: twitch_username → kick_username →
1169
+ * youtube_username → facebook_username → tiktok_username, falling back to
1170
+ * '' when no platform is connected. Re-evaluated whenever any of those
1171
+ * underlying username variables changes.
1172
+ *
1173
+ * Useful for templates that want to say "{{streamer}}'s overlay" without
1174
+ * knowing which platform the streamer is on — and for SE imports which
1175
+ * use the same `{streamer}` token as a platform-agnostic placeholder.
1176
+ */
1177
+ STREAMER = "streamer",
1163
1178
  /** Last player to trigger a game. Use as {{game_last_player}}. */
1164
1179
  GAME_LAST_PLAYER = "game_last_player",
1165
1180
  /** Lumia app uptime. Use as {{lumia_uptime}}. */
@@ -1,4 +1,18 @@
1
1
  import { LumiaAlertValues } from './activity.types.js';
2
+ /**
3
+ * Eventlist categories. The eventlist module uses these as a *blacklist* via
4
+ * `content.filters` — any category listed there is hidden from the rendered
5
+ * feed (and so anything NOT listed is shown). `OTHERS` is the catch-all for
6
+ * stream-management / administrative events that aren't tied to a viewer
7
+ * action (poll progress, stream live/offline, OBS scene switches, etc.).
8
+ *
9
+ * When adding a new value here, mirror it in:
10
+ * - `ALL_LUMIA_EVENTLIST_CATEGORIES` in Lumia-UI's SE importer
11
+ * - the `ALL_EVENT_CATEGORIES` constant in Overlay-UI's `layer.actions.ts`
12
+ * (labelmarquee branch)
13
+ * Otherwise category-scoped widgets (`labelmarquee`, SE `*-recent` imports)
14
+ * leak the new category through.
15
+ */
2
16
  export var LumiaEventListTypes;
3
17
  (function (LumiaEventListTypes) {
4
18
  LumiaEventListTypes["REDEMPTION"] = "redemption";
@@ -25,104 +39,294 @@ export var LumiaEventListTypes;
25
39
  LumiaEventListTypes["RAFFLE"] = "raffles";
26
40
  LumiaEventListTypes["OTHERS"] = "others";
27
41
  })(LumiaEventListTypes || (LumiaEventListTypes = {}));
42
+ /**
43
+ * Categorization map from `LumiaAlertValues` → `LumiaEventListTypes`. Drives
44
+ * eventlist filtering: an alert that's missing from this map is treated as
45
+ * "unmapped" and will not be hidden by any category-based filter (it falls
46
+ * through to OTHERS only if OTHERS is allowed). Historically this caused
47
+ * unrelated alerts (e.g. Throne purchases) to leak into category-scoped
48
+ * marquees like "Recent Subscribers", because the missing mapping made the
49
+ * filtering logic's blacklist check pass.
50
+ *
51
+ * Policy:
52
+ * - Every alert in `LumiaAlertValues` should appear here. If an alert isn't
53
+ * viewer-facing (stream lifecycle, OBS/SLOBS/Meld events, music players,
54
+ * VTube Studio, Pulse health, polls/predictions/goals progress) it maps
55
+ * to OTHERS, never silently to a "real" category.
56
+ * - Categorize by the *viewer's* intent, not the underlying payload shape.
57
+ * A "subscription expired" event is administrative, not a new sub →
58
+ * OTHERS, not SUBSCRIBERS. A giveaway-started notice is admin → OTHERS.
59
+ * A Throne / Fourthwall shop gift purchase is a viewer buying something
60
+ * for the streamer → PURCHASES.
61
+ * - Session-counter alerts (e.g. TWITCH_SESSION_FOLLOWERS) mirror the
62
+ * category of their per-event cousin (FOLLOWER) so a counter widget can
63
+ * reuse the same category filter.
64
+ *
65
+ * Grouped by platform / source for review; ordering within groups follows
66
+ * the enum declaration in `activity.types.ts`.
67
+ */
28
68
  export const LumiaMapAlertTypeToEventListType = {
69
+ // --- Lumia Stream native ---
29
70
  [LumiaAlertValues.LUMIASTREAM_DONATION]: LumiaEventListTypes.DONATION,
30
- [LumiaAlertValues.DONORDRIVE_DONATION]: LumiaEventListTypes.DONATION,
31
- [LumiaAlertValues.EXTRALIFE_DONATION]: LumiaEventListTypes.DONATION,
71
+ [LumiaAlertValues.LUMIASTREAM_LUMIA_OPENED]: LumiaEventListTypes.OTHERS,
72
+ [LumiaAlertValues.LUMIASTREAM_LUMIA_CLOSED]: LumiaEventListTypes.OTHERS,
73
+ [LumiaAlertValues.LUMIASTREAM_STREAMMODE_ON]: LumiaEventListTypes.OTHERS,
74
+ [LumiaAlertValues.LUMIASTREAM_STREAMMODE_OFF]: LumiaEventListTypes.OTHERS,
32
75
  [LumiaAlertValues.LUMIASTREAM_RAFFLE_START]: LumiaEventListTypes.RAFFLE,
33
76
  [LumiaAlertValues.LUMIASTREAM_RAFFLE_STOP]: LumiaEventListTypes.RAFFLE,
34
77
  [LumiaAlertValues.LUMIASTREAM_RAFFLE_WINNER]: LumiaEventListTypes.RAFFLE,
78
+ // Spinwheel / Roulette / Slots winners are giveaway-style outcomes —
79
+ // align them with the RAFFLE category so a "Recent Giveaways" widget
80
+ // can pick them up alongside actual raffles.
81
+ [LumiaAlertValues.LUMIASTREAM_SPINWHEEL_WINNER]: LumiaEventListTypes.RAFFLE,
82
+ [LumiaAlertValues.LUMIASTREAM_ROULETTE_WINNER]: LumiaEventListTypes.RAFFLE,
83
+ [LumiaAlertValues.LUMIASTREAM_SLOTS_WINNER]: LumiaEventListTypes.RAFFLE,
35
84
  [LumiaAlertValues.LUMIASTREAM_TOURNAMENT_START]: LumiaEventListTypes.OTHERS,
36
85
  [LumiaAlertValues.LUMIASTREAM_TOURNAMENT_END]: LumiaEventListTypes.OTHERS,
37
86
  [LumiaAlertValues.LUMIASTREAM_TOURNAMENT_WINNER]: LumiaEventListTypes.OTHERS,
38
- [LumiaAlertValues.FACEBOOK_FAN]: LumiaEventListTypes.FANS,
87
+ [LumiaAlertValues.LUMIASTREAM_POLL_STARTED]: LumiaEventListTypes.OTHERS,
88
+ [LumiaAlertValues.LUMIASTREAM_POLL_PROGRESSED]: LumiaEventListTypes.OTHERS,
89
+ [LumiaAlertValues.LUMIASTREAM_POLL_ENDED]: LumiaEventListTypes.OTHERS,
90
+ [LumiaAlertValues.LUMIASTREAM_VIEWERQUEUE_STARTED]: LumiaEventListTypes.OTHERS,
91
+ [LumiaAlertValues.LUMIASTREAM_VIEWERQUEUE_ENDED]: LumiaEventListTypes.OTHERS,
92
+ [LumiaAlertValues.LUMIASTREAM_VIEWER_ACHIEVEMENT]: LumiaEventListTypes.OTHERS,
93
+ [LumiaAlertValues.LUMIASTREAM_VARIABLE_CHANGED]: LumiaEventListTypes.OTHERS,
94
+ // --- Twitch ---
95
+ [LumiaAlertValues.TWITCH_EXTENSION]: LumiaEventListTypes.EXTENSION,
96
+ [LumiaAlertValues.TWITCH_POINTS]: LumiaEventListTypes.POINTS,
97
+ [LumiaAlertValues.TWITCH_STREAM_LIVE]: LumiaEventListTypes.OTHERS,
98
+ [LumiaAlertValues.TWITCH_STREAM_OFFLINE]: LumiaEventListTypes.OTHERS,
99
+ [LumiaAlertValues.TWITCH_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
100
+ [LumiaAlertValues.TWITCH_ENTRANCE]: LumiaEventListTypes.OTHERS,
101
+ [LumiaAlertValues.TWITCH_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
102
+ [LumiaAlertValues.TWITCH_SESSION_FOLLOWERS]: LumiaEventListTypes.FOLLOWER,
103
+ [LumiaAlertValues.TWITCH_SUBSCRIBER]: LumiaEventListTypes.SUBSCRIBERS,
104
+ [LumiaAlertValues.TWITCH_SESSION_SUBS]: LumiaEventListTypes.SUBSCRIBERS,
105
+ [LumiaAlertValues.TWITCH_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
106
+ [LumiaAlertValues.TWITCH_SESSION_GIFT_SUBSCRIPTIONS]: LumiaEventListTypes.GIFTS,
107
+ [LumiaAlertValues.TWITCH_RAID]: LumiaEventListTypes.RAIDS,
108
+ [LumiaAlertValues.TWITCH_RAID_OUT]: LumiaEventListTypes.RAIDS,
109
+ [LumiaAlertValues.TWITCH_BITS]: LumiaEventListTypes.BITS,
110
+ [LumiaAlertValues.TWITCH_BITS_COMBO]: LumiaEventListTypes.BITS,
111
+ [LumiaAlertValues.TWITCH_SESSION_BITS]: LumiaEventListTypes.BITS,
112
+ // Channel-point redemptions used to be miscategorized as PURCHASES on the
113
+ // Streamlabs alert; REDEMPTION is the dedicated category for this event
114
+ // shape and is what category-filtered widgets should target.
115
+ [LumiaAlertValues.TWITCH_REDEMPTION]: LumiaEventListTypes.REDEMPTION,
116
+ [LumiaAlertValues.TWITCH_HYPETRAIN_STARTED]: LumiaEventListTypes.HYPETRAIN,
117
+ [LumiaAlertValues.TWITCH_HYPETRAIN_PROGRESSED]: LumiaEventListTypes.HYPETRAIN,
118
+ [LumiaAlertValues.TWITCH_HYPETRAIN_LEVEL_PROGRESSED]: LumiaEventListTypes.HYPETRAIN,
119
+ [LumiaAlertValues.TWITCH_HYPETRAIN_ENDED]: LumiaEventListTypes.HYPETRAIN,
120
+ [LumiaAlertValues.TWITCH_POLL_STARTED]: LumiaEventListTypes.OTHERS,
121
+ [LumiaAlertValues.TWITCH_POLL_PROGRESSED]: LumiaEventListTypes.OTHERS,
122
+ [LumiaAlertValues.TWITCH_POLL_ENDED]: LumiaEventListTypes.OTHERS,
123
+ [LumiaAlertValues.TWITCH_PREDICTION_STARTED]: LumiaEventListTypes.OTHERS,
124
+ [LumiaAlertValues.TWITCH_PREDICTION_PROGRESSED]: LumiaEventListTypes.OTHERS,
125
+ [LumiaAlertValues.TWITCH_PREDICTION_LOCKED]: LumiaEventListTypes.OTHERS,
126
+ [LumiaAlertValues.TWITCH_PREDICTION_ENDED]: LumiaEventListTypes.OTHERS,
127
+ [LumiaAlertValues.TWITCH_GOAL_STARTED]: LumiaEventListTypes.OTHERS,
128
+ [LumiaAlertValues.TWITCH_GOAL_PROGRESSED]: LumiaEventListTypes.OTHERS,
129
+ [LumiaAlertValues.TWITCH_GOAL_ENDED]: LumiaEventListTypes.OTHERS,
130
+ [LumiaAlertValues.TWITCH_CHARITY_DONATION]: LumiaEventListTypes.DONATION,
131
+ [LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_STARTED]: LumiaEventListTypes.OTHERS,
132
+ [LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_PROGRESSED]: LumiaEventListTypes.OTHERS,
133
+ [LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_STOPPED]: LumiaEventListTypes.OTHERS,
134
+ [LumiaAlertValues.TWITCH_CATEGORY]: LumiaEventListTypes.OTHERS,
135
+ [LumiaAlertValues.TWITCH_CLIP]: LumiaEventListTypes.OTHERS,
136
+ [LumiaAlertValues.TWITCH_CHANNEL_JOIN]: LumiaEventListTypes.OTHERS,
137
+ [LumiaAlertValues.TWITCH_CHANNEL_LEAVE]: LumiaEventListTypes.OTHERS,
138
+ [LumiaAlertValues.TWITCH_BANNED]: LumiaEventListTypes.OTHERS,
139
+ [LumiaAlertValues.TWITCH_TIMEOUT]: LumiaEventListTypes.OTHERS,
140
+ [LumiaAlertValues.TWITCH_TIMEOUT_OVER]: LumiaEventListTypes.OTHERS,
141
+ [LumiaAlertValues.TWITCH_SHOUTOUT_RECEIVE]: LumiaEventListTypes.OTHERS,
142
+ [LumiaAlertValues.TWITCH_AD_STARTED]: LumiaEventListTypes.OTHERS,
143
+ [LumiaAlertValues.TWITCH_AD_STOPPED]: LumiaEventListTypes.OTHERS,
144
+ [LumiaAlertValues.TWITCH_WATCH_STREAK]: LumiaEventListTypes.OTHERS,
145
+ [LumiaAlertValues.TWITCH_POWERUPS]: LumiaEventListTypes.BITS,
146
+ [LumiaAlertValues.TWITCH_POWERUPS_POINTS]: LumiaEventListTypes.POINTS,
147
+ // --- YouTube ---
148
+ [LumiaAlertValues.YOUTUBE_STREAM_LIVE]: LumiaEventListTypes.OTHERS,
149
+ [LumiaAlertValues.YOUTUBE_STREAM_OFFLINE]: LumiaEventListTypes.OTHERS,
150
+ [LumiaAlertValues.YOUTUBE_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
151
+ [LumiaAlertValues.YOUTUBE_ENTRANCE]: LumiaEventListTypes.OTHERS,
152
+ // YouTube "subscribers" are free follows in YT-speak — categorize as
153
+ // FOLLOWER so a "Recent Followers" widget unifies Twitch follows + YT
154
+ // subs. Paid memberships are categorized as SUBSCRIBERS below.
155
+ [LumiaAlertValues.YOUTUBE_SUBSCRIBER]: LumiaEventListTypes.FOLLOWER,
156
+ [LumiaAlertValues.YOUTUBE_SESSION_SUBS]: LumiaEventListTypes.FOLLOWER,
157
+ [LumiaAlertValues.YOUTUBE_MEMBER]: LumiaEventListTypes.SUBSCRIBERS,
158
+ [LumiaAlertValues.YOUTUBE_SESSION_MEMBERS]: LumiaEventListTypes.SUBSCRIBERS,
159
+ [LumiaAlertValues.YOUTUBE_GIFT_MEMBERS]: LumiaEventListTypes.GIFTS,
160
+ [LumiaAlertValues.YOUTUBE_SESSION_GIFT_MEMBERS]: LumiaEventListTypes.GIFTS,
161
+ [LumiaAlertValues.YOUTUBE_SUPERCHAT]: LumiaEventListTypes.SUPERCHATS,
162
+ [LumiaAlertValues.YOUTUBE_SESSION_SUPERCHATS]: LumiaEventListTypes.SUPERCHATS,
163
+ [LumiaAlertValues.YOUTUBE_SUPERSTICKER]: LumiaEventListTypes.SUPERSTICKERS,
164
+ [LumiaAlertValues.YOUTUBE_SESSION_SUPERSTICKERS]: LumiaEventListTypes.SUPERSTICKERS,
165
+ [LumiaAlertValues.YOUTUBE_GIFTS]: LumiaEventListTypes.GIFTS,
166
+ [LumiaAlertValues.YOUTUBE_SESSION_GIFTS]: LumiaEventListTypes.GIFTS,
167
+ [LumiaAlertValues.YOUTUBE_LIKE]: LumiaEventListTypes.LIKES,
168
+ [LumiaAlertValues.YOUTUBE_VIEWERS]: LumiaEventListTypes.OTHERS,
169
+ // --- Facebook ---
170
+ [LumiaAlertValues.FACEBOOK_STREAM_LIVE]: LumiaEventListTypes.OTHERS,
171
+ [LumiaAlertValues.FACEBOOK_STREAM_OFFLINE]: LumiaEventListTypes.OTHERS,
172
+ [LumiaAlertValues.FACEBOOK_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
173
+ [LumiaAlertValues.FACEBOOK_ENTRANCE]: LumiaEventListTypes.OTHERS,
39
174
  [LumiaAlertValues.FACEBOOK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
40
- [LumiaAlertValues.FACEBOOK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
41
175
  [LumiaAlertValues.FACEBOOK_REACTION]: LumiaEventListTypes.LIKES,
42
- [LumiaAlertValues.FACEBOOK_SHARE]: LumiaEventListTypes.SHARES,
43
176
  [LumiaAlertValues.FACEBOOK_STAR]: LumiaEventListTypes.STARS,
177
+ // FB Supporters are paid subscriptions, FB Fans are free fan-status, FB
178
+ // Gift Subscriptions are gifted Supporters → keep all three in their
179
+ // distinct categories.
44
180
  [LumiaAlertValues.FACEBOOK_SUPPORT]: LumiaEventListTypes.SUBSCRIBERS,
45
- [LumiaAlertValues.KOFI_COMMISSION]: LumiaEventListTypes.PURCHASES,
46
- [LumiaAlertValues.KOFI_DONATION]: LumiaEventListTypes.DONATION,
47
- [LumiaAlertValues.KOFI_SHOPORDER]: LumiaEventListTypes.PURCHASES,
48
- [LumiaAlertValues.KOFI_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
49
- [LumiaAlertValues.FOURTHWALL_DONATION]: LumiaEventListTypes.DONATION,
50
- [LumiaAlertValues.FOURTHWALL_SHOPORDER]: LumiaEventListTypes.PURCHASES,
51
- [LumiaAlertValues.FOURTHWALL_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
52
- [LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_CHANGED]: LumiaEventListTypes.SUBSCRIBERS,
53
- [LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_EXPIRED]: LumiaEventListTypes.SUBSCRIBERS,
54
- [LumiaAlertValues.FOURTHWALL_GIFTPURCHASE]: LumiaEventListTypes.PURCHASES,
55
- [LumiaAlertValues.FOURTHWALL_GIVEAWAY_STARTED]: LumiaEventListTypes.GIFTS,
56
- [LumiaAlertValues.FOURTHWALL_GIVEAWAY_ENDED]: LumiaEventListTypes.GIFTS,
57
- [LumiaAlertValues.FOURTHWALL_THANKYOU_SENT]: LumiaEventListTypes.OTHERS,
58
- [LumiaAlertValues.FOURTHWALL_NEWSLETTER_SUBSCRIBED]: LumiaEventListTypes.OTHERS,
59
- [LumiaAlertValues.PATREON_PLEDGE]: LumiaEventListTypes.SUBSCRIBERS,
60
- [LumiaAlertValues.STREAMELEMENTS_DONATION]: LumiaEventListTypes.DONATION,
61
- [LumiaAlertValues.STREAMLABS_CHARITY]: LumiaEventListTypes.DONATION,
62
- [LumiaAlertValues.STREAMLABS_DONATION]: LumiaEventListTypes.DONATION,
63
- [LumiaAlertValues.STREAMLABS_MERCH]: LumiaEventListTypes.PURCHASES,
64
- [LumiaAlertValues.STREAMLABS_PRIMEGIFT]: LumiaEventListTypes.GIFTS,
65
- [LumiaAlertValues.STREAMLABS_REDEMPTION]: LumiaEventListTypes.PURCHASES,
181
+ [LumiaAlertValues.FACEBOOK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
182
+ [LumiaAlertValues.FACEBOOK_SHARE]: LumiaEventListTypes.SHARES,
183
+ [LumiaAlertValues.FACEBOOK_FAN]: LumiaEventListTypes.FANS,
184
+ // --- TikTok ---
185
+ [LumiaAlertValues.TIKTOK_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
186
+ [LumiaAlertValues.TIKTOK_ENTRANCE]: LumiaEventListTypes.OTHERS,
66
187
  [LumiaAlertValues.TIKTOK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
67
- [LumiaAlertValues.TIKTOK_GIFT]: LumiaEventListTypes.GIFTS,
68
188
  [LumiaAlertValues.TIKTOK_LIKE]: LumiaEventListTypes.LIKES,
69
189
  [LumiaAlertValues.TIKTOK_TOTAL_LIKES]: LumiaEventListTypes.LIKES,
70
- [LumiaAlertValues.TIKTOK_SHARE]: LumiaEventListTypes.SHARES,
190
+ [LumiaAlertValues.TIKTOK_GIFT]: LumiaEventListTypes.GIFTS,
191
+ // TikTok Super Fan = paid membership (subscriber-equivalent). Super Fan
192
+ // BOX is a separate gift-style event where a viewer receives a fan-only
193
+ // drop — categorize as GIFTS to keep the SUBSCRIBERS feed sub-only.
71
194
  [LumiaAlertValues.TIKTOK_SUPER_FAN]: LumiaEventListTypes.SUBSCRIBERS,
195
+ [LumiaAlertValues.TIKTOK_SUPER_FAN_BOX]: LumiaEventListTypes.GIFTS,
72
196
  [LumiaAlertValues.TIKTOK_TREASURE_CHEST]: LumiaEventListTypes.GIFTS,
73
197
  [LumiaAlertValues.TIKTOK_QUESTION]: LumiaEventListTypes.OTHERS,
74
198
  [LumiaAlertValues.TIKTOK_POLL]: LumiaEventListTypes.OTHERS,
75
- [LumiaAlertValues.TIKTOK_SUPER_FAN_BOX]: LumiaEventListTypes.SUBSCRIBERS,
76
199
  [LumiaAlertValues.TIKTOK_SHOP_PURCHASE]: LumiaEventListTypes.PURCHASES,
77
200
  [LumiaAlertValues.TIKTOK_PIN_MESSAGE]: LumiaEventListTypes.OTHERS,
78
201
  [LumiaAlertValues.TIKTOK_BATTLE_START]: LumiaEventListTypes.OTHERS,
79
202
  [LumiaAlertValues.TIKTOK_BATTLE_PROGRESS]: LumiaEventListTypes.OTHERS,
80
203
  [LumiaAlertValues.TIKTOK_BATTLE_END]: LumiaEventListTypes.OTHERS,
204
+ [LumiaAlertValues.TIKTOK_SHARE]: LumiaEventListTypes.SHARES,
205
+ [LumiaAlertValues.TIKTOK_STREAM_END]: LumiaEventListTypes.OTHERS,
206
+ [LumiaAlertValues.TIKTOK_NEW_VIDEO]: LumiaEventListTypes.OTHERS,
207
+ // --- Kick ---
208
+ [LumiaAlertValues.KICK_POINTS]: LumiaEventListTypes.POINTS,
209
+ [LumiaAlertValues.KICK_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
210
+ [LumiaAlertValues.KICK_ENTRANCE]: LumiaEventListTypes.OTHERS,
81
211
  [LumiaAlertValues.KICK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
82
212
  [LumiaAlertValues.KICK_SESSION_FOLLOWERS]: LumiaEventListTypes.FOLLOWER,
83
- [LumiaAlertValues.KICK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
84
- [LumiaAlertValues.KICK_SESSION_GIFT_SUBSCRIPTIONS]: LumiaEventListTypes.GIFTS,
85
213
  [LumiaAlertValues.KICK_SUBSCRIBER]: LumiaEventListTypes.SUBSCRIBERS,
86
214
  [LumiaAlertValues.KICK_SESSION_SUBS]: LumiaEventListTypes.SUBSCRIBERS,
87
- [LumiaAlertValues.TILTIFY_DONATION]: LumiaEventListTypes.DONATION,
88
- [LumiaAlertValues.TIPEEESTREAM_DONATION]: LumiaEventListTypes.DONATION,
89
- [LumiaAlertValues.TREATSTREAM_TREAT]: LumiaEventListTypes.PURCHASES,
90
- [LumiaAlertValues.TWITCH_BITS]: LumiaEventListTypes.BITS,
91
- [LumiaAlertValues.TWITCH_BITS_COMBO]: LumiaEventListTypes.BITS,
92
- [LumiaAlertValues.TWITCH_SESSION_BITS]: LumiaEventListTypes.BITS,
93
- [LumiaAlertValues.TWITCH_POWERUPS]: LumiaEventListTypes.BITS,
94
- [LumiaAlertValues.TWITCH_POWERUPS_POINTS]: LumiaEventListTypes.POINTS,
95
- [LumiaAlertValues.TWITCH_CLIP]: LumiaEventListTypes.OTHERS,
96
- [LumiaAlertValues.TWITCH_EXTENSION]: LumiaEventListTypes.EXTENSION,
97
- [LumiaAlertValues.TWITCH_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
98
- [LumiaAlertValues.TWITCH_SESSION_FOLLOWERS]: LumiaEventListTypes.FOLLOWER,
99
- [LumiaAlertValues.TWITCH_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
100
- [LumiaAlertValues.TWITCH_SESSION_GIFT_SUBSCRIPTIONS]: LumiaEventListTypes.GIFTS,
101
- [LumiaAlertValues.TWITCH_HYPETRAIN_STARTED]: LumiaEventListTypes.HYPETRAIN,
102
- [LumiaAlertValues.TWITCH_POINTS]: LumiaEventListTypes.POINTS,
103
- [LumiaAlertValues.KICK_POINTS]: LumiaEventListTypes.POINTS,
104
- [LumiaAlertValues.TWITCH_RAID]: LumiaEventListTypes.RAIDS,
105
- [LumiaAlertValues.TWITCH_RAID_OUT]: LumiaEventListTypes.RAIDS,
215
+ [LumiaAlertValues.KICK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
216
+ [LumiaAlertValues.KICK_SESSION_GIFT_SUBSCRIPTIONS]: LumiaEventListTypes.GIFTS,
106
217
  [LumiaAlertValues.KICK_KICKS]: LumiaEventListTypes.KICKS,
107
218
  [LumiaAlertValues.KICK_SESSION_KICKS]: LumiaEventListTypes.KICKS,
108
219
  [LumiaAlertValues.KICK_HOST]: LumiaEventListTypes.HOSTS,
109
- [LumiaAlertValues.TWITCH_SHOUTOUT_RECEIVE]: LumiaEventListTypes.OTHERS,
110
- [LumiaAlertValues.TWITCH_SUBSCRIBER]: LumiaEventListTypes.SUBSCRIBERS,
111
- [LumiaAlertValues.TWITCH_SESSION_SUBS]: LumiaEventListTypes.SUBSCRIBERS,
112
- [LumiaAlertValues.TWITCH_CHARITY_DONATION]: LumiaEventListTypes.DONATION,
113
- [LumiaAlertValues.TWITCH_AD_STARTED]: LumiaEventListTypes.OTHERS,
114
- [LumiaAlertValues.TWITCH_AD_STOPPED]: LumiaEventListTypes.OTHERS,
115
- [LumiaAlertValues.TWITCH_WATCH_STREAK]: LumiaEventListTypes.OTHERS,
220
+ [LumiaAlertValues.KICK_BANNED]: LumiaEventListTypes.OTHERS,
221
+ [LumiaAlertValues.KICK_UNBANNED]: LumiaEventListTypes.OTHERS,
222
+ // --- Discord ---
223
+ [LumiaAlertValues.DISCORD_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
224
+ [LumiaAlertValues.DISCORD_ENTRANCE]: LumiaEventListTypes.OTHERS,
225
+ // --- Third-party donation / commerce platforms ---
226
+ [LumiaAlertValues.STREAMLABS_DONATION]: LumiaEventListTypes.DONATION,
227
+ [LumiaAlertValues.STREAMLABS_CHARITY]: LumiaEventListTypes.DONATION,
228
+ [LumiaAlertValues.STREAMLABS_MERCH]: LumiaEventListTypes.PURCHASES,
229
+ // Streamlabs Redemption was previously miscategorized as PURCHASES. It's
230
+ // a Streamlabs loyalty-points redemption — the dedicated REDEMPTION
231
+ // category is the correct home, mirroring TWITCH_REDEMPTION.
232
+ [LumiaAlertValues.STREAMLABS_REDEMPTION]: LumiaEventListTypes.REDEMPTION,
233
+ [LumiaAlertValues.STREAMLABS_PRIMEGIFT]: LumiaEventListTypes.GIFTS,
234
+ [LumiaAlertValues.STREAMELEMENTS_DONATION]: LumiaEventListTypes.DONATION,
235
+ [LumiaAlertValues.EXTRALIFE_DONATION]: LumiaEventListTypes.DONATION,
236
+ [LumiaAlertValues.DONORDRIVE_DONATION]: LumiaEventListTypes.DONATION,
237
+ [LumiaAlertValues.TILTIFY_DONATION]: LumiaEventListTypes.DONATION,
238
+ // Throne is a viewer wishlist platform — a "gift purchase" is a viewer
239
+ // buying an item off the streamer's wishlist. Treat all three Throne
240
+ // events as PURCHASES so they don't leak into the SUBSCRIBERS feed (the
241
+ // historical bug: Throne was unmapped, which made the eventlist filter's
242
+ // blacklist check silently pass on category-scoped widgets).
243
+ [LumiaAlertValues.THRONE_GIFT_PURCHASE]: LumiaEventListTypes.PURCHASES,
244
+ [LumiaAlertValues.THRONE_CONTRIBUTION_PURCHASE]: LumiaEventListTypes.PURCHASES,
245
+ [LumiaAlertValues.THRONE_GIFT_CROWDFUNDED]: LumiaEventListTypes.PURCHASES,
246
+ [LumiaAlertValues.TIPEEESTREAM_DONATION]: LumiaEventListTypes.DONATION,
247
+ [LumiaAlertValues.TREATSTREAM_TREAT]: LumiaEventListTypes.PURCHASES,
248
+ [LumiaAlertValues.PATREON_PLEDGE]: LumiaEventListTypes.SUBSCRIBERS,
249
+ [LumiaAlertValues.KOFI_DONATION]: LumiaEventListTypes.DONATION,
250
+ [LumiaAlertValues.KOFI_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
251
+ [LumiaAlertValues.KOFI_COMMISSION]: LumiaEventListTypes.PURCHASES,
252
+ [LumiaAlertValues.KOFI_SHOPORDER]: LumiaEventListTypes.PURCHASES,
253
+ [LumiaAlertValues.FOURTHWALL_SHOPORDER]: LumiaEventListTypes.PURCHASES,
254
+ [LumiaAlertValues.FOURTHWALL_DONATION]: LumiaEventListTypes.DONATION,
255
+ [LumiaAlertValues.FOURTHWALL_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
256
+ [LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_CHANGED]: LumiaEventListTypes.SUBSCRIBERS,
257
+ // `SUBSCRIPTION_EXPIRED` is an admin notice that a sub lapsed — NOT a new
258
+ // subscriber. Moving to OTHERS prevents stale "Recent Subscribers"
259
+ // entries from showing canceled subs.
260
+ [LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_EXPIRED]: LumiaEventListTypes.OTHERS,
261
+ [LumiaAlertValues.FOURTHWALL_GIFTPURCHASE]: LumiaEventListTypes.PURCHASES,
262
+ // Giveaway lifecycle events are administrative (giveaway started/ended),
263
+ // not actual gifts. Categorize as OTHERS; the Lumia raffle alerts have
264
+ // the RAFFLE category for the winner side.
265
+ [LumiaAlertValues.FOURTHWALL_GIVEAWAY_STARTED]: LumiaEventListTypes.OTHERS,
266
+ [LumiaAlertValues.FOURTHWALL_GIVEAWAY_ENDED]: LumiaEventListTypes.OTHERS,
267
+ [LumiaAlertValues.FOURTHWALL_THANKYOU_SENT]: LumiaEventListTypes.OTHERS,
268
+ [LumiaAlertValues.FOURTHWALL_NEWSLETTER_SUBSCRIBED]: LumiaEventListTypes.OTHERS,
269
+ // --- OBS Studio / Streamlabs OBS / Meld Studio ---
270
+ // All broadcasting-app events are stream-management, never viewer-facing.
271
+ [LumiaAlertValues.OBS_SWITCH_PROFILE]: LumiaEventListTypes.OTHERS,
272
+ [LumiaAlertValues.OBS_SWITCH_SCENE]: LumiaEventListTypes.OTHERS,
273
+ [LumiaAlertValues.OBS_SCENE_ITEM_VISIBILITY]: LumiaEventListTypes.OTHERS,
274
+ [LumiaAlertValues.OBS_SCENE_ITEM_HIDDEN]: LumiaEventListTypes.OTHERS,
275
+ [LumiaAlertValues.OBS_SWITCH_TRANSITION]: LumiaEventListTypes.OTHERS,
276
+ [LumiaAlertValues.OBS_TRANSITION_BEGIN]: LumiaEventListTypes.OTHERS,
277
+ [LumiaAlertValues.OBS_TRANSITION_END]: LumiaEventListTypes.OTHERS,
278
+ [LumiaAlertValues.OBS_STREAM_STARTING]: LumiaEventListTypes.OTHERS,
279
+ [LumiaAlertValues.OBS_STREAM_STOPPING]: LumiaEventListTypes.OTHERS,
280
+ [LumiaAlertValues.OBS_RECORDING_STARTING]: LumiaEventListTypes.OTHERS,
281
+ [LumiaAlertValues.OBS_RECORDING_STOPPING]: LumiaEventListTypes.OTHERS,
282
+ [LumiaAlertValues.OBS_MEDIA_INPUT_PLAYBACK_STARTED]: LumiaEventListTypes.OTHERS,
283
+ [LumiaAlertValues.OBS_MEDIA_INPUT_PLAYBACK_ENDED]: LumiaEventListTypes.OTHERS,
284
+ [LumiaAlertValues.OBS_VIRTUALCAM_STATE_CHANGED]: LumiaEventListTypes.OTHERS,
285
+ [LumiaAlertValues.OBS_SCREENSHOT_SAVED]: LumiaEventListTypes.OTHERS,
286
+ [LumiaAlertValues.OBS_REPLAY_BUFFER_SAVED]: LumiaEventListTypes.OTHERS,
287
+ [LumiaAlertValues.OBS_VERTICAL_BACKTRACK_SAVED]: LumiaEventListTypes.OTHERS,
288
+ [LumiaAlertValues.OBS_VENDOR_EVENT]: LumiaEventListTypes.OTHERS,
289
+ [LumiaAlertValues.SLOBS_SWITCH_SCENE_COLLECTION]: LumiaEventListTypes.OTHERS,
290
+ [LumiaAlertValues.SLOBS_SWITCH_SCENE]: LumiaEventListTypes.OTHERS,
291
+ [LumiaAlertValues.SLOBS_SCENE_ITEM_VISIBILITY]: LumiaEventListTypes.OTHERS,
292
+ [LumiaAlertValues.SLOBS_SCENE_ITEM_HIDDEN]: LumiaEventListTypes.OTHERS,
293
+ [LumiaAlertValues.MELD_STREAM_STARTING]: LumiaEventListTypes.OTHERS,
294
+ [LumiaAlertValues.MELD_STREAM_STOPPING]: LumiaEventListTypes.OTHERS,
295
+ [LumiaAlertValues.MELD_RECORDING_STARTING]: LumiaEventListTypes.OTHERS,
296
+ [LumiaAlertValues.MELD_RECORDING_STOPPING]: LumiaEventListTypes.OTHERS,
297
+ [LumiaAlertValues.MELD_SWITCH_SCENE]: LumiaEventListTypes.OTHERS,
298
+ [LumiaAlertValues.MELD_SWITCH_VERTICAL_SCENE]: LumiaEventListTypes.OTHERS,
299
+ // --- Music players (Spotify / YouTube Music / Now Playing / VLC) ---
300
+ [LumiaAlertValues.SPOTIFY_SWITCH_SONG]: LumiaEventListTypes.OTHERS,
301
+ [LumiaAlertValues.SPOTIFY_SONG_PLAYED]: LumiaEventListTypes.OTHERS,
302
+ [LumiaAlertValues.SPOTIFY_SONG_PAUSED]: LumiaEventListTypes.OTHERS,
303
+ [LumiaAlertValues.YOUTUBEMUSIC_SWITCH_SONG]: LumiaEventListTypes.OTHERS,
304
+ [LumiaAlertValues.YOUTUBEMUSIC_SONG_PLAYED]: LumiaEventListTypes.OTHERS,
305
+ [LumiaAlertValues.YOUTUBEMUSIC_SONG_PAUSED]: LumiaEventListTypes.OTHERS,
306
+ [LumiaAlertValues.NOWPLAYING_SWITCH_SONG]: LumiaEventListTypes.OTHERS,
307
+ [LumiaAlertValues.NOWPLAYING_SONG_PLAYED]: LumiaEventListTypes.OTHERS,
308
+ [LumiaAlertValues.NOWPLAYING_SONG_PAUSED]: LumiaEventListTypes.OTHERS,
309
+ [LumiaAlertValues.VLC_SWITCH_SONG]: LumiaEventListTypes.OTHERS,
310
+ [LumiaAlertValues.VLC_SONG_PLAYED]: LumiaEventListTypes.OTHERS,
311
+ [LumiaAlertValues.VLC_SONG_PAUSED]: LumiaEventListTypes.OTHERS,
312
+ // --- Health / fitness ---
313
+ [LumiaAlertValues.PULSE_HEARTRATE]: LumiaEventListTypes.OTHERS,
314
+ [LumiaAlertValues.PULSE_CALORIES]: LumiaEventListTypes.OTHERS,
315
+ // --- Social media (Twitter / X) ---
116
316
  [LumiaAlertValues.TWITTER_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
117
317
  [LumiaAlertValues.TWITTER_LIKE]: LumiaEventListTypes.LIKES,
118
318
  [LumiaAlertValues.TWITTER_RETWEET]: LumiaEventListTypes.RETWEETS,
319
+ // --- E-commerce ---
119
320
  [LumiaAlertValues.WOOCOMMERCE_ORDER]: LumiaEventListTypes.PURCHASES,
120
- [LumiaAlertValues.YOUTUBE_MEMBER]: LumiaEventListTypes.SUBSCRIBERS,
121
- [LumiaAlertValues.YOUTUBE_SUBSCRIBER]: LumiaEventListTypes.FOLLOWER,
122
- [LumiaAlertValues.YOUTUBE_SUPERCHAT]: LumiaEventListTypes.SUPERCHATS,
123
- [LumiaAlertValues.YOUTUBE_SUPERSTICKER]: LumiaEventListTypes.SUPERSTICKERS,
124
- [LumiaAlertValues.YOUTUBE_GIFTS]: LumiaEventListTypes.GIFTS,
125
- [LumiaAlertValues.YOUTUBE_LIKE]: LumiaEventListTypes.LIKES,
126
- [LumiaAlertValues.YOUTUBE_VIEWERS]: LumiaEventListTypes.OTHERS,
321
+ // --- Other integrations ---
322
+ [LumiaAlertValues.STREAMERBOT_ACTION]: LumiaEventListTypes.OTHERS,
127
323
  [LumiaAlertValues.CROWDCONTROL_EFFECT]: LumiaEventListTypes.OTHERS,
324
+ // --- VTube Studio ---
325
+ [LumiaAlertValues.VTUBESTUDIO_HOTKEY_TRIGGERED]: LumiaEventListTypes.OTHERS,
326
+ [LumiaAlertValues.VTUBESTUDIO_MODEL_LOADED]: LumiaEventListTypes.OTHERS,
327
+ [LumiaAlertValues.VTUBESTUDIO_ANIMATION_START]: LumiaEventListTypes.OTHERS,
328
+ [LumiaAlertValues.VTUBESTUDIO_ANIMATION_END]: LumiaEventListTypes.OTHERS,
329
+ [LumiaAlertValues.VTUBESTUDIO_ITEM_ADDED]: LumiaEventListTypes.OTHERS,
330
+ [LumiaAlertValues.VTUBESTUDIO_ITEM_REMOVED]: LumiaEventListTypes.OTHERS,
331
+ [LumiaAlertValues.VTUBESTUDIO_BACKGROUND_CHANGED]: LumiaEventListTypes.OTHERS,
128
332
  };
@@ -80,6 +80,21 @@ export var SystemVariables;
80
80
  SystemVariables["SESSION_START_DATE"] = "session_start_date";
81
81
  /** Last overlay screenshot path. Use as {{last_overlay_screenshot_path}}. */
82
82
  SystemVariables["LAST_OVERLAY_SCREENSHOT_PATH"] = "last_overlay_screenshot_path";
83
+ /**
84
+ * Streamer's display name. Platform-agnostic — resolves to the streamer's
85
+ * username on whichever platform is currently connected, preferring the
86
+ * primary platform when multiple are connected. Use as {{streamer}}.
87
+ *
88
+ * Resolution order in the renderer: twitch_username → kick_username →
89
+ * youtube_username → facebook_username → tiktok_username, falling back to
90
+ * '' when no platform is connected. Re-evaluated whenever any of those
91
+ * underlying username variables changes.
92
+ *
93
+ * Useful for templates that want to say "{{streamer}}'s overlay" without
94
+ * knowing which platform the streamer is on — and for SE imports which
95
+ * use the same `{streamer}` token as a platform-agnostic placeholder.
96
+ */
97
+ SystemVariables["STREAMER"] = "streamer";
83
98
  // ─────────────────────────────────── Games ────────────────────────────────────
84
99
  /** Last player to trigger a game. Use as {{game_last_player}}. */
85
100
  SystemVariables["GAME_LAST_PLAYER"] = "game_last_player";
@@ -1,3 +1,18 @@
1
+ import { LumiaAlertValues } from './activity.types';
2
+ /**
3
+ * Eventlist categories. The eventlist module uses these as a *blacklist* via
4
+ * `content.filters` — any category listed there is hidden from the rendered
5
+ * feed (and so anything NOT listed is shown). `OTHERS` is the catch-all for
6
+ * stream-management / administrative events that aren't tied to a viewer
7
+ * action (poll progress, stream live/offline, OBS scene switches, etc.).
8
+ *
9
+ * When adding a new value here, mirror it in:
10
+ * - `ALL_LUMIA_EVENTLIST_CATEGORIES` in Lumia-UI's SE importer
11
+ * - the `ALL_EVENT_CATEGORIES` constant in Overlay-UI's `layer.actions.ts`
12
+ * (labelmarquee branch)
13
+ * Otherwise category-scoped widgets (`labelmarquee`, SE `*-recent` imports)
14
+ * leak the new category through.
15
+ */
1
16
  export declare enum LumiaEventListTypes {
2
17
  REDEMPTION = "redemption",
3
18
  FOLLOWER = "follower",
@@ -23,104 +38,30 @@ export declare enum LumiaEventListTypes {
23
38
  RAFFLE = "raffles",
24
39
  OTHERS = "others"
25
40
  }
26
- export declare const LumiaMapAlertTypeToEventListType: {
27
- "lumiastream-donation": LumiaEventListTypes;
28
- "donordrive-donation": LumiaEventListTypes;
29
- "extralife-donation": LumiaEventListTypes;
30
- "lumiastream-raffleStart": LumiaEventListTypes;
31
- "lumiastream-raffleStop": LumiaEventListTypes;
32
- "lumiastream-raffleWinner": LumiaEventListTypes;
33
- "lumiastream-tournamentStart": LumiaEventListTypes;
34
- "lumiastream-tournamentEnd": LumiaEventListTypes;
35
- "lumiastream-tournamentWinner": LumiaEventListTypes;
36
- "facebook-fan": LumiaEventListTypes;
37
- "facebook-follower": LumiaEventListTypes;
38
- "facebook-subscriptionGift": LumiaEventListTypes;
39
- "facebook-reaction": LumiaEventListTypes;
40
- "facebook-share": LumiaEventListTypes;
41
- "facebook-star": LumiaEventListTypes;
42
- "facebook-support": LumiaEventListTypes;
43
- "kofi-commission": LumiaEventListTypes;
44
- "kofi-donation": LumiaEventListTypes;
45
- "kofi-shopOrder": LumiaEventListTypes;
46
- "kofi-subscription": LumiaEventListTypes;
47
- "fourthwall-donation": LumiaEventListTypes;
48
- "fourthwall-shopOrder": LumiaEventListTypes;
49
- "fourthwall-subscription": LumiaEventListTypes;
50
- "fourthwall-subscriptionChanged": LumiaEventListTypes;
51
- "fourthwall-subscriptionExpired": LumiaEventListTypes;
52
- "fourthwall-giftpurchase": LumiaEventListTypes;
53
- "fourthwall-giveawayStarted": LumiaEventListTypes;
54
- "fourthwall-giveawayEnded": LumiaEventListTypes;
55
- "fourthwall-thankyouSent": LumiaEventListTypes;
56
- "fourthwall-newsletterSubscribed": LumiaEventListTypes;
57
- "patreon-campaignPledge": LumiaEventListTypes;
58
- "streamelements-donation": LumiaEventListTypes;
59
- "streamlabs-charity": LumiaEventListTypes;
60
- "streamlabs-donation": LumiaEventListTypes;
61
- "streamlabs-merch": LumiaEventListTypes;
62
- "streamlabs-primegift": LumiaEventListTypes;
63
- "streamlabs-redemption": LumiaEventListTypes;
64
- "tiktok-follower": LumiaEventListTypes;
65
- "tiktok-gift": LumiaEventListTypes;
66
- "tiktok-like": LumiaEventListTypes;
67
- "tiktok-totalLikes": LumiaEventListTypes;
68
- "tiktok-share": LumiaEventListTypes;
69
- "tiktok-superFan": LumiaEventListTypes;
70
- "tiktok-treasureChest": LumiaEventListTypes;
71
- "tiktok-question": LumiaEventListTypes;
72
- "tiktok-poll": LumiaEventListTypes;
73
- "tiktok-superFanBox": LumiaEventListTypes;
74
- "tiktok-shopPurchase": LumiaEventListTypes;
75
- "tiktok-pinMessage": LumiaEventListTypes;
76
- "tiktok-battleStart": LumiaEventListTypes;
77
- "tiktok-battleProgress": LumiaEventListTypes;
78
- "tiktok-battleEnd": LumiaEventListTypes;
79
- "kick-follower": LumiaEventListTypes;
80
- "kick-sessionFollowers": LumiaEventListTypes;
81
- "kick-subscriptionGift": LumiaEventListTypes;
82
- "kick-sessionGiftSubscriptions": LumiaEventListTypes;
83
- "kick-subscriber": LumiaEventListTypes;
84
- "kick-sessionSubs": LumiaEventListTypes;
85
- "tiltify-campaignDonation": LumiaEventListTypes;
86
- "tipeeestream-donation": LumiaEventListTypes;
87
- "treatstream-treat": LumiaEventListTypes;
88
- "twitch-bits": LumiaEventListTypes;
89
- "twitch-bitsCombo": LumiaEventListTypes;
90
- "twitch-sessionBits": LumiaEventListTypes;
91
- "twitch-powerups": LumiaEventListTypes;
92
- "twitch-powerupsPoints": LumiaEventListTypes;
93
- "twitch-clip": LumiaEventListTypes;
94
- "twitch-extension": LumiaEventListTypes;
95
- "twitch-follower": LumiaEventListTypes;
96
- "twitch-sessionFollowers": LumiaEventListTypes;
97
- "twitch-giftSubscription": LumiaEventListTypes;
98
- "twitch-sessionGiftSubscriptions": LumiaEventListTypes;
99
- "twitch-hypetrainStarted": LumiaEventListTypes;
100
- "twitch-points": LumiaEventListTypes;
101
- "kick-points": LumiaEventListTypes;
102
- "twitch-raid": LumiaEventListTypes;
103
- "twitch-raidOut": LumiaEventListTypes;
104
- "kick-kicks": LumiaEventListTypes;
105
- "kick-sessionKicks": LumiaEventListTypes;
106
- "kick-host": LumiaEventListTypes;
107
- "twitch-shoutoutReceive": LumiaEventListTypes;
108
- "twitch-subscriber": LumiaEventListTypes;
109
- "twitch-sessionSubs": LumiaEventListTypes;
110
- "twitch-charityDonation": LumiaEventListTypes;
111
- "twitch-adStarted": LumiaEventListTypes;
112
- "twitch-adStopped": LumiaEventListTypes;
113
- "twitch-watchStreak": LumiaEventListTypes;
114
- "twitter-follower": LumiaEventListTypes;
115
- "twitter-like": LumiaEventListTypes;
116
- "twitter-retweet": LumiaEventListTypes;
117
- "woocommerce-order": LumiaEventListTypes;
118
- "youtube-member": LumiaEventListTypes;
119
- "youtube-subscriber": LumiaEventListTypes;
120
- "youtube-superchat": LumiaEventListTypes;
121
- "youtube-supersticker": LumiaEventListTypes;
122
- "youtube-gifts": LumiaEventListTypes;
123
- "youtube-like": LumiaEventListTypes;
124
- "youtube-viewers": LumiaEventListTypes;
125
- "crowdcontrol-effect": LumiaEventListTypes;
126
- };
41
+ /**
42
+ * Categorization map from `LumiaAlertValues` → `LumiaEventListTypes`. Drives
43
+ * eventlist filtering: an alert that's missing from this map is treated as
44
+ * "unmapped" and will not be hidden by any category-based filter (it falls
45
+ * through to OTHERS only if OTHERS is allowed). Historically this caused
46
+ * unrelated alerts (e.g. Throne purchases) to leak into category-scoped
47
+ * marquees like "Recent Subscribers", because the missing mapping made the
48
+ * filtering logic's blacklist check pass.
49
+ *
50
+ * Policy:
51
+ * - Every alert in `LumiaAlertValues` should appear here. If an alert isn't
52
+ * viewer-facing (stream lifecycle, OBS/SLOBS/Meld events, music players,
53
+ * VTube Studio, Pulse health, polls/predictions/goals progress) it maps
54
+ * to OTHERS, never silently to a "real" category.
55
+ * - Categorize by the *viewer's* intent, not the underlying payload shape.
56
+ * A "subscription expired" event is administrative, not a new sub →
57
+ * OTHERS, not SUBSCRIBERS. A giveaway-started notice is admin → OTHERS.
58
+ * A Throne / Fourthwall shop gift purchase is a viewer buying something
59
+ * for the streamer → PURCHASES.
60
+ * - Session-counter alerts (e.g. TWITCH_SESSION_FOLLOWERS) mirror the
61
+ * category of their per-event cousin (FOLLOWER) so a counter widget can
62
+ * reuse the same category filter.
63
+ *
64
+ * Grouped by platform / source for review; ordering within groups follows
65
+ * the enum declaration in `activity.types.ts`.
66
+ */
67
+ export declare const LumiaMapAlertTypeToEventListType: Partial<Record<LumiaAlertValues, LumiaEventListTypes>>;
@@ -2,6 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LumiaMapAlertTypeToEventListType = exports.LumiaEventListTypes = void 0;
4
4
  const activity_types_1 = require("./activity.types");
5
+ /**
6
+ * Eventlist categories. The eventlist module uses these as a *blacklist* via
7
+ * `content.filters` — any category listed there is hidden from the rendered
8
+ * feed (and so anything NOT listed is shown). `OTHERS` is the catch-all for
9
+ * stream-management / administrative events that aren't tied to a viewer
10
+ * action (poll progress, stream live/offline, OBS scene switches, etc.).
11
+ *
12
+ * When adding a new value here, mirror it in:
13
+ * - `ALL_LUMIA_EVENTLIST_CATEGORIES` in Lumia-UI's SE importer
14
+ * - the `ALL_EVENT_CATEGORIES` constant in Overlay-UI's `layer.actions.ts`
15
+ * (labelmarquee branch)
16
+ * Otherwise category-scoped widgets (`labelmarquee`, SE `*-recent` imports)
17
+ * leak the new category through.
18
+ */
5
19
  var LumiaEventListTypes;
6
20
  (function (LumiaEventListTypes) {
7
21
  LumiaEventListTypes["REDEMPTION"] = "redemption";
@@ -28,104 +42,294 @@ var LumiaEventListTypes;
28
42
  LumiaEventListTypes["RAFFLE"] = "raffles";
29
43
  LumiaEventListTypes["OTHERS"] = "others";
30
44
  })(LumiaEventListTypes || (exports.LumiaEventListTypes = LumiaEventListTypes = {}));
45
+ /**
46
+ * Categorization map from `LumiaAlertValues` → `LumiaEventListTypes`. Drives
47
+ * eventlist filtering: an alert that's missing from this map is treated as
48
+ * "unmapped" and will not be hidden by any category-based filter (it falls
49
+ * through to OTHERS only if OTHERS is allowed). Historically this caused
50
+ * unrelated alerts (e.g. Throne purchases) to leak into category-scoped
51
+ * marquees like "Recent Subscribers", because the missing mapping made the
52
+ * filtering logic's blacklist check pass.
53
+ *
54
+ * Policy:
55
+ * - Every alert in `LumiaAlertValues` should appear here. If an alert isn't
56
+ * viewer-facing (stream lifecycle, OBS/SLOBS/Meld events, music players,
57
+ * VTube Studio, Pulse health, polls/predictions/goals progress) it maps
58
+ * to OTHERS, never silently to a "real" category.
59
+ * - Categorize by the *viewer's* intent, not the underlying payload shape.
60
+ * A "subscription expired" event is administrative, not a new sub →
61
+ * OTHERS, not SUBSCRIBERS. A giveaway-started notice is admin → OTHERS.
62
+ * A Throne / Fourthwall shop gift purchase is a viewer buying something
63
+ * for the streamer → PURCHASES.
64
+ * - Session-counter alerts (e.g. TWITCH_SESSION_FOLLOWERS) mirror the
65
+ * category of their per-event cousin (FOLLOWER) so a counter widget can
66
+ * reuse the same category filter.
67
+ *
68
+ * Grouped by platform / source for review; ordering within groups follows
69
+ * the enum declaration in `activity.types.ts`.
70
+ */
31
71
  exports.LumiaMapAlertTypeToEventListType = {
72
+ // --- Lumia Stream native ---
32
73
  [activity_types_1.LumiaAlertValues.LUMIASTREAM_DONATION]: LumiaEventListTypes.DONATION,
33
- [activity_types_1.LumiaAlertValues.DONORDRIVE_DONATION]: LumiaEventListTypes.DONATION,
34
- [activity_types_1.LumiaAlertValues.EXTRALIFE_DONATION]: LumiaEventListTypes.DONATION,
74
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_LUMIA_OPENED]: LumiaEventListTypes.OTHERS,
75
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_LUMIA_CLOSED]: LumiaEventListTypes.OTHERS,
76
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_STREAMMODE_ON]: LumiaEventListTypes.OTHERS,
77
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_STREAMMODE_OFF]: LumiaEventListTypes.OTHERS,
35
78
  [activity_types_1.LumiaAlertValues.LUMIASTREAM_RAFFLE_START]: LumiaEventListTypes.RAFFLE,
36
79
  [activity_types_1.LumiaAlertValues.LUMIASTREAM_RAFFLE_STOP]: LumiaEventListTypes.RAFFLE,
37
80
  [activity_types_1.LumiaAlertValues.LUMIASTREAM_RAFFLE_WINNER]: LumiaEventListTypes.RAFFLE,
81
+ // Spinwheel / Roulette / Slots winners are giveaway-style outcomes —
82
+ // align them with the RAFFLE category so a "Recent Giveaways" widget
83
+ // can pick them up alongside actual raffles.
84
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_SPINWHEEL_WINNER]: LumiaEventListTypes.RAFFLE,
85
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_ROULETTE_WINNER]: LumiaEventListTypes.RAFFLE,
86
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_SLOTS_WINNER]: LumiaEventListTypes.RAFFLE,
38
87
  [activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_START]: LumiaEventListTypes.OTHERS,
39
88
  [activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_END]: LumiaEventListTypes.OTHERS,
40
89
  [activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_WINNER]: LumiaEventListTypes.OTHERS,
41
- [activity_types_1.LumiaAlertValues.FACEBOOK_FAN]: LumiaEventListTypes.FANS,
90
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_POLL_STARTED]: LumiaEventListTypes.OTHERS,
91
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_POLL_PROGRESSED]: LumiaEventListTypes.OTHERS,
92
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_POLL_ENDED]: LumiaEventListTypes.OTHERS,
93
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_VIEWERQUEUE_STARTED]: LumiaEventListTypes.OTHERS,
94
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_VIEWERQUEUE_ENDED]: LumiaEventListTypes.OTHERS,
95
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_VIEWER_ACHIEVEMENT]: LumiaEventListTypes.OTHERS,
96
+ [activity_types_1.LumiaAlertValues.LUMIASTREAM_VARIABLE_CHANGED]: LumiaEventListTypes.OTHERS,
97
+ // --- Twitch ---
98
+ [activity_types_1.LumiaAlertValues.TWITCH_EXTENSION]: LumiaEventListTypes.EXTENSION,
99
+ [activity_types_1.LumiaAlertValues.TWITCH_POINTS]: LumiaEventListTypes.POINTS,
100
+ [activity_types_1.LumiaAlertValues.TWITCH_STREAM_LIVE]: LumiaEventListTypes.OTHERS,
101
+ [activity_types_1.LumiaAlertValues.TWITCH_STREAM_OFFLINE]: LumiaEventListTypes.OTHERS,
102
+ [activity_types_1.LumiaAlertValues.TWITCH_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
103
+ [activity_types_1.LumiaAlertValues.TWITCH_ENTRANCE]: LumiaEventListTypes.OTHERS,
104
+ [activity_types_1.LumiaAlertValues.TWITCH_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
105
+ [activity_types_1.LumiaAlertValues.TWITCH_SESSION_FOLLOWERS]: LumiaEventListTypes.FOLLOWER,
106
+ [activity_types_1.LumiaAlertValues.TWITCH_SUBSCRIBER]: LumiaEventListTypes.SUBSCRIBERS,
107
+ [activity_types_1.LumiaAlertValues.TWITCH_SESSION_SUBS]: LumiaEventListTypes.SUBSCRIBERS,
108
+ [activity_types_1.LumiaAlertValues.TWITCH_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
109
+ [activity_types_1.LumiaAlertValues.TWITCH_SESSION_GIFT_SUBSCRIPTIONS]: LumiaEventListTypes.GIFTS,
110
+ [activity_types_1.LumiaAlertValues.TWITCH_RAID]: LumiaEventListTypes.RAIDS,
111
+ [activity_types_1.LumiaAlertValues.TWITCH_RAID_OUT]: LumiaEventListTypes.RAIDS,
112
+ [activity_types_1.LumiaAlertValues.TWITCH_BITS]: LumiaEventListTypes.BITS,
113
+ [activity_types_1.LumiaAlertValues.TWITCH_BITS_COMBO]: LumiaEventListTypes.BITS,
114
+ [activity_types_1.LumiaAlertValues.TWITCH_SESSION_BITS]: LumiaEventListTypes.BITS,
115
+ // Channel-point redemptions used to be miscategorized as PURCHASES on the
116
+ // Streamlabs alert; REDEMPTION is the dedicated category for this event
117
+ // shape and is what category-filtered widgets should target.
118
+ [activity_types_1.LumiaAlertValues.TWITCH_REDEMPTION]: LumiaEventListTypes.REDEMPTION,
119
+ [activity_types_1.LumiaAlertValues.TWITCH_HYPETRAIN_STARTED]: LumiaEventListTypes.HYPETRAIN,
120
+ [activity_types_1.LumiaAlertValues.TWITCH_HYPETRAIN_PROGRESSED]: LumiaEventListTypes.HYPETRAIN,
121
+ [activity_types_1.LumiaAlertValues.TWITCH_HYPETRAIN_LEVEL_PROGRESSED]: LumiaEventListTypes.HYPETRAIN,
122
+ [activity_types_1.LumiaAlertValues.TWITCH_HYPETRAIN_ENDED]: LumiaEventListTypes.HYPETRAIN,
123
+ [activity_types_1.LumiaAlertValues.TWITCH_POLL_STARTED]: LumiaEventListTypes.OTHERS,
124
+ [activity_types_1.LumiaAlertValues.TWITCH_POLL_PROGRESSED]: LumiaEventListTypes.OTHERS,
125
+ [activity_types_1.LumiaAlertValues.TWITCH_POLL_ENDED]: LumiaEventListTypes.OTHERS,
126
+ [activity_types_1.LumiaAlertValues.TWITCH_PREDICTION_STARTED]: LumiaEventListTypes.OTHERS,
127
+ [activity_types_1.LumiaAlertValues.TWITCH_PREDICTION_PROGRESSED]: LumiaEventListTypes.OTHERS,
128
+ [activity_types_1.LumiaAlertValues.TWITCH_PREDICTION_LOCKED]: LumiaEventListTypes.OTHERS,
129
+ [activity_types_1.LumiaAlertValues.TWITCH_PREDICTION_ENDED]: LumiaEventListTypes.OTHERS,
130
+ [activity_types_1.LumiaAlertValues.TWITCH_GOAL_STARTED]: LumiaEventListTypes.OTHERS,
131
+ [activity_types_1.LumiaAlertValues.TWITCH_GOAL_PROGRESSED]: LumiaEventListTypes.OTHERS,
132
+ [activity_types_1.LumiaAlertValues.TWITCH_GOAL_ENDED]: LumiaEventListTypes.OTHERS,
133
+ [activity_types_1.LumiaAlertValues.TWITCH_CHARITY_DONATION]: LumiaEventListTypes.DONATION,
134
+ [activity_types_1.LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_STARTED]: LumiaEventListTypes.OTHERS,
135
+ [activity_types_1.LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_PROGRESSED]: LumiaEventListTypes.OTHERS,
136
+ [activity_types_1.LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_STOPPED]: LumiaEventListTypes.OTHERS,
137
+ [activity_types_1.LumiaAlertValues.TWITCH_CATEGORY]: LumiaEventListTypes.OTHERS,
138
+ [activity_types_1.LumiaAlertValues.TWITCH_CLIP]: LumiaEventListTypes.OTHERS,
139
+ [activity_types_1.LumiaAlertValues.TWITCH_CHANNEL_JOIN]: LumiaEventListTypes.OTHERS,
140
+ [activity_types_1.LumiaAlertValues.TWITCH_CHANNEL_LEAVE]: LumiaEventListTypes.OTHERS,
141
+ [activity_types_1.LumiaAlertValues.TWITCH_BANNED]: LumiaEventListTypes.OTHERS,
142
+ [activity_types_1.LumiaAlertValues.TWITCH_TIMEOUT]: LumiaEventListTypes.OTHERS,
143
+ [activity_types_1.LumiaAlertValues.TWITCH_TIMEOUT_OVER]: LumiaEventListTypes.OTHERS,
144
+ [activity_types_1.LumiaAlertValues.TWITCH_SHOUTOUT_RECEIVE]: LumiaEventListTypes.OTHERS,
145
+ [activity_types_1.LumiaAlertValues.TWITCH_AD_STARTED]: LumiaEventListTypes.OTHERS,
146
+ [activity_types_1.LumiaAlertValues.TWITCH_AD_STOPPED]: LumiaEventListTypes.OTHERS,
147
+ [activity_types_1.LumiaAlertValues.TWITCH_WATCH_STREAK]: LumiaEventListTypes.OTHERS,
148
+ [activity_types_1.LumiaAlertValues.TWITCH_POWERUPS]: LumiaEventListTypes.BITS,
149
+ [activity_types_1.LumiaAlertValues.TWITCH_POWERUPS_POINTS]: LumiaEventListTypes.POINTS,
150
+ // --- YouTube ---
151
+ [activity_types_1.LumiaAlertValues.YOUTUBE_STREAM_LIVE]: LumiaEventListTypes.OTHERS,
152
+ [activity_types_1.LumiaAlertValues.YOUTUBE_STREAM_OFFLINE]: LumiaEventListTypes.OTHERS,
153
+ [activity_types_1.LumiaAlertValues.YOUTUBE_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
154
+ [activity_types_1.LumiaAlertValues.YOUTUBE_ENTRANCE]: LumiaEventListTypes.OTHERS,
155
+ // YouTube "subscribers" are free follows in YT-speak — categorize as
156
+ // FOLLOWER so a "Recent Followers" widget unifies Twitch follows + YT
157
+ // subs. Paid memberships are categorized as SUBSCRIBERS below.
158
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SUBSCRIBER]: LumiaEventListTypes.FOLLOWER,
159
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SESSION_SUBS]: LumiaEventListTypes.FOLLOWER,
160
+ [activity_types_1.LumiaAlertValues.YOUTUBE_MEMBER]: LumiaEventListTypes.SUBSCRIBERS,
161
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SESSION_MEMBERS]: LumiaEventListTypes.SUBSCRIBERS,
162
+ [activity_types_1.LumiaAlertValues.YOUTUBE_GIFT_MEMBERS]: LumiaEventListTypes.GIFTS,
163
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SESSION_GIFT_MEMBERS]: LumiaEventListTypes.GIFTS,
164
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SUPERCHAT]: LumiaEventListTypes.SUPERCHATS,
165
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SESSION_SUPERCHATS]: LumiaEventListTypes.SUPERCHATS,
166
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SUPERSTICKER]: LumiaEventListTypes.SUPERSTICKERS,
167
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SESSION_SUPERSTICKERS]: LumiaEventListTypes.SUPERSTICKERS,
168
+ [activity_types_1.LumiaAlertValues.YOUTUBE_GIFTS]: LumiaEventListTypes.GIFTS,
169
+ [activity_types_1.LumiaAlertValues.YOUTUBE_SESSION_GIFTS]: LumiaEventListTypes.GIFTS,
170
+ [activity_types_1.LumiaAlertValues.YOUTUBE_LIKE]: LumiaEventListTypes.LIKES,
171
+ [activity_types_1.LumiaAlertValues.YOUTUBE_VIEWERS]: LumiaEventListTypes.OTHERS,
172
+ // --- Facebook ---
173
+ [activity_types_1.LumiaAlertValues.FACEBOOK_STREAM_LIVE]: LumiaEventListTypes.OTHERS,
174
+ [activity_types_1.LumiaAlertValues.FACEBOOK_STREAM_OFFLINE]: LumiaEventListTypes.OTHERS,
175
+ [activity_types_1.LumiaAlertValues.FACEBOOK_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
176
+ [activity_types_1.LumiaAlertValues.FACEBOOK_ENTRANCE]: LumiaEventListTypes.OTHERS,
42
177
  [activity_types_1.LumiaAlertValues.FACEBOOK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
43
- [activity_types_1.LumiaAlertValues.FACEBOOK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
44
178
  [activity_types_1.LumiaAlertValues.FACEBOOK_REACTION]: LumiaEventListTypes.LIKES,
45
- [activity_types_1.LumiaAlertValues.FACEBOOK_SHARE]: LumiaEventListTypes.SHARES,
46
179
  [activity_types_1.LumiaAlertValues.FACEBOOK_STAR]: LumiaEventListTypes.STARS,
180
+ // FB Supporters are paid subscriptions, FB Fans are free fan-status, FB
181
+ // Gift Subscriptions are gifted Supporters → keep all three in their
182
+ // distinct categories.
47
183
  [activity_types_1.LumiaAlertValues.FACEBOOK_SUPPORT]: LumiaEventListTypes.SUBSCRIBERS,
48
- [activity_types_1.LumiaAlertValues.KOFI_COMMISSION]: LumiaEventListTypes.PURCHASES,
49
- [activity_types_1.LumiaAlertValues.KOFI_DONATION]: LumiaEventListTypes.DONATION,
50
- [activity_types_1.LumiaAlertValues.KOFI_SHOPORDER]: LumiaEventListTypes.PURCHASES,
51
- [activity_types_1.LumiaAlertValues.KOFI_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
52
- [activity_types_1.LumiaAlertValues.FOURTHWALL_DONATION]: LumiaEventListTypes.DONATION,
53
- [activity_types_1.LumiaAlertValues.FOURTHWALL_SHOPORDER]: LumiaEventListTypes.PURCHASES,
54
- [activity_types_1.LumiaAlertValues.FOURTHWALL_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
55
- [activity_types_1.LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_CHANGED]: LumiaEventListTypes.SUBSCRIBERS,
56
- [activity_types_1.LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_EXPIRED]: LumiaEventListTypes.SUBSCRIBERS,
57
- [activity_types_1.LumiaAlertValues.FOURTHWALL_GIFTPURCHASE]: LumiaEventListTypes.PURCHASES,
58
- [activity_types_1.LumiaAlertValues.FOURTHWALL_GIVEAWAY_STARTED]: LumiaEventListTypes.GIFTS,
59
- [activity_types_1.LumiaAlertValues.FOURTHWALL_GIVEAWAY_ENDED]: LumiaEventListTypes.GIFTS,
60
- [activity_types_1.LumiaAlertValues.FOURTHWALL_THANKYOU_SENT]: LumiaEventListTypes.OTHERS,
61
- [activity_types_1.LumiaAlertValues.FOURTHWALL_NEWSLETTER_SUBSCRIBED]: LumiaEventListTypes.OTHERS,
62
- [activity_types_1.LumiaAlertValues.PATREON_PLEDGE]: LumiaEventListTypes.SUBSCRIBERS,
63
- [activity_types_1.LumiaAlertValues.STREAMELEMENTS_DONATION]: LumiaEventListTypes.DONATION,
64
- [activity_types_1.LumiaAlertValues.STREAMLABS_CHARITY]: LumiaEventListTypes.DONATION,
65
- [activity_types_1.LumiaAlertValues.STREAMLABS_DONATION]: LumiaEventListTypes.DONATION,
66
- [activity_types_1.LumiaAlertValues.STREAMLABS_MERCH]: LumiaEventListTypes.PURCHASES,
67
- [activity_types_1.LumiaAlertValues.STREAMLABS_PRIMEGIFT]: LumiaEventListTypes.GIFTS,
68
- [activity_types_1.LumiaAlertValues.STREAMLABS_REDEMPTION]: LumiaEventListTypes.PURCHASES,
184
+ [activity_types_1.LumiaAlertValues.FACEBOOK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
185
+ [activity_types_1.LumiaAlertValues.FACEBOOK_SHARE]: LumiaEventListTypes.SHARES,
186
+ [activity_types_1.LumiaAlertValues.FACEBOOK_FAN]: LumiaEventListTypes.FANS,
187
+ // --- TikTok ---
188
+ [activity_types_1.LumiaAlertValues.TIKTOK_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
189
+ [activity_types_1.LumiaAlertValues.TIKTOK_ENTRANCE]: LumiaEventListTypes.OTHERS,
69
190
  [activity_types_1.LumiaAlertValues.TIKTOK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
70
- [activity_types_1.LumiaAlertValues.TIKTOK_GIFT]: LumiaEventListTypes.GIFTS,
71
191
  [activity_types_1.LumiaAlertValues.TIKTOK_LIKE]: LumiaEventListTypes.LIKES,
72
192
  [activity_types_1.LumiaAlertValues.TIKTOK_TOTAL_LIKES]: LumiaEventListTypes.LIKES,
73
- [activity_types_1.LumiaAlertValues.TIKTOK_SHARE]: LumiaEventListTypes.SHARES,
193
+ [activity_types_1.LumiaAlertValues.TIKTOK_GIFT]: LumiaEventListTypes.GIFTS,
194
+ // TikTok Super Fan = paid membership (subscriber-equivalent). Super Fan
195
+ // BOX is a separate gift-style event where a viewer receives a fan-only
196
+ // drop — categorize as GIFTS to keep the SUBSCRIBERS feed sub-only.
74
197
  [activity_types_1.LumiaAlertValues.TIKTOK_SUPER_FAN]: LumiaEventListTypes.SUBSCRIBERS,
198
+ [activity_types_1.LumiaAlertValues.TIKTOK_SUPER_FAN_BOX]: LumiaEventListTypes.GIFTS,
75
199
  [activity_types_1.LumiaAlertValues.TIKTOK_TREASURE_CHEST]: LumiaEventListTypes.GIFTS,
76
200
  [activity_types_1.LumiaAlertValues.TIKTOK_QUESTION]: LumiaEventListTypes.OTHERS,
77
201
  [activity_types_1.LumiaAlertValues.TIKTOK_POLL]: LumiaEventListTypes.OTHERS,
78
- [activity_types_1.LumiaAlertValues.TIKTOK_SUPER_FAN_BOX]: LumiaEventListTypes.SUBSCRIBERS,
79
202
  [activity_types_1.LumiaAlertValues.TIKTOK_SHOP_PURCHASE]: LumiaEventListTypes.PURCHASES,
80
203
  [activity_types_1.LumiaAlertValues.TIKTOK_PIN_MESSAGE]: LumiaEventListTypes.OTHERS,
81
204
  [activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_START]: LumiaEventListTypes.OTHERS,
82
205
  [activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_PROGRESS]: LumiaEventListTypes.OTHERS,
83
206
  [activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_END]: LumiaEventListTypes.OTHERS,
207
+ [activity_types_1.LumiaAlertValues.TIKTOK_SHARE]: LumiaEventListTypes.SHARES,
208
+ [activity_types_1.LumiaAlertValues.TIKTOK_STREAM_END]: LumiaEventListTypes.OTHERS,
209
+ [activity_types_1.LumiaAlertValues.TIKTOK_NEW_VIDEO]: LumiaEventListTypes.OTHERS,
210
+ // --- Kick ---
211
+ [activity_types_1.LumiaAlertValues.KICK_POINTS]: LumiaEventListTypes.POINTS,
212
+ [activity_types_1.LumiaAlertValues.KICK_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
213
+ [activity_types_1.LumiaAlertValues.KICK_ENTRANCE]: LumiaEventListTypes.OTHERS,
84
214
  [activity_types_1.LumiaAlertValues.KICK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
85
215
  [activity_types_1.LumiaAlertValues.KICK_SESSION_FOLLOWERS]: LumiaEventListTypes.FOLLOWER,
86
- [activity_types_1.LumiaAlertValues.KICK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
87
- [activity_types_1.LumiaAlertValues.KICK_SESSION_GIFT_SUBSCRIPTIONS]: LumiaEventListTypes.GIFTS,
88
216
  [activity_types_1.LumiaAlertValues.KICK_SUBSCRIBER]: LumiaEventListTypes.SUBSCRIBERS,
89
217
  [activity_types_1.LumiaAlertValues.KICK_SESSION_SUBS]: LumiaEventListTypes.SUBSCRIBERS,
90
- [activity_types_1.LumiaAlertValues.TILTIFY_DONATION]: LumiaEventListTypes.DONATION,
91
- [activity_types_1.LumiaAlertValues.TIPEEESTREAM_DONATION]: LumiaEventListTypes.DONATION,
92
- [activity_types_1.LumiaAlertValues.TREATSTREAM_TREAT]: LumiaEventListTypes.PURCHASES,
93
- [activity_types_1.LumiaAlertValues.TWITCH_BITS]: LumiaEventListTypes.BITS,
94
- [activity_types_1.LumiaAlertValues.TWITCH_BITS_COMBO]: LumiaEventListTypes.BITS,
95
- [activity_types_1.LumiaAlertValues.TWITCH_SESSION_BITS]: LumiaEventListTypes.BITS,
96
- [activity_types_1.LumiaAlertValues.TWITCH_POWERUPS]: LumiaEventListTypes.BITS,
97
- [activity_types_1.LumiaAlertValues.TWITCH_POWERUPS_POINTS]: LumiaEventListTypes.POINTS,
98
- [activity_types_1.LumiaAlertValues.TWITCH_CLIP]: LumiaEventListTypes.OTHERS,
99
- [activity_types_1.LumiaAlertValues.TWITCH_EXTENSION]: LumiaEventListTypes.EXTENSION,
100
- [activity_types_1.LumiaAlertValues.TWITCH_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
101
- [activity_types_1.LumiaAlertValues.TWITCH_SESSION_FOLLOWERS]: LumiaEventListTypes.FOLLOWER,
102
- [activity_types_1.LumiaAlertValues.TWITCH_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
103
- [activity_types_1.LumiaAlertValues.TWITCH_SESSION_GIFT_SUBSCRIPTIONS]: LumiaEventListTypes.GIFTS,
104
- [activity_types_1.LumiaAlertValues.TWITCH_HYPETRAIN_STARTED]: LumiaEventListTypes.HYPETRAIN,
105
- [activity_types_1.LumiaAlertValues.TWITCH_POINTS]: LumiaEventListTypes.POINTS,
106
- [activity_types_1.LumiaAlertValues.KICK_POINTS]: LumiaEventListTypes.POINTS,
107
- [activity_types_1.LumiaAlertValues.TWITCH_RAID]: LumiaEventListTypes.RAIDS,
108
- [activity_types_1.LumiaAlertValues.TWITCH_RAID_OUT]: LumiaEventListTypes.RAIDS,
218
+ [activity_types_1.LumiaAlertValues.KICK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
219
+ [activity_types_1.LumiaAlertValues.KICK_SESSION_GIFT_SUBSCRIPTIONS]: LumiaEventListTypes.GIFTS,
109
220
  [activity_types_1.LumiaAlertValues.KICK_KICKS]: LumiaEventListTypes.KICKS,
110
221
  [activity_types_1.LumiaAlertValues.KICK_SESSION_KICKS]: LumiaEventListTypes.KICKS,
111
222
  [activity_types_1.LumiaAlertValues.KICK_HOST]: LumiaEventListTypes.HOSTS,
112
- [activity_types_1.LumiaAlertValues.TWITCH_SHOUTOUT_RECEIVE]: LumiaEventListTypes.OTHERS,
113
- [activity_types_1.LumiaAlertValues.TWITCH_SUBSCRIBER]: LumiaEventListTypes.SUBSCRIBERS,
114
- [activity_types_1.LumiaAlertValues.TWITCH_SESSION_SUBS]: LumiaEventListTypes.SUBSCRIBERS,
115
- [activity_types_1.LumiaAlertValues.TWITCH_CHARITY_DONATION]: LumiaEventListTypes.DONATION,
116
- [activity_types_1.LumiaAlertValues.TWITCH_AD_STARTED]: LumiaEventListTypes.OTHERS,
117
- [activity_types_1.LumiaAlertValues.TWITCH_AD_STOPPED]: LumiaEventListTypes.OTHERS,
118
- [activity_types_1.LumiaAlertValues.TWITCH_WATCH_STREAK]: LumiaEventListTypes.OTHERS,
223
+ [activity_types_1.LumiaAlertValues.KICK_BANNED]: LumiaEventListTypes.OTHERS,
224
+ [activity_types_1.LumiaAlertValues.KICK_UNBANNED]: LumiaEventListTypes.OTHERS,
225
+ // --- Discord ---
226
+ [activity_types_1.LumiaAlertValues.DISCORD_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
227
+ [activity_types_1.LumiaAlertValues.DISCORD_ENTRANCE]: LumiaEventListTypes.OTHERS,
228
+ // --- Third-party donation / commerce platforms ---
229
+ [activity_types_1.LumiaAlertValues.STREAMLABS_DONATION]: LumiaEventListTypes.DONATION,
230
+ [activity_types_1.LumiaAlertValues.STREAMLABS_CHARITY]: LumiaEventListTypes.DONATION,
231
+ [activity_types_1.LumiaAlertValues.STREAMLABS_MERCH]: LumiaEventListTypes.PURCHASES,
232
+ // Streamlabs Redemption was previously miscategorized as PURCHASES. It's
233
+ // a Streamlabs loyalty-points redemption — the dedicated REDEMPTION
234
+ // category is the correct home, mirroring TWITCH_REDEMPTION.
235
+ [activity_types_1.LumiaAlertValues.STREAMLABS_REDEMPTION]: LumiaEventListTypes.REDEMPTION,
236
+ [activity_types_1.LumiaAlertValues.STREAMLABS_PRIMEGIFT]: LumiaEventListTypes.GIFTS,
237
+ [activity_types_1.LumiaAlertValues.STREAMELEMENTS_DONATION]: LumiaEventListTypes.DONATION,
238
+ [activity_types_1.LumiaAlertValues.EXTRALIFE_DONATION]: LumiaEventListTypes.DONATION,
239
+ [activity_types_1.LumiaAlertValues.DONORDRIVE_DONATION]: LumiaEventListTypes.DONATION,
240
+ [activity_types_1.LumiaAlertValues.TILTIFY_DONATION]: LumiaEventListTypes.DONATION,
241
+ // Throne is a viewer wishlist platform — a "gift purchase" is a viewer
242
+ // buying an item off the streamer's wishlist. Treat all three Throne
243
+ // events as PURCHASES so they don't leak into the SUBSCRIBERS feed (the
244
+ // historical bug: Throne was unmapped, which made the eventlist filter's
245
+ // blacklist check silently pass on category-scoped widgets).
246
+ [activity_types_1.LumiaAlertValues.THRONE_GIFT_PURCHASE]: LumiaEventListTypes.PURCHASES,
247
+ [activity_types_1.LumiaAlertValues.THRONE_CONTRIBUTION_PURCHASE]: LumiaEventListTypes.PURCHASES,
248
+ [activity_types_1.LumiaAlertValues.THRONE_GIFT_CROWDFUNDED]: LumiaEventListTypes.PURCHASES,
249
+ [activity_types_1.LumiaAlertValues.TIPEEESTREAM_DONATION]: LumiaEventListTypes.DONATION,
250
+ [activity_types_1.LumiaAlertValues.TREATSTREAM_TREAT]: LumiaEventListTypes.PURCHASES,
251
+ [activity_types_1.LumiaAlertValues.PATREON_PLEDGE]: LumiaEventListTypes.SUBSCRIBERS,
252
+ [activity_types_1.LumiaAlertValues.KOFI_DONATION]: LumiaEventListTypes.DONATION,
253
+ [activity_types_1.LumiaAlertValues.KOFI_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
254
+ [activity_types_1.LumiaAlertValues.KOFI_COMMISSION]: LumiaEventListTypes.PURCHASES,
255
+ [activity_types_1.LumiaAlertValues.KOFI_SHOPORDER]: LumiaEventListTypes.PURCHASES,
256
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_SHOPORDER]: LumiaEventListTypes.PURCHASES,
257
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_DONATION]: LumiaEventListTypes.DONATION,
258
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
259
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_CHANGED]: LumiaEventListTypes.SUBSCRIBERS,
260
+ // `SUBSCRIPTION_EXPIRED` is an admin notice that a sub lapsed — NOT a new
261
+ // subscriber. Moving to OTHERS prevents stale "Recent Subscribers"
262
+ // entries from showing canceled subs.
263
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_EXPIRED]: LumiaEventListTypes.OTHERS,
264
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_GIFTPURCHASE]: LumiaEventListTypes.PURCHASES,
265
+ // Giveaway lifecycle events are administrative (giveaway started/ended),
266
+ // not actual gifts. Categorize as OTHERS; the Lumia raffle alerts have
267
+ // the RAFFLE category for the winner side.
268
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_GIVEAWAY_STARTED]: LumiaEventListTypes.OTHERS,
269
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_GIVEAWAY_ENDED]: LumiaEventListTypes.OTHERS,
270
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_THANKYOU_SENT]: LumiaEventListTypes.OTHERS,
271
+ [activity_types_1.LumiaAlertValues.FOURTHWALL_NEWSLETTER_SUBSCRIBED]: LumiaEventListTypes.OTHERS,
272
+ // --- OBS Studio / Streamlabs OBS / Meld Studio ---
273
+ // All broadcasting-app events are stream-management, never viewer-facing.
274
+ [activity_types_1.LumiaAlertValues.OBS_SWITCH_PROFILE]: LumiaEventListTypes.OTHERS,
275
+ [activity_types_1.LumiaAlertValues.OBS_SWITCH_SCENE]: LumiaEventListTypes.OTHERS,
276
+ [activity_types_1.LumiaAlertValues.OBS_SCENE_ITEM_VISIBILITY]: LumiaEventListTypes.OTHERS,
277
+ [activity_types_1.LumiaAlertValues.OBS_SCENE_ITEM_HIDDEN]: LumiaEventListTypes.OTHERS,
278
+ [activity_types_1.LumiaAlertValues.OBS_SWITCH_TRANSITION]: LumiaEventListTypes.OTHERS,
279
+ [activity_types_1.LumiaAlertValues.OBS_TRANSITION_BEGIN]: LumiaEventListTypes.OTHERS,
280
+ [activity_types_1.LumiaAlertValues.OBS_TRANSITION_END]: LumiaEventListTypes.OTHERS,
281
+ [activity_types_1.LumiaAlertValues.OBS_STREAM_STARTING]: LumiaEventListTypes.OTHERS,
282
+ [activity_types_1.LumiaAlertValues.OBS_STREAM_STOPPING]: LumiaEventListTypes.OTHERS,
283
+ [activity_types_1.LumiaAlertValues.OBS_RECORDING_STARTING]: LumiaEventListTypes.OTHERS,
284
+ [activity_types_1.LumiaAlertValues.OBS_RECORDING_STOPPING]: LumiaEventListTypes.OTHERS,
285
+ [activity_types_1.LumiaAlertValues.OBS_MEDIA_INPUT_PLAYBACK_STARTED]: LumiaEventListTypes.OTHERS,
286
+ [activity_types_1.LumiaAlertValues.OBS_MEDIA_INPUT_PLAYBACK_ENDED]: LumiaEventListTypes.OTHERS,
287
+ [activity_types_1.LumiaAlertValues.OBS_VIRTUALCAM_STATE_CHANGED]: LumiaEventListTypes.OTHERS,
288
+ [activity_types_1.LumiaAlertValues.OBS_SCREENSHOT_SAVED]: LumiaEventListTypes.OTHERS,
289
+ [activity_types_1.LumiaAlertValues.OBS_REPLAY_BUFFER_SAVED]: LumiaEventListTypes.OTHERS,
290
+ [activity_types_1.LumiaAlertValues.OBS_VERTICAL_BACKTRACK_SAVED]: LumiaEventListTypes.OTHERS,
291
+ [activity_types_1.LumiaAlertValues.OBS_VENDOR_EVENT]: LumiaEventListTypes.OTHERS,
292
+ [activity_types_1.LumiaAlertValues.SLOBS_SWITCH_SCENE_COLLECTION]: LumiaEventListTypes.OTHERS,
293
+ [activity_types_1.LumiaAlertValues.SLOBS_SWITCH_SCENE]: LumiaEventListTypes.OTHERS,
294
+ [activity_types_1.LumiaAlertValues.SLOBS_SCENE_ITEM_VISIBILITY]: LumiaEventListTypes.OTHERS,
295
+ [activity_types_1.LumiaAlertValues.SLOBS_SCENE_ITEM_HIDDEN]: LumiaEventListTypes.OTHERS,
296
+ [activity_types_1.LumiaAlertValues.MELD_STREAM_STARTING]: LumiaEventListTypes.OTHERS,
297
+ [activity_types_1.LumiaAlertValues.MELD_STREAM_STOPPING]: LumiaEventListTypes.OTHERS,
298
+ [activity_types_1.LumiaAlertValues.MELD_RECORDING_STARTING]: LumiaEventListTypes.OTHERS,
299
+ [activity_types_1.LumiaAlertValues.MELD_RECORDING_STOPPING]: LumiaEventListTypes.OTHERS,
300
+ [activity_types_1.LumiaAlertValues.MELD_SWITCH_SCENE]: LumiaEventListTypes.OTHERS,
301
+ [activity_types_1.LumiaAlertValues.MELD_SWITCH_VERTICAL_SCENE]: LumiaEventListTypes.OTHERS,
302
+ // --- Music players (Spotify / YouTube Music / Now Playing / VLC) ---
303
+ [activity_types_1.LumiaAlertValues.SPOTIFY_SWITCH_SONG]: LumiaEventListTypes.OTHERS,
304
+ [activity_types_1.LumiaAlertValues.SPOTIFY_SONG_PLAYED]: LumiaEventListTypes.OTHERS,
305
+ [activity_types_1.LumiaAlertValues.SPOTIFY_SONG_PAUSED]: LumiaEventListTypes.OTHERS,
306
+ [activity_types_1.LumiaAlertValues.YOUTUBEMUSIC_SWITCH_SONG]: LumiaEventListTypes.OTHERS,
307
+ [activity_types_1.LumiaAlertValues.YOUTUBEMUSIC_SONG_PLAYED]: LumiaEventListTypes.OTHERS,
308
+ [activity_types_1.LumiaAlertValues.YOUTUBEMUSIC_SONG_PAUSED]: LumiaEventListTypes.OTHERS,
309
+ [activity_types_1.LumiaAlertValues.NOWPLAYING_SWITCH_SONG]: LumiaEventListTypes.OTHERS,
310
+ [activity_types_1.LumiaAlertValues.NOWPLAYING_SONG_PLAYED]: LumiaEventListTypes.OTHERS,
311
+ [activity_types_1.LumiaAlertValues.NOWPLAYING_SONG_PAUSED]: LumiaEventListTypes.OTHERS,
312
+ [activity_types_1.LumiaAlertValues.VLC_SWITCH_SONG]: LumiaEventListTypes.OTHERS,
313
+ [activity_types_1.LumiaAlertValues.VLC_SONG_PLAYED]: LumiaEventListTypes.OTHERS,
314
+ [activity_types_1.LumiaAlertValues.VLC_SONG_PAUSED]: LumiaEventListTypes.OTHERS,
315
+ // --- Health / fitness ---
316
+ [activity_types_1.LumiaAlertValues.PULSE_HEARTRATE]: LumiaEventListTypes.OTHERS,
317
+ [activity_types_1.LumiaAlertValues.PULSE_CALORIES]: LumiaEventListTypes.OTHERS,
318
+ // --- Social media (Twitter / X) ---
119
319
  [activity_types_1.LumiaAlertValues.TWITTER_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
120
320
  [activity_types_1.LumiaAlertValues.TWITTER_LIKE]: LumiaEventListTypes.LIKES,
121
321
  [activity_types_1.LumiaAlertValues.TWITTER_RETWEET]: LumiaEventListTypes.RETWEETS,
322
+ // --- E-commerce ---
122
323
  [activity_types_1.LumiaAlertValues.WOOCOMMERCE_ORDER]: LumiaEventListTypes.PURCHASES,
123
- [activity_types_1.LumiaAlertValues.YOUTUBE_MEMBER]: LumiaEventListTypes.SUBSCRIBERS,
124
- [activity_types_1.LumiaAlertValues.YOUTUBE_SUBSCRIBER]: LumiaEventListTypes.FOLLOWER,
125
- [activity_types_1.LumiaAlertValues.YOUTUBE_SUPERCHAT]: LumiaEventListTypes.SUPERCHATS,
126
- [activity_types_1.LumiaAlertValues.YOUTUBE_SUPERSTICKER]: LumiaEventListTypes.SUPERSTICKERS,
127
- [activity_types_1.LumiaAlertValues.YOUTUBE_GIFTS]: LumiaEventListTypes.GIFTS,
128
- [activity_types_1.LumiaAlertValues.YOUTUBE_LIKE]: LumiaEventListTypes.LIKES,
129
- [activity_types_1.LumiaAlertValues.YOUTUBE_VIEWERS]: LumiaEventListTypes.OTHERS,
324
+ // --- Other integrations ---
325
+ [activity_types_1.LumiaAlertValues.STREAMERBOT_ACTION]: LumiaEventListTypes.OTHERS,
130
326
  [activity_types_1.LumiaAlertValues.CROWDCONTROL_EFFECT]: LumiaEventListTypes.OTHERS,
327
+ // --- VTube Studio ---
328
+ [activity_types_1.LumiaAlertValues.VTUBESTUDIO_HOTKEY_TRIGGERED]: LumiaEventListTypes.OTHERS,
329
+ [activity_types_1.LumiaAlertValues.VTUBESTUDIO_MODEL_LOADED]: LumiaEventListTypes.OTHERS,
330
+ [activity_types_1.LumiaAlertValues.VTUBESTUDIO_ANIMATION_START]: LumiaEventListTypes.OTHERS,
331
+ [activity_types_1.LumiaAlertValues.VTUBESTUDIO_ANIMATION_END]: LumiaEventListTypes.OTHERS,
332
+ [activity_types_1.LumiaAlertValues.VTUBESTUDIO_ITEM_ADDED]: LumiaEventListTypes.OTHERS,
333
+ [activity_types_1.LumiaAlertValues.VTUBESTUDIO_ITEM_REMOVED]: LumiaEventListTypes.OTHERS,
334
+ [activity_types_1.LumiaAlertValues.VTUBESTUDIO_BACKGROUND_CHANGED]: LumiaEventListTypes.OTHERS,
131
335
  };
@@ -82,6 +82,21 @@ export declare enum SystemVariables {
82
82
  SESSION_START_DATE = "session_start_date",
83
83
  /** Last overlay screenshot path. Use as {{last_overlay_screenshot_path}}. */
84
84
  LAST_OVERLAY_SCREENSHOT_PATH = "last_overlay_screenshot_path",
85
+ /**
86
+ * Streamer's display name. Platform-agnostic — resolves to the streamer's
87
+ * username on whichever platform is currently connected, preferring the
88
+ * primary platform when multiple are connected. Use as {{streamer}}.
89
+ *
90
+ * Resolution order in the renderer: twitch_username → kick_username →
91
+ * youtube_username → facebook_username → tiktok_username, falling back to
92
+ * '' when no platform is connected. Re-evaluated whenever any of those
93
+ * underlying username variables changes.
94
+ *
95
+ * Useful for templates that want to say "{{streamer}}'s overlay" without
96
+ * knowing which platform the streamer is on — and for SE imports which
97
+ * use the same `{streamer}` token as a platform-agnostic placeholder.
98
+ */
99
+ STREAMER = "streamer",
85
100
  /** Last player to trigger a game. Use as {{game_last_player}}. */
86
101
  GAME_LAST_PLAYER = "game_last_player",
87
102
  /** Lumia app uptime. Use as {{lumia_uptime}}. */
@@ -85,6 +85,21 @@ var SystemVariables;
85
85
  SystemVariables["SESSION_START_DATE"] = "session_start_date";
86
86
  /** Last overlay screenshot path. Use as {{last_overlay_screenshot_path}}. */
87
87
  SystemVariables["LAST_OVERLAY_SCREENSHOT_PATH"] = "last_overlay_screenshot_path";
88
+ /**
89
+ * Streamer's display name. Platform-agnostic — resolves to the streamer's
90
+ * username on whichever platform is currently connected, preferring the
91
+ * primary platform when multiple are connected. Use as {{streamer}}.
92
+ *
93
+ * Resolution order in the renderer: twitch_username → kick_username →
94
+ * youtube_username → facebook_username → tiktok_username, falling back to
95
+ * '' when no platform is connected. Re-evaluated whenever any of those
96
+ * underlying username variables changes.
97
+ *
98
+ * Useful for templates that want to say "{{streamer}}'s overlay" without
99
+ * knowing which platform the streamer is on — and for SE imports which
100
+ * use the same `{streamer}` token as a platform-agnostic placeholder.
101
+ */
102
+ SystemVariables["STREAMER"] = "streamer";
88
103
  // ─────────────────────────────────── Games ────────────────────────────────────
89
104
  /** Last player to trigger a game. Use as {{game_last_player}}. */
90
105
  SystemVariables["GAME_LAST_PLAYER"] = "game_last_player";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumiastream/lumia-types",
3
- "version": "3.3.7",
3
+ "version": "3.3.9",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/esm/index.js",