overtime-live-trading-utils 2.1.23 → 2.1.25

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.
Files changed (38) hide show
  1. package/.circleci/config.yml +32 -32
  2. package/.prettierrc +9 -9
  3. package/codecov.yml +20 -20
  4. package/index.ts +26 -26
  5. package/jest.config.ts +16 -16
  6. package/main.js +1 -1
  7. package/package.json +30 -30
  8. package/src/constants/common.ts +7 -7
  9. package/src/constants/errors.ts +6 -6
  10. package/src/constants/sports.ts +78 -78
  11. package/src/enums/sports.ts +109 -109
  12. package/src/tests/mock/MockLeagueMap.ts +170 -170
  13. package/src/tests/mock/MockOpticOddsEvents.ts +518 -518
  14. package/src/tests/mock/MockOpticSoccer.ts +9378 -9378
  15. package/src/tests/mock/MockSoccerRedis.ts +2308 -2308
  16. package/src/tests/unit/bookmakers.test.ts +79 -79
  17. package/src/tests/unit/markets.test.ts +156 -156
  18. package/src/tests/unit/odds.test.ts +92 -92
  19. package/src/tests/unit/resolution.test.ts +935 -935
  20. package/src/tests/unit/sports.test.ts +58 -58
  21. package/src/tests/unit/spread.test.ts +131 -131
  22. package/src/types/missing-types.d.ts +2 -2
  23. package/src/types/odds.ts +61 -61
  24. package/src/types/resolution.ts +96 -96
  25. package/src/types/sports.ts +19 -19
  26. package/src/utils/bookmakers.ts +159 -159
  27. package/src/utils/constraints.ts +210 -210
  28. package/src/utils/gameMatching.ts +81 -81
  29. package/src/utils/markets.ts +119 -119
  30. package/src/utils/odds.ts +874 -674
  31. package/src/utils/opticOdds.ts +71 -71
  32. package/src/utils/resolution.ts +291 -275
  33. package/src/utils/sports.ts +51 -51
  34. package/src/utils/spread.ts +97 -97
  35. package/tsconfig.json +16 -16
  36. package/webpack.config.js +24 -24
  37. package/CLAUDE.md +0 -77
  38. package/resolution_live_markets.md +0 -351
@@ -1,518 +1,518 @@
1
- export const MockSoccerCompletedEvent = {
2
- sport: {
3
- id: 'soccer',
4
- name: 'Soccer',
5
- numerical_id: 21,
6
- },
7
- league: {
8
- id: 'uefa_-_europa_league',
9
- name: 'UEFA - Europa League',
10
- numerical_id: 509,
11
- },
12
- fixture: {
13
- id: '20251002AB93FFC5',
14
- numerical_id: 429108,
15
- game_id: '16626-12858-2025-10-02',
16
- start_date: '2025-10-02T19:00:00Z',
17
- home_competitors: [
18
- {
19
- id: 'DC1527777738',
20
- name: 'Olympique Lyonnais',
21
- numerical_id: 7382,
22
- base_id: 5395,
23
- abbreviation: 'OL',
24
- logo: 'https://cdn.opticodds.com/team-logos/soccer/5395.png',
25
- },
26
- ],
27
- away_competitors: [
28
- {
29
- id: 'C4E90D506D0DA0CF',
30
- name: 'FC Salzburg',
31
- numerical_id: 84904,
32
- base_id: 2909,
33
- abbreviation: 'RBS',
34
- logo: 'https://cdn.opticodds.com/team-logos/soccer/2909.png',
35
- },
36
- ],
37
- home_team_display: 'Olympique Lyonnais',
38
- away_team_display: 'FC Salzburg',
39
- status: 'completed',
40
- is_live: false,
41
- season_type: 'Group Stage',
42
- season_year: '2025',
43
- season_week: '2',
44
- venue_name: 'Groupama Stadium',
45
- venue_location: 'Lyon, France',
46
- venue_neutral: false,
47
- },
48
- scores: {
49
- home: {
50
- total: 2.0,
51
- periods: {
52
- period_1: 1.0,
53
- period_2: 1.0,
54
- },
55
- aggregate: null,
56
- },
57
- away: {
58
- total: 0.0,
59
- periods: {
60
- period_1: 0.0,
61
- period_2: 0.0,
62
- },
63
- aggregate: null,
64
- },
65
- },
66
- in_play: {
67
- period: '0',
68
- clock: null,
69
- },
70
- };
71
-
72
- export const MockSoccerLiveSecondHalf = {
73
- sport: {
74
- id: 'soccer',
75
- name: 'Soccer',
76
- numerical_id: 21,
77
- },
78
- league: {
79
- id: 'uefa_-_europa_league',
80
- name: 'UEFA - Europa League',
81
- numerical_id: 509,
82
- },
83
- fixture: {
84
- id: '20251002AB93FFC6',
85
- numerical_id: 429109,
86
- game_id: '16626-12858-2025-10-02-live',
87
- start_date: '2025-10-02T19:00:00Z',
88
- home_team_display: 'Manchester United',
89
- away_team_display: 'Arsenal',
90
- status: 'live',
91
- is_live: true,
92
- },
93
- scores: {
94
- home: {
95
- total: 2.0,
96
- periods: {
97
- period_1: 1.0,
98
- },
99
- },
100
- away: {
101
- total: 1.0,
102
- periods: {
103
- period_1: 1.0,
104
- },
105
- },
106
- },
107
- in_play: {
108
- period: '2',
109
- clock: '65',
110
- },
111
- };
112
-
113
- export const MockSoccerLiveFirstHalf = {
114
- sport: {
115
- id: 'soccer',
116
- name: 'Soccer',
117
- numerical_id: 21,
118
- },
119
- league: {
120
- id: 'premier_league',
121
- name: 'Premier League',
122
- numerical_id: 39,
123
- },
124
- fixture: {
125
- id: '20251002AB93FFC7',
126
- numerical_id: 429110,
127
- game_id: '16626-12858-2025-10-02-live-1st',
128
- start_date: '2025-10-02T15:00:00Z',
129
- home_team_display: 'Liverpool',
130
- away_team_display: 'Chelsea',
131
- status: 'live',
132
- is_live: true,
133
- },
134
- scores: {
135
- home: {
136
- total: 0.0,
137
- periods: {},
138
- },
139
- away: {
140
- total: 0.0,
141
- periods: {},
142
- },
143
- },
144
- in_play: {
145
- period: '1',
146
- clock: '25',
147
- },
148
- };
149
-
150
- export const MockNFLCompletedEvent = {
151
- sport: {
152
- id: 'football',
153
- name: 'Football',
154
- numerical_id: 9,
155
- },
156
- league: {
157
- id: 'nfl',
158
- name: 'NFL',
159
- numerical_id: 367,
160
- },
161
- fixture: {
162
- id: '202509284609FA09',
163
- numerical_id: 258642,
164
- game_id: '18124-37240-25-38',
165
- start_date: '2025-09-28T17:00:00Z',
166
- home_competitors: [
167
- {
168
- id: '04E3F3D69B89',
169
- name: 'New England Patriots',
170
- numerical_id: 104,
171
- base_id: 102,
172
- abbreviation: 'NE',
173
- logo: 'https://cdn.opticodds.com/team-logos/football/102.png',
174
- },
175
- ],
176
- away_competitors: [
177
- {
178
- id: 'EB5E972AB475',
179
- name: 'Carolina Panthers',
180
- numerical_id: 87,
181
- base_id: 85,
182
- abbreviation: 'CAR',
183
- logo: 'https://cdn.opticodds.com/team-logos/football/85.png',
184
- },
185
- ],
186
- home_team_display: 'New England Patriots',
187
- away_team_display: 'Carolina Panthers',
188
- status: 'completed',
189
- is_live: false,
190
- season_type: 'Regular Season',
191
- season_year: '2025',
192
- season_week: '4',
193
- venue_name: 'Gillette Stadium',
194
- venue_location: 'Foxborough, MA, USA',
195
- venue_neutral: false,
196
- },
197
- scores: {
198
- home: {
199
- total: 42.0,
200
- periods: {
201
- period_1: 7.0,
202
- period_2: 21.0,
203
- period_3: 7.0,
204
- period_4: 7.0,
205
- },
206
- aggregate: null,
207
- },
208
- away: {
209
- total: 13.0,
210
- periods: {
211
- period_1: 6.0,
212
- period_2: 0.0,
213
- period_3: 0.0,
214
- period_4: 7.0,
215
- },
216
- aggregate: null,
217
- },
218
- },
219
- in_play: {
220
- period: '4',
221
- clock: null,
222
- },
223
- };
224
-
225
- export const MockNFLLiveThirdQuarter = {
226
- sport: {
227
- id: 'football',
228
- name: 'Football',
229
- numerical_id: 9,
230
- },
231
- league: {
232
- id: 'nfl',
233
- name: 'NFL',
234
- numerical_id: 367,
235
- },
236
- fixture: {
237
- id: '202509284609FA10',
238
- numerical_id: 258643,
239
- game_id: '18124-37240-25-39',
240
- start_date: '2025-09-28T20:00:00Z',
241
- home_team_display: 'Kansas City Chiefs',
242
- away_team_display: 'Las Vegas Raiders',
243
- status: 'live',
244
- is_live: true,
245
- },
246
- scores: {
247
- home: {
248
- total: 21.0,
249
- periods: {
250
- period_1: 7.0,
251
- period_2: 14.0,
252
- },
253
- },
254
- away: {
255
- total: 10.0,
256
- periods: {
257
- period_1: 3.0,
258
- period_2: 7.0,
259
- },
260
- },
261
- },
262
- in_play: {
263
- period: '3',
264
- clock: '8:45',
265
- },
266
- };
267
-
268
- export const MockMLBCompletedEvent = {
269
- sport: {
270
- id: 'baseball',
271
- name: 'Baseball',
272
- numerical_id: 3,
273
- },
274
- league: {
275
- id: 'mlb',
276
- name: 'MLB',
277
- numerical_id: 346,
278
- },
279
- fixture: {
280
- id: '202510021B73729D',
281
- numerical_id: 470566,
282
- game_id: '81005-40644-2025-10-02-12',
283
- start_date: '2025-10-02T19:08:00Z',
284
- home_competitors: [
285
- {
286
- id: 'D4F7181B2181',
287
- name: 'Cleveland Guardians',
288
- numerical_id: 25,
289
- base_id: 25,
290
- abbreviation: 'CLE',
291
- logo: 'https://cdn.opticodds.com/team-logos/baseball/25.png',
292
- },
293
- ],
294
- away_competitors: [
295
- {
296
- id: 'BF57CF7C7E07',
297
- name: 'Detroit Tigers',
298
- numerical_id: 27,
299
- base_id: 27,
300
- abbreviation: 'DET',
301
- logo: 'https://cdn.opticodds.com/team-logos/baseball/27.png',
302
- },
303
- ],
304
- home_team_display: 'Cleveland Guardians',
305
- away_team_display: 'Detroit Tigers',
306
- status: 'completed',
307
- is_live: false,
308
- season_type: 'Wild Card',
309
- season_year: '2025',
310
- season_week: '110',
311
- venue_name: 'Progressive Field',
312
- venue_location: 'Cleveland, OH, USA',
313
- venue_neutral: false,
314
- },
315
- scores: {
316
- home: {
317
- total: 3.0,
318
- periods: {
319
- period_1: 0.0,
320
- period_2: 0.0,
321
- period_3: 0.0,
322
- period_4: 1.0,
323
- period_5: 0.0,
324
- period_6: 0.0,
325
- period_7: 0.0,
326
- period_8: 2.0,
327
- period_9: 0.0,
328
- },
329
- aggregate: null,
330
- },
331
- away: {
332
- total: 6.0,
333
- periods: {
334
- period_1: 0.0,
335
- period_2: 0.0,
336
- period_3: 1.0,
337
- period_4: 0.0,
338
- period_5: 0.0,
339
- period_6: 1.0,
340
- period_7: 4.0,
341
- period_8: 0.0,
342
- period_9: 0.0,
343
- },
344
- aggregate: null,
345
- },
346
- },
347
- in_play: {
348
- period: '9',
349
- clock: null,
350
- },
351
- };
352
-
353
- export const MockMLBLiveSixthInning = {
354
- sport: {
355
- id: 'baseball',
356
- name: 'Baseball',
357
- numerical_id: 3,
358
- },
359
- league: {
360
- id: 'mlb',
361
- name: 'MLB',
362
- numerical_id: 346,
363
- },
364
- fixture: {
365
- id: '202510021B73729E',
366
- numerical_id: 470567,
367
- game_id: '81005-40644-2025-10-02-13',
368
- start_date: '2025-10-02T20:00:00Z',
369
- home_team_display: 'New York Yankees',
370
- away_team_display: 'Boston Red Sox',
371
- status: 'live',
372
- is_live: true,
373
- },
374
- scores: {
375
- home: {
376
- total: 4.0,
377
- periods: {
378
- period_1: 0.0,
379
- period_2: 2.0,
380
- period_3: 1.0,
381
- period_4: 0.0,
382
- period_5: 1.0,
383
- },
384
- },
385
- away: {
386
- total: 2.0,
387
- periods: {
388
- period_1: 1.0,
389
- period_2: 0.0,
390
- period_3: 0.0,
391
- period_4: 0.0,
392
- period_5: 1.0,
393
- },
394
- },
395
- },
396
- in_play: {
397
- period: '6',
398
- clock: null,
399
- },
400
- };
401
-
402
- export const MockSoccerLiveFirstHalfInProgress = {
403
- sport: {
404
- id: 'soccer',
405
- name: 'Soccer',
406
- numerical_id: 21,
407
- },
408
- league: {
409
- id: 'brazil_-_serie_b',
410
- name: 'Brazil - Serie B',
411
- numerical_id: 72,
412
- },
413
- fixture: {
414
- id: '202510027E3BDC35',
415
- numerical_id: 409114,
416
- game_id: '51303-41888-2025-10-02',
417
- start_date: '2025-10-02T22:00:00Z',
418
- home_team_display: 'Paysandu SC',
419
- away_team_display: 'Cuiabá EC',
420
- status: 'live',
421
- is_live: true,
422
- },
423
- scores: {
424
- home: {
425
- total: 0.0,
426
- periods: {
427
- period_1: 0.0,
428
- },
429
- },
430
- away: {
431
- total: 1.0,
432
- periods: {
433
- period_1: 1.0,
434
- },
435
- },
436
- },
437
- in_play: {
438
- period: '1H',
439
- clock: '46',
440
- },
441
- };
442
-
443
- export const MockNFLCompletedWithOvertime = {
444
- sport: {
445
- id: 'football',
446
- name: 'Football',
447
- numerical_id: 9,
448
- },
449
- league: {
450
- id: 'nfl',
451
- name: 'NFL',
452
- numerical_id: 367,
453
- },
454
- fixture: {
455
- id: '202510038AE3D4E4',
456
- numerical_id: 258529,
457
- game_id: '78014-13184-25-39',
458
- start_date: '2025-10-03T00:15:00Z',
459
- home_competitors: [
460
- {
461
- id: '13AD4FDBEBA8',
462
- name: 'Los Angeles Rams',
463
- numerical_id: 101,
464
- base_id: 99,
465
- abbreviation: 'LAR',
466
- logo: 'https://cdn.opticodds.com/team-logos/football/99.png',
467
- },
468
- ],
469
- away_competitors: [
470
- {
471
- id: '132B64CEDAC4',
472
- name: 'San Francisco 49ers',
473
- numerical_id: 110,
474
- base_id: 108,
475
- abbreviation: 'SF',
476
- logo: 'https://cdn.opticodds.com/team-logos/football/108.png',
477
- },
478
- ],
479
- home_team_display: 'Los Angeles Rams',
480
- away_team_display: 'San Francisco 49ers',
481
- status: 'completed',
482
- is_live: false,
483
- season_type: 'Regular Season',
484
- season_year: '2025',
485
- season_week: '5',
486
- venue_name: 'SoFi Stadium',
487
- venue_location: 'Inglewood, CA, USA',
488
- venue_neutral: false,
489
- },
490
- scores: {
491
- home: {
492
- total: 23.0,
493
- periods: {
494
- period_1: 0.0,
495
- period_2: 7.0,
496
- period_3: 7.0,
497
- period_4: 9.0,
498
- period_5: 0.0,
499
- },
500
- aggregate: null,
501
- },
502
- away: {
503
- total: 26.0,
504
- periods: {
505
- period_1: 7.0,
506
- period_2: 10.0,
507
- period_3: 3.0,
508
- period_4: 3.0,
509
- period_5: 3.0,
510
- },
511
- aggregate: null,
512
- },
513
- },
514
- in_play: {
515
- period: '5',
516
- clock: null,
517
- },
518
- };
1
+ export const MockSoccerCompletedEvent = {
2
+ sport: {
3
+ id: 'soccer',
4
+ name: 'Soccer',
5
+ numerical_id: 21,
6
+ },
7
+ league: {
8
+ id: 'uefa_-_europa_league',
9
+ name: 'UEFA - Europa League',
10
+ numerical_id: 509,
11
+ },
12
+ fixture: {
13
+ id: '20251002AB93FFC5',
14
+ numerical_id: 429108,
15
+ game_id: '16626-12858-2025-10-02',
16
+ start_date: '2025-10-02T19:00:00Z',
17
+ home_competitors: [
18
+ {
19
+ id: 'DC1527777738',
20
+ name: 'Olympique Lyonnais',
21
+ numerical_id: 7382,
22
+ base_id: 5395,
23
+ abbreviation: 'OL',
24
+ logo: 'https://cdn.opticodds.com/team-logos/soccer/5395.png',
25
+ },
26
+ ],
27
+ away_competitors: [
28
+ {
29
+ id: 'C4E90D506D0DA0CF',
30
+ name: 'FC Salzburg',
31
+ numerical_id: 84904,
32
+ base_id: 2909,
33
+ abbreviation: 'RBS',
34
+ logo: 'https://cdn.opticodds.com/team-logos/soccer/2909.png',
35
+ },
36
+ ],
37
+ home_team_display: 'Olympique Lyonnais',
38
+ away_team_display: 'FC Salzburg',
39
+ status: 'completed',
40
+ is_live: false,
41
+ season_type: 'Group Stage',
42
+ season_year: '2025',
43
+ season_week: '2',
44
+ venue_name: 'Groupama Stadium',
45
+ venue_location: 'Lyon, France',
46
+ venue_neutral: false,
47
+ },
48
+ scores: {
49
+ home: {
50
+ total: 2.0,
51
+ periods: {
52
+ period_1: 1.0,
53
+ period_2: 1.0,
54
+ },
55
+ aggregate: null,
56
+ },
57
+ away: {
58
+ total: 0.0,
59
+ periods: {
60
+ period_1: 0.0,
61
+ period_2: 0.0,
62
+ },
63
+ aggregate: null,
64
+ },
65
+ },
66
+ in_play: {
67
+ period: '0',
68
+ clock: null,
69
+ },
70
+ };
71
+
72
+ export const MockSoccerLiveSecondHalf = {
73
+ sport: {
74
+ id: 'soccer',
75
+ name: 'Soccer',
76
+ numerical_id: 21,
77
+ },
78
+ league: {
79
+ id: 'uefa_-_europa_league',
80
+ name: 'UEFA - Europa League',
81
+ numerical_id: 509,
82
+ },
83
+ fixture: {
84
+ id: '20251002AB93FFC6',
85
+ numerical_id: 429109,
86
+ game_id: '16626-12858-2025-10-02-live',
87
+ start_date: '2025-10-02T19:00:00Z',
88
+ home_team_display: 'Manchester United',
89
+ away_team_display: 'Arsenal',
90
+ status: 'live',
91
+ is_live: true,
92
+ },
93
+ scores: {
94
+ home: {
95
+ total: 2.0,
96
+ periods: {
97
+ period_1: 1.0,
98
+ },
99
+ },
100
+ away: {
101
+ total: 1.0,
102
+ periods: {
103
+ period_1: 1.0,
104
+ },
105
+ },
106
+ },
107
+ in_play: {
108
+ period: '2',
109
+ clock: '65',
110
+ },
111
+ };
112
+
113
+ export const MockSoccerLiveFirstHalf = {
114
+ sport: {
115
+ id: 'soccer',
116
+ name: 'Soccer',
117
+ numerical_id: 21,
118
+ },
119
+ league: {
120
+ id: 'premier_league',
121
+ name: 'Premier League',
122
+ numerical_id: 39,
123
+ },
124
+ fixture: {
125
+ id: '20251002AB93FFC7',
126
+ numerical_id: 429110,
127
+ game_id: '16626-12858-2025-10-02-live-1st',
128
+ start_date: '2025-10-02T15:00:00Z',
129
+ home_team_display: 'Liverpool',
130
+ away_team_display: 'Chelsea',
131
+ status: 'live',
132
+ is_live: true,
133
+ },
134
+ scores: {
135
+ home: {
136
+ total: 0.0,
137
+ periods: {},
138
+ },
139
+ away: {
140
+ total: 0.0,
141
+ periods: {},
142
+ },
143
+ },
144
+ in_play: {
145
+ period: '1',
146
+ clock: '25',
147
+ },
148
+ };
149
+
150
+ export const MockNFLCompletedEvent = {
151
+ sport: {
152
+ id: 'football',
153
+ name: 'Football',
154
+ numerical_id: 9,
155
+ },
156
+ league: {
157
+ id: 'nfl',
158
+ name: 'NFL',
159
+ numerical_id: 367,
160
+ },
161
+ fixture: {
162
+ id: '202509284609FA09',
163
+ numerical_id: 258642,
164
+ game_id: '18124-37240-25-38',
165
+ start_date: '2025-09-28T17:00:00Z',
166
+ home_competitors: [
167
+ {
168
+ id: '04E3F3D69B89',
169
+ name: 'New England Patriots',
170
+ numerical_id: 104,
171
+ base_id: 102,
172
+ abbreviation: 'NE',
173
+ logo: 'https://cdn.opticodds.com/team-logos/football/102.png',
174
+ },
175
+ ],
176
+ away_competitors: [
177
+ {
178
+ id: 'EB5E972AB475',
179
+ name: 'Carolina Panthers',
180
+ numerical_id: 87,
181
+ base_id: 85,
182
+ abbreviation: 'CAR',
183
+ logo: 'https://cdn.opticodds.com/team-logos/football/85.png',
184
+ },
185
+ ],
186
+ home_team_display: 'New England Patriots',
187
+ away_team_display: 'Carolina Panthers',
188
+ status: 'completed',
189
+ is_live: false,
190
+ season_type: 'Regular Season',
191
+ season_year: '2025',
192
+ season_week: '4',
193
+ venue_name: 'Gillette Stadium',
194
+ venue_location: 'Foxborough, MA, USA',
195
+ venue_neutral: false,
196
+ },
197
+ scores: {
198
+ home: {
199
+ total: 42.0,
200
+ periods: {
201
+ period_1: 7.0,
202
+ period_2: 21.0,
203
+ period_3: 7.0,
204
+ period_4: 7.0,
205
+ },
206
+ aggregate: null,
207
+ },
208
+ away: {
209
+ total: 13.0,
210
+ periods: {
211
+ period_1: 6.0,
212
+ period_2: 0.0,
213
+ period_3: 0.0,
214
+ period_4: 7.0,
215
+ },
216
+ aggregate: null,
217
+ },
218
+ },
219
+ in_play: {
220
+ period: '4',
221
+ clock: null,
222
+ },
223
+ };
224
+
225
+ export const MockNFLLiveThirdQuarter = {
226
+ sport: {
227
+ id: 'football',
228
+ name: 'Football',
229
+ numerical_id: 9,
230
+ },
231
+ league: {
232
+ id: 'nfl',
233
+ name: 'NFL',
234
+ numerical_id: 367,
235
+ },
236
+ fixture: {
237
+ id: '202509284609FA10',
238
+ numerical_id: 258643,
239
+ game_id: '18124-37240-25-39',
240
+ start_date: '2025-09-28T20:00:00Z',
241
+ home_team_display: 'Kansas City Chiefs',
242
+ away_team_display: 'Las Vegas Raiders',
243
+ status: 'live',
244
+ is_live: true,
245
+ },
246
+ scores: {
247
+ home: {
248
+ total: 21.0,
249
+ periods: {
250
+ period_1: 7.0,
251
+ period_2: 14.0,
252
+ },
253
+ },
254
+ away: {
255
+ total: 10.0,
256
+ periods: {
257
+ period_1: 3.0,
258
+ period_2: 7.0,
259
+ },
260
+ },
261
+ },
262
+ in_play: {
263
+ period: '3',
264
+ clock: '8:45',
265
+ },
266
+ };
267
+
268
+ export const MockMLBCompletedEvent = {
269
+ sport: {
270
+ id: 'baseball',
271
+ name: 'Baseball',
272
+ numerical_id: 3,
273
+ },
274
+ league: {
275
+ id: 'mlb',
276
+ name: 'MLB',
277
+ numerical_id: 346,
278
+ },
279
+ fixture: {
280
+ id: '202510021B73729D',
281
+ numerical_id: 470566,
282
+ game_id: '81005-40644-2025-10-02-12',
283
+ start_date: '2025-10-02T19:08:00Z',
284
+ home_competitors: [
285
+ {
286
+ id: 'D4F7181B2181',
287
+ name: 'Cleveland Guardians',
288
+ numerical_id: 25,
289
+ base_id: 25,
290
+ abbreviation: 'CLE',
291
+ logo: 'https://cdn.opticodds.com/team-logos/baseball/25.png',
292
+ },
293
+ ],
294
+ away_competitors: [
295
+ {
296
+ id: 'BF57CF7C7E07',
297
+ name: 'Detroit Tigers',
298
+ numerical_id: 27,
299
+ base_id: 27,
300
+ abbreviation: 'DET',
301
+ logo: 'https://cdn.opticodds.com/team-logos/baseball/27.png',
302
+ },
303
+ ],
304
+ home_team_display: 'Cleveland Guardians',
305
+ away_team_display: 'Detroit Tigers',
306
+ status: 'completed',
307
+ is_live: false,
308
+ season_type: 'Wild Card',
309
+ season_year: '2025',
310
+ season_week: '110',
311
+ venue_name: 'Progressive Field',
312
+ venue_location: 'Cleveland, OH, USA',
313
+ venue_neutral: false,
314
+ },
315
+ scores: {
316
+ home: {
317
+ total: 3.0,
318
+ periods: {
319
+ period_1: 0.0,
320
+ period_2: 0.0,
321
+ period_3: 0.0,
322
+ period_4: 1.0,
323
+ period_5: 0.0,
324
+ period_6: 0.0,
325
+ period_7: 0.0,
326
+ period_8: 2.0,
327
+ period_9: 0.0,
328
+ },
329
+ aggregate: null,
330
+ },
331
+ away: {
332
+ total: 6.0,
333
+ periods: {
334
+ period_1: 0.0,
335
+ period_2: 0.0,
336
+ period_3: 1.0,
337
+ period_4: 0.0,
338
+ period_5: 0.0,
339
+ period_6: 1.0,
340
+ period_7: 4.0,
341
+ period_8: 0.0,
342
+ period_9: 0.0,
343
+ },
344
+ aggregate: null,
345
+ },
346
+ },
347
+ in_play: {
348
+ period: '9',
349
+ clock: null,
350
+ },
351
+ };
352
+
353
+ export const MockMLBLiveSixthInning = {
354
+ sport: {
355
+ id: 'baseball',
356
+ name: 'Baseball',
357
+ numerical_id: 3,
358
+ },
359
+ league: {
360
+ id: 'mlb',
361
+ name: 'MLB',
362
+ numerical_id: 346,
363
+ },
364
+ fixture: {
365
+ id: '202510021B73729E',
366
+ numerical_id: 470567,
367
+ game_id: '81005-40644-2025-10-02-13',
368
+ start_date: '2025-10-02T20:00:00Z',
369
+ home_team_display: 'New York Yankees',
370
+ away_team_display: 'Boston Red Sox',
371
+ status: 'live',
372
+ is_live: true,
373
+ },
374
+ scores: {
375
+ home: {
376
+ total: 4.0,
377
+ periods: {
378
+ period_1: 0.0,
379
+ period_2: 2.0,
380
+ period_3: 1.0,
381
+ period_4: 0.0,
382
+ period_5: 1.0,
383
+ },
384
+ },
385
+ away: {
386
+ total: 2.0,
387
+ periods: {
388
+ period_1: 1.0,
389
+ period_2: 0.0,
390
+ period_3: 0.0,
391
+ period_4: 0.0,
392
+ period_5: 1.0,
393
+ },
394
+ },
395
+ },
396
+ in_play: {
397
+ period: '6',
398
+ clock: null,
399
+ },
400
+ };
401
+
402
+ export const MockSoccerLiveFirstHalfInProgress = {
403
+ sport: {
404
+ id: 'soccer',
405
+ name: 'Soccer',
406
+ numerical_id: 21,
407
+ },
408
+ league: {
409
+ id: 'brazil_-_serie_b',
410
+ name: 'Brazil - Serie B',
411
+ numerical_id: 72,
412
+ },
413
+ fixture: {
414
+ id: '202510027E3BDC35',
415
+ numerical_id: 409114,
416
+ game_id: '51303-41888-2025-10-02',
417
+ start_date: '2025-10-02T22:00:00Z',
418
+ home_team_display: 'Paysandu SC',
419
+ away_team_display: 'Cuiabá EC',
420
+ status: 'live',
421
+ is_live: true,
422
+ },
423
+ scores: {
424
+ home: {
425
+ total: 0.0,
426
+ periods: {
427
+ period_1: 0.0,
428
+ },
429
+ },
430
+ away: {
431
+ total: 1.0,
432
+ periods: {
433
+ period_1: 1.0,
434
+ },
435
+ },
436
+ },
437
+ in_play: {
438
+ period: '1H',
439
+ clock: '46',
440
+ },
441
+ };
442
+
443
+ export const MockNFLCompletedWithOvertime = {
444
+ sport: {
445
+ id: 'football',
446
+ name: 'Football',
447
+ numerical_id: 9,
448
+ },
449
+ league: {
450
+ id: 'nfl',
451
+ name: 'NFL',
452
+ numerical_id: 367,
453
+ },
454
+ fixture: {
455
+ id: '202510038AE3D4E4',
456
+ numerical_id: 258529,
457
+ game_id: '78014-13184-25-39',
458
+ start_date: '2025-10-03T00:15:00Z',
459
+ home_competitors: [
460
+ {
461
+ id: '13AD4FDBEBA8',
462
+ name: 'Los Angeles Rams',
463
+ numerical_id: 101,
464
+ base_id: 99,
465
+ abbreviation: 'LAR',
466
+ logo: 'https://cdn.opticodds.com/team-logos/football/99.png',
467
+ },
468
+ ],
469
+ away_competitors: [
470
+ {
471
+ id: '132B64CEDAC4',
472
+ name: 'San Francisco 49ers',
473
+ numerical_id: 110,
474
+ base_id: 108,
475
+ abbreviation: 'SF',
476
+ logo: 'https://cdn.opticodds.com/team-logos/football/108.png',
477
+ },
478
+ ],
479
+ home_team_display: 'Los Angeles Rams',
480
+ away_team_display: 'San Francisco 49ers',
481
+ status: 'completed',
482
+ is_live: false,
483
+ season_type: 'Regular Season',
484
+ season_year: '2025',
485
+ season_week: '5',
486
+ venue_name: 'SoFi Stadium',
487
+ venue_location: 'Inglewood, CA, USA',
488
+ venue_neutral: false,
489
+ },
490
+ scores: {
491
+ home: {
492
+ total: 23.0,
493
+ periods: {
494
+ period_1: 0.0,
495
+ period_2: 7.0,
496
+ period_3: 7.0,
497
+ period_4: 9.0,
498
+ period_5: 0.0,
499
+ },
500
+ aggregate: null,
501
+ },
502
+ away: {
503
+ total: 26.0,
504
+ periods: {
505
+ period_1: 7.0,
506
+ period_2: 10.0,
507
+ period_3: 3.0,
508
+ period_4: 3.0,
509
+ period_5: 3.0,
510
+ },
511
+ aggregate: null,
512
+ },
513
+ },
514
+ in_play: {
515
+ period: '5',
516
+ clock: null,
517
+ },
518
+ };