onehook-api-client 1.0.18 → 1.0.20

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.
@@ -0,0 +1,457 @@
1
+ // GENERATED FILE - DO NOT EDIT.
2
+ // telemetry-integrity: sha256 4f5804c5220e5b73c5247dd08315e116f6cff47f4dc442db7ebb70c513b6f341
3
+ // Source of truth: OneHookBackend/packages/telemetry/src/catalog.ts
4
+ // Regenerate: (OneHookBackend) npm run telemetry:generate && npm run telemetry:sync
5
+ // Catalog version 1.3.0, hash 25955dd2f9856888.
6
+ //
7
+ // HARD RULE: every user interaction MUST emit ui_interaction with an id from THIS file, and
8
+ // ids are controlled by the backend. Read TELEMETRY_CONTRACT.txt (printed by every build).
9
+
10
+ @file:Suppress("unused")
11
+
12
+ package club.onehook.telemetry
13
+
14
+ object TelemetryCatalog {
15
+ const val VERSION = "1.3.0"
16
+ const val HASH = "25955dd2f9856888"
17
+ /** The only allowed `telemetry-exempt: <category>: <reason>` categories (see the catalog). */
18
+ val EXEMPT_CATEGORIES: List<String> = listOf("duplicate", "backdrop", "gesture", "continuous", "disabled")
19
+ }
20
+
21
+ /** Every signal type the ingest accepts. */
22
+ enum class TelemetrySignalType(val wire: String) {
23
+ SCREEN_VIEW("screen_view"),
24
+ UI_INTERACTION("ui_interaction"),
25
+ CARD_IMPRESSION("card_impression"),
26
+ CARD_SWIPE_UI("card_swipe_ui"),
27
+ PROMPT_VIEW("prompt_view"),
28
+ MEDIA_VIEW("media_view"),
29
+ MEDIA_FULLSCREEN_OPEN("media_fullscreen_open"),
30
+ SECTION_VIEW("section_view"),
31
+ NOTIFICATION_OPENED("notification_opened"),
32
+ SESSION_HEARTBEAT("session_heartbeat"),
33
+ LIKE_COMPOSER_OPEN("like_composer_open"),
34
+ LIKE_COMMENT_ABANDONED("like_comment_abandoned"),
35
+ CONVERSATION_OPENED("conversation_opened"),
36
+ COMPOSE_ABANDONED("compose_abandoned"),
37
+ PROFILE_REVISIT("profile_revisit"),
38
+ HOOKED_STATE_VIEW("hooked_state_view"),
39
+ LIKES_YOU_VIEW("likes_you_view"),
40
+ SAFETY_UI_OPEN("safety_ui_open");
41
+
42
+ companion object {
43
+ fun fromWire(wire: String): TelemetrySignalType? = entries.firstOrNull { it.wire == wire }
44
+ }
45
+ }
46
+
47
+ /** Client platform (from the X-OneHook-Platform header). */
48
+ enum class TelemetryPlatform(val wire: String) {
49
+ WEB("web"),
50
+ IOS("ios"),
51
+ ANDROID("android");
52
+
53
+ companion object {
54
+ fun fromWire(wire: String): TelemetryPlatform? = entries.firstOrNull { it.wire == wire }
55
+ }
56
+ }
57
+
58
+ /** Any product surface (incl. non-viewable chrome). */
59
+ enum class TelemetryScreen(val wire: String, val viewable: Boolean) {
60
+ NAV("NAV", false),
61
+ LANDING("LANDING", true),
62
+ LOGIN("LOGIN", true),
63
+ REDEEM_INVITE("REDEEM_INVITE", true),
64
+ ONBOARDING("ONBOARDING", true),
65
+ DISCOVER("DISCOVER", true),
66
+ LIKE_COMPOSER("LIKE_COMPOSER", true),
67
+ LIKES_YOU("LIKES_YOU", true),
68
+ CHAT("CHAT", true),
69
+ CHAT_SETTINGS("CHAT_SETTINGS", true),
70
+ NOTIFICATIONS("NOTIFICATIONS", true),
71
+ PROFILE("PROFILE", true),
72
+ PROFILE_EDIT("PROFILE_EDIT", true),
73
+ PROFILE_PREVIEW("PROFILE_PREVIEW", true),
74
+ PREFERENCES("PREFERENCES", true),
75
+ SETTINGS("SETTINGS", true),
76
+ PAYWALL("PAYWALL", true),
77
+ LIVENESS("LIVENESS", true),
78
+ PHOTO_VIEWER("PHOTO_VIEWER", true),
79
+ SEARCH("SEARCH", true),
80
+ CREATE("CREATE", true),
81
+ SHARED("SHARED", false);
82
+
83
+ companion object {
84
+ fun fromWire(wire: String): TelemetryScreen? = entries.firstOrNull { it.wire == wire }
85
+ /** Main-shell tabs, in order. */
86
+ val TABS: List<TelemetryScreen> = listOf(DISCOVER, LIKES_YOU, CHAT, PROFILE)
87
+ }
88
+ }
89
+
90
+ /** The standard verbs for a UI interaction. Every platform uses these and only these. */
91
+ enum class UiAction(val wire: String) {
92
+ TAP("tap"),
93
+ LONG_PRESS("long_press"),
94
+ SUBMIT("submit"),
95
+ TOGGLE("toggle"),
96
+ SELECT("select"),
97
+ DISMISS("dismiss");
98
+
99
+ companion object {
100
+ fun fromWire(wire: String): UiAction? = entries.firstOrNull { it.wire == wire }
101
+ }
102
+ }
103
+
104
+ /** Kind of control (informational; drives the default action). */
105
+ enum class UiElementKind(val wire: String) {
106
+ BUTTON("button"),
107
+ TAB("tab"),
108
+ TOGGLE("toggle"),
109
+ LINK("link"),
110
+ LIST_ITEM("list_item"),
111
+ MENU_ITEM("menu_item"),
112
+ DIALOG_BUTTON("dialog_button"),
113
+ GESTURE("gesture"),
114
+ SEGMENTED("segmented");
115
+
116
+ companion object {
117
+ fun fromWire(wire: String): UiElementKind? = entries.firstOrNull { it.wire == wire }
118
+ }
119
+ }
120
+
121
+ /** Discovery decision direction: left = pass, right = like, up = rose/super. */
122
+ enum class TelemetrySwipeDirection(val wire: String) {
123
+ LEFT("left"),
124
+ RIGHT("right"),
125
+ UP("up");
126
+
127
+ companion object {
128
+ fun fromWire(wire: String): TelemetrySwipeDirection? = entries.firstOrNull { it.wire == wire }
129
+ }
130
+ }
131
+
132
+ /** Media element type. */
133
+ enum class TelemetryMediaType(val wire: String) {
134
+ IMAGE("image"),
135
+ VIDEO("video"),
136
+ VOICE("voice");
137
+
138
+ companion object {
139
+ fun fromWire(wire: String): TelemetryMediaType? = entries.firstOrNull { it.wire == wire }
140
+ }
141
+ }
142
+
143
+ /** Profile sections a viewer can dwell on. */
144
+ enum class TelemetryProfileSection(val wire: String) {
145
+ PHOTOS("PHOTOS"),
146
+ BIO("BIO"),
147
+ INTERESTS("INTERESTS"),
148
+ PROMPTS("PROMPTS"),
149
+ VOICE("VOICE");
150
+
151
+ companion object {
152
+ fun fromWire(wire: String): TelemetryProfileSection? = entries.firstOrNull { it.wire == wire }
153
+ }
154
+ }
155
+
156
+ /** Profile element a comment-to-like targets. */
157
+ enum class TelemetryLikeTargetType(val wire: String) {
158
+ PHOTO("PHOTO"),
159
+ VIDEO("VIDEO"),
160
+ VOICE("VOICE"),
161
+ PROMPT("PROMPT"),
162
+ INTEREST("INTEREST"),
163
+ BIO("BIO");
164
+
165
+ companion object {
166
+ fun fromWire(wire: String): TelemetryLikeTargetType? = entries.firstOrNull { it.wire == wire }
167
+ }
168
+ }
169
+
170
+ /** Safety UI intents (the action itself is server-authoritative). */
171
+ enum class TelemetrySafetyAction(val wire: String) {
172
+ UNMATCH("unmatch"),
173
+ BLOCK("block"),
174
+ REPORT("report");
175
+
176
+ companion object {
177
+ fun fromWire(wire: String): TelemetrySafetyAction? = entries.firstOrNull { it.wire == wire }
178
+ }
179
+ }
180
+
181
+ /** Which discovery card design produced the signal (segment metrics by design). */
182
+ enum class TelemetryCardVariant(val wire: String) {
183
+ INTERLEAVED("interleaved"),
184
+ SWIPE("swipe"),
185
+ FEED("feed");
186
+
187
+ companion object {
188
+ fun fromWire(wire: String): TelemetryCardVariant? = entries.firstOrNull { it.wire == wire }
189
+ }
190
+ }
191
+
192
+ /** Kind of notification that was opened. */
193
+ enum class TelemetryNotificationType(val wire: String) {
194
+ NEW_MATCH("new_match"),
195
+ NEW_LIKE("new_like"),
196
+ NEW_MESSAGE("new_message"),
197
+ REENGAGEMENT("reengagement"),
198
+ OTHER("other");
199
+
200
+ companion object {
201
+ fun fromWire(wire: String): TelemetryNotificationType? = entries.firstOrNull { it.wire == wire }
202
+ }
203
+ }
204
+
205
+ /** Delivery channel of an opened notification. */
206
+ enum class TelemetryNotificationChannel(val wire: String) {
207
+ PUSH("push"),
208
+ IN_APP("in_app");
209
+
210
+ companion object {
211
+ fun fromWire(wire: String): TelemetryNotificationChannel? = entries.firstOrNull { it.wire == wire }
212
+ }
213
+ }
214
+
215
+ /** Reaction to the "one connection at a time" (hooked) overlay. */
216
+ enum class TelemetryHookedStateAction(val wire: String) {
217
+ SHOWN("shown"),
218
+ GO_TO_CHAT("go_to_chat"),
219
+ DISMISS("dismiss");
220
+
221
+ companion object {
222
+ fun fromWire(wire: String): TelemetryHookedStateAction? = entries.firstOrNull { it.wire == wire }
223
+ }
224
+ }
225
+
226
+ /** Registered UI element ids (`<screen>.<subject>`). Track with `OneHookAnalytics.trackUi(...)`. */
227
+ enum class UiElement(
228
+ val id: String,
229
+ val screen: TelemetryScreen,
230
+ val kind: UiElementKind,
231
+ /** Allowed actions; the first is the default. */
232
+ val actions: List<UiAction>,
233
+ /** When non-null, `value` is required and must be one of these. */
234
+ val allowedValues: List<String>?,
235
+ /** Platforms this element is in scope for (parity contract; see PLATFORM_GAPS in the catalog). */
236
+ val platforms: List<TelemetryPlatform>,
237
+ ) {
238
+ NAV_TAB_SELECT("nav.tab_select", TelemetryScreen.NAV, UiElementKind.TAB, listOf(UiAction.SELECT), listOf("DISCOVER", "LIKES_YOU", "CHAT", "PROFILE"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
239
+ NAV_SEARCH_OPEN("nav.search_open", TelemetryScreen.NAV, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB)),
240
+ NAV_MENU_OPEN("nav.menu_open", TelemetryScreen.NAV, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB)),
241
+ NAV_BACK("nav.back", TelemetryScreen.NAV, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
242
+ NAV_HOME_LOGO("nav.home_logo", TelemetryScreen.NAV, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
243
+ NAV_HOOKED_GO_TO_CHAT("nav.hooked_go_to_chat", TelemetryScreen.NAV, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
244
+ NAV_HOOKED_DISMISS("nav.hooked_dismiss", TelemetryScreen.NAV, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
245
+ LANDING_GET_STARTED("landing.get_started", TelemetryScreen.LANDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
246
+ LANDING_LOGIN("landing.login", TelemetryScreen.LANDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
247
+ LANDING_POLICY_LINK("landing.policy_link", TelemetryScreen.LANDING, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
248
+ LANDING_HOME_LINK("landing.home_link", TelemetryScreen.LANDING, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
249
+ LANDING_OPEN_IN_APP("landing.open_in_app", TelemetryScreen.LANDING, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
250
+ LANDING_NAV_LINK("landing.nav_link", TelemetryScreen.LANDING, UiElementKind.LINK, listOf(UiAction.TAP), listOf("philosophy", "how_it_works", "pricing", "contact", "careers", "science"), listOf(TelemetryPlatform.WEB)),
251
+ LANDING_SOCIAL_LINK("landing.social_link", TelemetryScreen.LANDING, UiElementKind.LINK, listOf(UiAction.TAP), listOf("instagram", "facebook", "x", "youtube", "linkedin", "tiktok", "threads", "other"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
252
+ LANDING_MOBILE_MENU_TOGGLE("landing.mobile_menu_toggle", TelemetryScreen.LANDING, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("open", "closed"), listOf(TelemetryPlatform.WEB)),
253
+ LANDING_SECTION_NAV("landing.section_nav", TelemetryScreen.LANDING, UiElementKind.LINK, listOf(UiAction.TAP), listOf("philosophy", "features", "under_the_hood", "get_app"), listOf(TelemetryPlatform.WEB)),
254
+ LANDING_EMAIL_LINK("landing.email_link", TelemetryScreen.LANDING, UiElementKind.LINK, listOf(UiAction.TAP), listOf("privacy", "security", "support", "legal", "careers", "other"), listOf(TelemetryPlatform.WEB)),
255
+ LANDING_PRICING_PERIOD_SELECT("landing.pricing_period_select", TelemetryScreen.LANDING, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
256
+ LANDING_CAREERS_APPLY("landing.careers_apply", TelemetryScreen.LANDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
257
+ LANDING_DEMO_INTERACT("landing.demo_interact", TelemetryScreen.LANDING, UiElementKind.BUTTON, listOf(UiAction.TAP), listOf("opener_shuffle", "relationship_mode", "how_it_works_prev", "how_it_works_next", "how_it_works_step", "mascot_video", "mascot", "science_chapter", "science_signal_kind", "science_signal_send", "science_tab", "science_swipe", "science_erasure"), listOf(TelemetryPlatform.WEB)),
258
+ LANDING_CHATBOT_WIDGET("landing.chatbot_widget", TelemetryScreen.LANDING, UiElementKind.BUTTON, listOf(UiAction.TAP), listOf("open", "close", "fullscreen", "start", "send"), listOf(TelemetryPlatform.WEB)),
259
+ LANDING_NOTICE_RETRY("landing.notice_retry", TelemetryScreen.LANDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
260
+ LOGIN_SUBMIT("login.submit", TelemetryScreen.LOGIN, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), listOf("request_otp", "verify_otp", "password", "reset_password"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
261
+ LOGIN_GOOGLE("login.google", TelemetryScreen.LOGIN, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
262
+ LOGIN_APPLE("login.apple", TelemetryScreen.LOGIN, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
263
+ LOGIN_PASSKEY("login.passkey", TelemetryScreen.LOGIN, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
264
+ LOGIN_IDENTIFIER_MODE("login.identifier_mode", TelemetryScreen.LOGIN, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("phone", "email"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
265
+ LOGIN_PASSWORD_MODE("login.password_mode", TelemetryScreen.LOGIN, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("password", "otp"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
266
+ LOGIN_FORGOT_PASSWORD("login.forgot_password", TelemetryScreen.LOGIN, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
267
+ LOGIN_RESEND_CODE("login.resend_code", TelemetryScreen.LOGIN, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
268
+ LOGIN_REDEEM_INVITE("login.redeem_invite", TelemetryScreen.LOGIN, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
269
+ LOGIN_CLOSE("login.close", TelemetryScreen.LOGIN, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
270
+ LOGIN_PASSKEY_SETUP("login.passkey_setup", TelemetryScreen.LOGIN, UiElementKind.BUTTON, listOf(UiAction.TAP), listOf("email_submit", "code_submit", "change_email", "skip_to_passkey", "passkey_create", "skip_to_app"), listOf(TelemetryPlatform.WEB)),
271
+ REDEEM_INVITE_SUBMIT("redeem_invite.submit", TelemetryScreen.REDEEM_INVITE, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), listOf("validate_invite", "send_otp", "create_account", "verify_sign_in_otp"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
272
+ REDEEM_INVITE_BACK("redeem_invite.back", TelemetryScreen.REDEEM_INVITE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.ANDROID)),
273
+ REDEEM_INVITE_LOGIN("redeem_invite.login", TelemetryScreen.REDEEM_INVITE, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
274
+ REDEEM_INVITE_CLOSE("redeem_invite.close", TelemetryScreen.REDEEM_INVITE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
275
+ REDEEM_INVITE_RESEND_CODE("redeem_invite.resend_code", TelemetryScreen.REDEEM_INVITE, UiElementKind.LINK, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
276
+ ONBOARDING_NEXT("onboarding.next", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), listOf("basics", "photos", "media", "prompts", "details"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
277
+ ONBOARDING_BACK("onboarding.back", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
278
+ ONBOARDING_FINISH("onboarding.finish", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
279
+ ONBOARDING_SKIP_SIGN_OUT("onboarding.skip_sign_out", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
280
+ ONBOARDING_SKIP_SIGN_OUT_CONFIRM("onboarding.skip_sign_out_confirm", TelemetryScreen.ONBOARDING, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
281
+ ONBOARDING_PHOTO_ADD("onboarding.photo_add", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
282
+ ONBOARDING_PHOTO_REMOVE("onboarding.photo_remove", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
283
+ ONBOARDING_PHOTO_REMOVE_CONFIRM("onboarding.photo_remove_confirm", TelemetryScreen.ONBOARDING, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB)),
284
+ ONBOARDING_PROMPT_ADD("onboarding.prompt_add", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
285
+ ONBOARDING_PROMPT_REMOVE("onboarding.prompt_remove", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
286
+ ONBOARDING_VOICE_ADD("onboarding.voice_add", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
287
+ ONBOARDING_VOICE_REMOVE("onboarding.voice_remove", TelemetryScreen.ONBOARDING, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
288
+ ONBOARDING_CHOICE_SELECT("onboarding.choice_select", TelemetryScreen.ONBOARDING, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
289
+ DISCOVER_PASS_BUTTON("discover.pass_button", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
290
+ DISCOVER_LIKE_BUTTON("discover.like_button", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.ANDROID)),
291
+ DISCOVER_ROSE_BUTTON("discover.rose_button", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
292
+ DISCOVER_UNDO_BUTTON("discover.undo_button", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
293
+ DISCOVER_ELEMENT_LIKE("discover.element_like", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP), listOf("PHOTO", "VIDEO", "VOICE", "PROMPT", "INTEREST", "BIO"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
294
+ DISCOVER_PHOTO_OPEN("discover.photo_open", TelemetryScreen.DISCOVER, UiElementKind.GESTURE, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
295
+ DISCOVER_VOICE_PLAY("discover.voice_play", TelemetryScreen.DISCOVER, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("play", "pause"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
296
+ DISCOVER_PREFERENCES_OPEN("discover.preferences_open", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
297
+ DISCOVER_LIKES_YOU_OPEN("discover.likes_you_open", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
298
+ DISCOVER_ADD_HOOK_OPEN("discover.add_hook_open", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
299
+ DISCOVER_RETRY("discover.retry", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
300
+ DISCOVER_ADD_HOOK_SUBMIT("discover.add_hook_submit", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
301
+ DISCOVER_UPGRADE_OPEN("discover.upgrade_open", TelemetryScreen.DISCOVER, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
302
+ LIKE_COMPOSER_SEND("like_composer.send", TelemetryScreen.LIKE_COMPOSER, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
303
+ LIKE_COMPOSER_SEND_WITHOUT_COMMENT("like_composer.send_without_comment", TelemetryScreen.LIKE_COMPOSER, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), null, listOf(TelemetryPlatform.IOS)),
304
+ LIKE_COMPOSER_CANCEL("like_composer.cancel", TelemetryScreen.LIKE_COMPOSER, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
305
+ LIKE_COMPOSER_UPGRADE("like_composer.upgrade", TelemetryScreen.LIKE_COMPOSER, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
306
+ LIKES_YOU_PROFILE_OPEN("likes_you.profile_open", TelemetryScreen.LIKES_YOU, UiElementKind.LIST_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
307
+ LIKES_YOU_LIKED_ITEM_OPEN("likes_you.liked_item_open", TelemetryScreen.LIKES_YOU, UiElementKind.GESTURE, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
308
+ LIKES_YOU_REFRESH("likes_you.refresh", TelemetryScreen.LIKES_YOU, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.ANDROID)),
309
+ LIKES_YOU_RETRY("likes_you.retry", TelemetryScreen.LIKES_YOU, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
310
+ LIKES_YOU_CLOSE("likes_you.close", TelemetryScreen.LIKES_YOU, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
311
+ CHAT_SEND_BUTTON("chat.send_button", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
312
+ CHAT_ATTACH_BUTTON("chat.attach_button", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
313
+ CHAT_ATTACH_OPTION("chat.attach_option", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), listOf("photo_video", "camera", "file", "voice"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
314
+ CHAT_CAPTURE_OPTION("chat.capture_option", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), listOf("photo", "video"), listOf(TelemetryPlatform.ANDROID)),
315
+ CHAT_VOICE_RECORD_START("chat.voice_record_start", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.LONG_PRESS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
316
+ CHAT_VOICE_RECORD_STOP("chat.voice_record_stop", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
317
+ CHAT_VOICE_RECORD_CANCEL("chat.voice_record_cancel", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
318
+ CHAT_VOICE_SEND("chat.voice_send", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
319
+ CHAT_CONVERSATION_SWITCH("chat.conversation_switch", TelemetryScreen.CHAT, UiElementKind.LIST_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
320
+ CHAT_CONVERSATION_SORT("chat.conversation_sort", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
321
+ CHAT_CONVERSATION_SORT_OPEN("chat.conversation_sort_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
322
+ CHAT_CONVERSATION_SWITCHER_OPEN("chat.conversation_switcher_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
323
+ CHAT_PROFILE_OPEN("chat.profile_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
324
+ CHAT_SAFETY_MENU_OPEN("chat.safety_menu_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
325
+ CHAT_UNMATCH("chat.unmatch", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
326
+ CHAT_REPORT_SPAM("chat.report_spam", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
327
+ CHAT_REPORT_BLOCK("chat.report_block", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
328
+ CHAT_BLOCK_CONFIRM("chat.block_confirm", TelemetryScreen.CHAT, UiElementKind.DIALOG_BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
329
+ CHAT_SETTINGS_OPEN("chat.settings_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
330
+ CHAT_WALLPAPER_OPEN("chat.wallpaper_open", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB)),
331
+ CHAT_ADD_HOOK_OPEN("chat.add_hook_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
332
+ CHAT_PRIVACY_TOGGLE("chat.privacy_toggle", TelemetryScreen.CHAT, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("hidden", "visible"), listOf()),
333
+ CHAT_CALL("chat.call", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
334
+ CHAT_VIDEO_CALL("chat.video_call", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
335
+ CHAT_MEDIA_OPEN("chat.media_open", TelemetryScreen.CHAT, UiElementKind.GESTURE, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
336
+ CHAT_AUDIO_PLAY("chat.audio_play", TelemetryScreen.CHAT, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("play", "pause"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
337
+ CHAT_FILE_OPEN("chat.file_open", TelemetryScreen.CHAT, UiElementKind.LIST_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
338
+ CHAT_MESSAGE_DELETE("chat.message_delete", TelemetryScreen.CHAT, UiElementKind.DIALOG_BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
339
+ CHAT_MESSAGE_MENU_OPEN("chat.message_menu_open", TelemetryScreen.CHAT, UiElementKind.GESTURE, listOf(UiAction.LONG_PRESS, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
340
+ CHAT_REPORT_REASON_SELECT("chat.report_reason_select", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
341
+ CHAT_SENSITIVE_REVEAL_CONFIRM("chat.sensitive_reveal_confirm", TelemetryScreen.CHAT, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
342
+ CHAT_ATTACHMENT_RETRY("chat.attachment_retry", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), listOf("upload", "download"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
343
+ CHAT_HISTORY_RECOVER("chat.history_recover", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
344
+ CHAT_MR_ONEHOOK_OPEN("chat.mr_onehook_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.ANDROID)),
345
+ CHAT_MR_ONEHOOK_CLOSE("chat.mr_onehook_close", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.ANDROID)),
346
+ CHAT_RETRY("chat.retry", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.ANDROID)),
347
+ CHAT_UNMATCH_CONFIRM("chat.unmatch_confirm", TelemetryScreen.CHAT, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
348
+ CHAT_PROFILE_CLOSE("chat.profile_close", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
349
+ CHAT_MR_ONEHOOK_CONTEXT_SHARE("chat.mr_onehook_context_share", TelemetryScreen.CHAT, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
350
+ CHAT_MR_ONEHOOK_SCOPE_OPEN("chat.mr_onehook_scope_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB)),
351
+ CHAT_MR_ONEHOOK_SCOPE_SELECT("chat.mr_onehook_scope_select", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
352
+ CHAT_INTRO_TOUR_OPEN("chat.intro_tour_open", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
353
+ CHAT_INTRO_DISMISS("chat.intro_dismiss", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
354
+ CHAT_INTRO_GET_STARTED("chat.intro_get_started", TelemetryScreen.CHAT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
355
+ CHAT_HISTORY_RECOVER_METHOD("chat.history_recover_method", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP, UiAction.DISMISS), listOf("device", "qr_scan", "qr_import", "passkey"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
356
+ CHAT_HISTORY_RECOVER_STEP("chat.history_recover_step", TelemetryScreen.CHAT, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), listOf("retry", "qr_retry", "done", "reset_open", "cancel"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
357
+ CHAT_HISTORY_RESET_CONFIRM("chat.history_reset_confirm", TelemetryScreen.CHAT, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB)),
358
+ CHAT_SETTINGS_LAST_SEEN_SELECT("chat_settings.last_seen_select", TelemetryScreen.CHAT_SETTINGS, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
359
+ CHAT_SETTINGS_DISAPPEARING_SELECT("chat_settings.disappearing_select", TelemetryScreen.CHAT_SETTINGS, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
360
+ CHAT_SETTINGS_NOTIFICATION_TOGGLE("chat_settings.notification_toggle", TelemetryScreen.CHAT_SETTINGS, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("on", "off"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
361
+ CHAT_SETTINGS_PRIVACY_TOGGLE("chat_settings.privacy_toggle", TelemetryScreen.CHAT_SETTINGS, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("on", "off"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
362
+ CHAT_SETTINGS_FONT_SIZE_SELECT("chat_settings.font_size_select", TelemetryScreen.CHAT_SETTINGS, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
363
+ CHAT_SETTINGS_WALLPAPER_SELECT("chat_settings.wallpaper_select", TelemetryScreen.CHAT_SETTINGS, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
364
+ CHAT_SETTINGS_EXPORT_CHAT("chat_settings.export_chat", TelemetryScreen.CHAT_SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.SELECT, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
365
+ CHAT_SETTINGS_CLEAR_CACHE("chat_settings.clear_cache", TelemetryScreen.CHAT_SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
366
+ NOTIFICATIONS_ITEM_OPEN("notifications.item_open", TelemetryScreen.NOTIFICATIONS, UiElementKind.LIST_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
367
+ NOTIFICATIONS_ITEM_DISMISS("notifications.item_dismiss", TelemetryScreen.NOTIFICATIONS, UiElementKind.GESTURE, listOf(UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
368
+ PROFILE_EDIT_OPEN("profile.edit_open", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
369
+ PROFILE_PREVIEW_OPEN("profile.preview_open", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
370
+ PROFILE_PREFERENCES_OPEN("profile.preferences_open", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
371
+ PROFILE_SETTINGS_OPEN("profile.settings_open", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
372
+ PROFILE_CHAT_SETTINGS_OPEN("profile.chat_settings_open", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
373
+ PROFILE_CHAT_TOUR_OPEN("profile.chat_tour_open", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
374
+ PROFILE_PHOTO_OPEN("profile.photo_open", TelemetryScreen.PROFILE, UiElementKind.GESTURE, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
375
+ PROFILE_VERIFY_IDENTITY("profile.verify_identity", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
376
+ PROFILE_SHARE_INVITE("profile.share_invite", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
377
+ PROFILE_INVITE_CODE_COPY("profile.invite_code_copy", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
378
+ PROFILE_INVITE_CODE_SHARE("profile.invite_code_share", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
379
+ PROFILE_UPGRADE_OPEN("profile.upgrade_open", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
380
+ PROFILE_UNHOOK("profile.unhook", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.ANDROID)),
381
+ PROFILE_UNHOOK_CONFIRM("profile.unhook_confirm", TelemetryScreen.PROFILE, UiElementKind.DIALOG_BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.ANDROID)),
382
+ PROFILE_TAB_SELECT("profile.tab_select", TelemetryScreen.PROFILE, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
383
+ PROFILE_RETRY("profile.retry", TelemetryScreen.PROFILE, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
384
+ PROFILE_VOICE_PLAY("profile.voice_play", TelemetryScreen.PROFILE, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("play", "pause"), listOf(TelemetryPlatform.WEB)),
385
+ PROFILE_EDIT_SAVE("profile_edit.save", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
386
+ PROFILE_EDIT_PREVIEW("profile_edit.preview", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
387
+ PROFILE_EDIT_PHOTO_ADD("profile_edit.photo_add", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
388
+ PROFILE_EDIT_PHOTO_REMOVE("profile_edit.photo_remove", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
389
+ PROFILE_EDIT_PHOTO_REMOVE_CONFIRM("profile_edit.photo_remove_confirm", TelemetryScreen.PROFILE_EDIT, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
390
+ PROFILE_EDIT_PHOTO_SET_PRIMARY("profile_edit.photo_set_primary", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
391
+ PROFILE_EDIT_PHOTO_ADJUST("profile_edit.photo_adjust", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
392
+ PROFILE_EDIT_PHOTO_REORDER("profile_edit.photo_reorder", TelemetryScreen.PROFILE_EDIT, UiElementKind.GESTURE, listOf(UiAction.LONG_PRESS), null, listOf(TelemetryPlatform.IOS)),
393
+ PROFILE_EDIT_PROMPT_ADD("profile_edit.prompt_add", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
394
+ PROFILE_EDIT_PROMPT_REMOVE("profile_edit.prompt_remove", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
395
+ PROFILE_EDIT_VOICE_ADD("profile_edit.voice_add", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
396
+ PROFILE_EDIT_VOICE_REMOVE("profile_edit.voice_remove", TelemetryScreen.PROFILE_EDIT, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
397
+ PROFILE_EDIT_CHOICE_SELECT("profile_edit.choice_select", TelemetryScreen.PROFILE_EDIT, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
398
+ PREFERENCES_SAVE("preferences.save", TelemetryScreen.PREFERENCES, UiElementKind.BUTTON, listOf(UiAction.SUBMIT), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
399
+ PREFERENCES_UPGRADE_OPEN("preferences.upgrade_open", TelemetryScreen.PREFERENCES, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
400
+ PREFERENCES_LOCKED_FILTER_TAP("preferences.locked_filter_tap", TelemetryScreen.PREFERENCES, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
401
+ SETTINGS_EMAIL_MANAGE("settings.email_manage", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
402
+ SETTINGS_PHONE_UPDATE("settings.phone_update", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
403
+ SETTINGS_GOOGLE_LINK("settings.google_link", TelemetryScreen.SETTINGS, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("link", "unlink"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
404
+ SETTINGS_APPLE_LINK("settings.apple_link", TelemetryScreen.SETTINGS, UiElementKind.TOGGLE, listOf(UiAction.TOGGLE), listOf("link", "unlink"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
405
+ SETTINGS_PASSKEY_ADD("settings.passkey_add", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
406
+ SETTINGS_PASSWORD_SET("settings.password_set", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
407
+ SETTINGS_RECOVERY_SETUP("settings.recovery_setup", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
408
+ SETTINGS_DEVICE_REVOKE("settings.device_revoke", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
409
+ SETTINGS_DEVICE_REVOKE_CONFIRM("settings.device_revoke_confirm", TelemetryScreen.SETTINGS, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
410
+ SETTINGS_SAFETY_OPEN("settings.safety_open", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
411
+ SETTINGS_THEME_SELECT("settings.theme_select", TelemetryScreen.SETTINGS, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), listOf("light", "dark", "system"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
412
+ SETTINGS_THEME_OPEN("settings.theme_open", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
413
+ SETTINGS_SIGN_OUT("settings.sign_out", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
414
+ SETTINGS_SIGN_OUT_CONFIRM("settings.sign_out_confirm", TelemetryScreen.SETTINGS, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
415
+ SETTINGS_DELETE_ACCOUNT_OPEN("settings.delete_account_open", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
416
+ SETTINGS_DELETE_ACCOUNT_CONFIRM("settings.delete_account_confirm", TelemetryScreen.SETTINGS, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
417
+ SETTINGS_UNBLOCK_USER("settings.unblock_user", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
418
+ SETTINGS_UNBLOCK_CONFIRM("settings.unblock_confirm", TelemetryScreen.SETTINGS, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
419
+ SETTINGS_VERIFY_CODE_SUBMIT("settings.verify_code_submit", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), listOf("email", "phone"), listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
420
+ SETTINGS_PASSWORD_SET_CONFIRM("settings.password_set_confirm", TelemetryScreen.SETTINGS, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS)),
421
+ SETTINGS_HELP_LINK("settings.help_link", TelemetryScreen.SETTINGS, UiElementKind.LINK, listOf(UiAction.TAP), listOf("help_center", "faq", "contact", "safety", "privacy", "terms", "other"), listOf(TelemetryPlatform.IOS)),
422
+ SETTINGS_RECOVERY_APPROVE("settings.recovery_approve", TelemetryScreen.SETTINGS, UiElementKind.DIALOG_BUTTON, listOf(UiAction.SUBMIT, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
423
+ SETTINGS_RECOVERY_QR_SAVE("settings.recovery_qr_save", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
424
+ SETTINGS_RECOVERY_QR_SHARE("settings.recovery_qr_share", TelemetryScreen.SETTINGS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
425
+ PAYWALL_PURCHASE("paywall.purchase", TelemetryScreen.PAYWALL, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
426
+ PAYWALL_RESTORE("paywall.restore", TelemetryScreen.PAYWALL, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
427
+ PAYWALL_FEATURES_EXPAND("paywall.features_expand", TelemetryScreen.PAYWALL, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS)),
428
+ PHOTO_VIEWER_CLOSE("photo_viewer.close", TelemetryScreen.PHOTO_VIEWER, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
429
+ PHOTO_VIEWER_PREVIOUS("photo_viewer.previous", TelemetryScreen.PHOTO_VIEWER, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
430
+ PHOTO_VIEWER_NEXT("photo_viewer.next", TelemetryScreen.PHOTO_VIEWER, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
431
+ SEARCH_CLOSE("search.close", TelemetryScreen.SEARCH, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB)),
432
+ SEARCH_QUERY_CLEAR("search.query_clear", TelemetryScreen.SEARCH, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
433
+ SEARCH_FILTER_SELECT("search.filter_select", TelemetryScreen.SEARCH, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
434
+ SEARCH_RESULT_OPEN("search.result_open", TelemetryScreen.SEARCH, UiElementKind.LIST_ITEM, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB)),
435
+ CREATE_CLOSE("create.close", TelemetryScreen.CREATE, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB)),
436
+ CREATE_OPTION_SELECT("create.option_select", TelemetryScreen.CREATE, UiElementKind.MENU_ITEM, listOf(UiAction.TAP), listOf("photo", "prompt", "voice"), listOf(TelemetryPlatform.WEB)),
437
+ SHARED_ALERT_DISMISS("shared.alert_dismiss", TelemetryScreen.SHARED, UiElementKind.DIALOG_BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
438
+ SHARED_ERROR_RECOVER("shared.error_recover", TelemetryScreen.SHARED, UiElementKind.BUTTON, listOf(UiAction.TAP), listOf("retry", "home"), listOf(TelemetryPlatform.WEB)),
439
+ SHARED_COUNTRY_CODE_OPEN("shared.country_code_open", TelemetryScreen.SHARED, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
440
+ SHARED_COUNTRY_CODE_SELECT("shared.country_code_select", TelemetryScreen.SHARED, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
441
+ SHARED_VOICE_RECORDER("shared.voice_recorder", TelemetryScreen.SHARED, UiElementKind.BUTTON, listOf(UiAction.TAP), listOf("record", "stop", "play", "pause", "save", "discard", "cancel", "open_settings"), listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
442
+ SHARED_PROMPT_PRESET_SELECT("shared.prompt_preset_select", TelemetryScreen.SHARED, UiElementKind.SEGMENTED, listOf(UiAction.SELECT, UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS)),
443
+ LIVENESS_BEGIN("liveness.begin", TelemetryScreen.LIVENESS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
444
+ LIVENESS_DISMISS("liveness.dismiss", TelemetryScreen.LIVENESS, UiElementKind.BUTTON, listOf(UiAction.TAP, UiAction.DISMISS), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
445
+ LIVENESS_RETRY("liveness.retry", TelemetryScreen.LIVENESS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.WEB, TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
446
+ LIVENESS_OPEN_SETTINGS("liveness.open_settings", TelemetryScreen.LIVENESS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.IOS, TelemetryPlatform.ANDROID)),
447
+ LIVENESS_CLOSE("liveness.close", TelemetryScreen.LIVENESS, UiElementKind.BUTTON, listOf(UiAction.TAP), null, listOf(TelemetryPlatform.ANDROID));
448
+
449
+ val defaultAction: UiAction get() = actions.first()
450
+
451
+ companion object {
452
+ fun fromId(id: String): UiElement? = entries.firstOrNull { it.id == id }
453
+
454
+ /** Elements in scope for [platform] (what its coverage test must find instrumented). */
455
+ fun inScope(platform: TelemetryPlatform): List<UiElement> = entries.filter { platform in it.platforms }
456
+ }
457
+ }