@contentful/optimization-api-client 0.1.0-alpha
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.
- package/LICENSE +21 -0
- package/README.md +282 -0
- package/dist/ApiClient.d.ts +74 -0
- package/dist/ApiClient.d.ts.map +1 -0
- package/dist/ApiClient.js +61 -0
- package/dist/ApiClient.js.map +1 -0
- package/dist/ApiClientBase.d.ts +113 -0
- package/dist/ApiClientBase.d.ts.map +1 -0
- package/dist/ApiClientBase.js +94 -0
- package/dist/ApiClientBase.js.map +1 -0
- package/dist/builders/EventBuilder.d.ts +589 -0
- package/dist/builders/EventBuilder.d.ts.map +1 -0
- package/dist/builders/EventBuilder.js +349 -0
- package/dist/builders/EventBuilder.js.map +1 -0
- package/dist/builders/index.d.ts +3 -0
- package/dist/builders/index.d.ts.map +1 -0
- package/dist/builders/index.js +3 -0
- package/dist/builders/index.js.map +1 -0
- package/dist/experience/ExperienceApiClient.d.ts +267 -0
- package/dist/experience/ExperienceApiClient.d.ts.map +1 -0
- package/dist/experience/ExperienceApiClient.js +324 -0
- package/dist/experience/ExperienceApiClient.js.map +1 -0
- package/dist/experience/index.d.ts +4 -0
- package/dist/experience/index.d.ts.map +1 -0
- package/dist/experience/index.js +4 -0
- package/dist/experience/index.js.map +1 -0
- package/dist/fetch/Fetch.d.ts +96 -0
- package/dist/fetch/Fetch.d.ts.map +1 -0
- package/dist/fetch/Fetch.js +27 -0
- package/dist/fetch/Fetch.js.map +1 -0
- package/dist/fetch/createProtectedFetchMethod.d.ts +40 -0
- package/dist/fetch/createProtectedFetchMethod.d.ts.map +1 -0
- package/dist/fetch/createProtectedFetchMethod.js +53 -0
- package/dist/fetch/createProtectedFetchMethod.js.map +1 -0
- package/dist/fetch/createRetryFetchMethod.d.ts +60 -0
- package/dist/fetch/createRetryFetchMethod.d.ts.map +1 -0
- package/dist/fetch/createRetryFetchMethod.js +138 -0
- package/dist/fetch/createRetryFetchMethod.js.map +1 -0
- package/dist/fetch/createTimeoutFetchMethod.d.ts +51 -0
- package/dist/fetch/createTimeoutFetchMethod.d.ts.map +1 -0
- package/dist/fetch/createTimeoutFetchMethod.js +51 -0
- package/dist/fetch/createTimeoutFetchMethod.js.map +1 -0
- package/dist/fetch/index.d.ts +7 -0
- package/dist/fetch/index.d.ts.map +1 -0
- package/dist/fetch/index.js +7 -0
- package/dist/fetch/index.js.map +1 -0
- package/dist/index.cjs +708 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +583 -0
- package/dist/index.mjs.map +1 -0
- package/dist/insights/InsightsApiClient.d.ts +130 -0
- package/dist/insights/InsightsApiClient.d.ts.map +1 -0
- package/dist/insights/InsightsApiClient.js +142 -0
- package/dist/insights/InsightsApiClient.js.map +1 -0
- package/dist/insights/index.d.ts +4 -0
- package/dist/insights/index.d.ts.map +1 -0
- package/dist/insights/index.js +4 -0
- package/dist/insights/index.js.map +1 -0
- package/package.json +27 -0
|
@@ -0,0 +1,589 @@
|
|
|
1
|
+
import { type App, type Channel, type ComponentViewEvent, type IdentifyEvent, type Library, Page, type PageViewEvent, type ScreenViewEvent, type TrackEvent, type UniversalEventProperties } from '@contentful/optimization-api-schemas';
|
|
2
|
+
import * as z from 'zod/mini';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for creating an {@link EventBuilder} instance.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
* @remarks
|
|
8
|
+
* The configuration is typically provided by the host application to adapt
|
|
9
|
+
* event payloads to the runtime environment (browser, framework, etc.).
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const builder = new EventBuilder({
|
|
14
|
+
* app: { name: 'my-app', version: '1.0.0' },
|
|
15
|
+
* channel: 'web',
|
|
16
|
+
* library: { name: '@contentful/optimization-sdk', version: '1.2.3' },
|
|
17
|
+
* getLocale: () => navigator.language,
|
|
18
|
+
* getPageProperties: () => ({
|
|
19
|
+
* path: window.location.pathname,
|
|
20
|
+
* url: window.location.href,
|
|
21
|
+
* title: document.title,
|
|
22
|
+
* query: {},
|
|
23
|
+
* referrer: document.referrer,
|
|
24
|
+
* search: window.location.search,
|
|
25
|
+
* }),
|
|
26
|
+
* })
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export interface EventBuilderConfig {
|
|
30
|
+
/**
|
|
31
|
+
* The application definition used to attribute events to a specific consumer app.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* When not provided, events will not contain app metadata in their context.
|
|
35
|
+
*/
|
|
36
|
+
app?: App;
|
|
37
|
+
/**
|
|
38
|
+
* The channel that identifies where events originate from (e.g. web, mobile).
|
|
39
|
+
*
|
|
40
|
+
* @see {@link Channel}
|
|
41
|
+
*/
|
|
42
|
+
channel: Channel;
|
|
43
|
+
/**
|
|
44
|
+
* The client library metadata that is attached to all events.
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* This is typically used to record the library name and version.
|
|
48
|
+
*/
|
|
49
|
+
library: Library;
|
|
50
|
+
/**
|
|
51
|
+
* Function used to resolve the locale for outgoing events.
|
|
52
|
+
*
|
|
53
|
+
* @remarks
|
|
54
|
+
* If not provided, the builder falls back to the default `'en-US'`. Locale
|
|
55
|
+
* values supplied directly as arguments to event builder methods take
|
|
56
|
+
* precedence.
|
|
57
|
+
*
|
|
58
|
+
* @returns The locale string (e.g. `'en-US'`), or `undefined` if unavailable.
|
|
59
|
+
*/
|
|
60
|
+
getLocale?: () => string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Function that returns the current page properties.
|
|
63
|
+
*
|
|
64
|
+
* @remarks
|
|
65
|
+
* Page properties are currently added to the context of all events, as well
|
|
66
|
+
* as the `properties` of the page event. When specified, all properties of
|
|
67
|
+
* the `Page` type are required, but may contain empty values.
|
|
68
|
+
*
|
|
69
|
+
* @returns A {@link Page} object containing information about the current page.
|
|
70
|
+
* @see {@link Page}
|
|
71
|
+
*/
|
|
72
|
+
getPageProperties?: () => Page;
|
|
73
|
+
/**
|
|
74
|
+
* Function used to obtain the current user agent string when applicable.
|
|
75
|
+
*
|
|
76
|
+
* @returns A user agent string, or `undefined` if unavailable.
|
|
77
|
+
*/
|
|
78
|
+
getUserAgent?: () => string | undefined;
|
|
79
|
+
}
|
|
80
|
+
declare const UniversalEventBuilderArgs: z.ZodMiniObject<{
|
|
81
|
+
campaign: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
82
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
83
|
+
source: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
84
|
+
medium: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
85
|
+
term: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
86
|
+
content: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
87
|
+
}, z.core.$strip>>;
|
|
88
|
+
locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
89
|
+
location: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
90
|
+
coordinates: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
91
|
+
latitude: z.ZodMiniNumber<number>;
|
|
92
|
+
longitude: z.ZodMiniNumber<number>;
|
|
93
|
+
}, z.core.$strip>>;
|
|
94
|
+
city: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
95
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
96
|
+
region: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
97
|
+
regionCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
98
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
99
|
+
countryCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
100
|
+
continent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
101
|
+
timezone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
102
|
+
}, z.core.$strip>>;
|
|
103
|
+
page: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
104
|
+
path: z.ZodMiniString<string>;
|
|
105
|
+
query: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>;
|
|
106
|
+
referrer: z.ZodMiniString<string>;
|
|
107
|
+
search: z.ZodMiniString<string>;
|
|
108
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
109
|
+
url: z.ZodMiniString<string>;
|
|
110
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
111
|
+
screen: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
112
|
+
name: z.ZodMiniString<string>;
|
|
113
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
114
|
+
userAgent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
115
|
+
}, z.core.$strip>;
|
|
116
|
+
/**
|
|
117
|
+
* Arguments used to construct the universal (shared) portion of all events.
|
|
118
|
+
*
|
|
119
|
+
* @public
|
|
120
|
+
*/
|
|
121
|
+
export type UniversalEventBuilderArgs = z.infer<typeof UniversalEventBuilderArgs>;
|
|
122
|
+
declare const ComponentViewBuilderArgs: z.ZodMiniObject<{
|
|
123
|
+
campaign: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
124
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
125
|
+
source: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
126
|
+
medium: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
127
|
+
term: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
128
|
+
content: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
129
|
+
}, z.core.$strip>>;
|
|
130
|
+
locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
131
|
+
location: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
132
|
+
coordinates: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
133
|
+
latitude: z.ZodMiniNumber<number>;
|
|
134
|
+
longitude: z.ZodMiniNumber<number>;
|
|
135
|
+
}, z.core.$strip>>;
|
|
136
|
+
city: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
137
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
138
|
+
region: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
139
|
+
regionCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
140
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
141
|
+
countryCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
142
|
+
continent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
143
|
+
timezone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
144
|
+
}, z.core.$strip>>;
|
|
145
|
+
page: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
146
|
+
path: z.ZodMiniString<string>;
|
|
147
|
+
query: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>;
|
|
148
|
+
referrer: z.ZodMiniString<string>;
|
|
149
|
+
search: z.ZodMiniString<string>;
|
|
150
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
151
|
+
url: z.ZodMiniString<string>;
|
|
152
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
153
|
+
screen: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
154
|
+
name: z.ZodMiniString<string>;
|
|
155
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
156
|
+
userAgent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
157
|
+
componentId: z.ZodMiniString<string>;
|
|
158
|
+
experienceId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
159
|
+
variantIndex: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
160
|
+
sticky: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
161
|
+
}, z.core.$strip>;
|
|
162
|
+
/**
|
|
163
|
+
* Arguments for constructing component view events.
|
|
164
|
+
*
|
|
165
|
+
* @public
|
|
166
|
+
*/
|
|
167
|
+
export type ComponentViewBuilderArgs = z.infer<typeof ComponentViewBuilderArgs>;
|
|
168
|
+
declare const IdentifyBuilderArgs: z.ZodMiniObject<{
|
|
169
|
+
campaign: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
170
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
171
|
+
source: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
172
|
+
medium: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
173
|
+
term: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
174
|
+
content: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
175
|
+
}, z.core.$strip>>;
|
|
176
|
+
locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
177
|
+
location: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
178
|
+
coordinates: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
179
|
+
latitude: z.ZodMiniNumber<number>;
|
|
180
|
+
longitude: z.ZodMiniNumber<number>;
|
|
181
|
+
}, z.core.$strip>>;
|
|
182
|
+
city: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
183
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
184
|
+
region: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
185
|
+
regionCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
186
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
187
|
+
countryCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
188
|
+
continent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
189
|
+
timezone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
190
|
+
}, z.core.$strip>>;
|
|
191
|
+
page: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
192
|
+
path: z.ZodMiniString<string>;
|
|
193
|
+
query: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>;
|
|
194
|
+
referrer: z.ZodMiniString<string>;
|
|
195
|
+
search: z.ZodMiniString<string>;
|
|
196
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
197
|
+
url: z.ZodMiniString<string>;
|
|
198
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
199
|
+
screen: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
200
|
+
name: z.ZodMiniString<string>;
|
|
201
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
202
|
+
userAgent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
203
|
+
traits: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniJSONSchema>>;
|
|
204
|
+
userId: z.ZodMiniString<string>;
|
|
205
|
+
}, z.core.$strip>;
|
|
206
|
+
/**
|
|
207
|
+
* Arguments for constructing identify events.
|
|
208
|
+
*
|
|
209
|
+
* @public
|
|
210
|
+
* @remarks
|
|
211
|
+
* Traits are merged by the API; only specified properties may be overwritten.
|
|
212
|
+
*/
|
|
213
|
+
export type IdentifyBuilderArgs = z.infer<typeof IdentifyBuilderArgs>;
|
|
214
|
+
declare const PageViewBuilderArgs: z.ZodMiniObject<{
|
|
215
|
+
campaign: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
216
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
217
|
+
source: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
218
|
+
medium: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
219
|
+
term: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
220
|
+
content: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
221
|
+
}, z.core.$strip>>;
|
|
222
|
+
locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
223
|
+
location: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
224
|
+
coordinates: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
225
|
+
latitude: z.ZodMiniNumber<number>;
|
|
226
|
+
longitude: z.ZodMiniNumber<number>;
|
|
227
|
+
}, z.core.$strip>>;
|
|
228
|
+
city: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
229
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
230
|
+
region: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
231
|
+
regionCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
232
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
233
|
+
countryCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
234
|
+
continent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
235
|
+
timezone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
236
|
+
}, z.core.$strip>>;
|
|
237
|
+
page: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
238
|
+
path: z.ZodMiniString<string>;
|
|
239
|
+
query: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>;
|
|
240
|
+
referrer: z.ZodMiniString<string>;
|
|
241
|
+
search: z.ZodMiniString<string>;
|
|
242
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
243
|
+
url: z.ZodMiniString<string>;
|
|
244
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
245
|
+
screen: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
246
|
+
name: z.ZodMiniString<string>;
|
|
247
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
248
|
+
userAgent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
249
|
+
properties: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
250
|
+
path: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
251
|
+
query: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
|
|
252
|
+
referrer: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
253
|
+
search: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
254
|
+
title: z.ZodMiniOptional<z.ZodMiniOptional<z.ZodMiniString<string>>>;
|
|
255
|
+
url: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
256
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
257
|
+
}, z.core.$strip>;
|
|
258
|
+
/**
|
|
259
|
+
* Arguments for constructing page view events.
|
|
260
|
+
*
|
|
261
|
+
* @public
|
|
262
|
+
* @remarks
|
|
263
|
+
* Any properties passed here are merged with the base page properties from
|
|
264
|
+
* {@link EventBuilderConfig.getPageProperties}.
|
|
265
|
+
*/
|
|
266
|
+
export type PageViewBuilderArgs = z.infer<typeof PageViewBuilderArgs>;
|
|
267
|
+
declare const ScreenViewBuilderArgs: z.ZodMiniObject<{
|
|
268
|
+
campaign: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
269
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
270
|
+
source: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
271
|
+
medium: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
272
|
+
term: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
273
|
+
content: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
274
|
+
}, z.core.$strip>>;
|
|
275
|
+
locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
276
|
+
location: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
277
|
+
coordinates: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
278
|
+
latitude: z.ZodMiniNumber<number>;
|
|
279
|
+
longitude: z.ZodMiniNumber<number>;
|
|
280
|
+
}, z.core.$strip>>;
|
|
281
|
+
city: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
282
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
283
|
+
region: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
284
|
+
regionCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
285
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
286
|
+
countryCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
287
|
+
continent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
288
|
+
timezone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
289
|
+
}, z.core.$strip>>;
|
|
290
|
+
page: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
291
|
+
path: z.ZodMiniString<string>;
|
|
292
|
+
query: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>;
|
|
293
|
+
referrer: z.ZodMiniString<string>;
|
|
294
|
+
search: z.ZodMiniString<string>;
|
|
295
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
296
|
+
url: z.ZodMiniString<string>;
|
|
297
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
298
|
+
screen: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
299
|
+
name: z.ZodMiniString<string>;
|
|
300
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
301
|
+
userAgent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
302
|
+
name: z.ZodMiniString<string>;
|
|
303
|
+
properties: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniJSONSchema>;
|
|
304
|
+
}, z.core.$strip>;
|
|
305
|
+
/**
|
|
306
|
+
* Arguments for constructing screen view events.
|
|
307
|
+
*
|
|
308
|
+
* @public
|
|
309
|
+
* @remarks
|
|
310
|
+
* Any properties passed here are merged with the base screen properties from
|
|
311
|
+
* {@link EventBuilderConfig.getScreenProperties}.
|
|
312
|
+
*/
|
|
313
|
+
export type ScreenViewBuilderArgs = z.infer<typeof ScreenViewBuilderArgs>;
|
|
314
|
+
declare const TrackBuilderArgs: z.ZodMiniObject<{
|
|
315
|
+
campaign: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
316
|
+
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
317
|
+
source: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
318
|
+
medium: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
319
|
+
term: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
320
|
+
content: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
321
|
+
}, z.core.$strip>>;
|
|
322
|
+
locale: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
323
|
+
location: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
324
|
+
coordinates: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
325
|
+
latitude: z.ZodMiniNumber<number>;
|
|
326
|
+
longitude: z.ZodMiniNumber<number>;
|
|
327
|
+
}, z.core.$strip>>;
|
|
328
|
+
city: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
329
|
+
postalCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
330
|
+
region: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
331
|
+
regionCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
332
|
+
country: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
333
|
+
countryCode: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
334
|
+
continent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
335
|
+
timezone: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
336
|
+
}, z.core.$strip>>;
|
|
337
|
+
page: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
338
|
+
path: z.ZodMiniString<string>;
|
|
339
|
+
query: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>;
|
|
340
|
+
referrer: z.ZodMiniString<string>;
|
|
341
|
+
search: z.ZodMiniString<string>;
|
|
342
|
+
title: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
343
|
+
url: z.ZodMiniString<string>;
|
|
344
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
345
|
+
screen: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
346
|
+
name: z.ZodMiniString<string>;
|
|
347
|
+
}, z.core.$catchall<z.ZodMiniJSONSchema>>>;
|
|
348
|
+
userAgent: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
349
|
+
event: z.ZodMiniString<string>;
|
|
350
|
+
properties: z.ZodMiniOptional<z.ZodMiniPrefault<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniJSONSchema>>>;
|
|
351
|
+
}, z.core.$strip>;
|
|
352
|
+
/**
|
|
353
|
+
* Arguments for constructing track events.
|
|
354
|
+
*
|
|
355
|
+
* @public
|
|
356
|
+
*/
|
|
357
|
+
export type TrackBuilderArgs = z.infer<typeof TrackBuilderArgs>;
|
|
358
|
+
/**
|
|
359
|
+
* Default page properties used when no explicit page information is available.
|
|
360
|
+
*
|
|
361
|
+
* @public
|
|
362
|
+
*
|
|
363
|
+
* @defaultValue
|
|
364
|
+
* ```ts
|
|
365
|
+
* {
|
|
366
|
+
* path: '',
|
|
367
|
+
* query: {},
|
|
368
|
+
* referrer: '',
|
|
369
|
+
* search: '',
|
|
370
|
+
* title: '',
|
|
371
|
+
* url: '',
|
|
372
|
+
* }
|
|
373
|
+
* ```
|
|
374
|
+
*
|
|
375
|
+
* @remarks
|
|
376
|
+
* Values are required by the API; values may not be `undefined`. Empty values are valid.
|
|
377
|
+
*/
|
|
378
|
+
export declare const DEFAULT_PAGE_PROPERTIES: {
|
|
379
|
+
path: string;
|
|
380
|
+
query: {};
|
|
381
|
+
referrer: string;
|
|
382
|
+
search: string;
|
|
383
|
+
title: string;
|
|
384
|
+
url: string;
|
|
385
|
+
};
|
|
386
|
+
/**
|
|
387
|
+
* Internal helper class for building analytics and personalization events.
|
|
388
|
+
*
|
|
389
|
+
* @remarks
|
|
390
|
+
* This class coordinates configuration and argument validation to produce
|
|
391
|
+
* strongly-typed event payloads compatible with
|
|
392
|
+
* `@contentful/optimization-api-schemas`.
|
|
393
|
+
*
|
|
394
|
+
* @public
|
|
395
|
+
*/
|
|
396
|
+
declare class EventBuilder {
|
|
397
|
+
/**
|
|
398
|
+
* Application metadata attached to each event.
|
|
399
|
+
*
|
|
400
|
+
* @internal
|
|
401
|
+
*/
|
|
402
|
+
app?: App;
|
|
403
|
+
/**
|
|
404
|
+
* Channel value attached to each event.
|
|
405
|
+
*
|
|
406
|
+
* @internal
|
|
407
|
+
*/
|
|
408
|
+
channel: Channel;
|
|
409
|
+
/**
|
|
410
|
+
* Library metadata attached to each event.
|
|
411
|
+
*
|
|
412
|
+
* @internal
|
|
413
|
+
*/
|
|
414
|
+
library: Library;
|
|
415
|
+
/**
|
|
416
|
+
* Function that provides the locale when available.
|
|
417
|
+
*
|
|
418
|
+
* @internal
|
|
419
|
+
*/
|
|
420
|
+
getLocale: () => string | undefined;
|
|
421
|
+
/**
|
|
422
|
+
* Function that provides baseline page properties.
|
|
423
|
+
*
|
|
424
|
+
* @internal
|
|
425
|
+
*/
|
|
426
|
+
getPageProperties: () => Page;
|
|
427
|
+
/**
|
|
428
|
+
* Function that provides the user agent string when available.
|
|
429
|
+
*
|
|
430
|
+
* @internal
|
|
431
|
+
*/
|
|
432
|
+
getUserAgent: () => string | undefined;
|
|
433
|
+
/**
|
|
434
|
+
* Creates a new {@link EventBuilder} instance.
|
|
435
|
+
*
|
|
436
|
+
* @param config - Configuration used to customize event payloads.
|
|
437
|
+
*
|
|
438
|
+
* @internal
|
|
439
|
+
* @remarks
|
|
440
|
+
* Callers are expected to reuse a single instance when possible to avoid
|
|
441
|
+
* repeatedly reconfiguring the builder.
|
|
442
|
+
*
|
|
443
|
+
* @example
|
|
444
|
+
* ```ts
|
|
445
|
+
* const builder = new EventBuilder({
|
|
446
|
+
* channel: 'web',
|
|
447
|
+
* library: { name: '@contentful/optimization-sdk', version: '1.0.0' },
|
|
448
|
+
* })
|
|
449
|
+
* ```
|
|
450
|
+
*/
|
|
451
|
+
constructor(config: EventBuilderConfig);
|
|
452
|
+
/**
|
|
453
|
+
* Builds the universal event properties shared across all event types.
|
|
454
|
+
*
|
|
455
|
+
* @param args - Arguments overriding the default context values.
|
|
456
|
+
* @returns A fully populated {@link UniversalEventProperties} object.
|
|
457
|
+
*
|
|
458
|
+
* @protected
|
|
459
|
+
*
|
|
460
|
+
* @remarks
|
|
461
|
+
* This method is used internally by the specific event-builder methods
|
|
462
|
+
* (e.g. {@link EventBuilder.buildPageView}).
|
|
463
|
+
*/
|
|
464
|
+
protected buildUniversalEventProperties({ campaign, locale, location, page, screen, userAgent, }: UniversalEventBuilderArgs): UniversalEventProperties;
|
|
465
|
+
/**
|
|
466
|
+
* Builds a component view event payload for a Contentful entry-based component.
|
|
467
|
+
*
|
|
468
|
+
* @param args - {@link ComponentViewBuilderArgs} arguments describing the component view.
|
|
469
|
+
* @returns A {@link ComponentViewEvent} describing the view.
|
|
470
|
+
*
|
|
471
|
+
* @public
|
|
472
|
+
*
|
|
473
|
+
* @example
|
|
474
|
+
* ```ts
|
|
475
|
+
* const event = builder.buildComponentView({
|
|
476
|
+
* componentId: 'entry-123',
|
|
477
|
+
* experienceId: 'personalization-123',
|
|
478
|
+
* variantIndex: 1,
|
|
479
|
+
* })
|
|
480
|
+
* ```
|
|
481
|
+
*/
|
|
482
|
+
buildComponentView(args: ComponentViewBuilderArgs): ComponentViewEvent;
|
|
483
|
+
/**
|
|
484
|
+
* Builds a component view event payload for a Custom Flag component.
|
|
485
|
+
*
|
|
486
|
+
* @param args - {@link ComponentViewBuilderArgs} arguments describing the Custom Flag view.
|
|
487
|
+
* @returns A {@link ComponentViewEvent} describing the view.
|
|
488
|
+
*
|
|
489
|
+
* @public
|
|
490
|
+
*
|
|
491
|
+
* @remarks
|
|
492
|
+
* This is a specialized variant of {@link EventBuilder.buildComponentView}
|
|
493
|
+
* that sets `componentType` to `'Variable'`.
|
|
494
|
+
*
|
|
495
|
+
* @example
|
|
496
|
+
* ```ts
|
|
497
|
+
* const event = builder.buildFlagView({
|
|
498
|
+
* componentId: 'feature-flag-key',
|
|
499
|
+
* experienceId: 'personalization-123',
|
|
500
|
+
* })
|
|
501
|
+
* ```
|
|
502
|
+
*/
|
|
503
|
+
buildFlagView(args: ComponentViewBuilderArgs): ComponentViewEvent;
|
|
504
|
+
/**
|
|
505
|
+
* Builds an identify event payload to associate a user ID with traits.
|
|
506
|
+
*
|
|
507
|
+
* @param args - {@link IdentifyBuilderArgs} arguments describing the identified user.
|
|
508
|
+
* @returns An {@link IdentifyEvent} payload.
|
|
509
|
+
*
|
|
510
|
+
* @public
|
|
511
|
+
*
|
|
512
|
+
* @remarks
|
|
513
|
+
* - Traits are merged by the API; only specified properties may be overwritten.
|
|
514
|
+
* - The User ID is consumer-specified and should not contain the value of any
|
|
515
|
+
* ID generated by the Experience API.
|
|
516
|
+
*
|
|
517
|
+
* @example
|
|
518
|
+
* ```ts
|
|
519
|
+
* const event = builder.buildIdentify({
|
|
520
|
+
* userId: 'user-123',
|
|
521
|
+
* traits: { plan: 'pro' },
|
|
522
|
+
* })
|
|
523
|
+
* ```
|
|
524
|
+
*/
|
|
525
|
+
buildIdentify(args: IdentifyBuilderArgs): IdentifyEvent;
|
|
526
|
+
/**
|
|
527
|
+
* Builds a page view event payload.
|
|
528
|
+
*
|
|
529
|
+
* @param args - Optional {@link PageViewBuilderArgs} overrides for the page view event.
|
|
530
|
+
* @returns A {@link PageViewEvent} payload.
|
|
531
|
+
*
|
|
532
|
+
* @public
|
|
533
|
+
*
|
|
534
|
+
* @remarks
|
|
535
|
+
* Page properties are created by merging:
|
|
536
|
+
* 1. The base page properties from {@link EventBuilderConfig.getPageProperties}, and
|
|
537
|
+
* 2. The partial `properties` argument passed in.
|
|
538
|
+
*
|
|
539
|
+
* The title always falls back to {@link DEFAULT_PAGE_PROPERTIES}.title when undefined.
|
|
540
|
+
*
|
|
541
|
+
* @example
|
|
542
|
+
* ```ts
|
|
543
|
+
* const event = builder.buildPageView({
|
|
544
|
+
* properties: {
|
|
545
|
+
* title: 'Homepage',
|
|
546
|
+
* },
|
|
547
|
+
* })
|
|
548
|
+
* ```
|
|
549
|
+
*/
|
|
550
|
+
buildPageView(args?: PageViewBuilderArgs): PageViewEvent;
|
|
551
|
+
/**
|
|
552
|
+
* Builds a screen view event payload.
|
|
553
|
+
*
|
|
554
|
+
* @param args - {@link ScreenViewBuilderArgs} arguments for the screen view event.
|
|
555
|
+
* @returns A {@link ScreenViewEvent} payload.
|
|
556
|
+
*
|
|
557
|
+
* @public
|
|
558
|
+
*
|
|
559
|
+
* @example
|
|
560
|
+
* ```ts
|
|
561
|
+
* const event = builder.buildScreenView({
|
|
562
|
+
* name: 'home',
|
|
563
|
+
* properties: {
|
|
564
|
+
* title: 'Home Screen',
|
|
565
|
+
* },
|
|
566
|
+
* })
|
|
567
|
+
* ```
|
|
568
|
+
*/
|
|
569
|
+
buildScreenView(args: ScreenViewBuilderArgs): ScreenViewEvent;
|
|
570
|
+
/**
|
|
571
|
+
* Builds a track event payload for arbitrary user actions.
|
|
572
|
+
*
|
|
573
|
+
* @param args - {@link TrackBuilderArgs} arguments describing the tracked event.
|
|
574
|
+
* @returns A {@link TrackEvent} payload.
|
|
575
|
+
*
|
|
576
|
+
* @public
|
|
577
|
+
*
|
|
578
|
+
* @example
|
|
579
|
+
* ```ts
|
|
580
|
+
* const event = builder.buildTrack({
|
|
581
|
+
* event: 'button_clicked',
|
|
582
|
+
* properties: { id: 'primary-cta', location: 'hero' },
|
|
583
|
+
* })
|
|
584
|
+
* ```
|
|
585
|
+
*/
|
|
586
|
+
buildTrack(args: TrackBuilderArgs): TrackEvent;
|
|
587
|
+
}
|
|
588
|
+
export default EventBuilder;
|
|
589
|
+
//# sourceMappingURL=EventBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/EventBuilder.ts"],"names":[],"mappings":"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"}
|