overtime-live-trading-utils 2.1.32 → 2.1.33

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/CLAUDE.md +77 -0
  4. package/codecov.yml +20 -20
  5. package/index.ts +26 -26
  6. package/jest.config.ts +16 -16
  7. package/main.js +1 -1
  8. package/package.json +30 -30
  9. package/resolution_live_markets.md +351 -0
  10. package/src/constants/common.ts +7 -7
  11. package/src/constants/errors.ts +6 -6
  12. package/src/constants/sports.ts +78 -78
  13. package/src/enums/sports.ts +109 -109
  14. package/src/tests/mock/MockLeagueMap.ts +170 -170
  15. package/src/tests/mock/MockOpticOddsEvents.ts +518 -518
  16. package/src/tests/mock/MockOpticSoccer.ts +9378 -9378
  17. package/src/tests/mock/MockSoccerRedis.ts +2308 -2308
  18. package/src/tests/unit/bookmakers.test.ts +79 -79
  19. package/src/tests/unit/markets.test.ts +156 -156
  20. package/src/tests/unit/odds.test.ts +92 -92
  21. package/src/tests/unit/resolution.test.ts +993 -935
  22. package/src/tests/unit/sports.test.ts +58 -58
  23. package/src/tests/unit/spread.test.ts +131 -131
  24. package/src/types/missing-types.d.ts +2 -2
  25. package/src/types/odds.ts +61 -61
  26. package/src/types/resolution.ts +96 -96
  27. package/src/types/sports.ts +19 -19
  28. package/src/utils/bookmakers.ts +159 -159
  29. package/src/utils/constraints.ts +210 -210
  30. package/src/utils/gameMatching.ts +81 -81
  31. package/src/utils/markets.ts +119 -119
  32. package/src/utils/odds.ts +918 -918
  33. package/src/utils/opticOdds.ts +71 -71
  34. package/src/utils/resolution.ts +298 -291
  35. package/src/utils/sports.ts +51 -51
  36. package/src/utils/spread.ts +97 -97
  37. package/tsconfig.json +16 -16
  38. package/webpack.config.js +24 -24
@@ -1,71 +1,71 @@
1
- import { Fixture, OddsObject, ScoresObject } from '../types/odds';
2
-
3
- export const mapOpticOddsApiFixtures = (fixturesData: any[]): Fixture[] =>
4
- fixturesData.map(
5
- (fixtureData) =>
6
- ({
7
- gameId: fixtureData.id, // fixture_id
8
- startDate: fixtureData.start_date,
9
- homeTeam: fixtureData.home_team_display,
10
- awayTeam: fixtureData.away_team_display,
11
- } as Fixture)
12
- );
13
-
14
- export const mapOpticOddsApiResults = (resultsData: any[]): ScoresObject[] =>
15
- resultsData.map(
16
- (resultData) =>
17
- ({
18
- gameId: resultData.fixture.id, // fixture_id
19
- sport: resultData.sport.name,
20
- league: resultData.league.name.toLowerCase(),
21
- status: resultData.fixture.status ? resultData.fixture.status.toLowerCase() : resultData.fixture.status,
22
- isLive: resultData.fixture.is_live,
23
- clock: resultData.in_play.clock,
24
- period: resultData.in_play.period ? resultData.in_play.period.toLowerCase() : resultData.in_play.period,
25
- homeTeam: resultData.fixture.home_team_display,
26
- awayTeam: resultData.fixture.away_team_display,
27
- homeTotal: resultData.scores.home.total,
28
- awayTotal: resultData.scores.away.total,
29
- ...mapScorePeriods(resultData.scores.home.periods, 'home'),
30
- ...mapScorePeriods(resultData.scores.away.periods, 'away'),
31
- } as ScoresObject)
32
- );
33
-
34
- export const mapOpticOddsApiFixtureOdds = (oddsDataArray: any[]): OddsObject[] =>
35
- oddsDataArray.map(
36
- (oddsData) =>
37
- ({
38
- gameId: oddsData.id, // fixture_id
39
- startDate: oddsData.start_date,
40
- homeTeam: oddsData.home_team_display,
41
- awayTeam: oddsData.away_team_display,
42
- isLive: oddsData.is_live,
43
- status: oddsData.status,
44
- sport: oddsData.sport.id,
45
- league: oddsData.league.name,
46
- odds: oddsData.odds.map((oddsObj: any) => ({
47
- id: oddsObj.id, // 39920-20584-2024-35:draftkings:2nd_set_moneyline:francisco_comesana
48
- sportsBookName: oddsObj.sportsbook,
49
- name: oddsObj.name,
50
- price: oddsObj.price,
51
- timestamp: oddsObj.timestamp,
52
- points: oddsObj.points,
53
- isMain: oddsObj.is_main,
54
- isLive: oddsData.is_live,
55
- marketName: oddsObj.market.toLowerCase(),
56
- playerId: oddsObj.player_id,
57
- selection: oddsObj.selection,
58
- selectionLine: oddsObj.selection_line,
59
- })),
60
- } as OddsObject)
61
- );
62
-
63
- const mapScorePeriods = (periods: any, homeAwayType: string) =>
64
- Object.entries(periods).reduce((acc, period) => {
65
- const periodKey = period[0].split('_')[1];
66
- const periodValue = period[1];
67
- return {
68
- ...acc,
69
- [`${homeAwayType}Period${periodKey}`]: periodValue,
70
- };
71
- }, {});
1
+ import { Fixture, OddsObject, ScoresObject } from '../types/odds';
2
+
3
+ export const mapOpticOddsApiFixtures = (fixturesData: any[]): Fixture[] =>
4
+ fixturesData.map(
5
+ (fixtureData) =>
6
+ ({
7
+ gameId: fixtureData.id, // fixture_id
8
+ startDate: fixtureData.start_date,
9
+ homeTeam: fixtureData.home_team_display,
10
+ awayTeam: fixtureData.away_team_display,
11
+ } as Fixture)
12
+ );
13
+
14
+ export const mapOpticOddsApiResults = (resultsData: any[]): ScoresObject[] =>
15
+ resultsData.map(
16
+ (resultData) =>
17
+ ({
18
+ gameId: resultData.fixture.id, // fixture_id
19
+ sport: resultData.sport.name,
20
+ league: resultData.league.name.toLowerCase(),
21
+ status: resultData.fixture.status ? resultData.fixture.status.toLowerCase() : resultData.fixture.status,
22
+ isLive: resultData.fixture.is_live,
23
+ clock: resultData.in_play.clock,
24
+ period: resultData.in_play.period ? resultData.in_play.period.toLowerCase() : resultData.in_play.period,
25
+ homeTeam: resultData.fixture.home_team_display,
26
+ awayTeam: resultData.fixture.away_team_display,
27
+ homeTotal: resultData.scores.home.total,
28
+ awayTotal: resultData.scores.away.total,
29
+ ...mapScorePeriods(resultData.scores.home.periods, 'home'),
30
+ ...mapScorePeriods(resultData.scores.away.periods, 'away'),
31
+ } as ScoresObject)
32
+ );
33
+
34
+ export const mapOpticOddsApiFixtureOdds = (oddsDataArray: any[]): OddsObject[] =>
35
+ oddsDataArray.map(
36
+ (oddsData) =>
37
+ ({
38
+ gameId: oddsData.id, // fixture_id
39
+ startDate: oddsData.start_date,
40
+ homeTeam: oddsData.home_team_display,
41
+ awayTeam: oddsData.away_team_display,
42
+ isLive: oddsData.is_live,
43
+ status: oddsData.status,
44
+ sport: oddsData.sport.id,
45
+ league: oddsData.league.name,
46
+ odds: oddsData.odds.map((oddsObj: any) => ({
47
+ id: oddsObj.id, // 39920-20584-2024-35:draftkings:2nd_set_moneyline:francisco_comesana
48
+ sportsBookName: oddsObj.sportsbook,
49
+ name: oddsObj.name,
50
+ price: oddsObj.price,
51
+ timestamp: oddsObj.timestamp,
52
+ points: oddsObj.points,
53
+ isMain: oddsObj.is_main,
54
+ isLive: oddsData.is_live,
55
+ marketName: oddsObj.market.toLowerCase(),
56
+ playerId: oddsObj.player_id,
57
+ selection: oddsObj.selection,
58
+ selectionLine: oddsObj.selection_line,
59
+ })),
60
+ } as OddsObject)
61
+ );
62
+
63
+ const mapScorePeriods = (periods: any, homeAwayType: string) =>
64
+ Object.entries(periods).reduce((acc, period) => {
65
+ const periodKey = period[0].split('_')[1];
66
+ const periodValue = period[1];
67
+ return {
68
+ ...acc,
69
+ [`${homeAwayType}Period${periodKey}`]: periodValue,
70
+ };
71
+ }, {});