overtime-utils 0.2.38 → 0.2.40-rc.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/main.js +1 -1
- package/package.json +1 -1
- package/src/constants/marketTypes/futures.ts +78 -0
- package/src/constants/marketTypes/soccer.ts +6 -0
- package/src/constants/marketTypes.ts +18 -0
- package/src/enums/marketTypes.ts +14 -0
- package/src/utils/markets.ts +5 -0
- package/src/utils/outcomes.ts +2 -1
- package/.claude/settings.local.json +0 -12
package/package.json
CHANGED
|
@@ -290,4 +290,82 @@ export const FUTURES_MARKET_TYPE_MAP: Partial<Record<MarketType, MarketTypeInfo>
|
|
|
290
290
|
name: 'Team to be promoted',
|
|
291
291
|
resultType: ResultType.EXACT_POSITION,
|
|
292
292
|
},
|
|
293
|
+
[MarketType.MOST_REGULAR_SEASON_WINS]: {
|
|
294
|
+
id: MarketType.MOST_REGULAR_SEASON_WINS,
|
|
295
|
+
key: 'mostRegularSeasonWins',
|
|
296
|
+
name: 'Most regular season wins',
|
|
297
|
+
resultType: ResultType.EXACT_POSITION,
|
|
298
|
+
},
|
|
299
|
+
[MarketType.FEWEST_REGULAR_SEASON_WINS]: {
|
|
300
|
+
id: MarketType.FEWEST_REGULAR_SEASON_WINS,
|
|
301
|
+
key: 'fewestRegularSeasonWins',
|
|
302
|
+
name: 'Fewest regular season wins',
|
|
303
|
+
resultType: ResultType.EXACT_POSITION,
|
|
304
|
+
},
|
|
305
|
+
[MarketType.CONFERENCE_TOP_SEED]: {
|
|
306
|
+
id: MarketType.CONFERENCE_TOP_SEED,
|
|
307
|
+
key: 'conferenceTopSeed',
|
|
308
|
+
name: 'Conference top seed',
|
|
309
|
+
resultType: ResultType.EXACT_POSITION,
|
|
310
|
+
},
|
|
311
|
+
[MarketType.FINAL_MATCHUP]: {
|
|
312
|
+
id: MarketType.FINAL_MATCHUP,
|
|
313
|
+
key: 'finalMatchup',
|
|
314
|
+
name: 'Final matchup',
|
|
315
|
+
resultType: ResultType.EXACT_POSITION,
|
|
316
|
+
},
|
|
317
|
+
[MarketType.FINAL_EXACTA]: {
|
|
318
|
+
id: MarketType.FINAL_EXACTA,
|
|
319
|
+
key: 'finalExacta',
|
|
320
|
+
name: 'Final exacta',
|
|
321
|
+
resultType: ResultType.EXACT_POSITION,
|
|
322
|
+
},
|
|
323
|
+
[MarketType.REGULAR_SEASON_WINS]: {
|
|
324
|
+
id: MarketType.REGULAR_SEASON_WINS,
|
|
325
|
+
key: 'regularSeasonWins',
|
|
326
|
+
name: 'Regular season wins',
|
|
327
|
+
resultType: ResultType.EXACT_POSITION,
|
|
328
|
+
},
|
|
329
|
+
[MarketType.COACH_OF_THE_YEAR]: {
|
|
330
|
+
id: MarketType.COACH_OF_THE_YEAR,
|
|
331
|
+
key: 'coachOfTheYear',
|
|
332
|
+
name: 'Coach of the year',
|
|
333
|
+
resultType: ResultType.EXACT_POSITION,
|
|
334
|
+
},
|
|
335
|
+
[MarketType.DEFENSIVE_PLAYER_OF_THE_YEAR]: {
|
|
336
|
+
id: MarketType.DEFENSIVE_PLAYER_OF_THE_YEAR,
|
|
337
|
+
key: 'defensivePlayerOfTheYear',
|
|
338
|
+
name: 'Defensive player of the year',
|
|
339
|
+
resultType: ResultType.EXACT_POSITION,
|
|
340
|
+
},
|
|
341
|
+
[MarketType.OFFENSIVE_PLAYER_OF_THE_YEAR]: {
|
|
342
|
+
id: MarketType.OFFENSIVE_PLAYER_OF_THE_YEAR,
|
|
343
|
+
key: 'offensivePlayerOfTheYear',
|
|
344
|
+
name: 'Offensive player of the year',
|
|
345
|
+
resultType: ResultType.EXACT_POSITION,
|
|
346
|
+
},
|
|
347
|
+
[MarketType.PASSING_TOUCHDOWNS_LEADER]: {
|
|
348
|
+
id: MarketType.PASSING_TOUCHDOWNS_LEADER,
|
|
349
|
+
key: 'passingTouchdownsLeader',
|
|
350
|
+
name: 'Passing touchdowns leader',
|
|
351
|
+
resultType: ResultType.EXACT_POSITION,
|
|
352
|
+
},
|
|
353
|
+
[MarketType.PASSING_YARDS_LEADER]: {
|
|
354
|
+
id: MarketType.PASSING_YARDS_LEADER,
|
|
355
|
+
key: 'passingYardsLeader',
|
|
356
|
+
name: 'Passing yards leader',
|
|
357
|
+
resultType: ResultType.EXACT_POSITION,
|
|
358
|
+
},
|
|
359
|
+
[MarketType.RECEIVING_YARDS_LEADER]: {
|
|
360
|
+
id: MarketType.RECEIVING_YARDS_LEADER,
|
|
361
|
+
key: 'receivingYardsLeader',
|
|
362
|
+
name: 'Receiving yards leader',
|
|
363
|
+
resultType: ResultType.EXACT_POSITION,
|
|
364
|
+
},
|
|
365
|
+
[MarketType.RUSHING_YARDS_LEADER]: {
|
|
366
|
+
id: MarketType.RUSHING_YARDS_LEADER,
|
|
367
|
+
key: 'rushingYardsLeader',
|
|
368
|
+
name: 'Rushing yards leader',
|
|
369
|
+
resultType: ResultType.EXACT_POSITION,
|
|
370
|
+
},
|
|
293
371
|
};
|
|
@@ -697,4 +697,10 @@ export const SOCCER_MARKET_TYPE_MAP: Partial<Record<MarketType, MarketTypeInfo>>
|
|
|
697
697
|
name: 'Total offsides',
|
|
698
698
|
resultType: ResultType.OVER_UNDER,
|
|
699
699
|
},
|
|
700
|
+
[MarketType.METHOD_OF_VICTORY_SOCCER]: {
|
|
701
|
+
id: MarketType.METHOD_OF_VICTORY_SOCCER,
|
|
702
|
+
key: 'methodOfVictory',
|
|
703
|
+
name: 'Method of victory',
|
|
704
|
+
resultType: ResultType.EXACT_POSITION,
|
|
705
|
+
},
|
|
700
706
|
};
|
|
@@ -888,6 +888,19 @@ export const FUTURES_MARKET_TYPES = [
|
|
|
888
888
|
MarketType.TOP_14_FINISHER,
|
|
889
889
|
MarketType.TOP_15_FINISHER,
|
|
890
890
|
MarketType.TEAMS_TO_BE_PROMOTED,
|
|
891
|
+
MarketType.MOST_REGULAR_SEASON_WINS,
|
|
892
|
+
MarketType.FEWEST_REGULAR_SEASON_WINS,
|
|
893
|
+
MarketType.CONFERENCE_TOP_SEED,
|
|
894
|
+
MarketType.FINAL_MATCHUP,
|
|
895
|
+
MarketType.FINAL_EXACTA,
|
|
896
|
+
MarketType.REGULAR_SEASON_WINS,
|
|
897
|
+
MarketType.COACH_OF_THE_YEAR,
|
|
898
|
+
MarketType.DEFENSIVE_PLAYER_OF_THE_YEAR,
|
|
899
|
+
MarketType.OFFENSIVE_PLAYER_OF_THE_YEAR,
|
|
900
|
+
MarketType.PASSING_TOUCHDOWNS_LEADER,
|
|
901
|
+
MarketType.PASSING_YARDS_LEADER,
|
|
902
|
+
MarketType.RECEIVING_YARDS_LEADER,
|
|
903
|
+
MarketType.RUSHING_YARDS_LEADER,
|
|
891
904
|
];
|
|
892
905
|
|
|
893
906
|
export const ONE_SIDE_PLAYER_PROPS_MARKET_TYPES = [
|
|
@@ -1028,6 +1041,11 @@ export const UFC_WINNING_ROUND_MARKET_TYPES = [MarketType.WINNING_ROUND];
|
|
|
1028
1041
|
export const UFC_ENDING_METHOD_MARKET_TYPES = [MarketType.ENDING_METHOD];
|
|
1029
1042
|
export const UFC_METHOD_OF_VICTORY_MARKET_TYPES = [MarketType.METHOD_OF_VICTORY];
|
|
1030
1043
|
|
|
1044
|
+
export const SOCCER_SPECIFIC_MARKET_TYPES = [MarketType.METHOD_OF_VICTORY_SOCCER];
|
|
1045
|
+
export const SOCCER_METHOD_OF_VICTORY_MARKET_TYPES = [MarketType.METHOD_OF_VICTORY_SOCCER];
|
|
1046
|
+
|
|
1047
|
+
export const METHOD_OF_VICTORY_MARKET_TYPES = [MarketType.METHOD_OF_VICTORY, MarketType.METHOD_OF_VICTORY_SOCCER];
|
|
1048
|
+
|
|
1031
1049
|
export const DOUBLE_CHANCE_MARKET_TYPES = [
|
|
1032
1050
|
MarketType.DOUBLE_CHANCE,
|
|
1033
1051
|
MarketType.FIRST_PERIOD_DOUBLE_CHANCE,
|
package/src/enums/marketTypes.ts
CHANGED
|
@@ -429,6 +429,19 @@ export enum MarketType {
|
|
|
429
429
|
TOP_14_FINISHER = 13046,
|
|
430
430
|
TOP_15_FINISHER = 13047,
|
|
431
431
|
TEAMS_TO_BE_PROMOTED = 13048,
|
|
432
|
+
MOST_REGULAR_SEASON_WINS = 13049,
|
|
433
|
+
FEWEST_REGULAR_SEASON_WINS = 13050,
|
|
434
|
+
CONFERENCE_TOP_SEED = 13051,
|
|
435
|
+
FINAL_MATCHUP = 13052,
|
|
436
|
+
FINAL_EXACTA = 13053,
|
|
437
|
+
REGULAR_SEASON_WINS = 13054,
|
|
438
|
+
COACH_OF_THE_YEAR = 13055,
|
|
439
|
+
DEFENSIVE_PLAYER_OF_THE_YEAR = 13056,
|
|
440
|
+
OFFENSIVE_PLAYER_OF_THE_YEAR = 13057,
|
|
441
|
+
PASSING_TOUCHDOWNS_LEADER = 13058,
|
|
442
|
+
PASSING_YARDS_LEADER = 13059,
|
|
443
|
+
RECEIVING_YARDS_LEADER = 13060,
|
|
444
|
+
RUSHING_YARDS_LEADER = 13061,
|
|
432
445
|
|
|
433
446
|
// Spread (handicap) corners
|
|
434
447
|
SPREAD_CORNERS = 10221,
|
|
@@ -967,6 +980,7 @@ export enum MarketType {
|
|
|
967
980
|
SECOND_PERIOD_WILL_THERE_BE_A_RED_CARD = 10666, // yes/no moneyline
|
|
968
981
|
HOME_TEAM_TO_SCORE_PENALTY = 10667, // yes/no moneyline
|
|
969
982
|
AWAY_TEAM_TO_SCORE_PENALTY = 10668, // yes/no moneyline
|
|
983
|
+
METHOD_OF_VICTORY_SOCCER = 10669, //
|
|
970
984
|
// Who will score first/last per period - half for soccer
|
|
971
985
|
FIRST_PERIOD_FIRST_SCORE = 10294, // who scores first in 1st half
|
|
972
986
|
SECOND_PERIOD_FIRST_SCORE = 10295, // who scores first in 2nd half
|
package/src/utils/markets.ts
CHANGED
|
@@ -38,6 +38,8 @@ import {
|
|
|
38
38
|
SGP_BUILDER_MARKET_TYPES,
|
|
39
39
|
SGP_NOT_SUPPORTED_MARKET_TYPES,
|
|
40
40
|
SIXTH_PERIOD_MARKET_TYPES,
|
|
41
|
+
SOCCER_METHOD_OF_VICTORY_MARKET_TYPES,
|
|
42
|
+
SOCCER_SPECIFIC_MARKET_TYPES,
|
|
41
43
|
SOCCER_TOTAL_MARKET_TYPES,
|
|
42
44
|
SPREAD_MARKET_TYPES,
|
|
43
45
|
THIRD_PERIOD_MARKET_TYPES,
|
|
@@ -134,6 +136,9 @@ export const isUfcWinningMarket = (marketType: MarketType) => UFC_WINNING_ROUND_
|
|
|
134
136
|
export const isEndingUfcMarket = (marketType: MarketType) => UFC_ENDING_METHOD_MARKET_TYPES.includes(marketType);
|
|
135
137
|
export const isUfcVictoryMarket = (marketType: MarketType) => UFC_METHOD_OF_VICTORY_MARKET_TYPES.includes(marketType);
|
|
136
138
|
|
|
139
|
+
export const isSoccerSpecificMarket = (marketType: MarketType) => SOCCER_SPECIFIC_MARKET_TYPES.includes(marketType);
|
|
140
|
+
export const isSoccerMethodOfVictoryMarket = (marketType: MarketType) => SOCCER_METHOD_OF_VICTORY_MARKET_TYPES.includes(marketType);
|
|
141
|
+
|
|
137
142
|
export const isContractResultView = (marketType: MarketType) =>
|
|
138
143
|
CORNERS_MARKET_TYPES.includes(marketType) ||
|
|
139
144
|
CARDS_MARKET_TYPES.includes(marketType) ||
|
package/src/utils/outcomes.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
DOUBLE_CHANCE_MARKET_TYPES,
|
|
5
5
|
DRAW_NO_BET_MARKET_TYPES,
|
|
6
6
|
HOME_TEAM_MARKET_TYPES,
|
|
7
|
+
METHOD_OF_VICTORY_MARKET_TYPES,
|
|
7
8
|
SCORE_MARKET_TYPES,
|
|
8
9
|
TOTAL_EXACT_MARKET_TYPES,
|
|
9
10
|
TOTAL_ODD_EVEN_MARKET_TYPES,
|
|
@@ -344,7 +345,7 @@ const getOutcomeGroup = (marketType: MarketType, resultType?: ResultType): Outco
|
|
|
344
345
|
if (marketType === MarketType.HALFTIME_FULLTIME) return OutcomeGroup.HALFTIME_FULLTIME;
|
|
345
346
|
if (marketType === MarketType.WINNING_ROUND) return OutcomeGroup.WINNING_ROUND;
|
|
346
347
|
if (marketType === MarketType.ENDING_METHOD) return OutcomeGroup.ENDING_METHOD;
|
|
347
|
-
if (marketType
|
|
348
|
+
if (METHOD_OF_VICTORY_MARKET_TYPES.includes(marketType)) return OutcomeGroup.METHOD_OF_VICTORY;
|
|
348
349
|
if (!resultType) return undefined;
|
|
349
350
|
switch (resultType) {
|
|
350
351
|
case ResultType.OVER_UNDER: {
|