-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathedgee-components-data-collection.d.ts
135 lines (135 loc) · 2.59 KB
/
edgee-components-data-collection.d.ts
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
124
125
126
127
128
129
130
131
132
133
134
135
/** @module Interface edgee:components/data-collection **/
export function page(e: Event, settings: Dict): EdgeeRequest;
export function track(e: Event, settings: Dict): EdgeeRequest;
export function user(e: Event, settings: Dict): EdgeeRequest;
export type Dict = Array<[string, string]>;
/**
* # Variants
*
* ## `"page"`
*
* ## `"track"`
*
* ## `"user"`
*/
export type EventType = 'page' | 'track' | 'user';
/**
* # Variants
*
* ## `"pending"`
*
* ## `"granted"`
*
* ## `"denied"`
*/
export type Consent = 'pending' | 'granted' | 'denied';
export interface PageData {
name: string,
category: string,
keywords: Array<string>,
title: string,
url: string,
path: string,
search: string,
referrer: string,
properties: Dict,
}
export interface UserData {
userId: string,
anonymousId: string,
edgeeId: string,
properties: Dict,
}
export interface TrackData {
name: string,
properties: Dict,
products: Array<Dict>,
}
export type Data = DataPage | DataTrack | DataUser;
export interface DataPage {
tag: 'page',
val: PageData,
}
export interface DataTrack {
tag: 'track',
val: TrackData,
}
export interface DataUser {
tag: 'user',
val: UserData,
}
export interface Client {
ip: string,
locale: string,
timezone: string,
userAgent: string,
userAgentArchitecture: string,
userAgentBitness: string,
userAgentVersionList: string,
userAgentFullVersionList: string,
userAgentMobile: string,
userAgentModel: string,
osName: string,
osVersion: string,
screenWidth: number,
screenHeight: number,
screenDensity: number,
continent: string,
countryCode: string,
countryName: string,
region: string,
city: string,
}
export interface Campaign {
name: string,
source: string,
medium: string,
term: string,
content: string,
creativeFormat: string,
marketingTactic: string,
}
export interface Session {
sessionId: string,
previousSessionId: string,
sessionCount: number,
sessionStart: boolean,
firstSeen: bigint,
lastSeen: bigint,
}
export interface Context {
page: PageData,
user: UserData,
client: Client,
campaign: Campaign,
session: Session,
}
export interface Event {
uuid: string,
timestamp: bigint,
timestampMillis: bigint,
timestampMicros: bigint,
eventType: EventType,
data: Data,
context: Context,
consent?: Consent,
}
/**
* # Variants
*
* ## `"GET"`
*
* ## `"PUT"`
*
* ## `"POST"`
*
* ## `"DELETE"`
*/
export type HttpMethod = 'GET' | 'PUT' | 'POST' | 'DELETE';
export interface EdgeeRequest {
method: HttpMethod,
url: string,
headers: Dict,
forwardClientHeaders: boolean,
body: string,
}