-
Notifications
You must be signed in to change notification settings - Fork 66.9k
Expand file tree
/
Copy pathtypes.ts
More file actions
123 lines (121 loc) · 2.97 KB
/
types.ts
File metadata and controls
123 lines (121 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
export enum EventType {
aiSearchResult = 'aiSearchResult',
page = 'page',
exit = 'exit',
keyboard = 'keyboard',
link = 'link',
hover = 'hover',
search = 'search',
searchResult = 'searchResult',
survey = 'survey',
experiment = 'experiment',
preference = 'preference',
clipboard = 'clipboard',
print = 'print',
}
export type EventProps = {
type: EventType
version: string
context: {
event_id: string
user: string
version: string
created: string
page_event_id: string
referrer: string
href: string
hostname: string
path: string
search: string
hash: string
path_language: string
path_version: string
path_article: string
path_document_type: string
path_type: string
status: number
is_logged_in: boolean
dotcom_user: string
is_staff: boolean
os: string
os_version: string
browser: string
browser_version: string
timezone: number
user_language: string
application_preference: string
color_mode_preference: string
os_preference: string
code_display_preference: string
event_group_key?: string
event_group_id?: string
}
}
export type EventPropsByType = {
[EventType.aiSearchResult]: {
// Dynamic JSON string of an array of "link" objects in the form:
// [{ "type": "reference" | "inline", "url": "https://..", "product": "issues" | "pages" | ... }, ...]
ai_search_result_links_json: string
ai_search_result_provided_answer: boolean
ai_search_result_response_status: number
ai_search_result_connected_event_id?: string
}
[EventType.clipboard]: {
clipboard_operation: string
clipboard_target?: string
}
[EventType.exit]: {
exit_render_duration?: number
exit_first_paint?: number
exit_dom_interactive?: number
exit_dom_complete?: number
exit_visit_duration?: number
exit_scroll_length?: number
exit_scroll_flip?: number
}
[EventType.experiment]: {
experiment_name: string
experiment_variation: string
experiment_success?: boolean
}
[EventType.hover]: {
hover_url: string
hover_samesite?: boolean
}
[EventType.keyboard]: {
pressed_key: string
pressed_on: string
}
[EventType.link]: {
link_url: string
link_samesite?: boolean
link_samepage?: boolean
link_container?: string
}
[EventType.page]: {}
[EventType.preference]: {
preference_name: string
preference_value: string
}
[EventType.print]: {}
[EventType.search]: {
search_query: string
search_context?: string
}
[EventType.searchResult]: {
search_result_query: string
search_result_index: number
search_result_total: number
search_result_rank: number
search_result_url: string
}
[EventType.survey]: {
survey_token?: string // Honeypot, doesn't exist in schema
survey_vote: boolean
survey_comment?: string
survey_email?: string
survey_rating?: number
survey_comment_language?: string
survey_connected_event_id?: string
}
}