@reopt-ai/data-contract 0.3.0 → 0.5.0
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/README.md +11 -4
- package/dist/{chunk-2LJ7JLDX.js → chunk-2LZBZXBF.js} +9 -3
- package/dist/chunk-2LZBZXBF.js.map +1 -0
- package/dist/{chunk-ATPS4UV6.cjs → chunk-4B4AY44F.cjs} +33 -7
- package/dist/chunk-4B4AY44F.cjs.map +1 -0
- package/dist/{chunk-J4VD3TLV.js → chunk-AHXPQQKO.js} +30 -4
- package/dist/chunk-AHXPQQKO.js.map +1 -0
- package/dist/{chunk-55IWO4S3.js → chunk-BCGR27G2.js} +123 -11
- package/dist/chunk-BCGR27G2.js.map +1 -0
- package/dist/{chunk-3A7WZ7L6.js → chunk-MFZEIH5Z.js} +5 -4
- package/dist/chunk-MFZEIH5Z.js.map +1 -0
- package/dist/{chunk-KXEQGD3E.cjs → chunk-OLSMH4RY.cjs} +9 -3
- package/dist/chunk-OLSMH4RY.cjs.map +1 -0
- package/dist/{chunk-I2T4HRBM.cjs → chunk-VQ2CD5MG.cjs} +131 -19
- package/dist/chunk-VQ2CD5MG.cjs.map +1 -0
- package/dist/{chunk-RDPPPFGO.cjs → chunk-XI3VP5DN.cjs} +5 -4
- package/dist/chunk-XI3VP5DN.cjs.map +1 -0
- package/dist/client.cjs +83 -43
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +6 -2
- package/dist/client.d.ts +6 -2
- package/dist/client.js +45 -5
- package/dist/client.js.map +1 -1
- package/dist/control.cjs +14 -4
- package/dist/control.cjs.map +1 -1
- package/dist/control.d.cts +49 -7
- package/dist/control.d.ts +49 -7
- package/dist/control.js +15 -5
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/ingest.cjs +2 -2
- package/dist/ingest.d.cts +6 -6
- package/dist/ingest.d.ts +6 -6
- package/dist/ingest.js +1 -1
- package/dist/query.cjs +27 -3
- package/dist/query.cjs.map +1 -1
- package/dist/query.d.cts +302 -22
- package/dist/query.d.ts +302 -22
- package/dist/query.js +28 -4
- package/dist/report.cjs +85 -0
- package/dist/report.cjs.map +1 -0
- package/dist/report.d.cts +167 -0
- package/dist/report.d.ts +167 -0
- package/dist/report.js +85 -0
- package/dist/report.js.map +1 -0
- package/package.json +7 -2
- package/dist/chunk-2LJ7JLDX.js.map +0 -1
- package/dist/chunk-3A7WZ7L6.js.map +0 -1
- package/dist/chunk-55IWO4S3.js.map +0 -1
- package/dist/chunk-ATPS4UV6.cjs.map +0 -1
- package/dist/chunk-I2T4HRBM.cjs.map +0 -1
- package/dist/chunk-J4VD3TLV.js.map +0 -1
- package/dist/chunk-KXEQGD3E.cjs.map +0 -1
- package/dist/chunk-RDPPPFGO.cjs.map +0 -1
package/dist/query.d.ts
CHANGED
|
@@ -16,10 +16,10 @@ export { zDate, zInstant } from './index.js';
|
|
|
16
16
|
|
|
17
17
|
/** Bucket width for a time series. */
|
|
18
18
|
declare const zGranularity: z.ZodEnum<{
|
|
19
|
-
|
|
19
|
+
month: "month";
|
|
20
20
|
day: "day";
|
|
21
|
+
hour: "hour";
|
|
21
22
|
week: "week";
|
|
22
|
-
month: "month";
|
|
23
23
|
}>;
|
|
24
24
|
type Granularity = z.infer<typeof zGranularity>;
|
|
25
25
|
/**
|
|
@@ -54,13 +54,29 @@ type ChannelFilter = z.infer<typeof zChannelFilter>;
|
|
|
54
54
|
* TTL, while ingest lag means the read model is genuinely behind and the right
|
|
55
55
|
* response is an "aggregating" badge, not a refresh.
|
|
56
56
|
*/
|
|
57
|
+
declare const zQuerySource: z.ZodEnum<{
|
|
58
|
+
rollup: "rollup";
|
|
59
|
+
raw: "raw";
|
|
60
|
+
mixed: "mixed";
|
|
61
|
+
}>;
|
|
62
|
+
type QuerySource = z.infer<typeof zQuerySource>;
|
|
57
63
|
declare const zQueryMeta: z.ZodObject<{
|
|
58
64
|
projectId: z.ZodString;
|
|
59
65
|
computedAt: z.ZodString;
|
|
60
66
|
cacheAgeSeconds: z.ZodNumber;
|
|
61
|
-
ingestLagSeconds: z.ZodNumber
|
|
67
|
+
ingestLagSeconds: z.ZodNullable<z.ZodNumber>;
|
|
68
|
+
ingestLagStatus: z.ZodEnum<{
|
|
69
|
+
unknown: "unknown";
|
|
70
|
+
known: "known";
|
|
71
|
+
}>;
|
|
72
|
+
ingestDeadLetterCount: z.ZodNullable<z.ZodNumber>;
|
|
62
73
|
cached: z.ZodBoolean;
|
|
63
74
|
timezone: z.ZodString;
|
|
75
|
+
source: z.ZodEnum<{
|
|
76
|
+
rollup: "rollup";
|
|
77
|
+
raw: "raw";
|
|
78
|
+
mixed: "mixed";
|
|
79
|
+
}>;
|
|
64
80
|
requestId: z.ZodString;
|
|
65
81
|
}, z.core.$strip>;
|
|
66
82
|
type QueryMeta = z.infer<typeof zQueryMeta>;
|
|
@@ -71,9 +87,19 @@ declare function zQueryEnvelope<T extends z.ZodTypeAny>(data: T): z.ZodObject<{
|
|
|
71
87
|
projectId: z.ZodString;
|
|
72
88
|
computedAt: z.ZodString;
|
|
73
89
|
cacheAgeSeconds: z.ZodNumber;
|
|
74
|
-
ingestLagSeconds: z.ZodNumber
|
|
90
|
+
ingestLagSeconds: z.ZodNullable<z.ZodNumber>;
|
|
91
|
+
ingestLagStatus: z.ZodEnum<{
|
|
92
|
+
unknown: "unknown";
|
|
93
|
+
known: "known";
|
|
94
|
+
}>;
|
|
95
|
+
ingestDeadLetterCount: z.ZodNullable<z.ZodNumber>;
|
|
75
96
|
cached: z.ZodBoolean;
|
|
76
97
|
timezone: z.ZodString;
|
|
98
|
+
source: z.ZodEnum<{
|
|
99
|
+
rollup: "rollup";
|
|
100
|
+
raw: "raw";
|
|
101
|
+
mixed: "mixed";
|
|
102
|
+
}>;
|
|
77
103
|
requestId: z.ZodString;
|
|
78
104
|
}, z.core.$strip>;
|
|
79
105
|
}, z.core.$strip>;
|
|
@@ -88,17 +114,29 @@ declare const zTimeseriesBreakdown: z.ZodObject<{
|
|
|
88
114
|
topN: z.ZodDefault<z.ZodNumber>;
|
|
89
115
|
}, z.core.$strip>;
|
|
90
116
|
type TimeseriesBreakdown = z.infer<typeof zTimeseriesBreakdown>;
|
|
117
|
+
/** Exact-match filter for a top-level event `properties` key. Multiple filters are ANDed. */
|
|
118
|
+
declare const zEventPropertyFilter: z.ZodObject<{
|
|
119
|
+
key: z.ZodString;
|
|
120
|
+
operator: z.ZodDefault<z.ZodLiteral<"eq">>;
|
|
121
|
+
value: z.ZodString;
|
|
122
|
+
}, z.core.$strip>;
|
|
123
|
+
type EventPropertyFilter = z.infer<typeof zEventPropertyFilter>;
|
|
91
124
|
declare const zEventsTimeseriesInput: z.ZodObject<{
|
|
92
125
|
projectId: z.ZodString;
|
|
93
126
|
startDate: z.ZodString;
|
|
94
127
|
endDate: z.ZodString;
|
|
95
128
|
granularity: z.ZodDefault<z.ZodEnum<{
|
|
96
|
-
|
|
129
|
+
month: "month";
|
|
97
130
|
day: "day";
|
|
131
|
+
hour: "hour";
|
|
98
132
|
week: "week";
|
|
99
|
-
month: "month";
|
|
100
133
|
}>>;
|
|
101
134
|
eventName: z.ZodOptional<z.ZodString>;
|
|
135
|
+
propertyFilters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
136
|
+
key: z.ZodString;
|
|
137
|
+
operator: z.ZodDefault<z.ZodLiteral<"eq">>;
|
|
138
|
+
value: z.ZodString;
|
|
139
|
+
}, z.core.$strip>>>;
|
|
102
140
|
breakdown: z.ZodOptional<z.ZodObject<{
|
|
103
141
|
kind: z.ZodLiteral<"property">;
|
|
104
142
|
key: z.ZodString;
|
|
@@ -106,6 +144,7 @@ declare const zEventsTimeseriesInput: z.ZodObject<{
|
|
|
106
144
|
}, z.core.$strip>>;
|
|
107
145
|
segmentId: z.ZodOptional<z.ZodString>;
|
|
108
146
|
timezone: z.ZodOptional<z.ZodString>;
|
|
147
|
+
includeInternal: z.ZodDefault<z.ZodBoolean>;
|
|
109
148
|
}, z.core.$strip>;
|
|
110
149
|
type EventsTimeseriesInput = z.input<typeof zEventsTimeseriesInput>;
|
|
111
150
|
/**
|
|
@@ -129,10 +168,10 @@ declare const zTimeseriesPoint: z.ZodObject<{
|
|
|
129
168
|
type TimeseriesPoint = z.infer<typeof zTimeseriesPoint>;
|
|
130
169
|
declare const zEventsTimeseriesData: z.ZodObject<{
|
|
131
170
|
granularity: z.ZodEnum<{
|
|
132
|
-
|
|
171
|
+
month: "month";
|
|
133
172
|
day: "day";
|
|
173
|
+
hour: "hour";
|
|
134
174
|
week: "week";
|
|
135
|
-
month: "month";
|
|
136
175
|
}>;
|
|
137
176
|
timezone: z.ZodString;
|
|
138
177
|
series: z.ZodArray<z.ZodObject<{
|
|
@@ -151,10 +190,10 @@ type EventsTimeseriesData = z.infer<typeof zEventsTimeseriesData>;
|
|
|
151
190
|
declare const zEventsTimeseriesResponse: z.ZodObject<{
|
|
152
191
|
data: z.ZodObject<{
|
|
153
192
|
granularity: z.ZodEnum<{
|
|
154
|
-
|
|
193
|
+
month: "month";
|
|
155
194
|
day: "day";
|
|
195
|
+
hour: "hour";
|
|
156
196
|
week: "week";
|
|
157
|
-
month: "month";
|
|
158
197
|
}>;
|
|
159
198
|
timezone: z.ZodString;
|
|
160
199
|
series: z.ZodArray<z.ZodObject<{
|
|
@@ -173,9 +212,19 @@ declare const zEventsTimeseriesResponse: z.ZodObject<{
|
|
|
173
212
|
projectId: z.ZodString;
|
|
174
213
|
computedAt: z.ZodString;
|
|
175
214
|
cacheAgeSeconds: z.ZodNumber;
|
|
176
|
-
ingestLagSeconds: z.ZodNumber
|
|
215
|
+
ingestLagSeconds: z.ZodNullable<z.ZodNumber>;
|
|
216
|
+
ingestLagStatus: z.ZodEnum<{
|
|
217
|
+
unknown: "unknown";
|
|
218
|
+
known: "known";
|
|
219
|
+
}>;
|
|
220
|
+
ingestDeadLetterCount: z.ZodNullable<z.ZodNumber>;
|
|
177
221
|
cached: z.ZodBoolean;
|
|
178
222
|
timezone: z.ZodString;
|
|
223
|
+
source: z.ZodEnum<{
|
|
224
|
+
rollup: "rollup";
|
|
225
|
+
raw: "raw";
|
|
226
|
+
mixed: "mixed";
|
|
227
|
+
}>;
|
|
179
228
|
requestId: z.ZodString;
|
|
180
229
|
}, z.core.$strip>;
|
|
181
230
|
}, z.core.$strip>;
|
|
@@ -195,6 +244,7 @@ declare const zFunnelInput: z.ZodObject<{
|
|
|
195
244
|
utmCampaigns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
196
245
|
}, z.core.$strip>>;
|
|
197
246
|
timezone: z.ZodOptional<z.ZodString>;
|
|
247
|
+
includeInternal: z.ZodDefault<z.ZodBoolean>;
|
|
198
248
|
}, z.core.$strip>;
|
|
199
249
|
type FunnelInput = z.input<typeof zFunnelInput>;
|
|
200
250
|
declare const zFunnelStep: z.ZodObject<{
|
|
@@ -235,26 +285,36 @@ declare const zFunnelResponse: z.ZodObject<{
|
|
|
235
285
|
projectId: z.ZodString;
|
|
236
286
|
computedAt: z.ZodString;
|
|
237
287
|
cacheAgeSeconds: z.ZodNumber;
|
|
238
|
-
ingestLagSeconds: z.ZodNumber
|
|
288
|
+
ingestLagSeconds: z.ZodNullable<z.ZodNumber>;
|
|
289
|
+
ingestLagStatus: z.ZodEnum<{
|
|
290
|
+
unknown: "unknown";
|
|
291
|
+
known: "known";
|
|
292
|
+
}>;
|
|
293
|
+
ingestDeadLetterCount: z.ZodNullable<z.ZodNumber>;
|
|
239
294
|
cached: z.ZodBoolean;
|
|
240
295
|
timezone: z.ZodString;
|
|
296
|
+
source: z.ZodEnum<{
|
|
297
|
+
rollup: "rollup";
|
|
298
|
+
raw: "raw";
|
|
299
|
+
mixed: "mixed";
|
|
300
|
+
}>;
|
|
241
301
|
requestId: z.ZodString;
|
|
242
302
|
}, z.core.$strip>;
|
|
243
303
|
}, z.core.$strip>;
|
|
244
304
|
type FunnelResponse = z.infer<typeof zFunnelResponse>;
|
|
245
305
|
declare const zRetentionInterval: z.ZodEnum<{
|
|
306
|
+
month: "month";
|
|
246
307
|
day: "day";
|
|
247
308
|
week: "week";
|
|
248
|
-
month: "month";
|
|
249
309
|
}>;
|
|
250
310
|
declare const zRetentionInput: z.ZodObject<{
|
|
251
311
|
projectId: z.ZodString;
|
|
252
312
|
startDate: z.ZodString;
|
|
253
313
|
endDate: z.ZodString;
|
|
254
314
|
interval: z.ZodDefault<z.ZodEnum<{
|
|
315
|
+
month: "month";
|
|
255
316
|
day: "day";
|
|
256
317
|
week: "week";
|
|
257
|
-
month: "month";
|
|
258
318
|
}>>;
|
|
259
319
|
periods: z.ZodDefault<z.ZodNumber>;
|
|
260
320
|
startEvent: z.ZodOptional<z.ZodString>;
|
|
@@ -276,6 +336,7 @@ declare const zRetentionInput: z.ZodObject<{
|
|
|
276
336
|
utmCampaigns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
277
337
|
}, z.core.$strip>>;
|
|
278
338
|
timezone: z.ZodOptional<z.ZodString>;
|
|
339
|
+
includeInternal: z.ZodDefault<z.ZodBoolean>;
|
|
279
340
|
}, z.core.$strip>;
|
|
280
341
|
type RetentionInput = z.input<typeof zRetentionInput>;
|
|
281
342
|
declare const zRetentionCell: z.ZodObject<{
|
|
@@ -298,9 +359,9 @@ declare const zRetentionData: z.ZodObject<{
|
|
|
298
359
|
rate: z.ZodNumber;
|
|
299
360
|
}, z.core.$strip>>;
|
|
300
361
|
interval: z.ZodEnum<{
|
|
362
|
+
month: "month";
|
|
301
363
|
day: "day";
|
|
302
364
|
week: "week";
|
|
303
|
-
month: "month";
|
|
304
365
|
}>;
|
|
305
366
|
periods: z.ZodNumber;
|
|
306
367
|
retentionType: z.ZodEnum<{
|
|
@@ -326,9 +387,9 @@ declare const zRetentionResponse: z.ZodObject<{
|
|
|
326
387
|
rate: z.ZodNumber;
|
|
327
388
|
}, z.core.$strip>>;
|
|
328
389
|
interval: z.ZodEnum<{
|
|
390
|
+
month: "month";
|
|
329
391
|
day: "day";
|
|
330
392
|
week: "week";
|
|
331
|
-
month: "month";
|
|
332
393
|
}>;
|
|
333
394
|
periods: z.ZodNumber;
|
|
334
395
|
retentionType: z.ZodEnum<{
|
|
@@ -341,20 +402,237 @@ declare const zRetentionResponse: z.ZodObject<{
|
|
|
341
402
|
projectId: z.ZodString;
|
|
342
403
|
computedAt: z.ZodString;
|
|
343
404
|
cacheAgeSeconds: z.ZodNumber;
|
|
344
|
-
ingestLagSeconds: z.ZodNumber
|
|
405
|
+
ingestLagSeconds: z.ZodNullable<z.ZodNumber>;
|
|
406
|
+
ingestLagStatus: z.ZodEnum<{
|
|
407
|
+
unknown: "unknown";
|
|
408
|
+
known: "known";
|
|
409
|
+
}>;
|
|
410
|
+
ingestDeadLetterCount: z.ZodNullable<z.ZodNumber>;
|
|
345
411
|
cached: z.ZodBoolean;
|
|
346
412
|
timezone: z.ZodString;
|
|
413
|
+
source: z.ZodEnum<{
|
|
414
|
+
rollup: "rollup";
|
|
415
|
+
raw: "raw";
|
|
416
|
+
mixed: "mixed";
|
|
417
|
+
}>;
|
|
347
418
|
requestId: z.ZodString;
|
|
348
419
|
}, z.core.$strip>;
|
|
349
420
|
}, z.core.$strip>;
|
|
350
421
|
type RetentionResponse = z.infer<typeof zRetentionResponse>;
|
|
422
|
+
/**
|
|
423
|
+
* Session-level traffic for a brand site, served from the hourly rollups.
|
|
424
|
+
* `newVisitors` counts sessions whose device was first seen inside them;
|
|
425
|
+
* `returningVisitors` is the rest. Both are session counts, not people —
|
|
426
|
+
* "visitor" is the vocabulary the dashboards already use.
|
|
427
|
+
*/
|
|
428
|
+
declare const zTrafficOverviewInput: z.ZodObject<{
|
|
429
|
+
projectId: z.ZodString;
|
|
430
|
+
startDate: z.ZodString;
|
|
431
|
+
endDate: z.ZodString;
|
|
432
|
+
granularity: z.ZodDefault<z.ZodEnum<{
|
|
433
|
+
month: "month";
|
|
434
|
+
day: "day";
|
|
435
|
+
hour: "hour";
|
|
436
|
+
week: "week";
|
|
437
|
+
}>>;
|
|
438
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
439
|
+
}, z.core.$strip>;
|
|
440
|
+
type TrafficOverviewInput = z.input<typeof zTrafficOverviewInput>;
|
|
441
|
+
declare const zTrafficTotals: z.ZodObject<{
|
|
442
|
+
sessions: z.ZodNumber;
|
|
443
|
+
pageviews: z.ZodNumber;
|
|
444
|
+
newVisitors: z.ZodNumber;
|
|
445
|
+
returningVisitors: z.ZodNumber;
|
|
446
|
+
bounceRate: z.ZodNumber;
|
|
447
|
+
}, z.core.$strip>;
|
|
448
|
+
type TrafficTotals = z.infer<typeof zTrafficTotals>;
|
|
449
|
+
declare const zTrafficSeriesPoint: z.ZodObject<{
|
|
450
|
+
sessions: z.ZodNumber;
|
|
451
|
+
pageviews: z.ZodNumber;
|
|
452
|
+
newVisitors: z.ZodNumber;
|
|
453
|
+
returningVisitors: z.ZodNumber;
|
|
454
|
+
bounceRate: z.ZodNumber;
|
|
455
|
+
date: z.ZodString;
|
|
456
|
+
}, z.core.$strip>;
|
|
457
|
+
declare const zTrafficOverviewData: z.ZodObject<{
|
|
458
|
+
granularity: z.ZodEnum<{
|
|
459
|
+
month: "month";
|
|
460
|
+
day: "day";
|
|
461
|
+
hour: "hour";
|
|
462
|
+
week: "week";
|
|
463
|
+
}>;
|
|
464
|
+
timezone: z.ZodString;
|
|
465
|
+
totals: z.ZodObject<{
|
|
466
|
+
sessions: z.ZodNumber;
|
|
467
|
+
pageviews: z.ZodNumber;
|
|
468
|
+
newVisitors: z.ZodNumber;
|
|
469
|
+
returningVisitors: z.ZodNumber;
|
|
470
|
+
bounceRate: z.ZodNumber;
|
|
471
|
+
}, z.core.$strip>;
|
|
472
|
+
series: z.ZodArray<z.ZodObject<{
|
|
473
|
+
sessions: z.ZodNumber;
|
|
474
|
+
pageviews: z.ZodNumber;
|
|
475
|
+
newVisitors: z.ZodNumber;
|
|
476
|
+
returningVisitors: z.ZodNumber;
|
|
477
|
+
bounceRate: z.ZodNumber;
|
|
478
|
+
date: z.ZodString;
|
|
479
|
+
}, z.core.$strip>>;
|
|
480
|
+
}, z.core.$strip>;
|
|
481
|
+
type TrafficOverviewData = z.infer<typeof zTrafficOverviewData>;
|
|
482
|
+
declare const zTrafficOverviewResponse: z.ZodObject<{
|
|
483
|
+
data: z.ZodObject<{
|
|
484
|
+
granularity: z.ZodEnum<{
|
|
485
|
+
month: "month";
|
|
486
|
+
day: "day";
|
|
487
|
+
hour: "hour";
|
|
488
|
+
week: "week";
|
|
489
|
+
}>;
|
|
490
|
+
timezone: z.ZodString;
|
|
491
|
+
totals: z.ZodObject<{
|
|
492
|
+
sessions: z.ZodNumber;
|
|
493
|
+
pageviews: z.ZodNumber;
|
|
494
|
+
newVisitors: z.ZodNumber;
|
|
495
|
+
returningVisitors: z.ZodNumber;
|
|
496
|
+
bounceRate: z.ZodNumber;
|
|
497
|
+
}, z.core.$strip>;
|
|
498
|
+
series: z.ZodArray<z.ZodObject<{
|
|
499
|
+
sessions: z.ZodNumber;
|
|
500
|
+
pageviews: z.ZodNumber;
|
|
501
|
+
newVisitors: z.ZodNumber;
|
|
502
|
+
returningVisitors: z.ZodNumber;
|
|
503
|
+
bounceRate: z.ZodNumber;
|
|
504
|
+
date: z.ZodString;
|
|
505
|
+
}, z.core.$strip>>;
|
|
506
|
+
}, z.core.$strip>;
|
|
507
|
+
meta: z.ZodObject<{
|
|
508
|
+
projectId: z.ZodString;
|
|
509
|
+
computedAt: z.ZodString;
|
|
510
|
+
cacheAgeSeconds: z.ZodNumber;
|
|
511
|
+
ingestLagSeconds: z.ZodNullable<z.ZodNumber>;
|
|
512
|
+
ingestLagStatus: z.ZodEnum<{
|
|
513
|
+
unknown: "unknown";
|
|
514
|
+
known: "known";
|
|
515
|
+
}>;
|
|
516
|
+
ingestDeadLetterCount: z.ZodNullable<z.ZodNumber>;
|
|
517
|
+
cached: z.ZodBoolean;
|
|
518
|
+
timezone: z.ZodString;
|
|
519
|
+
source: z.ZodEnum<{
|
|
520
|
+
rollup: "rollup";
|
|
521
|
+
raw: "raw";
|
|
522
|
+
mixed: "mixed";
|
|
523
|
+
}>;
|
|
524
|
+
requestId: z.ZodString;
|
|
525
|
+
}, z.core.$strip>;
|
|
526
|
+
}, z.core.$strip>;
|
|
527
|
+
type TrafficOverviewResponse = z.infer<typeof zTrafficOverviewResponse>;
|
|
528
|
+
declare const zTrafficDimension: z.ZodEnum<{
|
|
529
|
+
channel: "channel";
|
|
530
|
+
referrer: "referrer";
|
|
531
|
+
utm: "utm";
|
|
532
|
+
}>;
|
|
533
|
+
type TrafficDimension = z.infer<typeof zTrafficDimension>;
|
|
534
|
+
declare const zTrafficSourcesInput: z.ZodObject<{
|
|
535
|
+
projectId: z.ZodString;
|
|
536
|
+
startDate: z.ZodString;
|
|
537
|
+
endDate: z.ZodString;
|
|
538
|
+
dimension: z.ZodEnum<{
|
|
539
|
+
channel: "channel";
|
|
540
|
+
referrer: "referrer";
|
|
541
|
+
utm: "utm";
|
|
542
|
+
}>;
|
|
543
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
544
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
545
|
+
}, z.core.$strip>;
|
|
546
|
+
type TrafficSourcesInput = z.input<typeof zTrafficSourcesInput>;
|
|
547
|
+
declare const zTrafficSourceRow: z.ZodObject<{
|
|
548
|
+
sessions: z.ZodNumber;
|
|
549
|
+
pageviews: z.ZodNumber;
|
|
550
|
+
newVisitors: z.ZodNumber;
|
|
551
|
+
returningVisitors: z.ZodNumber;
|
|
552
|
+
bounceRate: z.ZodNumber;
|
|
553
|
+
key: z.ZodString;
|
|
554
|
+
channelType: z.ZodOptional<z.ZodString>;
|
|
555
|
+
referrerName: z.ZodOptional<z.ZodString>;
|
|
556
|
+
referrerType: z.ZodOptional<z.ZodString>;
|
|
557
|
+
utmSource: z.ZodOptional<z.ZodString>;
|
|
558
|
+
utmMedium: z.ZodOptional<z.ZodString>;
|
|
559
|
+
utmCampaign: z.ZodOptional<z.ZodString>;
|
|
560
|
+
}, z.core.$strip>;
|
|
561
|
+
type TrafficSourceRow = z.infer<typeof zTrafficSourceRow>;
|
|
562
|
+
declare const zTrafficSourcesData: z.ZodObject<{
|
|
563
|
+
dimension: z.ZodEnum<{
|
|
564
|
+
channel: "channel";
|
|
565
|
+
referrer: "referrer";
|
|
566
|
+
utm: "utm";
|
|
567
|
+
}>;
|
|
568
|
+
timezone: z.ZodString;
|
|
569
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
570
|
+
sessions: z.ZodNumber;
|
|
571
|
+
pageviews: z.ZodNumber;
|
|
572
|
+
newVisitors: z.ZodNumber;
|
|
573
|
+
returningVisitors: z.ZodNumber;
|
|
574
|
+
bounceRate: z.ZodNumber;
|
|
575
|
+
key: z.ZodString;
|
|
576
|
+
channelType: z.ZodOptional<z.ZodString>;
|
|
577
|
+
referrerName: z.ZodOptional<z.ZodString>;
|
|
578
|
+
referrerType: z.ZodOptional<z.ZodString>;
|
|
579
|
+
utmSource: z.ZodOptional<z.ZodString>;
|
|
580
|
+
utmMedium: z.ZodOptional<z.ZodString>;
|
|
581
|
+
utmCampaign: z.ZodOptional<z.ZodString>;
|
|
582
|
+
}, z.core.$strip>>;
|
|
583
|
+
}, z.core.$strip>;
|
|
584
|
+
type TrafficSourcesData = z.infer<typeof zTrafficSourcesData>;
|
|
585
|
+
declare const zTrafficSourcesResponse: z.ZodObject<{
|
|
586
|
+
data: z.ZodObject<{
|
|
587
|
+
dimension: z.ZodEnum<{
|
|
588
|
+
channel: "channel";
|
|
589
|
+
referrer: "referrer";
|
|
590
|
+
utm: "utm";
|
|
591
|
+
}>;
|
|
592
|
+
timezone: z.ZodString;
|
|
593
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
594
|
+
sessions: z.ZodNumber;
|
|
595
|
+
pageviews: z.ZodNumber;
|
|
596
|
+
newVisitors: z.ZodNumber;
|
|
597
|
+
returningVisitors: z.ZodNumber;
|
|
598
|
+
bounceRate: z.ZodNumber;
|
|
599
|
+
key: z.ZodString;
|
|
600
|
+
channelType: z.ZodOptional<z.ZodString>;
|
|
601
|
+
referrerName: z.ZodOptional<z.ZodString>;
|
|
602
|
+
referrerType: z.ZodOptional<z.ZodString>;
|
|
603
|
+
utmSource: z.ZodOptional<z.ZodString>;
|
|
604
|
+
utmMedium: z.ZodOptional<z.ZodString>;
|
|
605
|
+
utmCampaign: z.ZodOptional<z.ZodString>;
|
|
606
|
+
}, z.core.$strip>>;
|
|
607
|
+
}, z.core.$strip>;
|
|
608
|
+
meta: z.ZodObject<{
|
|
609
|
+
projectId: z.ZodString;
|
|
610
|
+
computedAt: z.ZodString;
|
|
611
|
+
cacheAgeSeconds: z.ZodNumber;
|
|
612
|
+
ingestLagSeconds: z.ZodNullable<z.ZodNumber>;
|
|
613
|
+
ingestLagStatus: z.ZodEnum<{
|
|
614
|
+
unknown: "unknown";
|
|
615
|
+
known: "known";
|
|
616
|
+
}>;
|
|
617
|
+
ingestDeadLetterCount: z.ZodNullable<z.ZodNumber>;
|
|
618
|
+
cached: z.ZodBoolean;
|
|
619
|
+
timezone: z.ZodString;
|
|
620
|
+
source: z.ZodEnum<{
|
|
621
|
+
rollup: "rollup";
|
|
622
|
+
raw: "raw";
|
|
623
|
+
mixed: "mixed";
|
|
624
|
+
}>;
|
|
625
|
+
requestId: z.ZodString;
|
|
626
|
+
}, z.core.$strip>;
|
|
627
|
+
}, z.core.$strip>;
|
|
628
|
+
type TrafficSourcesResponse = z.infer<typeof zTrafficSourcesResponse>;
|
|
351
629
|
declare const QUERY_ERROR_CODES: readonly ["unauthorized", "project_scope_mismatch", "query_scope_missing", "validation_failed", "unsupported_combination", "project_purging", "rate_limited", "query_timeout", "internal_error"];
|
|
352
630
|
declare const zQueryErrorCode: z.ZodEnum<{
|
|
353
|
-
validation_failed: "validation_failed";
|
|
354
631
|
unauthorized: "unauthorized";
|
|
632
|
+
validation_failed: "validation_failed";
|
|
355
633
|
rate_limited: "rate_limited";
|
|
356
|
-
project_purging: "project_purging";
|
|
357
634
|
internal_error: "internal_error";
|
|
635
|
+
project_purging: "project_purging";
|
|
358
636
|
project_scope_mismatch: "project_scope_mismatch";
|
|
359
637
|
query_scope_missing: "query_scope_missing";
|
|
360
638
|
unsupported_combination: "unsupported_combination";
|
|
@@ -364,11 +642,11 @@ type QueryErrorCode = z.infer<typeof zQueryErrorCode>;
|
|
|
364
642
|
declare const zQueryError: z.ZodObject<{
|
|
365
643
|
status: z.ZodNumber;
|
|
366
644
|
code: z.ZodEnum<{
|
|
367
|
-
validation_failed: "validation_failed";
|
|
368
645
|
unauthorized: "unauthorized";
|
|
646
|
+
validation_failed: "validation_failed";
|
|
369
647
|
rate_limited: "rate_limited";
|
|
370
|
-
project_purging: "project_purging";
|
|
371
648
|
internal_error: "internal_error";
|
|
649
|
+
project_purging: "project_purging";
|
|
372
650
|
project_scope_mismatch: "project_scope_mismatch";
|
|
373
651
|
query_scope_missing: "query_scope_missing";
|
|
374
652
|
unsupported_combination: "unsupported_combination";
|
|
@@ -385,6 +663,8 @@ declare const QUERY_API_PATHS: {
|
|
|
385
663
|
readonly eventsTimeseries: "/api/v1/query/events/timeseries";
|
|
386
664
|
readonly funnel: "/api/v1/query/funnel";
|
|
387
665
|
readonly retention: "/api/v1/query/retention";
|
|
666
|
+
readonly trafficOverview: "/api/v1/query/traffic/overview";
|
|
667
|
+
readonly trafficSources: "/api/v1/query/traffic/sources";
|
|
388
668
|
};
|
|
389
669
|
|
|
390
|
-
export { type ChannelFilter, type EventsTimeseriesData, type EventsTimeseriesInput, type EventsTimeseriesResponse, type FunnelData, type FunnelInput, type FunnelResponse, type Granularity, QUERY_API_PATHS, QUERY_ERROR_CODES, type QueryError, type QueryErrorCode, type QueryMeta, type RetentionData, type RetentionInput, type RetentionResponse, type TimeseriesBreakdown, type TimeseriesPoint, isValidTimeZone, zBucketStart, zChannelFilter, zEventsTimeseriesData, zEventsTimeseriesInput, zEventsTimeseriesResponse, zFunnelData, zFunnelInput, zFunnelResponse, zFunnelStep, zGranularity, zQueryEnvelope, zQueryError, zQueryErrorCode, zQueryMeta, zRetentionCell, zRetentionData, zRetentionInput, zRetentionInterval, zRetentionResponse, zTimeseriesBreakdown, zTimeseriesPoint, zTimezone };
|
|
670
|
+
export { type ChannelFilter, type EventPropertyFilter, type EventsTimeseriesData, type EventsTimeseriesInput, type EventsTimeseriesResponse, type FunnelData, type FunnelInput, type FunnelResponse, type Granularity, QUERY_API_PATHS, QUERY_ERROR_CODES, type QueryError, type QueryErrorCode, type QueryMeta, type QuerySource, type RetentionData, type RetentionInput, type RetentionResponse, type TimeseriesBreakdown, type TimeseriesPoint, type TrafficDimension, type TrafficOverviewData, type TrafficOverviewInput, type TrafficOverviewResponse, type TrafficSourceRow, type TrafficSourcesData, type TrafficSourcesInput, type TrafficSourcesResponse, type TrafficTotals, isValidTimeZone, zBucketStart, zChannelFilter, zEventPropertyFilter, zEventsTimeseriesData, zEventsTimeseriesInput, zEventsTimeseriesResponse, zFunnelData, zFunnelInput, zFunnelResponse, zFunnelStep, zGranularity, zQueryEnvelope, zQueryError, zQueryErrorCode, zQueryMeta, zQuerySource, zRetentionCell, zRetentionData, zRetentionInput, zRetentionInterval, zRetentionResponse, zTimeseriesBreakdown, zTimeseriesPoint, zTimezone, zTrafficDimension, zTrafficOverviewData, zTrafficOverviewInput, zTrafficOverviewResponse, zTrafficSeriesPoint, zTrafficSourceRow, zTrafficSourcesData, zTrafficSourcesInput, zTrafficSourcesResponse, zTrafficTotals };
|
package/dist/query.js
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
isValidTimeZone,
|
|
5
5
|
zBucketStart,
|
|
6
6
|
zChannelFilter,
|
|
7
|
+
zEventPropertyFilter,
|
|
7
8
|
zEventsTimeseriesData,
|
|
8
9
|
zEventsTimeseriesInput,
|
|
9
10
|
zEventsTimeseriesResponse,
|
|
@@ -16,6 +17,7 @@ import {
|
|
|
16
17
|
zQueryError,
|
|
17
18
|
zQueryErrorCode,
|
|
18
19
|
zQueryMeta,
|
|
20
|
+
zQuerySource,
|
|
19
21
|
zRetentionCell,
|
|
20
22
|
zRetentionData,
|
|
21
23
|
zRetentionInput,
|
|
@@ -23,12 +25,22 @@ import {
|
|
|
23
25
|
zRetentionResponse,
|
|
24
26
|
zTimeseriesBreakdown,
|
|
25
27
|
zTimeseriesPoint,
|
|
26
|
-
zTimezone
|
|
27
|
-
|
|
28
|
+
zTimezone,
|
|
29
|
+
zTrafficDimension,
|
|
30
|
+
zTrafficOverviewData,
|
|
31
|
+
zTrafficOverviewInput,
|
|
32
|
+
zTrafficOverviewResponse,
|
|
33
|
+
zTrafficSeriesPoint,
|
|
34
|
+
zTrafficSourceRow,
|
|
35
|
+
zTrafficSourcesData,
|
|
36
|
+
zTrafficSourcesInput,
|
|
37
|
+
zTrafficSourcesResponse,
|
|
38
|
+
zTrafficTotals
|
|
39
|
+
} from "./chunk-BCGR27G2.js";
|
|
28
40
|
import {
|
|
29
41
|
zDate,
|
|
30
42
|
zInstant
|
|
31
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-2LZBZXBF.js";
|
|
32
44
|
export {
|
|
33
45
|
QUERY_API_PATHS,
|
|
34
46
|
QUERY_ERROR_CODES,
|
|
@@ -36,6 +48,7 @@ export {
|
|
|
36
48
|
zBucketStart,
|
|
37
49
|
zChannelFilter,
|
|
38
50
|
zDate,
|
|
51
|
+
zEventPropertyFilter,
|
|
39
52
|
zEventsTimeseriesData,
|
|
40
53
|
zEventsTimeseriesInput,
|
|
41
54
|
zEventsTimeseriesResponse,
|
|
@@ -49,6 +62,7 @@ export {
|
|
|
49
62
|
zQueryError,
|
|
50
63
|
zQueryErrorCode,
|
|
51
64
|
zQueryMeta,
|
|
65
|
+
zQuerySource,
|
|
52
66
|
zRetentionCell,
|
|
53
67
|
zRetentionData,
|
|
54
68
|
zRetentionInput,
|
|
@@ -56,6 +70,16 @@ export {
|
|
|
56
70
|
zRetentionResponse,
|
|
57
71
|
zTimeseriesBreakdown,
|
|
58
72
|
zTimeseriesPoint,
|
|
59
|
-
zTimezone
|
|
73
|
+
zTimezone,
|
|
74
|
+
zTrafficDimension,
|
|
75
|
+
zTrafficOverviewData,
|
|
76
|
+
zTrafficOverviewInput,
|
|
77
|
+
zTrafficOverviewResponse,
|
|
78
|
+
zTrafficSeriesPoint,
|
|
79
|
+
zTrafficSourceRow,
|
|
80
|
+
zTrafficSourcesData,
|
|
81
|
+
zTrafficSourcesInput,
|
|
82
|
+
zTrafficSourcesResponse,
|
|
83
|
+
zTrafficTotals
|
|
60
84
|
};
|
|
61
85
|
//# sourceMappingURL=query.js.map
|
package/dist/report.cjs
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/report.ts
|
|
2
|
+
var _zod = require('zod');
|
|
3
|
+
var REPORT_SPEC_VERSION = 1;
|
|
4
|
+
var zReportRange = _zod.z.string().regex(/^\d+[dhm]$/, "expected a relative range such as 7d or 24h");
|
|
5
|
+
var zReportInterval = _zod.z.enum(["minute", "hour", "day", "week", "month"]);
|
|
6
|
+
var zLegacyChartType = _zod.z.enum([
|
|
7
|
+
"linear",
|
|
8
|
+
"bar",
|
|
9
|
+
"pie",
|
|
10
|
+
"metric",
|
|
11
|
+
"area",
|
|
12
|
+
"gauge",
|
|
13
|
+
"scatter",
|
|
14
|
+
"table",
|
|
15
|
+
"sparkline"
|
|
16
|
+
]);
|
|
17
|
+
var zCommon = {
|
|
18
|
+
version: _zod.z.literal(REPORT_SPEC_VERSION),
|
|
19
|
+
range: zReportRange.default("30d"),
|
|
20
|
+
segmentId: _zod.z.string().min(1).optional()
|
|
21
|
+
};
|
|
22
|
+
var zTimeseriesReportSpec = _zod.z.object({
|
|
23
|
+
...zCommon,
|
|
24
|
+
kind: _zod.z.literal("timeseries"),
|
|
25
|
+
chartType: zLegacyChartType,
|
|
26
|
+
interval: zReportInterval,
|
|
27
|
+
events: _zod.z.array(_zod.z.object({ name: _zod.z.string().min(1).max(200) })).min(1).max(20),
|
|
28
|
+
breakdowns: _zod.z.array(_zod.z.string().min(1).max(200)).max(5).default([]),
|
|
29
|
+
comparePrevious: _zod.z.boolean().default(false)
|
|
30
|
+
});
|
|
31
|
+
var zFunnelReportSpec = _zod.z.object({
|
|
32
|
+
...zCommon,
|
|
33
|
+
kind: _zod.z.literal("funnel"),
|
|
34
|
+
steps: _zod.z.array(_zod.z.string().min(1).max(200)).min(2).max(10),
|
|
35
|
+
windowSeconds: _zod.z.number().int().min(60).max(2592e3).default(86400)
|
|
36
|
+
});
|
|
37
|
+
var zRetentionReportSpec = _zod.z.object({
|
|
38
|
+
...zCommon,
|
|
39
|
+
kind: _zod.z.literal("retention"),
|
|
40
|
+
interval: _zod.z.enum(["day", "week", "month"]).default("day"),
|
|
41
|
+
periods: _zod.z.number().int().min(1).max(30).default(7),
|
|
42
|
+
startEvent: _zod.z.string().min(1).max(200).optional(),
|
|
43
|
+
returnEvent: _zod.z.string().min(1).max(200).optional(),
|
|
44
|
+
retentionType: _zod.z.enum(["bounded", "unbounded"]).default("bounded"),
|
|
45
|
+
cohortMode: _zod.z.enum(["first-ever", "first-in-window"]).default("first-ever")
|
|
46
|
+
});
|
|
47
|
+
var zPathReportSpec = _zod.z.object({
|
|
48
|
+
...zCommon,
|
|
49
|
+
kind: _zod.z.literal("path"),
|
|
50
|
+
limit: _zod.z.number().int().min(1).max(100).default(30),
|
|
51
|
+
startPage: _zod.z.string().max(2e3).optional(),
|
|
52
|
+
endPage: _zod.z.string().max(2e3).optional()
|
|
53
|
+
});
|
|
54
|
+
var zReportSpec = _zod.z.discriminatedUnion("kind", [
|
|
55
|
+
zTimeseriesReportSpec,
|
|
56
|
+
zFunnelReportSpec,
|
|
57
|
+
zRetentionReportSpec,
|
|
58
|
+
zPathReportSpec
|
|
59
|
+
]);
|
|
60
|
+
function legacyReportToSpec(input) {
|
|
61
|
+
const events = _zod.z.array(_zod.z.object({ name: _zod.z.string().min(1).max(200) })).safeParse(input.events);
|
|
62
|
+
const breakdowns = _zod.z.array(_zod.z.string().min(1).max(200)).safeParse(input.breakdowns);
|
|
63
|
+
return zTimeseriesReportSpec.parse({
|
|
64
|
+
version: REPORT_SPEC_VERSION,
|
|
65
|
+
kind: "timeseries",
|
|
66
|
+
chartType: input.chartType,
|
|
67
|
+
interval: input.interval,
|
|
68
|
+
range: input.range,
|
|
69
|
+
events: events.success && events.data.length > 0 ? events.data : [{ name: "$pageview" }],
|
|
70
|
+
breakdowns: breakdowns.success ? breakdowns.data : []
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
exports.REPORT_SPEC_VERSION = REPORT_SPEC_VERSION; exports.legacyReportToSpec = legacyReportToSpec; exports.zFunnelReportSpec = zFunnelReportSpec; exports.zLegacyChartType = zLegacyChartType; exports.zPathReportSpec = zPathReportSpec; exports.zReportInterval = zReportInterval; exports.zReportRange = zReportRange; exports.zReportSpec = zReportSpec; exports.zRetentionReportSpec = zRetentionReportSpec; exports.zTimeseriesReportSpec = zTimeseriesReportSpec;
|
|
85
|
+
//# sourceMappingURL=report.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/eric/reopt-ai/reopt-data/packages/data-contract/dist/report.cjs","../src/report.ts"],"names":[],"mappings":"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","file":"/Users/eric/reopt-ai/reopt-data/packages/data-contract/dist/report.cjs","sourcesContent":[null,"import { z } from \"zod\";\n\nexport const REPORT_SPEC_VERSION = 1 as const;\n\nexport const zReportRange = z.string().regex(/^\\d+[dhm]$/, \"expected a relative range such as 7d or 24h\");\nexport const zReportInterval = z.enum([\"minute\", \"hour\", \"day\", \"week\", \"month\"]);\nexport const zLegacyChartType = z.enum([\n \"linear\",\n \"bar\",\n \"pie\",\n \"metric\",\n \"area\",\n \"gauge\",\n \"scatter\",\n \"table\",\n \"sparkline\",\n]);\n\nconst zCommon = {\n version: z.literal(REPORT_SPEC_VERSION),\n range: zReportRange.default(\"30d\"),\n segmentId: z.string().min(1).optional(),\n};\n\nexport const zTimeseriesReportSpec = z.object({\n ...zCommon,\n kind: z.literal(\"timeseries\"),\n chartType: zLegacyChartType,\n interval: zReportInterval,\n events: z\n .array(z.object({ name: z.string().min(1).max(200) }))\n .min(1)\n .max(20),\n breakdowns: z.array(z.string().min(1).max(200)).max(5).default([]),\n comparePrevious: z.boolean().default(false),\n});\n\nexport const zFunnelReportSpec = z.object({\n ...zCommon,\n kind: z.literal(\"funnel\"),\n steps: z.array(z.string().min(1).max(200)).min(2).max(10),\n windowSeconds: z.number().int().min(60).max(2_592_000).default(86_400),\n});\n\nexport const zRetentionReportSpec = z.object({\n ...zCommon,\n kind: z.literal(\"retention\"),\n interval: z.enum([\"day\", \"week\", \"month\"]).default(\"day\"),\n periods: z.number().int().min(1).max(30).default(7),\n startEvent: z.string().min(1).max(200).optional(),\n returnEvent: z.string().min(1).max(200).optional(),\n retentionType: z.enum([\"bounded\", \"unbounded\"]).default(\"bounded\"),\n cohortMode: z.enum([\"first-ever\", \"first-in-window\"]).default(\"first-ever\"),\n});\n\nexport const zPathReportSpec = z.object({\n ...zCommon,\n kind: z.literal(\"path\"),\n limit: z.number().int().min(1).max(100).default(30),\n startPage: z.string().max(2_000).optional(),\n endPage: z.string().max(2_000).optional(),\n});\n\nexport const zReportSpec = z.discriminatedUnion(\"kind\", [\n zTimeseriesReportSpec,\n zFunnelReportSpec,\n zRetentionReportSpec,\n zPathReportSpec,\n]);\n\nexport type ReportSpec = z.infer<typeof zReportSpec>;\nexport type TimeseriesReportSpec = z.infer<typeof zTimeseriesReportSpec>;\n\n/** Convert a pre-ReportSpec row into the canonical v1 representation. */\nexport function legacyReportToSpec(input: {\n chartType: z.infer<typeof zLegacyChartType>;\n interval: z.infer<typeof zReportInterval>;\n range: string;\n events: unknown;\n breakdowns: unknown;\n}): TimeseriesReportSpec {\n const events = z.array(z.object({ name: z.string().min(1).max(200) })).safeParse(input.events);\n const breakdowns = z.array(z.string().min(1).max(200)).safeParse(input.breakdowns);\n return zTimeseriesReportSpec.parse({\n version: REPORT_SPEC_VERSION,\n kind: \"timeseries\",\n chartType: input.chartType,\n interval: input.interval,\n range: input.range,\n events: events.success && events.data.length > 0 ? events.data : [{ name: \"$pageview\" }],\n breakdowns: breakdowns.success ? breakdowns.data : [],\n });\n}\n"]}
|