@lumiastream/lumia-types 3.3.9 → 3.4.1

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.
@@ -2,9 +2,15 @@ import { LumiaAlertValues } from './activity.types';
2
2
  /**
3
3
  * Eventlist categories. The eventlist module uses these as a *blacklist* via
4
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.).
5
+ * feed (and so anything NOT listed is shown).
6
+ *
7
+ * Policy: every category here corresponds to a viewer-facing event class. We
8
+ * deliberately do NOT have an "others" catch-all category — alerts that exist
9
+ * only as stream-management / administrative signals (OBS scene switches,
10
+ * stream-live notices, music-player events, poll progress, etc.) are simply
11
+ * left out of `LumiaMapAlertTypeToEventListType` below. The eventlist
12
+ * component only renders MAPPED alerts, so unmapped alerts are silently
13
+ * excluded from every feed without needing a UI toggle.
8
14
  *
9
15
  * When adding a new value here, mirror it in:
10
16
  * - `ALL_LUMIA_EVENTLIST_CATEGORIES` in Lumia-UI's SE importer
@@ -35,33 +41,63 @@ export declare enum LumiaEventListTypes {
35
41
  STARS = "stars",
36
42
  FANS = "fans",
37
43
  SHARES = "shares",
38
- RAFFLE = "raffles",
39
- OTHERS = "others"
44
+ RAFFLE = "raffles"
40
45
  }
41
46
  /**
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.
47
+ * Categorization map from `LumiaAlertValues` → `LumiaEventListTypes`. The
48
+ * eventlist module ONLY renders alerts that appear in this map anything
49
+ * absent is silently excluded from every feed (no UI toggle to surface it).
49
50
  *
50
51
  * 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.
52
+ * - Map only viewer-facing events. Stream-management / administrative
53
+ * signals (OBS / SLOBS / Meld scene switches, music-player events,
54
+ * poll/prediction/goal lifecycle, stream-live notices, channel
55
+ * join/leave, ad starts/stops, Pulse heartrate, etc.) are NOT mapped
56
+ * they don't belong in a viewer-facing activity feed and have no UI
57
+ * toggle to bring them in.
58
+ * - Categorize by the *viewer's* intent, not payload shape. A Throne /
59
+ * Fourthwall shop gift purchase is a viewer buying something for the
60
+ * streamer → PURCHASES. A subscription-expired notice is admin, not a
61
+ * new subscriber → omit entirely (was OTHERS, now unmapped).
60
62
  * - 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
+ * category of their per-event cousin (FOLLOWER) so a counter widget
64
+ * can reuse the same category filter.
63
65
  *
64
66
  * Grouped by platform / source for review; ordering within groups follows
65
- * the enum declaration in `activity.types.ts`.
67
+ * the enum declaration in `activity.types.ts`. Alerts that previously
68
+ * mapped to OTHERS were removed in this revision and are now unmapped
69
+ * (purposefully hidden from all eventlists).
66
70
  */
67
71
  export declare const LumiaMapAlertTypeToEventListType: Partial<Record<LumiaAlertValues, LumiaEventListTypes>>;
72
+ /**
73
+ * Alerts that should NOT appear in the eventlist's user-facing picker AND
74
+ * should NOT render in any eventlist feed. The invariant is:
75
+ *
76
+ * - Every `LumiaAlertValues` member must appear in EITHER
77
+ * `LumiaMapAlertTypeToEventListType` (mapped → visible in the picker
78
+ * and eventlist) OR in `AlertsToFilter` (hidden everywhere). Never
79
+ * both, never neither.
80
+ *
81
+ * Shared between LumiaStream (`EventCollection.ts` skips processing these
82
+ * to avoid spamming the event log, `EventListFilterPopover` hides them from
83
+ * the picker) and Overlay-UI (eventlist Manager picker hides them, eventlist
84
+ * component drops them at render). Was duplicated in both repos before
85
+ * being consolidated here.
86
+ *
87
+ * Grouped by source / platform. When adding a new alert to
88
+ * `LumiaAlertValues`, place it in EXACTLY ONE of the two lists. Default
89
+ * choice is `AlertsToFilter` (hidden) unless it's a viewer-facing event
90
+ * the eventlist should render.
91
+ */
92
+ export declare const AlertsToFilter: LumiaAlertValues[];
93
+ /**
94
+ * Platforms whose events should be hidden from the eventlist / event log
95
+ * processing pipeline. These are connections whose alerts are stream
96
+ * management or housekeeping (broadcasting apps, music players, health
97
+ * trackers, automation tools) rather than viewer-facing activity.
98
+ *
99
+ * Used by LumiaStream's `EventCollection.ts` to short-circuit processing
100
+ * before the event lands in the eventlist DB at all. Was duplicated in
101
+ * LumiaStream `Integrations.types.ts` before being consolidated here.
102
+ */
103
+ export declare const PlatformsToFilter: string[];
@@ -1,13 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LumiaMapAlertTypeToEventListType = exports.LumiaEventListTypes = void 0;
3
+ exports.PlatformsToFilter = exports.AlertsToFilter = exports.LumiaMapAlertTypeToEventListType = exports.LumiaEventListTypes = void 0;
4
4
  const activity_types_1 = require("./activity.types");
5
5
  /**
6
6
  * Eventlist categories. The eventlist module uses these as a *blacklist* via
7
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.).
8
+ * feed (and so anything NOT listed is shown).
9
+ *
10
+ * Policy: every category here corresponds to a viewer-facing event class. We
11
+ * deliberately do NOT have an "others" catch-all category — alerts that exist
12
+ * only as stream-management / administrative signals (OBS scene switches,
13
+ * stream-live notices, music-player events, poll progress, etc.) are simply
14
+ * left out of `LumiaMapAlertTypeToEventListType` below. The eventlist
15
+ * component only renders MAPPED alerts, so unmapped alerts are silently
16
+ * excluded from every feed without needing a UI toggle.
11
17
  *
12
18
  * When adding a new value here, mirror it in:
13
19
  * - `ALL_LUMIA_EVENTLIST_CATEGORIES` in Lumia-UI's SE importer
@@ -40,67 +46,38 @@ var LumiaEventListTypes;
40
46
  LumiaEventListTypes["FANS"] = "fans";
41
47
  LumiaEventListTypes["SHARES"] = "shares";
42
48
  LumiaEventListTypes["RAFFLE"] = "raffles";
43
- LumiaEventListTypes["OTHERS"] = "others";
44
49
  })(LumiaEventListTypes || (exports.LumiaEventListTypes = LumiaEventListTypes = {}));
45
50
  /**
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.
51
+ * Categorization map from `LumiaAlertValues` → `LumiaEventListTypes`. The
52
+ * eventlist module ONLY renders alerts that appear in this map anything
53
+ * absent is silently excluded from every feed (no UI toggle to surface it).
53
54
  *
54
55
  * 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.
56
+ * - Map only viewer-facing events. Stream-management / administrative
57
+ * signals (OBS / SLOBS / Meld scene switches, music-player events,
58
+ * poll/prediction/goal lifecycle, stream-live notices, channel
59
+ * join/leave, ad starts/stops, Pulse heartrate, etc.) are NOT mapped
60
+ * they don't belong in a viewer-facing activity feed and have no UI
61
+ * toggle to bring them in.
62
+ * - Categorize by the *viewer's* intent, not payload shape. A Throne /
63
+ * Fourthwall shop gift purchase is a viewer buying something for the
64
+ * streamer → PURCHASES. A subscription-expired notice is admin, not a
65
+ * new subscriber → omit entirely (was OTHERS, now unmapped).
64
66
  * - 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
+ * category of their per-event cousin (FOLLOWER) so a counter widget
68
+ * can reuse the same category filter.
67
69
  *
68
70
  * Grouped by platform / source for review; ordering within groups follows
69
- * the enum declaration in `activity.types.ts`.
71
+ * the enum declaration in `activity.types.ts`. Alerts that previously
72
+ * mapped to OTHERS were removed in this revision and are now unmapped
73
+ * (purposefully hidden from all eventlists).
70
74
  */
71
75
  exports.LumiaMapAlertTypeToEventListType = {
72
76
  // --- Lumia Stream native ---
73
77
  [activity_types_1.LumiaAlertValues.LUMIASTREAM_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,
78
- [activity_types_1.LumiaAlertValues.LUMIASTREAM_RAFFLE_START]: LumiaEventListTypes.RAFFLE,
79
- [activity_types_1.LumiaAlertValues.LUMIASTREAM_RAFFLE_STOP]: LumiaEventListTypes.RAFFLE,
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,
87
- [activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_START]: LumiaEventListTypes.OTHERS,
88
- [activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_END]: LumiaEventListTypes.OTHERS,
89
- [activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_WINNER]: LumiaEventListTypes.OTHERS,
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
78
  // --- Twitch ---
98
79
  [activity_types_1.LumiaAlertValues.TWITCH_EXTENSION]: LumiaEventListTypes.EXTENSION,
99
80
  [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
81
  [activity_types_1.LumiaAlertValues.TWITCH_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
105
82
  [activity_types_1.LumiaAlertValues.TWITCH_SESSION_FOLLOWERS]: LumiaEventListTypes.FOLLOWER,
106
83
  [activity_types_1.LumiaAlertValues.TWITCH_SUBSCRIBER]: LumiaEventListTypes.SUBSCRIBERS,
@@ -112,49 +89,11 @@ exports.LumiaMapAlertTypeToEventListType = {
112
89
  [activity_types_1.LumiaAlertValues.TWITCH_BITS]: LumiaEventListTypes.BITS,
113
90
  [activity_types_1.LumiaAlertValues.TWITCH_BITS_COMBO]: LumiaEventListTypes.BITS,
114
91
  [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
92
  [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
93
  [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
94
  [activity_types_1.LumiaAlertValues.TWITCH_POWERUPS]: LumiaEventListTypes.BITS,
149
95
  [activity_types_1.LumiaAlertValues.TWITCH_POWERUPS_POINTS]: LumiaEventListTypes.POINTS,
150
96
  // --- 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
97
  [activity_types_1.LumiaAlertValues.YOUTUBE_SUBSCRIBER]: LumiaEventListTypes.FOLLOWER,
159
98
  [activity_types_1.LumiaAlertValues.YOUTUBE_SESSION_SUBS]: LumiaEventListTypes.FOLLOWER,
160
99
  [activity_types_1.LumiaAlertValues.YOUTUBE_MEMBER]: LumiaEventListTypes.SUBSCRIBERS,
@@ -167,50 +106,24 @@ exports.LumiaMapAlertTypeToEventListType = {
167
106
  [activity_types_1.LumiaAlertValues.YOUTUBE_SESSION_SUPERSTICKERS]: LumiaEventListTypes.SUPERSTICKERS,
168
107
  [activity_types_1.LumiaAlertValues.YOUTUBE_GIFTS]: LumiaEventListTypes.GIFTS,
169
108
  [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
109
  // --- 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,
177
110
  [activity_types_1.LumiaAlertValues.FACEBOOK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
178
111
  [activity_types_1.LumiaAlertValues.FACEBOOK_REACTION]: LumiaEventListTypes.LIKES,
179
112
  [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.
183
113
  [activity_types_1.LumiaAlertValues.FACEBOOK_SUPPORT]: LumiaEventListTypes.SUBSCRIBERS,
184
114
  [activity_types_1.LumiaAlertValues.FACEBOOK_GIFT_SUBSCRIPTION]: LumiaEventListTypes.GIFTS,
185
115
  [activity_types_1.LumiaAlertValues.FACEBOOK_SHARE]: LumiaEventListTypes.SHARES,
186
116
  [activity_types_1.LumiaAlertValues.FACEBOOK_FAN]: LumiaEventListTypes.FANS,
187
117
  // --- TikTok ---
188
- [activity_types_1.LumiaAlertValues.TIKTOK_FIRST_CHATTER]: LumiaEventListTypes.OTHERS,
189
- [activity_types_1.LumiaAlertValues.TIKTOK_ENTRANCE]: LumiaEventListTypes.OTHERS,
190
118
  [activity_types_1.LumiaAlertValues.TIKTOK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
191
- [activity_types_1.LumiaAlertValues.TIKTOK_LIKE]: LumiaEventListTypes.LIKES,
192
- [activity_types_1.LumiaAlertValues.TIKTOK_TOTAL_LIKES]: LumiaEventListTypes.LIKES,
193
119
  [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.
197
120
  [activity_types_1.LumiaAlertValues.TIKTOK_SUPER_FAN]: LumiaEventListTypes.SUBSCRIBERS,
198
121
  [activity_types_1.LumiaAlertValues.TIKTOK_SUPER_FAN_BOX]: LumiaEventListTypes.GIFTS,
199
122
  [activity_types_1.LumiaAlertValues.TIKTOK_TREASURE_CHEST]: LumiaEventListTypes.GIFTS,
200
- [activity_types_1.LumiaAlertValues.TIKTOK_QUESTION]: LumiaEventListTypes.OTHERS,
201
- [activity_types_1.LumiaAlertValues.TIKTOK_POLL]: LumiaEventListTypes.OTHERS,
202
123
  [activity_types_1.LumiaAlertValues.TIKTOK_SHOP_PURCHASE]: LumiaEventListTypes.PURCHASES,
203
- [activity_types_1.LumiaAlertValues.TIKTOK_PIN_MESSAGE]: LumiaEventListTypes.OTHERS,
204
- [activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_START]: LumiaEventListTypes.OTHERS,
205
- [activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_PROGRESS]: LumiaEventListTypes.OTHERS,
206
- [activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_END]: LumiaEventListTypes.OTHERS,
207
124
  [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
125
  // --- Kick ---
211
126
  [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,
214
127
  [activity_types_1.LumiaAlertValues.KICK_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
215
128
  [activity_types_1.LumiaAlertValues.KICK_SESSION_FOLLOWERS]: LumiaEventListTypes.FOLLOWER,
216
129
  [activity_types_1.LumiaAlertValues.KICK_SUBSCRIBER]: LumiaEventListTypes.SUBSCRIBERS,
@@ -220,29 +133,16 @@ exports.LumiaMapAlertTypeToEventListType = {
220
133
  [activity_types_1.LumiaAlertValues.KICK_KICKS]: LumiaEventListTypes.KICKS,
221
134
  [activity_types_1.LumiaAlertValues.KICK_SESSION_KICKS]: LumiaEventListTypes.KICKS,
222
135
  [activity_types_1.LumiaAlertValues.KICK_HOST]: LumiaEventListTypes.HOSTS,
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
136
  // --- Third-party donation / commerce platforms ---
229
137
  [activity_types_1.LumiaAlertValues.STREAMLABS_DONATION]: LumiaEventListTypes.DONATION,
230
138
  [activity_types_1.LumiaAlertValues.STREAMLABS_CHARITY]: LumiaEventListTypes.DONATION,
231
139
  [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
140
  [activity_types_1.LumiaAlertValues.STREAMLABS_REDEMPTION]: LumiaEventListTypes.REDEMPTION,
236
141
  [activity_types_1.LumiaAlertValues.STREAMLABS_PRIMEGIFT]: LumiaEventListTypes.GIFTS,
237
142
  [activity_types_1.LumiaAlertValues.STREAMELEMENTS_DONATION]: LumiaEventListTypes.DONATION,
238
143
  [activity_types_1.LumiaAlertValues.EXTRALIFE_DONATION]: LumiaEventListTypes.DONATION,
239
144
  [activity_types_1.LumiaAlertValues.DONORDRIVE_DONATION]: LumiaEventListTypes.DONATION,
240
145
  [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
146
  [activity_types_1.LumiaAlertValues.THRONE_GIFT_PURCHASE]: LumiaEventListTypes.PURCHASES,
247
147
  [activity_types_1.LumiaAlertValues.THRONE_CONTRIBUTION_PURCHASE]: LumiaEventListTypes.PURCHASES,
248
148
  [activity_types_1.LumiaAlertValues.THRONE_GIFT_CROWDFUNDED]: LumiaEventListTypes.PURCHASES,
@@ -257,79 +157,194 @@ exports.LumiaMapAlertTypeToEventListType = {
257
157
  [activity_types_1.LumiaAlertValues.FOURTHWALL_DONATION]: LumiaEventListTypes.DONATION,
258
158
  [activity_types_1.LumiaAlertValues.FOURTHWALL_SUBSCRIPTION]: LumiaEventListTypes.SUBSCRIBERS,
259
159
  [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
160
  [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
161
  // --- Social media (Twitter / X) ---
319
162
  [activity_types_1.LumiaAlertValues.TWITTER_FOLLOWER]: LumiaEventListTypes.FOLLOWER,
320
- [activity_types_1.LumiaAlertValues.TWITTER_LIKE]: LumiaEventListTypes.LIKES,
321
163
  [activity_types_1.LumiaAlertValues.TWITTER_RETWEET]: LumiaEventListTypes.RETWEETS,
322
164
  // --- E-commerce ---
323
165
  [activity_types_1.LumiaAlertValues.WOOCOMMERCE_ORDER]: LumiaEventListTypes.PURCHASES,
166
+ };
167
+ /**
168
+ * Alerts that should NOT appear in the eventlist's user-facing picker AND
169
+ * should NOT render in any eventlist feed. The invariant is:
170
+ *
171
+ * - Every `LumiaAlertValues` member must appear in EITHER
172
+ * `LumiaMapAlertTypeToEventListType` (mapped → visible in the picker
173
+ * and eventlist) OR in `AlertsToFilter` (hidden everywhere). Never
174
+ * both, never neither.
175
+ *
176
+ * Shared between LumiaStream (`EventCollection.ts` skips processing these
177
+ * to avoid spamming the event log, `EventListFilterPopover` hides them from
178
+ * the picker) and Overlay-UI (eventlist Manager picker hides them, eventlist
179
+ * component drops them at render). Was duplicated in both repos before
180
+ * being consolidated here.
181
+ *
182
+ * Grouped by source / platform. When adding a new alert to
183
+ * `LumiaAlertValues`, place it in EXACTLY ONE of the two lists. Default
184
+ * choice is `AlertsToFilter` (hidden) unless it's a viewer-facing event
185
+ * the eventlist should render.
186
+ */
187
+ exports.AlertsToFilter = [
188
+ // --- Lumia Stream native ---
189
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_LUMIA_OPENED,
190
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_LUMIA_CLOSED,
191
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_STREAMMODE_ON,
192
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_STREAMMODE_OFF,
193
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_SPINWHEEL_WINNER,
194
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_RAFFLE_START,
195
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_RAFFLE_STOP,
196
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_RAFFLE_WINNER,
197
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_START,
198
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_END,
199
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_TOURNAMENT_WINNER,
200
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_POLL_STARTED,
201
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_POLL_PROGRESSED,
202
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_POLL_ENDED,
203
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_VIEWERQUEUE_STARTED,
204
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_VIEWERQUEUE_ENDED,
205
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_VIEWER_ACHIEVEMENT,
206
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_VARIABLE_CHANGED,
207
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_ROULETTE_WINNER,
208
+ activity_types_1.LumiaAlertValues.LUMIASTREAM_SLOTS_WINNER,
209
+ // --- Twitch ---
210
+ activity_types_1.LumiaAlertValues.TWITCH_STREAM_LIVE,
211
+ activity_types_1.LumiaAlertValues.TWITCH_STREAM_OFFLINE,
212
+ activity_types_1.LumiaAlertValues.TWITCH_ENTRANCE,
213
+ activity_types_1.LumiaAlertValues.TWITCH_FIRST_CHATTER,
214
+ activity_types_1.LumiaAlertValues.TWITCH_HYPETRAIN_PROGRESSED,
215
+ activity_types_1.LumiaAlertValues.TWITCH_HYPETRAIN_LEVEL_PROGRESSED,
216
+ activity_types_1.LumiaAlertValues.TWITCH_HYPETRAIN_ENDED,
217
+ activity_types_1.LumiaAlertValues.TWITCH_REDEMPTION,
218
+ activity_types_1.LumiaAlertValues.TWITCH_POLL_STARTED,
219
+ activity_types_1.LumiaAlertValues.TWITCH_POLL_PROGRESSED,
220
+ activity_types_1.LumiaAlertValues.TWITCH_POLL_ENDED,
221
+ activity_types_1.LumiaAlertValues.TWITCH_PREDICTION_STARTED,
222
+ activity_types_1.LumiaAlertValues.TWITCH_PREDICTION_PROGRESSED,
223
+ activity_types_1.LumiaAlertValues.TWITCH_PREDICTION_LOCKED,
224
+ activity_types_1.LumiaAlertValues.TWITCH_PREDICTION_ENDED,
225
+ activity_types_1.LumiaAlertValues.TWITCH_GOAL_STARTED,
226
+ activity_types_1.LumiaAlertValues.TWITCH_GOAL_PROGRESSED,
227
+ activity_types_1.LumiaAlertValues.TWITCH_GOAL_ENDED,
228
+ activity_types_1.LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_STARTED,
229
+ activity_types_1.LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_PROGRESSED,
230
+ activity_types_1.LumiaAlertValues.TWITCH_CHARITY_CAMPAIGN_STOPPED,
231
+ activity_types_1.LumiaAlertValues.TWITCH_CATEGORY,
232
+ activity_types_1.LumiaAlertValues.TWITCH_CLIP,
233
+ activity_types_1.LumiaAlertValues.TWITCH_CHANNEL_JOIN,
234
+ activity_types_1.LumiaAlertValues.TWITCH_CHANNEL_LEAVE,
235
+ activity_types_1.LumiaAlertValues.TWITCH_BANNED,
236
+ activity_types_1.LumiaAlertValues.TWITCH_TIMEOUT,
237
+ activity_types_1.LumiaAlertValues.TWITCH_TIMEOUT_OVER,
238
+ activity_types_1.LumiaAlertValues.TWITCH_SHOUTOUT_RECEIVE,
239
+ activity_types_1.LumiaAlertValues.TWITCH_AD_STARTED,
240
+ activity_types_1.LumiaAlertValues.TWITCH_AD_STOPPED,
241
+ activity_types_1.LumiaAlertValues.TWITCH_WATCH_STREAK,
242
+ // --- YouTube ---
243
+ activity_types_1.LumiaAlertValues.YOUTUBE_STREAM_LIVE,
244
+ activity_types_1.LumiaAlertValues.YOUTUBE_STREAM_OFFLINE,
245
+ activity_types_1.LumiaAlertValues.YOUTUBE_ENTRANCE,
246
+ activity_types_1.LumiaAlertValues.YOUTUBE_FIRST_CHATTER,
247
+ activity_types_1.LumiaAlertValues.YOUTUBE_LIKE,
248
+ activity_types_1.LumiaAlertValues.YOUTUBE_VIEWERS,
249
+ // --- Facebook ---
250
+ activity_types_1.LumiaAlertValues.FACEBOOK_STREAM_LIVE,
251
+ activity_types_1.LumiaAlertValues.FACEBOOK_STREAM_OFFLINE,
252
+ activity_types_1.LumiaAlertValues.FACEBOOK_ENTRANCE,
253
+ activity_types_1.LumiaAlertValues.FACEBOOK_FIRST_CHATTER,
254
+ // --- TikTok ---
255
+ activity_types_1.LumiaAlertValues.TIKTOK_STREAM_END,
256
+ activity_types_1.LumiaAlertValues.TIKTOK_ENTRANCE,
257
+ activity_types_1.LumiaAlertValues.TIKTOK_FIRST_CHATTER,
258
+ activity_types_1.LumiaAlertValues.TIKTOK_NEW_VIDEO,
259
+ activity_types_1.LumiaAlertValues.TIKTOK_TOTAL_LIKES,
260
+ activity_types_1.LumiaAlertValues.TIKTOK_LIKE,
261
+ activity_types_1.LumiaAlertValues.TIKTOK_QUESTION,
262
+ activity_types_1.LumiaAlertValues.TIKTOK_POLL,
263
+ activity_types_1.LumiaAlertValues.TIKTOK_PIN_MESSAGE,
264
+ activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_START,
265
+ activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_PROGRESS,
266
+ activity_types_1.LumiaAlertValues.TIKTOK_BATTLE_END,
267
+ // --- Kick ---
268
+ activity_types_1.LumiaAlertValues.KICK_ENTRANCE,
269
+ activity_types_1.LumiaAlertValues.KICK_FIRST_CHATTER,
270
+ activity_types_1.LumiaAlertValues.KICK_BANNED,
271
+ activity_types_1.LumiaAlertValues.KICK_UNBANNED,
272
+ // --- Discord ---
273
+ activity_types_1.LumiaAlertValues.DISCORD_FIRST_CHATTER,
274
+ activity_types_1.LumiaAlertValues.DISCORD_ENTRANCE,
275
+ // --- Third-party (Fourthwall housekeeping) ---
276
+ activity_types_1.LumiaAlertValues.FOURTHWALL_SUBSCRIPTION_EXPIRED,
277
+ activity_types_1.LumiaAlertValues.FOURTHWALL_GIVEAWAY_STARTED,
278
+ activity_types_1.LumiaAlertValues.FOURTHWALL_GIVEAWAY_ENDED,
279
+ activity_types_1.LumiaAlertValues.FOURTHWALL_THANKYOU_SENT,
280
+ activity_types_1.LumiaAlertValues.FOURTHWALL_NEWSLETTER_SUBSCRIBED,
281
+ // --- Broadcasting apps (OBS / SLOBS / Meld) ---
282
+ activity_types_1.LumiaAlertValues.OBS_SWITCH_PROFILE,
283
+ activity_types_1.LumiaAlertValues.OBS_SWITCH_SCENE,
284
+ activity_types_1.LumiaAlertValues.OBS_SCENE_ITEM_VISIBILITY,
285
+ activity_types_1.LumiaAlertValues.OBS_SCENE_ITEM_HIDDEN,
286
+ activity_types_1.LumiaAlertValues.OBS_SWITCH_TRANSITION,
287
+ activity_types_1.LumiaAlertValues.OBS_TRANSITION_BEGIN,
288
+ activity_types_1.LumiaAlertValues.OBS_TRANSITION_END,
289
+ activity_types_1.LumiaAlertValues.OBS_STREAM_STARTING,
290
+ activity_types_1.LumiaAlertValues.OBS_STREAM_STOPPING,
291
+ activity_types_1.LumiaAlertValues.OBS_RECORDING_STARTING,
292
+ activity_types_1.LumiaAlertValues.OBS_RECORDING_STOPPING,
293
+ activity_types_1.LumiaAlertValues.OBS_MEDIA_INPUT_PLAYBACK_STARTED,
294
+ activity_types_1.LumiaAlertValues.OBS_MEDIA_INPUT_PLAYBACK_ENDED,
295
+ activity_types_1.LumiaAlertValues.OBS_VIRTUALCAM_STATE_CHANGED,
296
+ activity_types_1.LumiaAlertValues.OBS_SCREENSHOT_SAVED,
297
+ activity_types_1.LumiaAlertValues.OBS_REPLAY_BUFFER_SAVED,
298
+ activity_types_1.LumiaAlertValues.OBS_VERTICAL_BACKTRACK_SAVED,
299
+ activity_types_1.LumiaAlertValues.OBS_VENDOR_EVENT,
300
+ activity_types_1.LumiaAlertValues.SLOBS_SWITCH_SCENE_COLLECTION,
301
+ activity_types_1.LumiaAlertValues.SLOBS_SWITCH_SCENE,
302
+ activity_types_1.LumiaAlertValues.SLOBS_SCENE_ITEM_VISIBILITY,
303
+ activity_types_1.LumiaAlertValues.SLOBS_SCENE_ITEM_HIDDEN,
304
+ activity_types_1.LumiaAlertValues.MELD_STREAM_STARTING,
305
+ activity_types_1.LumiaAlertValues.MELD_STREAM_STOPPING,
306
+ activity_types_1.LumiaAlertValues.MELD_RECORDING_STARTING,
307
+ activity_types_1.LumiaAlertValues.MELD_RECORDING_STOPPING,
308
+ activity_types_1.LumiaAlertValues.MELD_SWITCH_SCENE,
309
+ activity_types_1.LumiaAlertValues.MELD_SWITCH_VERTICAL_SCENE,
310
+ // --- Music players ---
311
+ activity_types_1.LumiaAlertValues.SPOTIFY_SWITCH_SONG,
312
+ activity_types_1.LumiaAlertValues.SPOTIFY_SONG_PLAYED,
313
+ activity_types_1.LumiaAlertValues.SPOTIFY_SONG_PAUSED,
314
+ activity_types_1.LumiaAlertValues.YOUTUBEMUSIC_SWITCH_SONG,
315
+ activity_types_1.LumiaAlertValues.YOUTUBEMUSIC_SONG_PLAYED,
316
+ activity_types_1.LumiaAlertValues.YOUTUBEMUSIC_SONG_PAUSED,
317
+ activity_types_1.LumiaAlertValues.NOWPLAYING_SWITCH_SONG,
318
+ activity_types_1.LumiaAlertValues.NOWPLAYING_SONG_PLAYED,
319
+ activity_types_1.LumiaAlertValues.NOWPLAYING_SONG_PAUSED,
320
+ activity_types_1.LumiaAlertValues.VLC_SWITCH_SONG,
321
+ activity_types_1.LumiaAlertValues.VLC_SONG_PLAYED,
322
+ activity_types_1.LumiaAlertValues.VLC_SONG_PAUSED,
323
+ // --- Health / fitness ---
324
+ activity_types_1.LumiaAlertValues.PULSE_HEARTRATE,
325
+ activity_types_1.LumiaAlertValues.PULSE_CALORIES,
326
+ // --- Social media ---
327
+ activity_types_1.LumiaAlertValues.TWITTER_LIKE,
324
328
  // --- Other integrations ---
325
- [activity_types_1.LumiaAlertValues.STREAMERBOT_ACTION]: LumiaEventListTypes.OTHERS,
326
- [activity_types_1.LumiaAlertValues.CROWDCONTROL_EFFECT]: LumiaEventListTypes.OTHERS,
329
+ activity_types_1.LumiaAlertValues.STREAMERBOT_ACTION,
330
+ activity_types_1.LumiaAlertValues.CROWDCONTROL_EFFECT,
327
331
  // --- 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,
335
- };
332
+ activity_types_1.LumiaAlertValues.VTUBESTUDIO_HOTKEY_TRIGGERED,
333
+ activity_types_1.LumiaAlertValues.VTUBESTUDIO_MODEL_LOADED,
334
+ activity_types_1.LumiaAlertValues.VTUBESTUDIO_ANIMATION_START,
335
+ activity_types_1.LumiaAlertValues.VTUBESTUDIO_ANIMATION_END,
336
+ activity_types_1.LumiaAlertValues.VTUBESTUDIO_ITEM_ADDED,
337
+ activity_types_1.LumiaAlertValues.VTUBESTUDIO_ITEM_REMOVED,
338
+ activity_types_1.LumiaAlertValues.VTUBESTUDIO_BACKGROUND_CHANGED,
339
+ ];
340
+ /**
341
+ * Platforms whose events should be hidden from the eventlist / event log
342
+ * processing pipeline. These are connections whose alerts are stream
343
+ * management or housekeeping (broadcasting apps, music players, health
344
+ * trackers, automation tools) rather than viewer-facing activity.
345
+ *
346
+ * Used by LumiaStream's `EventCollection.ts` to short-circuit processing
347
+ * before the event lands in the eventlist DB at all. Was duplicated in
348
+ * LumiaStream `Integrations.types.ts` before being consolidated here.
349
+ */
350
+ exports.PlatformsToFilter = ['obs', 'slobs', 'meld', 'paypal', 'pulsoid', 'hyperate', 'spotify', 'youtubemusic', 'nowplaying', 'vlc', 'streamerbot', 'vtubestudio'];
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { LumiaStreamingSites, LumiaActivityCommandTypes, LumiaExternalActivityCommandTypes, LumiaAlertValues, LumiaAlertFriendlyValues, LumiaActivityOriginTypes, LumiaActivityApiValueType, LumiaActivityNoValueTypes, LumiaActivityTestType, } from './activity.types';
2
2
  export { LumiaVariationConditions, LumiaVariationCurrency, VariationCurrencySymbol, LumiaRedemptionCurrency, LumiaRedemptionCurrencySymbol, LumiaAlertConfigs, LumiaDynamicCondition, type LumiaSelectionOption, } from './alert.types';
3
3
  export { ILumiaSendPack, ILumiaEvent, ILumiaEventChatCommandBody, ILumiaEventChatBody, ILumiaEventAlertBody, ILumiaEventStateBody, ILumiaLight, LumiaIntegrations, LumiaEventTypes, } from './event.types';
4
- export { LumiaEventListTypes, LumiaMapAlertTypeToEventListType } from './eventlist.types';
4
+ export { LumiaEventListTypes, LumiaMapAlertTypeToEventListType, AlertsToFilter, PlatformsToFilter } from './eventlist.types';
5
5
  export { SystemVariables, ReservedVariables, AllVariables, getAcceptedVariableName, getAcceptedVariableNames, type LumiaAcceptedVariable, type LumiaAcceptedVariableDefinition, } from './variables.types';
6
6
  export { formatCondition } from './helpers';
7
7
  export { KickKicksData } from './kick_kicks';