-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.d.ts
130 lines (116 loc) · 3.03 KB
/
index.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
interface ComponentSettings {
[key: string]: any
}
interface ClientSetOptions {
readonly scope?: 'page' | 'session' | 'infinite'
readonly expiry?: Date | number | null
}
type EmbedCallback = (context: {
parameters: { [k: string]: unknown }
client: Client
}) => Promise<string>
type WidgetCallback = (context: { client: Client }) => Promise<string>
interface MCEvent {
readonly name?: string
readonly payload: any
client: Client
readonly type: string
}
interface MCEventListener {
(event: MCEvent): void | Promise<void>
}
type ManagerEventType =
| 'clientcreated'
| 'pageview'
| 'ecommerce'
| 'event'
| string
type ClientEventType =
| 'mouseup'
| 'mousedown'
| 'mousemove'
| 'visibilityChange'
| 'historyChange'
| 'pageHide'
| 'pageShow'
| 'resize'
| 'scroll'
| 'resourcePerformanceEntry'
interface Manager {
readonly name: string
addEventListener(
type: ManagerEventType,
callback: MCEventListener
): boolean | undefined
createEventListener(
type: ClientEventType,
callback: MCEventListener
): boolean | undefined
get(key: string): Promise<any>
set(key: string, value: any): Promise<boolean>
route(
path: string,
callback: (request: Request | any) => Promise<Response> | Response
): string | undefined
proxy(path: string, target: string): string | undefined
serve(path: string, target: string): string | undefined
useCache(key: string, callback: Function, expiry?: number): Promise<any>
invalidateCache(key: string): Promise<void>
registerEmbed(name: string, callback: EmbedCallback): boolean | undefined
registerWidget(callback: WidgetCallback): boolean | undefined
fetch(
input: RequestInfo | URL,
init?: RequestInit
): Promise<Response> | undefined
ext?: Record<string, any>
}
interface Client {
readonly emitter: string
readonly userAgent: string
readonly language: string
readonly referer: string
readonly ip: string
readonly title?: string
readonly timestamp?: number
readonly url: URL
readonly timezoneOffset?: number
readonly screenWidth?: number
readonly screenHeight?: number
readonly viewportWidth?: number
readonly viewportHeight?: number
fetch(resource: string, settings?: RequestInit): boolean | undefined
execute(code: string): boolean | undefined
return(value: unknown): void
set(
key: string,
value?: string | null,
opts?: ClientSetOptions
): boolean | undefined
get(key: string, tool?: string): string | undefined
attachEvent(event: ClientEventType): void
detachEvent(event: ClientEventType): void
}
type ManagedComponent = (
manager: Manager,
settings: ComponentSettings
) => void | Promise<void>
type Permission =
| 'access_client_kv'
| 'access_extended_client_kv'
| 'execute_unsafe_scripts'
| 'client_network_requests'
| 'serve_static_files'
| 'provide_server_functionality'
| 'server_network_requests'
export {
ComponentSettings,
ClientSetOptions,
EmbedCallback,
WidgetCallback,
MCEvent,
MCEventListener,
Manager,
Client,
ManagedComponent,
Permission,
}