@apicity/openf1 0.6.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/LICENSE +21 -0
- package/README.md +426 -0
- package/dist/src/example.d.ts +8 -0
- package/dist/src/example.d.ts.map +1 -0
- package/dist/src/example.js +85 -0
- package/dist/src/example.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/openf1.d.ts +3 -0
- package/dist/src/openf1.d.ts.map +1 -0
- package/dist/src/openf1.js +537 -0
- package/dist/src/openf1.js.map +1 -0
- package/dist/src/types.d.ts +606 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +11 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/zod.d.ts +102 -0
- package/dist/src/zod.d.ts.map +1 -0
- package/dist/src/zod.js +793 -0
- package/dist/src/zod.js.map +1 -0
- package/package.json +56 -0
package/dist/src/zod.js
ADDED
|
@@ -0,0 +1,793 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const nullableString = z.string().nullable();
|
|
3
|
+
const filterScalar = z.union([z.string(), z.number(), z.boolean()]);
|
|
4
|
+
const stringFilterValue = z.union([z.string(), z.array(z.string())]);
|
|
5
|
+
const numberFilterValue = z.union([z.number(), z.array(z.number())]);
|
|
6
|
+
const numberOrStringFilterValue = z.union([
|
|
7
|
+
z.string(),
|
|
8
|
+
z.number(),
|
|
9
|
+
z.array(z.union([z.string(), z.number()])),
|
|
10
|
+
]);
|
|
11
|
+
const booleanFilterValue = z.union([z.boolean(), z.array(z.boolean())]);
|
|
12
|
+
const latestKey = z.union([z.number(), z.literal("latest")]);
|
|
13
|
+
const latestKeyFilterValue = z.union([latestKey, z.array(latestKey)]);
|
|
14
|
+
const intervalGap = z.union([z.number(), z.string(), z.null()]);
|
|
15
|
+
export const OpenF1OptionsSchema = z.object({
|
|
16
|
+
baseURL: z.string().optional(),
|
|
17
|
+
accessToken: z.string().optional(),
|
|
18
|
+
tokenProvider: z.custom().optional(),
|
|
19
|
+
timeout: z.number().optional(),
|
|
20
|
+
fetch: z.custom().optional(),
|
|
21
|
+
});
|
|
22
|
+
export const OpenF1TokenRequestSchema = z.object({
|
|
23
|
+
username: z.string().min(1),
|
|
24
|
+
password: z.string().min(1),
|
|
25
|
+
});
|
|
26
|
+
export const OpenF1TokenResponseSchema = z
|
|
27
|
+
.object({
|
|
28
|
+
access_token: z.string(),
|
|
29
|
+
expires_in: z.number(),
|
|
30
|
+
token_type: z.string(),
|
|
31
|
+
})
|
|
32
|
+
.catchall(z.unknown());
|
|
33
|
+
export const OpenF1FilterScalarSchema = filterScalar;
|
|
34
|
+
export const OpenF1ComparisonOperatorSchema = z.enum(["=", "<", "<=", ">", ">="]);
|
|
35
|
+
export const OpenF1CarDataFilterFieldSchema = z.enum([
|
|
36
|
+
"brake",
|
|
37
|
+
"date",
|
|
38
|
+
"driver_number",
|
|
39
|
+
"drs",
|
|
40
|
+
"meeting_key",
|
|
41
|
+
"n_gear",
|
|
42
|
+
"rpm",
|
|
43
|
+
"session_key",
|
|
44
|
+
"speed",
|
|
45
|
+
"throttle",
|
|
46
|
+
]);
|
|
47
|
+
export const OpenF1DriversFilterFieldSchema = z.enum([
|
|
48
|
+
"broadcast_name",
|
|
49
|
+
"country_code",
|
|
50
|
+
"driver_number",
|
|
51
|
+
"first_name",
|
|
52
|
+
"full_name",
|
|
53
|
+
"headshot_url",
|
|
54
|
+
"last_name",
|
|
55
|
+
"meeting_key",
|
|
56
|
+
"name_acronym",
|
|
57
|
+
"session_key",
|
|
58
|
+
"team_colour",
|
|
59
|
+
"team_name",
|
|
60
|
+
]);
|
|
61
|
+
export const OpenF1MeetingsFilterFieldSchema = z.enum([
|
|
62
|
+
"circuit_key",
|
|
63
|
+
"circuit_image",
|
|
64
|
+
"circuit_info_url",
|
|
65
|
+
"circuit_short_name",
|
|
66
|
+
"circuit_type",
|
|
67
|
+
"country_code",
|
|
68
|
+
"country_flag",
|
|
69
|
+
"country_key",
|
|
70
|
+
"country_name",
|
|
71
|
+
"date_end",
|
|
72
|
+
"date_start",
|
|
73
|
+
"gmt_offset",
|
|
74
|
+
"is_cancelled",
|
|
75
|
+
"location",
|
|
76
|
+
"meeting_key",
|
|
77
|
+
"meeting_name",
|
|
78
|
+
"meeting_official_name",
|
|
79
|
+
"year",
|
|
80
|
+
]);
|
|
81
|
+
export const OpenF1IntervalsFilterFieldSchema = z.enum([
|
|
82
|
+
"date",
|
|
83
|
+
"driver_number",
|
|
84
|
+
"gap_to_leader",
|
|
85
|
+
"interval",
|
|
86
|
+
"meeting_key",
|
|
87
|
+
"session_key",
|
|
88
|
+
]);
|
|
89
|
+
const openF1ComparisonFilterObject = z.object({
|
|
90
|
+
field: z.string(),
|
|
91
|
+
op: OpenF1ComparisonOperatorSchema,
|
|
92
|
+
value: OpenF1FilterScalarSchema,
|
|
93
|
+
});
|
|
94
|
+
export const OpenF1ComparisonFilterSchema = openF1ComparisonFilterObject;
|
|
95
|
+
export const OpenF1CarDataFilterSchema = openF1ComparisonFilterObject.extend({
|
|
96
|
+
field: OpenF1CarDataFilterFieldSchema,
|
|
97
|
+
});
|
|
98
|
+
export const OpenF1DriversFilterSchema = openF1ComparisonFilterObject.extend({
|
|
99
|
+
field: OpenF1DriversFilterFieldSchema,
|
|
100
|
+
});
|
|
101
|
+
export const OpenF1MeetingsFilterSchema = openF1ComparisonFilterObject.extend({
|
|
102
|
+
field: OpenF1MeetingsFilterFieldSchema,
|
|
103
|
+
});
|
|
104
|
+
export const OpenF1IntervalsFilterSchema = openF1ComparisonFilterObject.extend({
|
|
105
|
+
field: OpenF1IntervalsFilterFieldSchema,
|
|
106
|
+
});
|
|
107
|
+
export const OpenF1CarDataSchema = z
|
|
108
|
+
.object({
|
|
109
|
+
brake: z.number(),
|
|
110
|
+
date: z.string(),
|
|
111
|
+
driver_number: z.number(),
|
|
112
|
+
drs: z.number(),
|
|
113
|
+
meeting_key: z.number(),
|
|
114
|
+
n_gear: z.number(),
|
|
115
|
+
rpm: z.number(),
|
|
116
|
+
session_key: z.number(),
|
|
117
|
+
speed: z.number(),
|
|
118
|
+
throttle: z.number(),
|
|
119
|
+
})
|
|
120
|
+
.catchall(z.unknown());
|
|
121
|
+
export const OpenF1DriverSchema = z
|
|
122
|
+
.object({
|
|
123
|
+
broadcast_name: z.string(),
|
|
124
|
+
country_code: z.string().optional(),
|
|
125
|
+
driver_number: z.number(),
|
|
126
|
+
first_name: z.string(),
|
|
127
|
+
full_name: z.string(),
|
|
128
|
+
headshot_url: z.string(),
|
|
129
|
+
last_name: z.string(),
|
|
130
|
+
meeting_key: z.number(),
|
|
131
|
+
name_acronym: z.string(),
|
|
132
|
+
session_key: z.number(),
|
|
133
|
+
team_colour: z.string(),
|
|
134
|
+
team_name: z.string(),
|
|
135
|
+
})
|
|
136
|
+
.catchall(z.unknown());
|
|
137
|
+
export const OpenF1MeetingSchema = z
|
|
138
|
+
.object({
|
|
139
|
+
circuit_key: z.number(),
|
|
140
|
+
circuit_image: nullableString,
|
|
141
|
+
circuit_info_url: nullableString,
|
|
142
|
+
circuit_short_name: z.string(),
|
|
143
|
+
circuit_type: nullableString,
|
|
144
|
+
country_code: z.string(),
|
|
145
|
+
country_flag: nullableString,
|
|
146
|
+
country_key: z.number(),
|
|
147
|
+
country_name: z.string(),
|
|
148
|
+
date_end: z.string(),
|
|
149
|
+
date_start: z.string(),
|
|
150
|
+
gmt_offset: z.string(),
|
|
151
|
+
is_cancelled: z.boolean(),
|
|
152
|
+
location: z.string(),
|
|
153
|
+
meeting_key: z.number(),
|
|
154
|
+
meeting_name: z.string(),
|
|
155
|
+
meeting_official_name: z.string(),
|
|
156
|
+
year: z.number(),
|
|
157
|
+
})
|
|
158
|
+
.catchall(z.unknown());
|
|
159
|
+
export const OpenF1IntervalGapSchema = intervalGap;
|
|
160
|
+
export const OpenF1IntervalSchema = z
|
|
161
|
+
.object({
|
|
162
|
+
date: z.string(),
|
|
163
|
+
driver_number: z.number(),
|
|
164
|
+
gap_to_leader: intervalGap,
|
|
165
|
+
interval: intervalGap,
|
|
166
|
+
meeting_key: z.number(),
|
|
167
|
+
session_key: z.number(),
|
|
168
|
+
})
|
|
169
|
+
.catchall(z.unknown());
|
|
170
|
+
export const OpenF1LatestKeySchema = latestKey;
|
|
171
|
+
export const OpenF1CarDataRequestSchema = z.object({
|
|
172
|
+
brake: numberFilterValue.optional(),
|
|
173
|
+
date: stringFilterValue.optional(),
|
|
174
|
+
driver_number: numberFilterValue.optional(),
|
|
175
|
+
drs: numberFilterValue.optional(),
|
|
176
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
177
|
+
n_gear: numberFilterValue.optional(),
|
|
178
|
+
rpm: numberFilterValue.optional(),
|
|
179
|
+
session_key: latestKeyFilterValue.optional(),
|
|
180
|
+
speed: numberFilterValue.optional(),
|
|
181
|
+
throttle: numberFilterValue.optional(),
|
|
182
|
+
filters: z.array(OpenF1CarDataFilterSchema).optional(),
|
|
183
|
+
csv: z.boolean().optional(),
|
|
184
|
+
});
|
|
185
|
+
export const OpenF1CarDataResponseSchema = z.array(OpenF1CarDataSchema);
|
|
186
|
+
export const OpenF1DriversRequestSchema = z.object({
|
|
187
|
+
broadcast_name: stringFilterValue.optional(),
|
|
188
|
+
country_code: stringFilterValue.optional(),
|
|
189
|
+
driver_number: numberFilterValue.optional(),
|
|
190
|
+
first_name: stringFilterValue.optional(),
|
|
191
|
+
full_name: stringFilterValue.optional(),
|
|
192
|
+
headshot_url: stringFilterValue.optional(),
|
|
193
|
+
last_name: stringFilterValue.optional(),
|
|
194
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
195
|
+
name_acronym: stringFilterValue.optional(),
|
|
196
|
+
session_key: latestKeyFilterValue.optional(),
|
|
197
|
+
team_colour: stringFilterValue.optional(),
|
|
198
|
+
team_name: stringFilterValue.optional(),
|
|
199
|
+
filters: z.array(OpenF1DriversFilterSchema).optional(),
|
|
200
|
+
csv: z.boolean().optional(),
|
|
201
|
+
});
|
|
202
|
+
export const OpenF1DriversResponseSchema = z.array(OpenF1DriverSchema);
|
|
203
|
+
export const OpenF1MeetingsRequestSchema = z.object({
|
|
204
|
+
circuit_key: numberFilterValue.optional(),
|
|
205
|
+
circuit_image: stringFilterValue.optional(),
|
|
206
|
+
circuit_info_url: stringFilterValue.optional(),
|
|
207
|
+
circuit_short_name: stringFilterValue.optional(),
|
|
208
|
+
circuit_type: stringFilterValue.optional(),
|
|
209
|
+
country_code: stringFilterValue.optional(),
|
|
210
|
+
country_flag: stringFilterValue.optional(),
|
|
211
|
+
country_key: numberFilterValue.optional(),
|
|
212
|
+
country_name: stringFilterValue.optional(),
|
|
213
|
+
date_end: stringFilterValue.optional(),
|
|
214
|
+
date_start: stringFilterValue.optional(),
|
|
215
|
+
gmt_offset: stringFilterValue.optional(),
|
|
216
|
+
is_cancelled: booleanFilterValue.optional(),
|
|
217
|
+
location: stringFilterValue.optional(),
|
|
218
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
219
|
+
meeting_name: stringFilterValue.optional(),
|
|
220
|
+
meeting_official_name: stringFilterValue.optional(),
|
|
221
|
+
year: numberFilterValue.optional(),
|
|
222
|
+
filters: z.array(OpenF1MeetingsFilterSchema).optional(),
|
|
223
|
+
csv: z.boolean().optional(),
|
|
224
|
+
});
|
|
225
|
+
export const OpenF1ChampionshipDriverFilterFieldSchema = z.enum([
|
|
226
|
+
"driver_number",
|
|
227
|
+
"meeting_key",
|
|
228
|
+
"points_current",
|
|
229
|
+
"points_start",
|
|
230
|
+
"position_current",
|
|
231
|
+
"position_start",
|
|
232
|
+
"session_key",
|
|
233
|
+
]);
|
|
234
|
+
export const OpenF1ChampionshipDriverFilterSchema = openF1ComparisonFilterObject.extend({
|
|
235
|
+
field: OpenF1ChampionshipDriverFilterFieldSchema,
|
|
236
|
+
});
|
|
237
|
+
export const OpenF1ChampionshipDriverSchema = z
|
|
238
|
+
.object({
|
|
239
|
+
driver_number: z.number(),
|
|
240
|
+
meeting_key: z.number(),
|
|
241
|
+
points_current: z.number(),
|
|
242
|
+
points_start: z.number(),
|
|
243
|
+
position_current: z.number(),
|
|
244
|
+
position_start: z.number(),
|
|
245
|
+
session_key: z.number(),
|
|
246
|
+
})
|
|
247
|
+
.catchall(z.unknown());
|
|
248
|
+
export const OpenF1ChampionshipDriverRequestSchema = z.object({
|
|
249
|
+
driver_number: numberFilterValue.optional(),
|
|
250
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
251
|
+
points_current: numberFilterValue.optional(),
|
|
252
|
+
points_start: numberFilterValue.optional(),
|
|
253
|
+
position_current: numberFilterValue.optional(),
|
|
254
|
+
position_start: numberFilterValue.optional(),
|
|
255
|
+
session_key: latestKeyFilterValue.optional(),
|
|
256
|
+
filters: z.array(OpenF1ChampionshipDriverFilterSchema).optional(),
|
|
257
|
+
csv: z.boolean().optional(),
|
|
258
|
+
});
|
|
259
|
+
export const OpenF1ChampionshipDriverResponseSchema = z.array(OpenF1ChampionshipDriverSchema);
|
|
260
|
+
export const OpenF1ChampionshipTeamFilterFieldSchema = z.enum([
|
|
261
|
+
"meeting_key",
|
|
262
|
+
"points_current",
|
|
263
|
+
"points_start",
|
|
264
|
+
"position_current",
|
|
265
|
+
"position_start",
|
|
266
|
+
"session_key",
|
|
267
|
+
"team_name",
|
|
268
|
+
]);
|
|
269
|
+
export const OpenF1ChampionshipTeamFilterSchema = openF1ComparisonFilterObject.extend({
|
|
270
|
+
field: OpenF1ChampionshipTeamFilterFieldSchema,
|
|
271
|
+
});
|
|
272
|
+
export const OpenF1ChampionshipTeamSchema = z
|
|
273
|
+
.object({
|
|
274
|
+
meeting_key: z.number(),
|
|
275
|
+
points_current: z.number(),
|
|
276
|
+
points_start: z.number(),
|
|
277
|
+
position_current: z.number(),
|
|
278
|
+
position_start: z.number(),
|
|
279
|
+
session_key: z.number(),
|
|
280
|
+
team_name: z.string(),
|
|
281
|
+
})
|
|
282
|
+
.catchall(z.unknown());
|
|
283
|
+
export const OpenF1ChampionshipTeamRequestSchema = z.object({
|
|
284
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
285
|
+
points_current: numberFilterValue.optional(),
|
|
286
|
+
points_start: numberFilterValue.optional(),
|
|
287
|
+
position_current: numberFilterValue.optional(),
|
|
288
|
+
position_start: numberFilterValue.optional(),
|
|
289
|
+
session_key: latestKeyFilterValue.optional(),
|
|
290
|
+
team_name: stringFilterValue.optional(),
|
|
291
|
+
filters: z.array(OpenF1ChampionshipTeamFilterSchema).optional(),
|
|
292
|
+
csv: z.boolean().optional(),
|
|
293
|
+
});
|
|
294
|
+
export const OpenF1ChampionshipTeamResponseSchema = z.array(OpenF1ChampionshipTeamSchema);
|
|
295
|
+
export const OpenF1IntervalsRequestSchema = z.object({
|
|
296
|
+
date: stringFilterValue.optional(),
|
|
297
|
+
driver_number: numberFilterValue.optional(),
|
|
298
|
+
gap_to_leader: numberOrStringFilterValue.optional(),
|
|
299
|
+
interval: numberOrStringFilterValue.optional(),
|
|
300
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
301
|
+
session_key: latestKeyFilterValue.optional(),
|
|
302
|
+
filters: z.array(OpenF1IntervalsFilterSchema).optional(),
|
|
303
|
+
csv: z.boolean().optional(),
|
|
304
|
+
});
|
|
305
|
+
export const OpenF1IntervalsResponseSchema = z.array(OpenF1IntervalSchema);
|
|
306
|
+
export const OpenF1LapFilterFieldSchema = z.enum([
|
|
307
|
+
"date_start",
|
|
308
|
+
"driver_number",
|
|
309
|
+
"duration_sector_1",
|
|
310
|
+
"duration_sector_2",
|
|
311
|
+
"duration_sector_3",
|
|
312
|
+
"i1_speed",
|
|
313
|
+
"i2_speed",
|
|
314
|
+
"is_pit_out_lap",
|
|
315
|
+
"lap_duration",
|
|
316
|
+
"lap_number",
|
|
317
|
+
"meeting_key",
|
|
318
|
+
"segments_sector_1",
|
|
319
|
+
"segments_sector_2",
|
|
320
|
+
"segments_sector_3",
|
|
321
|
+
"session_key",
|
|
322
|
+
"st_speed",
|
|
323
|
+
]);
|
|
324
|
+
export const OpenF1LapFilterSchema = openF1ComparisonFilterObject.extend({
|
|
325
|
+
field: OpenF1LapFilterFieldSchema,
|
|
326
|
+
});
|
|
327
|
+
export const OpenF1LapSchema = z
|
|
328
|
+
.object({
|
|
329
|
+
date_start: z.string(),
|
|
330
|
+
driver_number: z.number(),
|
|
331
|
+
duration_sector_1: z.number().nullable(),
|
|
332
|
+
duration_sector_2: z.number().nullable(),
|
|
333
|
+
duration_sector_3: z.number().nullable(),
|
|
334
|
+
i1_speed: z.number().nullable(),
|
|
335
|
+
i2_speed: z.number().nullable(),
|
|
336
|
+
is_pit_out_lap: z.boolean(),
|
|
337
|
+
lap_duration: z.number().nullable(),
|
|
338
|
+
lap_number: z.number(),
|
|
339
|
+
meeting_key: z.number(),
|
|
340
|
+
segments_sector_1: z.array(z.number()).nullable(),
|
|
341
|
+
segments_sector_2: z.array(z.number()).nullable(),
|
|
342
|
+
segments_sector_3: z.array(z.number()).nullable(),
|
|
343
|
+
session_key: z.number(),
|
|
344
|
+
st_speed: z.number().nullable(),
|
|
345
|
+
})
|
|
346
|
+
.catchall(z.unknown());
|
|
347
|
+
export const OpenF1LapRequestSchema = z.object({
|
|
348
|
+
date_start: stringFilterValue.optional(),
|
|
349
|
+
driver_number: numberFilterValue.optional(),
|
|
350
|
+
duration_sector_1: numberFilterValue.optional(),
|
|
351
|
+
duration_sector_2: numberFilterValue.optional(),
|
|
352
|
+
duration_sector_3: numberFilterValue.optional(),
|
|
353
|
+
i1_speed: numberFilterValue.optional(),
|
|
354
|
+
i2_speed: numberFilterValue.optional(),
|
|
355
|
+
is_pit_out_lap: booleanFilterValue.optional(),
|
|
356
|
+
lap_duration: numberFilterValue.optional(),
|
|
357
|
+
lap_number: numberFilterValue.optional(),
|
|
358
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
359
|
+
segments_sector_1: numberFilterValue.optional(),
|
|
360
|
+
segments_sector_2: numberFilterValue.optional(),
|
|
361
|
+
segments_sector_3: numberFilterValue.optional(),
|
|
362
|
+
session_key: latestKeyFilterValue.optional(),
|
|
363
|
+
st_speed: numberFilterValue.optional(),
|
|
364
|
+
filters: z.array(OpenF1LapFilterSchema).optional(),
|
|
365
|
+
csv: z.boolean().optional(),
|
|
366
|
+
});
|
|
367
|
+
export const OpenF1LapResponseSchema = z.array(OpenF1LapSchema);
|
|
368
|
+
export const OpenF1LocationFilterFieldSchema = z.enum([
|
|
369
|
+
"date",
|
|
370
|
+
"driver_number",
|
|
371
|
+
"meeting_key",
|
|
372
|
+
"session_key",
|
|
373
|
+
"x",
|
|
374
|
+
"y",
|
|
375
|
+
"z",
|
|
376
|
+
]);
|
|
377
|
+
export const OpenF1LocationFilterSchema = openF1ComparisonFilterObject.extend({
|
|
378
|
+
field: OpenF1LocationFilterFieldSchema,
|
|
379
|
+
});
|
|
380
|
+
export const OpenF1LocationSchema = z
|
|
381
|
+
.object({
|
|
382
|
+
date: z.string(),
|
|
383
|
+
driver_number: z.number(),
|
|
384
|
+
meeting_key: z.number(),
|
|
385
|
+
session_key: z.number(),
|
|
386
|
+
x: z.number(),
|
|
387
|
+
y: z.number(),
|
|
388
|
+
z: z.number(),
|
|
389
|
+
})
|
|
390
|
+
.catchall(z.unknown());
|
|
391
|
+
export const OpenF1LocationRequestSchema = z.object({
|
|
392
|
+
date: stringFilterValue.optional(),
|
|
393
|
+
driver_number: numberFilterValue.optional(),
|
|
394
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
395
|
+
session_key: latestKeyFilterValue.optional(),
|
|
396
|
+
x: numberFilterValue.optional(),
|
|
397
|
+
y: numberFilterValue.optional(),
|
|
398
|
+
z: numberFilterValue.optional(),
|
|
399
|
+
filters: z.array(OpenF1LocationFilterSchema).optional(),
|
|
400
|
+
csv: z.boolean().optional(),
|
|
401
|
+
});
|
|
402
|
+
export const OpenF1LocationResponseSchema = z.array(OpenF1LocationSchema);
|
|
403
|
+
export const OpenF1OvertakeFilterFieldSchema = z.enum([
|
|
404
|
+
"date",
|
|
405
|
+
"meeting_key",
|
|
406
|
+
"overtaken_driver_number",
|
|
407
|
+
"overtaking_driver_number",
|
|
408
|
+
"position",
|
|
409
|
+
"session_key",
|
|
410
|
+
]);
|
|
411
|
+
export const OpenF1OvertakeFilterSchema = openF1ComparisonFilterObject.extend({
|
|
412
|
+
field: OpenF1OvertakeFilterFieldSchema,
|
|
413
|
+
});
|
|
414
|
+
export const OpenF1OvertakeSchema = z
|
|
415
|
+
.object({
|
|
416
|
+
date: z.string(),
|
|
417
|
+
meeting_key: z.number(),
|
|
418
|
+
overtaken_driver_number: z.number(),
|
|
419
|
+
overtaking_driver_number: z.number(),
|
|
420
|
+
position: z.number(),
|
|
421
|
+
session_key: z.number(),
|
|
422
|
+
})
|
|
423
|
+
.catchall(z.unknown());
|
|
424
|
+
export const OpenF1OvertakeRequestSchema = z.object({
|
|
425
|
+
date: stringFilterValue.optional(),
|
|
426
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
427
|
+
overtaken_driver_number: numberFilterValue.optional(),
|
|
428
|
+
overtaking_driver_number: numberFilterValue.optional(),
|
|
429
|
+
position: numberFilterValue.optional(),
|
|
430
|
+
session_key: latestKeyFilterValue.optional(),
|
|
431
|
+
filters: z.array(OpenF1OvertakeFilterSchema).optional(),
|
|
432
|
+
csv: z.boolean().optional(),
|
|
433
|
+
});
|
|
434
|
+
export const OpenF1OvertakeResponseSchema = z.array(OpenF1OvertakeSchema);
|
|
435
|
+
export const OpenF1PositionFilterFieldSchema = z.enum(["date", "driver_number", "meeting_key", "position", "session_key"]);
|
|
436
|
+
export const OpenF1PositionFilterSchema = openF1ComparisonFilterObject.extend({
|
|
437
|
+
field: OpenF1PositionFilterFieldSchema,
|
|
438
|
+
});
|
|
439
|
+
export const OpenF1PositionSchema = z
|
|
440
|
+
.object({
|
|
441
|
+
date: z.string(),
|
|
442
|
+
driver_number: z.number(),
|
|
443
|
+
meeting_key: z.number(),
|
|
444
|
+
position: z.number(),
|
|
445
|
+
session_key: z.number(),
|
|
446
|
+
})
|
|
447
|
+
.catchall(z.unknown());
|
|
448
|
+
export const OpenF1PositionRequestSchema = z.object({
|
|
449
|
+
date: stringFilterValue.optional(),
|
|
450
|
+
driver_number: numberFilterValue.optional(),
|
|
451
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
452
|
+
position: numberFilterValue.optional(),
|
|
453
|
+
session_key: latestKeyFilterValue.optional(),
|
|
454
|
+
filters: z.array(OpenF1PositionFilterSchema).optional(),
|
|
455
|
+
csv: z.boolean().optional(),
|
|
456
|
+
});
|
|
457
|
+
export const OpenF1PositionResponseSchema = z.array(OpenF1PositionSchema);
|
|
458
|
+
export const OpenF1PitStopFilterFieldSchema = z.enum([
|
|
459
|
+
"date",
|
|
460
|
+
"driver_number",
|
|
461
|
+
"lane_duration",
|
|
462
|
+
"lap_number",
|
|
463
|
+
"meeting_key",
|
|
464
|
+
"pit_duration",
|
|
465
|
+
"session_key",
|
|
466
|
+
"stop_duration",
|
|
467
|
+
]);
|
|
468
|
+
export const OpenF1PitStopFilterSchema = openF1ComparisonFilterObject.extend({
|
|
469
|
+
field: OpenF1PitStopFilterFieldSchema,
|
|
470
|
+
});
|
|
471
|
+
export const OpenF1PitStopSchema = z
|
|
472
|
+
.object({
|
|
473
|
+
date: z.string(),
|
|
474
|
+
driver_number: z.number(),
|
|
475
|
+
lane_duration: z.number(),
|
|
476
|
+
lap_number: z.number(),
|
|
477
|
+
meeting_key: z.number(),
|
|
478
|
+
pit_duration: z.number(),
|
|
479
|
+
session_key: z.number(),
|
|
480
|
+
stop_duration: z.number().nullable(),
|
|
481
|
+
})
|
|
482
|
+
.catchall(z.unknown());
|
|
483
|
+
export const OpenF1PitStopRequestSchema = z.object({
|
|
484
|
+
date: stringFilterValue.optional(),
|
|
485
|
+
driver_number: numberFilterValue.optional(),
|
|
486
|
+
lane_duration: numberFilterValue.optional(),
|
|
487
|
+
lap_number: numberFilterValue.optional(),
|
|
488
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
489
|
+
pit_duration: numberFilterValue.optional(),
|
|
490
|
+
session_key: latestKeyFilterValue.optional(),
|
|
491
|
+
stop_duration: numberFilterValue.optional(),
|
|
492
|
+
filters: z.array(OpenF1PitStopFilterSchema).optional(),
|
|
493
|
+
csv: z.boolean().optional(),
|
|
494
|
+
});
|
|
495
|
+
export const OpenF1PitStopResponseSchema = z.array(OpenF1PitStopSchema);
|
|
496
|
+
export const OpenF1RaceControlMessageFilterFieldSchema = z.enum([
|
|
497
|
+
"category",
|
|
498
|
+
"date",
|
|
499
|
+
"driver_number",
|
|
500
|
+
"flag",
|
|
501
|
+
"lap_number",
|
|
502
|
+
"meeting_key",
|
|
503
|
+
"message",
|
|
504
|
+
"qualifying_phase",
|
|
505
|
+
"scope",
|
|
506
|
+
"sector",
|
|
507
|
+
"session_key",
|
|
508
|
+
]);
|
|
509
|
+
export const OpenF1RaceControlMessageFilterSchema = openF1ComparisonFilterObject.extend({
|
|
510
|
+
field: OpenF1RaceControlMessageFilterFieldSchema,
|
|
511
|
+
});
|
|
512
|
+
export const OpenF1RaceControlMessageSchema = z
|
|
513
|
+
.object({
|
|
514
|
+
category: z.string(),
|
|
515
|
+
date: z.string(),
|
|
516
|
+
driver_number: z.number().nullable(),
|
|
517
|
+
flag: nullableString,
|
|
518
|
+
lap_number: z.number().nullable(),
|
|
519
|
+
meeting_key: z.number(),
|
|
520
|
+
message: z.string(),
|
|
521
|
+
qualifying_phase: z.number().nullable(),
|
|
522
|
+
scope: nullableString,
|
|
523
|
+
sector: z.number().nullable(),
|
|
524
|
+
session_key: z.number(),
|
|
525
|
+
})
|
|
526
|
+
.catchall(z.unknown());
|
|
527
|
+
export const OpenF1RaceControlMessageRequestSchema = z.object({
|
|
528
|
+
category: stringFilterValue.optional(),
|
|
529
|
+
date: stringFilterValue.optional(),
|
|
530
|
+
driver_number: numberFilterValue.optional(),
|
|
531
|
+
flag: stringFilterValue.optional(),
|
|
532
|
+
lap_number: numberFilterValue.optional(),
|
|
533
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
534
|
+
message: stringFilterValue.optional(),
|
|
535
|
+
qualifying_phase: numberFilterValue.optional(),
|
|
536
|
+
scope: stringFilterValue.optional(),
|
|
537
|
+
sector: numberFilterValue.optional(),
|
|
538
|
+
session_key: latestKeyFilterValue.optional(),
|
|
539
|
+
filters: z.array(OpenF1RaceControlMessageFilterSchema).optional(),
|
|
540
|
+
csv: z.boolean().optional(),
|
|
541
|
+
});
|
|
542
|
+
export const OpenF1RaceControlMessageResponseSchema = z.array(OpenF1RaceControlMessageSchema);
|
|
543
|
+
export const OpenF1SessionResultDurationSchema = z.union([z.number(), z.null(), z.array(z.union([z.number(), z.null()]))]);
|
|
544
|
+
export const OpenF1SessionResultGapToLeaderSchema = z.union([
|
|
545
|
+
z.string(),
|
|
546
|
+
z.number(),
|
|
547
|
+
z.null(),
|
|
548
|
+
z.array(z.union([z.string(), z.number(), z.null()])),
|
|
549
|
+
]);
|
|
550
|
+
export const OpenF1SessionResultFilterFieldSchema = z.enum([
|
|
551
|
+
"dnf",
|
|
552
|
+
"dns",
|
|
553
|
+
"dsq",
|
|
554
|
+
"driver_number",
|
|
555
|
+
"duration",
|
|
556
|
+
"gap_to_leader",
|
|
557
|
+
"number_of_laps",
|
|
558
|
+
"meeting_key",
|
|
559
|
+
"position",
|
|
560
|
+
"session_key",
|
|
561
|
+
]);
|
|
562
|
+
export const OpenF1SessionResultFilterSchema = openF1ComparisonFilterObject.extend({
|
|
563
|
+
field: OpenF1SessionResultFilterFieldSchema,
|
|
564
|
+
});
|
|
565
|
+
export const OpenF1SessionResultSchema = z
|
|
566
|
+
.object({
|
|
567
|
+
dnf: z.boolean(),
|
|
568
|
+
dns: z.boolean(),
|
|
569
|
+
dsq: z.boolean(),
|
|
570
|
+
driver_number: z.number(),
|
|
571
|
+
duration: OpenF1SessionResultDurationSchema,
|
|
572
|
+
gap_to_leader: OpenF1SessionResultGapToLeaderSchema,
|
|
573
|
+
number_of_laps: z.number(),
|
|
574
|
+
meeting_key: z.number(),
|
|
575
|
+
position: z.number(),
|
|
576
|
+
session_key: z.number(),
|
|
577
|
+
})
|
|
578
|
+
.catchall(z.unknown());
|
|
579
|
+
export const OpenF1SessionResultRequestSchema = z.object({
|
|
580
|
+
dnf: booleanFilterValue.optional(),
|
|
581
|
+
dns: booleanFilterValue.optional(),
|
|
582
|
+
dsq: booleanFilterValue.optional(),
|
|
583
|
+
driver_number: numberFilterValue.optional(),
|
|
584
|
+
duration: numberOrStringFilterValue.optional(),
|
|
585
|
+
gap_to_leader: numberOrStringFilterValue.optional(),
|
|
586
|
+
number_of_laps: numberFilterValue.optional(),
|
|
587
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
588
|
+
position: numberFilterValue.optional(),
|
|
589
|
+
session_key: latestKeyFilterValue.optional(),
|
|
590
|
+
filters: z.array(OpenF1SessionResultFilterSchema).optional(),
|
|
591
|
+
csv: z.boolean().optional(),
|
|
592
|
+
});
|
|
593
|
+
export const OpenF1SessionResultResponseSchema = z.array(OpenF1SessionResultSchema);
|
|
594
|
+
export const OpenF1SessionFilterFieldSchema = z.enum([
|
|
595
|
+
"circuit_key",
|
|
596
|
+
"circuit_short_name",
|
|
597
|
+
"country_code",
|
|
598
|
+
"country_key",
|
|
599
|
+
"country_name",
|
|
600
|
+
"date_end",
|
|
601
|
+
"date_start",
|
|
602
|
+
"gmt_offset",
|
|
603
|
+
"is_cancelled",
|
|
604
|
+
"location",
|
|
605
|
+
"meeting_key",
|
|
606
|
+
"session_key",
|
|
607
|
+
"session_name",
|
|
608
|
+
"session_type",
|
|
609
|
+
"year",
|
|
610
|
+
]);
|
|
611
|
+
export const OpenF1SessionFilterSchema = openF1ComparisonFilterObject.extend({
|
|
612
|
+
field: OpenF1SessionFilterFieldSchema,
|
|
613
|
+
});
|
|
614
|
+
export const OpenF1SessionSchema = z
|
|
615
|
+
.object({
|
|
616
|
+
circuit_key: z.number(),
|
|
617
|
+
circuit_short_name: z.string(),
|
|
618
|
+
country_code: z.string(),
|
|
619
|
+
country_key: z.number(),
|
|
620
|
+
country_name: z.string(),
|
|
621
|
+
date_end: z.string(),
|
|
622
|
+
date_start: z.string(),
|
|
623
|
+
gmt_offset: z.string(),
|
|
624
|
+
is_cancelled: z.boolean(),
|
|
625
|
+
location: z.string(),
|
|
626
|
+
meeting_key: z.number(),
|
|
627
|
+
session_key: z.number(),
|
|
628
|
+
session_name: z.string(),
|
|
629
|
+
session_type: z.string(),
|
|
630
|
+
year: z.number(),
|
|
631
|
+
})
|
|
632
|
+
.catchall(z.unknown());
|
|
633
|
+
export const OpenF1SessionRequestSchema = z.object({
|
|
634
|
+
circuit_key: numberFilterValue.optional(),
|
|
635
|
+
circuit_short_name: stringFilterValue.optional(),
|
|
636
|
+
country_code: stringFilterValue.optional(),
|
|
637
|
+
country_key: numberFilterValue.optional(),
|
|
638
|
+
country_name: stringFilterValue.optional(),
|
|
639
|
+
date_end: stringFilterValue.optional(),
|
|
640
|
+
date_start: stringFilterValue.optional(),
|
|
641
|
+
gmt_offset: stringFilterValue.optional(),
|
|
642
|
+
is_cancelled: booleanFilterValue.optional(),
|
|
643
|
+
location: stringFilterValue.optional(),
|
|
644
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
645
|
+
session_key: latestKeyFilterValue.optional(),
|
|
646
|
+
session_name: stringFilterValue.optional(),
|
|
647
|
+
session_type: stringFilterValue.optional(),
|
|
648
|
+
year: numberFilterValue.optional(),
|
|
649
|
+
filters: z.array(OpenF1SessionFilterSchema).optional(),
|
|
650
|
+
csv: z.boolean().optional(),
|
|
651
|
+
});
|
|
652
|
+
export const OpenF1SessionResponseSchema = z.array(OpenF1SessionSchema);
|
|
653
|
+
export const OpenF1StartingGridEntryFilterFieldSchema = z.enum([
|
|
654
|
+
"driver_number",
|
|
655
|
+
"lap_duration",
|
|
656
|
+
"meeting_key",
|
|
657
|
+
"position",
|
|
658
|
+
"session_key",
|
|
659
|
+
]);
|
|
660
|
+
export const OpenF1StartingGridEntryFilterSchema = openF1ComparisonFilterObject.extend({
|
|
661
|
+
field: OpenF1StartingGridEntryFilterFieldSchema,
|
|
662
|
+
});
|
|
663
|
+
export const OpenF1StartingGridEntrySchema = z
|
|
664
|
+
.object({
|
|
665
|
+
driver_number: z.number(),
|
|
666
|
+
lap_duration: z.number(),
|
|
667
|
+
meeting_key: z.number(),
|
|
668
|
+
position: z.number(),
|
|
669
|
+
session_key: z.number(),
|
|
670
|
+
})
|
|
671
|
+
.catchall(z.unknown());
|
|
672
|
+
export const OpenF1StartingGridEntryRequestSchema = z.object({
|
|
673
|
+
driver_number: numberFilterValue.optional(),
|
|
674
|
+
lap_duration: numberFilterValue.optional(),
|
|
675
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
676
|
+
position: numberFilterValue.optional(),
|
|
677
|
+
session_key: latestKeyFilterValue.optional(),
|
|
678
|
+
filters: z.array(OpenF1StartingGridEntryFilterSchema).optional(),
|
|
679
|
+
csv: z.boolean().optional(),
|
|
680
|
+
});
|
|
681
|
+
export const OpenF1StartingGridEntryResponseSchema = z.array(OpenF1StartingGridEntrySchema);
|
|
682
|
+
export const OpenF1TeamRadioFilterFieldSchema = z.enum([
|
|
683
|
+
"date",
|
|
684
|
+
"driver_number",
|
|
685
|
+
"meeting_key",
|
|
686
|
+
"recording_url",
|
|
687
|
+
"session_key",
|
|
688
|
+
]);
|
|
689
|
+
export const OpenF1TeamRadioFilterSchema = openF1ComparisonFilterObject.extend({
|
|
690
|
+
field: OpenF1TeamRadioFilterFieldSchema,
|
|
691
|
+
});
|
|
692
|
+
export const OpenF1TeamRadioSchema = z
|
|
693
|
+
.object({
|
|
694
|
+
date: z.string(),
|
|
695
|
+
driver_number: z.number(),
|
|
696
|
+
meeting_key: z.number(),
|
|
697
|
+
recording_url: z.string(),
|
|
698
|
+
session_key: z.number(),
|
|
699
|
+
})
|
|
700
|
+
.catchall(z.unknown());
|
|
701
|
+
export const OpenF1TeamRadioRequestSchema = z.object({
|
|
702
|
+
date: stringFilterValue.optional(),
|
|
703
|
+
driver_number: numberFilterValue.optional(),
|
|
704
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
705
|
+
recording_url: stringFilterValue.optional(),
|
|
706
|
+
session_key: latestKeyFilterValue.optional(),
|
|
707
|
+
filters: z.array(OpenF1TeamRadioFilterSchema).optional(),
|
|
708
|
+
csv: z.boolean().optional(),
|
|
709
|
+
});
|
|
710
|
+
export const OpenF1TeamRadioResponseSchema = z.array(OpenF1TeamRadioSchema);
|
|
711
|
+
export const OpenF1WeatherFilterFieldSchema = z.enum([
|
|
712
|
+
"air_temperature",
|
|
713
|
+
"date",
|
|
714
|
+
"humidity",
|
|
715
|
+
"meeting_key",
|
|
716
|
+
"pressure",
|
|
717
|
+
"rainfall",
|
|
718
|
+
"session_key",
|
|
719
|
+
"track_temperature",
|
|
720
|
+
"wind_direction",
|
|
721
|
+
"wind_speed",
|
|
722
|
+
]);
|
|
723
|
+
export const OpenF1WeatherFilterSchema = openF1ComparisonFilterObject.extend({
|
|
724
|
+
field: OpenF1WeatherFilterFieldSchema,
|
|
725
|
+
});
|
|
726
|
+
export const OpenF1WeatherSchema = z
|
|
727
|
+
.object({
|
|
728
|
+
air_temperature: z.number(),
|
|
729
|
+
date: z.string(),
|
|
730
|
+
humidity: z.number(),
|
|
731
|
+
meeting_key: z.number(),
|
|
732
|
+
pressure: z.number(),
|
|
733
|
+
rainfall: z.number(),
|
|
734
|
+
session_key: z.number(),
|
|
735
|
+
track_temperature: z.number(),
|
|
736
|
+
wind_direction: z.number(),
|
|
737
|
+
wind_speed: z.number(),
|
|
738
|
+
})
|
|
739
|
+
.catchall(z.unknown());
|
|
740
|
+
export const OpenF1WeatherRequestSchema = z.object({
|
|
741
|
+
air_temperature: numberFilterValue.optional(),
|
|
742
|
+
date: stringFilterValue.optional(),
|
|
743
|
+
humidity: numberFilterValue.optional(),
|
|
744
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
745
|
+
pressure: numberFilterValue.optional(),
|
|
746
|
+
rainfall: numberFilterValue.optional(),
|
|
747
|
+
session_key: latestKeyFilterValue.optional(),
|
|
748
|
+
track_temperature: numberFilterValue.optional(),
|
|
749
|
+
wind_direction: numberFilterValue.optional(),
|
|
750
|
+
wind_speed: numberFilterValue.optional(),
|
|
751
|
+
filters: z.array(OpenF1WeatherFilterSchema).optional(),
|
|
752
|
+
csv: z.boolean().optional(),
|
|
753
|
+
});
|
|
754
|
+
export const OpenF1WeatherResponseSchema = z.array(OpenF1WeatherSchema);
|
|
755
|
+
export const OpenF1StintFilterFieldSchema = z.enum([
|
|
756
|
+
"compound",
|
|
757
|
+
"driver_number",
|
|
758
|
+
"lap_end",
|
|
759
|
+
"lap_start",
|
|
760
|
+
"meeting_key",
|
|
761
|
+
"session_key",
|
|
762
|
+
"stint_number",
|
|
763
|
+
"tyre_age_at_start",
|
|
764
|
+
]);
|
|
765
|
+
export const OpenF1StintFilterSchema = openF1ComparisonFilterObject.extend({
|
|
766
|
+
field: OpenF1StintFilterFieldSchema,
|
|
767
|
+
});
|
|
768
|
+
export const OpenF1StintSchema = z
|
|
769
|
+
.object({
|
|
770
|
+
compound: z.string(),
|
|
771
|
+
driver_number: z.number(),
|
|
772
|
+
lap_end: z.number(),
|
|
773
|
+
lap_start: z.number(),
|
|
774
|
+
meeting_key: z.number(),
|
|
775
|
+
session_key: z.number(),
|
|
776
|
+
stint_number: z.number(),
|
|
777
|
+
tyre_age_at_start: z.number(),
|
|
778
|
+
})
|
|
779
|
+
.catchall(z.unknown());
|
|
780
|
+
export const OpenF1StintRequestSchema = z.object({
|
|
781
|
+
compound: stringFilterValue.optional(),
|
|
782
|
+
driver_number: numberFilterValue.optional(),
|
|
783
|
+
lap_end: numberFilterValue.optional(),
|
|
784
|
+
lap_start: numberFilterValue.optional(),
|
|
785
|
+
meeting_key: latestKeyFilterValue.optional(),
|
|
786
|
+
session_key: latestKeyFilterValue.optional(),
|
|
787
|
+
stint_number: numberFilterValue.optional(),
|
|
788
|
+
tyre_age_at_start: numberFilterValue.optional(),
|
|
789
|
+
filters: z.array(OpenF1StintFilterSchema).optional(),
|
|
790
|
+
csv: z.boolean().optional(),
|
|
791
|
+
});
|
|
792
|
+
export const OpenF1StintResponseSchema = z.array(OpenF1StintSchema);
|
|
793
|
+
//# sourceMappingURL=zod.js.map
|