overtime-live-trading-utils 0.0.152 → 0.0.154
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/sports.ts +144 -46
- package/src/enums/sports.ts +8 -0
- package/src/utils/markets.ts +1 -1
- package/src/utils/odds.ts +67 -22
package/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var i in a)e.o(a,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:a[i]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{AMERICAN_LEAGUES:()=>U,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>M,LEAGUES_NO_LIVE_CONSTRAINTS:()=>u,League:()=>L,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>m,LeagueMap:()=>P,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>T,MoneylineTypes:()=>p,PeriodType:()=>N,Provider:()=>n,ScoringType:()=>l,Sport:()=>_,SpreadTypes:()=>S,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>s,UFC_LEAGUE_IDS:()=>C,ZERO:()=>k,adjustSpreadOnChildOdds:()=>_e,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>se,allowGameSportWithResultConstraint:()=>Te,allowSoccerGame:()=>le,calculateImpliedOddsDifference:()=>c,checkGameContraints:()=>Se,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>Ee,fetchResultInCurrentSet:()=>Ne,filterOddsByMarketNameBookmaker:()=>oe,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>h,getBookmakersArray:()=>O,getLeagueInfo:()=>B,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>w,getLeaguePeriodType:()=>V,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>F,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>te,mapOpticOddsApiFixtureOdds:()=>Ce,mapOpticOddsApiFixtures:()=>ue,mapOpticOddsApiResults:()=>Ue,processMarket:()=>pe,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),i=1;i<arguments.length;i++){var E=arguments[i];if(null!=E)for(var o in E)Object.prototype.hasOwnProperty.call(E,o)&&(a[o]=E[o])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-i(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var E,o,A={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,i=[0,1],E=[1,0],o=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,E=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==E?i=r:0===E?i=r.substring(1,r.length):E<r.length&&(i=r.substring(0,E)+r.substring(E+1,r.length));var o=i,A=o.toString().length,t=e,_=t.toString().length;0===t&&(_=0);var L,p=A-_;for(L=p;L>0&&o%2==0;L--)o/=2;for(L=p;L>0&&o%5==0;L--)o/=5;return o}(e),A=e,t=Math.pow(10,-r)/2,_=2;_<1e3;_++){var L=Math.floor(A);if(i[_]=L*i[_-1]+i[_-2],Math.abs(i[_])>o)return;if(E[_]=L*E[_-1]+E[_-2],a=i[_]/E[_],Math.abs(a-e)<t||NaN==a)return i[_].toString()+"/"+E[_].toString();A=1/(A-L)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},t=((o=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(E=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,E.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new o(a)},E);t.prototype.to=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=A[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=i("round",a,-r.precision)),a};var _,L,p,S,s,l,T,N,n,d,I=t.from,O=function(e,r,a){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return a;var E=[];return i.primaryBookmaker&&E.push(i.primaryBookmaker),i.secondaryBookmaker&&E.push(i.secondaryBookmaker),i.tertiaryBookmaker&&E.push(i.tertiaryBookmaker),E}return a},R=function(e,r,a,i,E){var o=e.get(r[0]);if(!o)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=o.homeOdds,t=o.awayOdds,_=a?0:o.drawOdds;if(r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!a&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!a&&1===i.drawOdds)})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"};if(1==r.length)return{homeOdds:A,awayOdds:t,drawOdds:a?0:_};if(r.slice(1).some((function(r){var o=e.get(r);if(o){var L=o.homeOdds,p=o.awayOdds,S=o.drawOdds,s=I("decimal",A).to("impliedProbability"),l=I("decimal",t).to("impliedProbability"),T=a?0:I("decimal",_).to("impliedProbability"),N=I("decimal",L).to("impliedProbability"),n=I("decimal",p).to("impliedProbability"),d=a?0:I("decimal",S).to("impliedProbability"),O=c(s,N),R=c(l,n),P=a?0:c(T,d);if(O>i&&s>E&&N>E||R>i&&l>E&&n>E||!a&&P>i&&T>E&&d>E)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var L=[];return r.forEach((function(r){return L.push(e.get(r))})),{homeOdds:A,awayOdds:t,drawOdds:a?0:_}},c=function(e,r){return Math.abs(e-r)/e*100};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.FUTURES="Futures",e.EMPTY=""}(_||(_={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.EUROCUP=20200]="EUROCUP",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1=15312]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2=15313]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3=15314]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4=15315]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5=15316]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6=15317]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7=15318]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15322]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15323]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15324]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15325]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15326]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15327]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15328]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(L||(L={})),function(e){e.MONEYLINE="Moneyline"}(p||(p={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.GOAL_SPREAD="Goal Spread",e.RUN_LINE="Run Line",e.PUCK_LINE="Puck Line"}(S||(S={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(s||(s={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.EMPTY=""}(l||(l={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(T||(T={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.EMPTY=""}(N||(N={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(n||(n={}));var P=((d={})[L.NCAAF]={sport:_.FOOTBALL,id:L.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NFL]={sport:_.FOOTBALL,id:L.NFL,label:"NFL",opticOddsName:"NFL",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.MLB]={sport:_.BASEBALL,id:L.MLB,label:"MLB",opticOddsName:"MLB",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.INNING,isDrawAvailable:!1},d[L.NBA]={sport:_.BASKETBALL,id:L.NBA,label:"NBA",opticOddsName:"NBA",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NCAAB]={sport:_.BASKETBALL,id:L.NCAAB,label:"NCAA Basketball",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NHL]={sport:_.HOCKEY,id:L.NHL,label:"NHL",opticOddsName:"NHL",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.OVERTIME,periodType:N.PERIOD,isDrawAvailable:!1},d[L.UFC]={sport:_.FIGHTING,id:L.UFC,label:"UFC",provider:n.OPTICODDS,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.WNBA]={sport:_.BASKETBALL,id:L.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.MLS]={sport:_.SOCCER,id:L.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EPL]={sport:_.SOCCER,id:L.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGUE_ONE]={sport:_.SOCCER,id:L.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BUNDESLIGA]={sport:_.SOCCER,id:L.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LA_LIGA]={sport:_.SOCCER,id:L.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERIE_A]={sport:_.SOCCER,id:L.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CL]={sport:_.SOCCER,id:L.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EL]={sport:_.SOCCER,id:L.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WC]={sport:_.SOCCER,id:L.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:n.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.J1_LEAGUE]={sport:_.SOCCER,id:L.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.IPL]={sport:_.CRICKET,id:L.IPL,label:"Indian Premier League",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.EMPTY,periodType:N.INNING,isDrawAvailable:!1},d[L.T20_BLAST]={sport:_.CRICKET,id:L.T20_BLAST,label:"T20 Blast",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.EMPTY,periodType:N.INNING,isDrawAvailable:!1},d[L.IIHF_WORLD_CHAMPIONSHIP]={sport:_.HOCKEY,id:L.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.COPA_AMERICA]={sport:_.SOCCER,id:L.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.COPA_LIBERTADORES]={sport:_.SOCCER,id:L.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EURO]={sport:_.SOCCER,id:L.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EREDIVISIE]={sport:_.SOCCER,id:L.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.PRIMEIRA_LIGA]={sport:_.SOCCER,id:L.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:_.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_SOCCER]={sport:_.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WC_WOMEN]={sport:_.SOCCER,id:L.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_CUP]={sport:_.SOCCER,id:L.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FRANCE_CUP]={sport:_.SOCCER,id:L.FRANCE_CUP,label:"Coupe de France",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SPAIN_CUP]={sport:_.SOCCER,id:L.SPAIN_CUP,label:"Copa del Rey",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ITALY_CUP]={sport:_.SOCCER,id:L.ITALY_CUP,label:"Coppa Italia",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.TENNIS_WTA]={sport:_.TENNIS,id:L.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.TENNIS_GS]={sport:_.TENNIS,id:L.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.TENNIS_MASTERS]={sport:_.TENNIS,id:L.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_TENNIS]={sport:_.TENNIS,id:L.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.GERMANY_CUP]={sport:_.SOCCER,id:L.GERMANY_CUP,label:"DFB Pokal",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGA_MX]={sport:_.SOCCER,id:L.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BRAZIL_1]={sport:_.SOCCER,id:L.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EURO_U21]={sport:_.SOCCER,id:L.UEFA_EURO_U21,label:"UEFA EURO U21",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WORLD_CUP_U20]={sport:_.SOCCER,id:L.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:_.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HANDBALL]={sport:_.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EUROLEAGUE]={sport:_.BASKETBALL,id:L.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.FIBA_WORLD_CUP]={sport:_.BASKETBALL,id:L.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.FORMULA1]={sport:_.MOTOSPORT,id:L.FORMULA1,label:"Formula 1",provider:n.ENETPULSE,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:_.TABLE_TENNIS,id:L.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.MOTOGP]={sport:_.MOTOSPORT,id:L.MOTOGP,label:"MotoGP",provider:n.ENETPULSE,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.SAUDI_PROFESSIONAL_LEAGUE]={sport:_.SOCCER,id:L.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_WATERPOLO]={sport:_.WATERPOLO,id:L.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.QUARTER,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_VOLEYBALL]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.BOXING]={sport:_.FIGHTING,id:L.BOXING,label:"Boxing",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_RUGBY]={sport:_.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:_.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:_.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HOCKEY]={sport:_.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.UEFA_NATIONS_LEAGUE]={sport:_.SOCCER,id:L.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:n.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CONCACAF_NATIONS_LEAGUE]={sport:_.SOCCER,id:L.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CSGO]={sport:_.ESPORTS,id:L.CSGO,label:"CS GO",opticOddsName:"CS2",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.DOTA2]={sport:_.ESPORTS,id:L.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_QUALIFICATION]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.LOL]={sport:_.ESPORTS,id:L.LOL,label:"LOL",opticOddsName:"League of Legends",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.CONMEBOL_WC_QUALIFICATIONS]={sport:_.SOCCER,id:L.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CONFERENCE_LEAGUE]={sport:_.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.NON_TITLE_BOXING]={sport:_.FIGHTING,id:L.NON_TITLE_BOXING,label:"Boxing",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.US_ELECTION]={sport:_.POLITICS,id:L.US_ELECTION,label:"US Election 2024",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.UEFA_SUPER_CUP]={sport:_.SOCCER,id:L.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BRAZIL_CUP]={sport:_.SOCCER,id:L.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_CHAMPIONSHIP]={sport:_.SOCCER,id:L.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SCOTLAND_PREMIERSHIP]={sport:_.SOCCER,id:L.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BELGIUM_LEAGUE]={sport:_.SOCCER,id:L.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CZECH_LEAGUE]={sport:_.SOCCER,id:L.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CHILE_PRIMERA]={sport:_.SOCCER,id:L.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FINLAND_LEAGUE]={sport:_.SOCCER,id:L.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ARGENTINA_PRIMERA]={sport:_.SOCCER,id:L.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.RUSSIA_PREMIER]={sport:_.SOCCER,id:L.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.TURKEY_SUPER_LEAGUE]={sport:_.SOCCER,id:L.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERBIA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.GREECE_SUPER_LEAGUE]={sport:_.SOCCER,id:L.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.INDIA_PREMIER]={sport:_.SOCCER,id:L.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CHINA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.AUSTRALIA_A_LEAGUE]={sport:_.SOCCER,id:L.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SWITZERLAND_SUPER_LEAGUE]={sport:_.SOCCER,id:L.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BUNDESLIGA_2]={sport:_.SOCCER,id:L.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LA_LIGA_2]={sport:_.SOCCER,id:L.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERIE_B]={sport:_.SOCCER,id:L.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.INDIA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGUE_2]={sport:_.SOCCER,id:L.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.AUSTRIA_BUNDESLIGA]={sport:_.SOCCER,id:L.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.DENMARK_SUPER_LEAGUE]={sport:_.SOCCER,id:L.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.POLAND_LEAGUE]={sport:_.SOCCER,id:L.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SWEDEN_LEAGUE]={sport:_.SOCCER,id:L.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.COLOMBIA_PRIMERA_A]={sport:_.SOCCER,id:L.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_EFL_CUP]={sport:_.SOCCER,id:L.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_LEGAUE_1]={sport:_.SOCCER,id:L.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.URUGUAY_PRIMERA_DIVISION]={sport:_.SOCCER,id:L.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EUROCUP]={sport:_.BASKETBALL,id:L.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NFL_FUTURES]={sport:_.FUTURES,id:L.NFL_FUTURES,label:"NFL Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.NBA_FUTURES]={sport:_.FUTURES,id:L.NBA_FUTURES,label:"NBA Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.EPL_FUTURES]={sport:_.FUTURES,id:L.EPL_FUTURES,label:"EPL Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.GOLF_H2H]={sport:_.GOLF,id:L.GOLF_H2H,label:"Golf head-to-head",provider:n.JSONODDS,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.GOLF_WINNER]={sport:_.GOLF,id:L.GOLF_WINNER,label:"Golf Tournament Winner",provider:n.JSONODDS,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d),M=[L.CSGO,L.DOTA2,L.LOL,L.TENNIS_GS,L.TENNIS_MASTERS,L.SUMMER_OLYMPICS_TENNIS,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,L.TENNIS_MASTERS_LIVE_MAPPING_V2_1,L.TENNIS_MASTERS_LIVE_MAPPING_V2_2,L.TENNIS_MASTERS_LIVE_MAPPING_V2_3,L.TENNIS_MASTERS_LIVE_MAPPING_V2_4,L.TENNIS_MASTERS_LIVE_MAPPING_V2_5,L.TENNIS_MASTERS_LIVE_MAPPING_V2_6,L.TENNIS_MASTERS_LIVE_MAPPING_V2_7,L.TENNIS_MASTERS_LIVE_MAPPING_V2_8,L.TENNIS_MASTERS_LIVE_MAPPING_V2_9,L.TENNIS_MASTERS_LIVE_MAPPING_V2_10,L.TENNIS_MASTERS_LIVE_MAPPING_V2_11,L.TENNIS_MASTERS_LIVE_MAPPING_V2_12,L.TENNIS_MASTERS_LIVE_MAPPING_V2_13,L.TENNIS_MASTERS_LIVE_MAPPING_V2_14,L.TENNIS_MASTERS_LIVE_MAPPING_V2_15,L.TENNIS_MASTERS_LIVE_MAPPING_V2_16,L.TENNIS_MASTERS_LIVE_MAPPING_V2_17,L.TENNIS_MASTERS_LIVE_MAPPING_V2_18,L.TENNIS_MASTERS_LIVE_MAPPING_V2_19,L.TENNIS_MASTERS_LIVE_MAPPING_V2_20,L.TENNIS_MASTERS_LIVE_MAPPING_V2_21,L.TENNIS_MASTERS_LIVE_MAPPING_V2_22,L.TENNIS_WTA_LIVE_MAPPING_V2_1,L.TENNIS_WTA_LIVE_MAPPING_V2_2,L.TENNIS_WTA_LIVE_MAPPING_V2_3,L.TENNIS_WTA_LIVE_MAPPING_V2_4,L.TENNIS_WTA_LIVE_MAPPING_V2_5,L.TENNIS_WTA_LIVE_MAPPING_V2_6,L.TENNIS_WTA_LIVE_MAPPING_V2_7],u=[L.SUMMER_OLYMPICS_RUGBY,L.SUMMER_OLYMPICS_RUGBY_WOMEN],U=[L.NCAAF,L.NFL,L.MLB,L.NBA,L.NCAAB,L.NHL,L.WNBA,L.MLS,L.IPL,L.T20_BLAST],C=[701,702,703,704],m={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},y={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},G={1:"NCAAF",2:"NFL",3:"MLB",4:"NBA",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20200:"Eurocup"},v=function(e){var r=P[e];return r?r.sport:_.EMPTY},D=function(e){var r=P[e];return r?r.label:""},g=function(e){var r=P[e];return r?r.provider:""},b=function(e){var r=P[e];return!!r&&r.isDrawAvailable},F=function(e){var r=new Set;return e.filter((function(e){return"true"===e.enabled})).map((function(e){return r.add(Number(e.sportId))})),Array.from(r)},h=function(e,r){var a=new Set;return r.filter((function(r){return Number(r.sportId)===Number(e)&&"true"===r.enabled})).map((function(e){return a.add(e.marketName)})),Array.from(a)},B=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},w=function(e){var r=P[e];return r?r.opticOddsName:void 0},V=function(e){var r=P[e];return r?r.periodType:""},f=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Spread"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},Y=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Total"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},H=function(e,r,a,i,E,o){var A,t;if(M.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),t=E.toLowerCase()==r.toLowerCase()||E.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),t=E.toLowerCase()==a.toLowerCase()),!0!==A){var _=o.get(i.toLowerCase()),L=o.get(r.toLowerCase()),p=o.get(a.toLowerCase());if([_,L].some((function(e){return null==e})))return!1;A=M.includes(e)?_==L||_==p:_==L}if(!0!==t){var S=o.get(E.toLowerCase());if(L=o.get(r.toLowerCase()),[S,p=o.get(a.toLowerCase())].some((function(e){return null==e})))return!1;t=M.includes(e)&&S==L||S==p}return A&&t},W=function(e,r,a,i){var E;if(v(a)==_.TENNIS){var o=r.getTime(),A=e.getTime();E=Math.abs(A-o)<=Number(60*i*1e3)}else E=r.toUTCString()==e.toUTCString();return E},k=0,K="Draw",Q=0,j=.2,x=10001,X=10002,z=100,Z=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(i-1)))return e;a=r}var E=1+a/100,o=E/i,A=e.map((function(e){return e*o}));if(A.some((function(e){return e>=1})))return Array(e.length).fill(0);var t=A.reduce((function(e,r){return e+r}),0);if(t<1)return Array(e.length).fill(0);var _=E/t;return A.map((function(e){return e*_}))},J=function(e,r,a,i){var E=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return E?{minSpread:E.minSpread?Number(E.minSpread):i,targetSpread:E.targetSpread?Number(E.targetSpread):0}:{minSpread:i,targetSpread:0}},q=function(){return q=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,E=0,o=r.length;E<o;E++)!i&&E in r||(i||(i=Array.prototype.slice.call(r,0,E)),i[E]=r[E]);return e.concat(i||Array.prototype.slice.call(r))},ee=function(e){return e===k?0:re("decimal","impliedProbability",e)},re=function(e,r,a){try{return I(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,E){var o=new Map;return a.forEach((function(a){var A=0,t=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==t.length&&(A=t[0].price);var _=0,L=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==L.length&&(_=L[0].price);var p=0;if(!E){var S=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==S.length&&(p=S[0].price)}o.set(a.toLowerCase(),{homeOdds:A,awayOdds:_,drawOdds:p})})),o},ie=function(e,r,a,i,E,o,A){var t={homeTeam:i.homeTeam,awayTeam:i.awayTeam},_=ae(i.odds,p.MONEYLINE,a,t,e),L=R(_,a,e,A,j);if(L.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:L.errorMessage};var S=(e?[L.homeOdds,L.awayOdds]:[L.homeOdds,L.awayOdds,L.drawOdds]).map((function(e){return ee(e)})),s=J(r,E,Q,o);return{odds:S=null!==s?Z(S,s.minSpread,s.targetSpread):Z(S,o,0)}},Ee=function(e,r,a,i,E,o){var A=[[],[],[]],t=A[0],_=A[1],L=A[2],p=B(a,o),S={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(p.length>0){oe(e.odds,p,i[0]).filter((function(e){return e&&.5===Math.abs(Number(e.points)%1)})).forEach((function(e){"Total"===e.type?_.push(e):"Spread"===e.type&&t.push(e)}));var s=$($([],Ae(t,S),!0),te(_,S),!0);_e(s,r,E).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line),odds:e.odds},a=p.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,E=null==a?void 0:a.maxOdds;i&&E&&(e.odds[0]>=i||e.odds[0]<=E||e.odds[1]>=i||e.odds[1]<=E)||L.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return L},oe=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==p.MONEYLINE.toLowerCase()})).map((function(e){return e.marketName.toLowerCase()}));return e.filter((function(e){return i.includes(e.marketName.toLowerCase())&&e.sportsBookName.toLowerCase()==a.toLowerCase()})).map((function(e){return q(q({},e),r.find((function(r){return r.marketName.toLowerCase()===e.marketName.toLowerCase()})))}))},Ae=function(e,r){var a=e.reduce((function(e,a){var i=a.points,E=a.price,o=a.selection,A=a.typeId,t=a.sportId,_=a.type,L=o===r.homeTeam,p=L?i:-i;return e[p]||(e[p]={home:null,away:null,typeId:null,sportId:null}),L?e[p].home=E:e[p].away=E,e[p].typeId=A,e[p].type=_,e[p].sportId=t,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],E=parseFloat(a);return null!==i.home&&null!==i.away&&e.push({line:E,odds:[i.home,i.away],typeId:i.typeId,sportId:i.sportId,type:i.type}),e}),[]);return i},te=function(e,r){var a=e.reduce((function(e,r){if(r){var a="".concat(r.selection,"_").concat(r.points);e[a]||(e[a]={over:null,under:null}),"over"===r.selectionLine?e[a].over=r.price:"under"===r.selectionLine&&(e[a].under=r.price),e[a].typeId=r.typeId,e[a].type=r.type,e[a].sportId=r.sportId}return e}),{}),i=Object.entries(a).reduce((function(e,a){var i=a[0],E=a[1],o=i.split("_"),A=o[0],t=o[1],_=parseFloat(t),L=A===r.awayTeam;return null!==E.over&&null!==E.under&&e.push({line:_,odds:[E.over,E.under],typeId:L?Number(E.typeId)+1:E.typeId,sportId:E.sportId,type:E.type}),e}),[]);return i},_e=function(e,r,a){var i=[];return e.forEach((function(e){var E=ee(e.odds[0])||k,o=ee(e.odds[1])||k;if(E!==k&&o!==k){var A,t=J(r,e.sportId,e.typeId,a);E=(A=null!==t?Z([E,o],t.minSpread,t.targetSpread):Z([E,o],a,0))[0],o=A[1],i.push(q(q({},e),{odds:A}))}})),i},Le=function(){return Le=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},Le.apply(this,arguments)},pe=function(e,r,a,i,E,o,A,t){var _=i.filter((function(r){return r.sportId===String(e.leagueId)})),L=ie(!E,_,a,r,e.leagueId,o,A);L.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=L.errorMessage):e.odds=L.odds.map((function(r){return 0!=r?{american:I("impliedProbability",r).to("moneyline"),decimal:I("impliedProbability",r).to("decimal"),normalizedImplied:r}:(e.errorMessage="Unexpected odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0})}));var p=Ee(r,_,e.leagueId,a,o,t).map((function(r){var a=Le(Le({},e),r);return a.odds.length>0&&(a.odds=a.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:I("impliedProbability",e).to("moneyline"),decimal:I("impliedProbability",e).to("decimal"),normalizedImplied:e}}))),a}));return e.childMarkets=p,e},Se=function(e,r,a){var i=v(r),E=e.homeTeam,o=e.homeTotal,A=e.awayTeam,t=e.awayTotal,L=e.clock,p=e.period,S=e.status,s=parseInt(p);return"completed"==S.toLowerCase()?{allow:!1,message:"Blocking game ".concat(E," - ").concat(A," because it is no longer live.")}:i===_.BASKETBALL?se(E,A,s,a.get(_.BASKETBALL)):i===_.HOCKEY?se(E,A,s,a.get(_.HOCKEY)):i===_.BASEBALL?se(E,A,s,a.get(_.BASEBALL)):i===_.SOCCER?le(E,A,L,p,a.get(_.SOCCER)):i===_.TENNIS?Te(e,E,A,p,o,t,r,i):i===_.VOLLEYBALL?Te(e,E,A,s,o,t,r,i):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},se=function(e,r,a,i){return!Number.isNaN(a)&&a>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},le=function(e,r,a,i,E){var o=Number(a);return!Number.isNaN(o)&&o>=E||Number.isNaN(o)&&"HALF"!=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},Te=function(e,r,a,i,E,o,A,t){var p=Number(i),S=Ne(p,e),s="atp"==e.league.toLowerCase(),l={home:E,away:o};return t==_.VOLLEYBALL?ne(r,a,S,l,de,5==p?Oe:Ie):A.toString().startsWith(L.TENNIS_GS)&&s?ne(r,a,S,l,Re,Pe):A.toString().startsWith(L.TENNIS_GS)&&!s||A.toString().startsWith(L.TENNIS_MASTERS)||A.toString().startsWith(L.SUMMER_OLYMPICS_TENNIS)||A.toString().startsWith(L.TENNIS_WTA)?ne(r,a,S,l,ce,Pe):{allow:!0,message:"The sport ".concat(A," does not have result constraint")}},Ne=function(e,r){var a=0,i=0;switch(e){case 1:a=Number(r.homePeriod1),i=Number(r.awayPeriod1);break;case 2:a=Number(r.homePeriod2),i=Number(r.awayPeriod2);break;case 3:a=Number(r.homePeriod3),i=Number(r.awayPeriod3);break;case 4:a=Number(r.homePeriod4),i=Number(r.awayPeriod4);break;case 5:a=Number(r.homePeriod5),i=Number(r.awayPeriod5)}return{home:a,away:i}},ne=function(e,r,a,i,E,o){return Number(i.home)!=E&&Number(i.away)!=E||!(Number(i.home)==E&&a.home>=o||Number(i.away)==E&&a.away>=o)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(a.home," - ").concat(a.away,")")}},de=2,Ie=20,Oe=10,Re=2,ce=1,Pe=5,Me=function(){return Me=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},Me.apply(this,arguments)},ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display}}))},Ue=function(e){return e.map((function(e){return Me(Me({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status.toLowerCase(),isLive:e.fixture.is_live,clock:e.in_play.clock,period:e.in_play.period?e.in_play.period.toLowerCase():e.in_play.period,homeTeam:e.fixture.home_team_display,awayTeam:e.fixture.away_team_display,homeTotal:e.scores.home.total,awayTotal:e.scores.away.total},me(e.scores.home.periods,"home")),me(e.scores.away.periods,"away"))}))},Ce=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display,isLive:e.is_live,status:e.status,sport:e.sport.id,league:e.league.name,odds:e.odds.map((function(r){return{id:r.id,sportsBookName:r.sportsbook,name:r.name,price:r.price,timestamp:r.timestamp,points:r.points,isMain:r.is_main,isLive:e.is_live,marketName:r.market.toLowerCase(),playerId:r.player_id,selection:r.selection,selectionLine:r.selection_line}}))}}))},me=function(e,r){return Object.values(e).reduce((function(e,a,i){var E;return Me(Me({},e),((E={})["".concat(r,"Period").concat(i+1)]=a,E))}),{})};return r})()));
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var i in a)e.o(a,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:a[i]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{AMERICAN_LEAGUES:()=>u,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>M,LEAGUES_NO_LIVE_CONSTRAINTS:()=>C,League:()=>p,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>U,LeagueMap:()=>P,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>T,MoneylineTypes:()=>L,PeriodType:()=>d,Provider:()=>n,ScoringType:()=>S,Sport:()=>_,SpreadTypes:()=>s,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>l,UFC_LEAGUE_IDS:()=>m,ZERO:()=>k,adjustSpreadOnChildOdds:()=>pe,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>Se,allowGameSportWithResultConstraint:()=>de,allowSoccerGame:()=>Te,calculateImpliedOddsDifference:()=>c,checkGameContraints:()=>le,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>oe,fetchResultInCurrentSet:()=>ne,filterOddsByMarketNameBookmaker:()=>Ee,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>B,getBookmakersArray:()=>O,getLeagueInfo:()=>h,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>w,getLeaguePeriodType:()=>V,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>F,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatMoneylineOdds:()=>_e,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>te,mapOpticOddsApiFixtureOdds:()=>Ue,mapOpticOddsApiFixtures:()=>ue,mapOpticOddsApiResults:()=>me,processMarket:()=>se,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var E in o)Object.prototype.hasOwnProperty.call(o,E)&&(a[E]=o[E])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-i(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var o,E,A={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,i=[0,1],o=[1,0],E=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,o=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==o?i=r:0===o?i=r.substring(1,r.length):o<r.length&&(i=r.substring(0,o)+r.substring(o+1,r.length));var E=i,A=E.toString().length,t=e,_=t.toString().length;0===t&&(_=0);var p,L=A-_;for(p=L;p>0&&E%2==0;p--)E/=2;for(p=L;p>0&&E%5==0;p--)E/=5;return E}(e),A=e,t=Math.pow(10,-r)/2,_=2;_<1e3;_++){var p=Math.floor(A);if(i[_]=p*i[_-1]+i[_-2],Math.abs(i[_])>E)return;if(o[_]=p*o[_-1]+o[_-2],a=i[_]/o[_],Math.abs(a-e)<t||NaN==a)return i[_].toString()+"/"+o[_].toString();A=1/(A-p)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},t=((E=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new E(a)},o);t.prototype.to=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=A[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=i("round",a,-r.precision)),a};var _,p,L,s,l,S,T,d,n,I,N=t.from,O=function(e,r,a){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return a;var o=[];return i.primaryBookmaker&&o.push(i.primaryBookmaker),i.secondaryBookmaker&&o.push(i.secondaryBookmaker),i.tertiaryBookmaker&&o.push(i.tertiaryBookmaker),o}return a},R=function(e,r,a,i,o){var E=e.get(r[0]);if(!E)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=E.homeOdds,t=E.awayOdds,_=a?0:E.drawOdds;if(r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!a&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!a&&1===i.drawOdds)})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"};if(1==r.length)return{homeOdds:A,awayOdds:t,drawOdds:a?0:_};if(r.slice(1).some((function(r){var E=e.get(r);if(E){var p=E.homeOdds,L=E.awayOdds,s=E.drawOdds,l=N("decimal",A).to("impliedProbability"),S=N("decimal",t).to("impliedProbability"),T=a?0:N("decimal",_).to("impliedProbability"),d=N("decimal",p).to("impliedProbability"),n=N("decimal",L).to("impliedProbability"),I=a?0:N("decimal",s).to("impliedProbability"),O=c(l,d),R=c(S,n),P=a?0:c(T,I);if(O>i&&l>o&&d>o||R>i&&S>o&&n>o||!a&&P>i&&T>o&&I>o)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var p=[];return r.forEach((function(r){return p.push(e.get(r))})),{homeOdds:A,awayOdds:t,drawOdds:a?0:_}},c=function(e,r){return Math.abs(e-r)/e*100};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.FUTURES="Futures",e.EMPTY=""}(_||(_={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.AFC_CHAMPIONS_LEAGUE=20128]="AFC_CHAMPIONS_LEAGUE",e[e.EUROCUP=20200]="EUROCUP",e[e.SPAIN_LIGA_ACB=20201]="SPAIN_LIGA_ACB",e[e.ITALY_LEGA_BASKET_SERIE_A=20202]="ITALY_LEGA_BASKET_SERIE_A",e[e.GERMANY_BBL=20203]="GERMANY_BBL",e[e.FRANCE_LNB_PRO_A=20204]="FRANCE_LNB_PRO_A",e[e.CHINA_CBA=20205]="CHINA_CBA",e[e.AUSTRALIA_NBL=20206]="AUSTRALIA_NBL",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.UEFA_CHAMPIONS_LEAGUE_FUTURES=30016]="UEFA_CHAMPIONS_LEAGUE_FUTURES",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1=15312]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2=15313]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3=15314]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4=15315]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5=15316]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6=15317]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7=15318]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15322]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15323]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15324]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15325]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15326]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15327]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15328]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(p||(p={})),function(e){e.MONEYLINE="Moneyline"}(L||(L={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.GOAL_SPREAD="Goal Spread",e.RUN_LINE="Run Line",e.PUCK_LINE="Puck Line"}(s||(s={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(l||(l={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.EMPTY=""}(S||(S={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(T||(T={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.EMPTY=""}(d||(d={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(n||(n={}));var P=((I={})[p.NCAAF]={sport:_.FOOTBALL,id:p.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.NFL]={sport:_.FOOTBALL,id:p.NFL,label:"NFL",opticOddsName:"NFL",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.MLB]={sport:_.BASEBALL,id:p.MLB,label:"MLB",opticOddsName:"MLB",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.INNING,isDrawAvailable:!1},I[p.NBA]={sport:_.BASKETBALL,id:p.NBA,label:"NBA",opticOddsName:"NBA",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.NCAAB]={sport:_.BASKETBALL,id:p.NCAAB,label:"NCAA Basketball",opticOddsName:"NCAAB",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.NHL]={sport:_.HOCKEY,id:p.NHL,label:"NHL",opticOddsName:"NHL",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.OVERTIME,periodType:d.PERIOD,isDrawAvailable:!1},I[p.UFC]={sport:_.FIGHTING,id:p.UFC,label:"UFC",provider:n.OPTICODDS,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.WNBA]={sport:_.BASKETBALL,id:p.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.MLS]={sport:_.SOCCER,id:p.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.EPL]={sport:_.SOCCER,id:p.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LIGUE_ONE]={sport:_.SOCCER,id:p.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BUNDESLIGA]={sport:_.SOCCER,id:p.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LA_LIGA]={sport:_.SOCCER,id:p.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SERIE_A]={sport:_.SOCCER,id:p.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_CL]={sport:_.SOCCER,id:p.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_EL]={sport:_.SOCCER,id:p.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FIFA_WC]={sport:_.SOCCER,id:p.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:n.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.J1_LEAGUE]={sport:_.SOCCER,id:p.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.IPL]={sport:_.CRICKET,id:p.IPL,label:"Indian Premier League",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.EMPTY,periodType:d.INNING,isDrawAvailable:!1},I[p.T20_BLAST]={sport:_.CRICKET,id:p.T20_BLAST,label:"T20 Blast",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.EMPTY,periodType:d.INNING,isDrawAvailable:!1},I[p.IIHF_WORLD_CHAMPIONSHIP]={sport:_.HOCKEY,id:p.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},I[p.COPA_AMERICA]={sport:_.SOCCER,id:p.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.COPA_LIBERTADORES]={sport:_.SOCCER,id:p.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_EURO]={sport:_.SOCCER,id:p.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.EREDIVISIE]={sport:_.SOCCER,id:p.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.PRIMEIRA_LIGA]={sport:_.SOCCER,id:p.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:_.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_SOCCER]={sport:_.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FIFA_WC_WOMEN]={sport:_.SOCCER,id:p.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ENGLAND_CUP]={sport:_.SOCCER,id:p.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FRANCE_CUP]={sport:_.SOCCER,id:p.FRANCE_CUP,label:"Coupe de France",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SPAIN_CUP]={sport:_.SOCCER,id:p.SPAIN_CUP,label:"Copa del Rey",opticOddsName:"Spain - Copa del Rey",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ITALY_CUP]={sport:_.SOCCER,id:p.ITALY_CUP,label:"Coppa Italia",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.TENNIS_WTA]={sport:_.TENNIS,id:p.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:n.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.TENNIS_GS]={sport:_.TENNIS,id:p.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:n.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.TENNIS_MASTERS]={sport:_.TENNIS,id:p.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:n.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_TENNIS]={sport:_.TENNIS,id:p.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.GERMANY_CUP]={sport:_.SOCCER,id:p.GERMANY_CUP,label:"DFB Pokal",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LIGA_MX]={sport:_.SOCCER,id:p.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BRAZIL_1]={sport:_.SOCCER,id:p.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_EURO_U21]={sport:_.SOCCER,id:p.UEFA_EURO_U21,label:"UEFA EURO U21",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FIFA_WORLD_CUP_U20]={sport:_.SOCCER,id:p.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:_.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_HANDBALL]={sport:_.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.EUROLEAGUE]={sport:_.BASKETBALL,id:p.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BASKETBALL]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.FIBA_WORLD_CUP]={sport:_.BASKETBALL,id:p.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.FORMULA1]={sport:_.MOTOSPORT,id:p.FORMULA1,label:"Formula 1",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:_.TABLE_TENNIS,id:p.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.MOTOGP]={sport:_.MOTOSPORT,id:p.MOTOGP,label:"MotoGP",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.SAUDI_PROFESSIONAL_LEAGUE]={sport:_.SOCCER,id:p.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_WATERPOLO]={sport:_.WATERPOLO,id:p.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.QUARTER,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_VOLEYBALL]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:n.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},I[p.BOXING]={sport:_.FIGHTING,id:p.BOXING,label:"Boxing",provider:n.EMPTY,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_RUGBY]={sport:_.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:_.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:_.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},I[p.SUMMER_OLYMPICS_HOCKEY]={sport:_.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},I[p.UEFA_NATIONS_LEAGUE]={sport:_.SOCCER,id:p.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:n.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CONCACAF_NATIONS_LEAGUE]={sport:_.SOCCER,id:p.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CSGO]={sport:_.ESPORTS,id:p.CSGO,label:"CS GO",opticOddsName:"CS2",provider:n.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.DOTA2]={sport:_.ESPORTS,id:p.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:n.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SUMMER_OLYMPICS_QUALIFICATION]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:n.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.LOL]={sport:_.ESPORTS,id:p.LOL,label:"LOL",opticOddsName:"League of Legends",provider:n.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.CONMEBOL_WC_QUALIFICATIONS]={sport:_.SOCCER,id:p.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_CONFERENCE_LEAGUE]={sport:_.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.NON_TITLE_BOXING]={sport:_.FIGHTING,id:p.NON_TITLE_BOXING,label:"Boxing",provider:n.EMPTY,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},I[p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:n.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.US_ELECTION]={sport:_.POLITICS,id:p.US_ELECTION,label:"US Election 2024",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.UEFA_SUPER_CUP]={sport:_.SOCCER,id:p.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BRAZIL_CUP]={sport:_.SOCCER,id:p.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ENGLAND_CHAMPIONSHIP]={sport:_.SOCCER,id:p.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SCOTLAND_PREMIERSHIP]={sport:_.SOCCER,id:p.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BELGIUM_LEAGUE]={sport:_.SOCCER,id:p.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CZECH_LEAGUE]={sport:_.SOCCER,id:p.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CHILE_PRIMERA]={sport:_.SOCCER,id:p.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.FINLAND_LEAGUE]={sport:_.SOCCER,id:p.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ARGENTINA_PRIMERA]={sport:_.SOCCER,id:p.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.RUSSIA_PREMIER]={sport:_.SOCCER,id:p.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.TURKEY_SUPER_LEAGUE]={sport:_.SOCCER,id:p.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SERBIA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.GREECE_SUPER_LEAGUE]={sport:_.SOCCER,id:p.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.INDIA_PREMIER]={sport:_.SOCCER,id:p.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.CHINA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.AUSTRALIA_A_LEAGUE]={sport:_.SOCCER,id:p.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SWITZERLAND_SUPER_LEAGUE]={sport:_.SOCCER,id:p.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.BUNDESLIGA_2]={sport:_.SOCCER,id:p.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LA_LIGA_2]={sport:_.SOCCER,id:p.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SERIE_B]={sport:_.SOCCER,id:p.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.INDIA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.LIGUE_2]={sport:_.SOCCER,id:p.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.AUSTRIA_BUNDESLIGA]={sport:_.SOCCER,id:p.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.DENMARK_SUPER_LEAGUE]={sport:_.SOCCER,id:p.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.POLAND_LEAGUE]={sport:_.SOCCER,id:p.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.SWEDEN_LEAGUE]={sport:_.SOCCER,id:p.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.COLOMBIA_PRIMERA_A]={sport:_.SOCCER,id:p.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ENGLAND_EFL_CUP]={sport:_.SOCCER,id:p.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.ENGLAND_LEGAUE_1]={sport:_.SOCCER,id:p.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.URUGUAY_PRIMERA_DIVISION]={sport:_.SOCCER,id:p.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.AFC_CHAMPIONS_LEAGUE]={sport:_.SOCCER,id:p.AFC_CHAMPIONS_LEAGUE,label:"AFC Champions League",opticOddsName:"AFC - Champions League",provider:n.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},I[p.EUROCUP]={sport:_.BASKETBALL,id:p.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.SPAIN_LIGA_ACB]={sport:_.BASKETBALL,id:p.SPAIN_LIGA_ACB,label:"Spain Liga ACB",opticOddsName:"Spain - Liga ACB",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.ITALY_LEGA_BASKET_SERIE_A]={sport:_.BASKETBALL,id:p.ITALY_LEGA_BASKET_SERIE_A,label:"Italy Lega Basket Serie A",opticOddsName:"Italy - Lega Basket Serie A",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.GERMANY_BBL]={sport:_.BASKETBALL,id:p.GERMANY_BBL,label:"Germany BBL",opticOddsName:"Germany - BBL",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.FRANCE_LNB_PRO_A]={sport:_.BASKETBALL,id:p.FRANCE_LNB_PRO_A,label:"France LNB Pro A",opticOddsName:"France - LNB Pro A",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.CHINA_CBA]={sport:_.BASKETBALL,id:p.CHINA_CBA,label:"China CBA",opticOddsName:"China - CBA",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.AUSTRALIA_NBL]={sport:_.BASKETBALL,id:p.AUSTRALIA_NBL,label:"Australia NBL",opticOddsName:"Australia - NBL",provider:n.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},I[p.NFL_FUTURES]={sport:_.FUTURES,id:p.NFL_FUTURES,label:"NFL Futures",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.NBA_FUTURES]={sport:_.FUTURES,id:p.NBA_FUTURES,label:"NBA Futures",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.EPL_FUTURES]={sport:_.FUTURES,id:p.EPL_FUTURES,label:"EPL Futures",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.UEFA_CHAMPIONS_LEAGUE_FUTURES]={sport:_.FUTURES,id:p.UEFA_CHAMPIONS_LEAGUE_FUTURES,label:"UEFA Champions League Futures",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.GOLF_H2H]={sport:_.GOLF,id:p.GOLF_H2H,label:"Golf head-to-head",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I[p.GOLF_WINNER]={sport:_.GOLF,id:p.GOLF_WINNER,label:"Golf Tournament Winner",provider:n.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},I),M=[p.CSGO,p.DOTA2,p.LOL,p.TENNIS_GS,p.TENNIS_MASTERS,p.SUMMER_OLYMPICS_TENNIS,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,p.TENNIS_MASTERS_LIVE_MAPPING_V2_1,p.TENNIS_MASTERS_LIVE_MAPPING_V2_2,p.TENNIS_MASTERS_LIVE_MAPPING_V2_3,p.TENNIS_MASTERS_LIVE_MAPPING_V2_4,p.TENNIS_MASTERS_LIVE_MAPPING_V2_5,p.TENNIS_MASTERS_LIVE_MAPPING_V2_6,p.TENNIS_MASTERS_LIVE_MAPPING_V2_7,p.TENNIS_MASTERS_LIVE_MAPPING_V2_8,p.TENNIS_MASTERS_LIVE_MAPPING_V2_9,p.TENNIS_MASTERS_LIVE_MAPPING_V2_10,p.TENNIS_MASTERS_LIVE_MAPPING_V2_11,p.TENNIS_MASTERS_LIVE_MAPPING_V2_12,p.TENNIS_MASTERS_LIVE_MAPPING_V2_13,p.TENNIS_MASTERS_LIVE_MAPPING_V2_14,p.TENNIS_MASTERS_LIVE_MAPPING_V2_15,p.TENNIS_MASTERS_LIVE_MAPPING_V2_16,p.TENNIS_MASTERS_LIVE_MAPPING_V2_17,p.TENNIS_MASTERS_LIVE_MAPPING_V2_18,p.TENNIS_MASTERS_LIVE_MAPPING_V2_19,p.TENNIS_MASTERS_LIVE_MAPPING_V2_20,p.TENNIS_MASTERS_LIVE_MAPPING_V2_21,p.TENNIS_MASTERS_LIVE_MAPPING_V2_22,p.TENNIS_WTA_LIVE_MAPPING_V2_1,p.TENNIS_WTA_LIVE_MAPPING_V2_2,p.TENNIS_WTA_LIVE_MAPPING_V2_3,p.TENNIS_WTA_LIVE_MAPPING_V2_4,p.TENNIS_WTA_LIVE_MAPPING_V2_5,p.TENNIS_WTA_LIVE_MAPPING_V2_6,p.TENNIS_WTA_LIVE_MAPPING_V2_7],C=[p.SUMMER_OLYMPICS_RUGBY,p.SUMMER_OLYMPICS_RUGBY_WOMEN],u=[p.NCAAF,p.NFL,p.MLB,p.NBA,p.NCAAB,p.NHL,p.WNBA,p.MLS,p.IPL,p.T20_BLAST],m=[701,702,703,704],U={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},y={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},G={1:"NCAAF",2:"NFL",3:"MLB",4:"NBA",5:"NCAAB",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",138:"Spain - Copa del Rey",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20128:"AFC - Champions League",20200:"Eurocup",20201:"Spain - Liga ACB",20202:"Italy - Lega Basket Serie A",20203:"Germany - BBL",20204:"France - LNB Pro A",20205:"China - CBA",20206:"Australia - NBL"},v=function(e){var r=P[e];return r?r.sport:_.EMPTY},D=function(e){var r=P[e];return r?r.label:""},g=function(e){var r=P[e];return r?r.provider:""},b=function(e){var r=P[e];return!!r&&r.isDrawAvailable},F=function(e){var r=new Set;return e.filter((function(e){return"true"===e.enabled})).map((function(e){return r.add(Number(e.sportId))})),Array.from(r)},B=function(e,r){var a=new Set;return r.filter((function(r){return Number(r.sportId)===Number(e)&&"true"===r.enabled})).map((function(e){return a.add(e.marketName)})),Array.from(a)},h=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},w=function(e){var r=P[e];return r?r.opticOddsName:void 0},V=function(e){var r=P[e];return r?r.periodType:""},f=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Spread"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},Y=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Total"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},H=function(e,r,a,i,o,E){var A,t;if(M.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),t=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),t=o.toLowerCase()==a.toLowerCase()),!0!==A){var _=E.get(i.toLowerCase()),p=E.get(r.toLowerCase()),L=E.get(a.toLowerCase());if([_,p].some((function(e){return null==e})))return!1;A=M.includes(e)?_==p||_==L:_==p}if(!0!==t){var s=E.get(o.toLowerCase());if(p=E.get(r.toLowerCase()),[s,L=E.get(a.toLowerCase())].some((function(e){return null==e})))return!1;t=M.includes(e)&&s==p||s==L}return A&&t},W=function(e,r,a,i){var o;if(v(a)==_.TENNIS){var E=r.getTime(),A=e.getTime();o=Math.abs(A-E)<=Number(60*i*1e3)}else o=r.toUTCString()==e.toUTCString();return o},k=0,K="Draw",Q=0,j=.2,x=10001,X=10002,z=100,Z=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(i-1)))return e;a=r}var o=1+a/100,E=o/i,A=e.map((function(e){return e*E}));if(A.some((function(e){return e>=1})))return Array(e.length).fill(0);var t=A.reduce((function(e,r){return e+r}),0);if(t<1)return Array(e.length).fill(0);var _=o/t;return A.map((function(e){return e*_}))},J=function(e,r,a,i){var o=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return o?{minSpread:o.minSpread?Number(o.minSpread):i,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:i,targetSpread:0}},q=function(){return q=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,o=0,E=r.length;o<E;o++)!i&&o in r||(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return e.concat(i||Array.prototype.slice.call(r))},ee=function(e){return e===k?0:re("decimal","impliedProbability",e)},re=function(e,r,a){try{return N(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,o){var E=new Map;return a.forEach((function(a){var A=0,t=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==t.length&&(A=t[0].price);var _=0,p=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==p.length&&(_=p[0].price);var L=0;if(!o){var s=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==s.length&&(L=s[0].price)}E.set(a.toLowerCase(),{homeOdds:A,awayOdds:_,drawOdds:L})})),E},ie=function(e,r,a,i,o,E,A){var t={homeTeam:i.homeTeam,awayTeam:i.awayTeam},_=ae(i.odds,L.MONEYLINE,a,t,e),p=R(_,a,e,A,j);if(p.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:p.errorMessage};var s=(e?[p.homeOdds,p.awayOdds]:[p.homeOdds,p.awayOdds,p.drawOdds]).map((function(e){return ee(e)})),l=J(r,o,Q,E);return{odds:s=null!==l?Z(s,l.minSpread,l.targetSpread):Z(s,E,0)}},oe=function(e,r,a,i,o,E){var A=[[],[],[],[]],t=A[0],_=A[1],p=A[2],L=A[3],s=h(a,E),l={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(s.length>0){Ee(e.odds,s,i[0]).forEach((function(e){"Total"===e.type?.5===Math.abs(Number(e.points)%1)&&_.push(e):"Spread"===e.type?.5===Math.abs(Number(e.points)%1)&&t.push(e):"Moneyline"===e.type&&p.push(e)}));var S=$($($([],Ae(t,l),!0),te(_,l),!0),_e(p,l),!0);pe(S,r,o).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line||0),odds:e.odds},a=s.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,o=null==a?void 0:a.maxOdds;i&&o&&(e.odds[0]>=i||e.odds[0]<=o||e.odds[1]>=i||e.odds[1]<=o)||L.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return L},Ee=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==L.MONEYLINE.toLowerCase()})).map((function(e){return e.marketName.toLowerCase()}));return e.filter((function(e){return i.includes(e.marketName.toLowerCase())&&e.sportsBookName.toLowerCase()==a.toLowerCase()})).map((function(e){return q(q({},e),r.find((function(r){return r.marketName.toLowerCase()===e.marketName.toLowerCase()})))}))},Ae=function(e,r){var a=e.reduce((function(e,a){var i=a.points,o=a.marketName,E=a.price,A=a.selection,t=a.typeId,_=a.sportId,p=a.type,L=A===r.homeTeam,s="".concat(o,"_").concat(L?i:-i);return e[s]||(e[s]={home:null,away:null,typeId:null,sportId:null}),L?e[s].home=E:e[s].away=E,e[s].typeId=t,e[s].type=p,e[s].sportId=_,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],o=a.split("_"),E=(o[0],o[1]),A=parseFloat(E);return null!==i.home&&null!==i.away&&e.push({line:A,odds:[i.home,i.away],typeId:i.typeId,sportId:i.sportId,type:i.type}),e}),[]);return i},te=function(e,r){var a=e.reduce((function(e,r){if(r){var a="".concat(r.marketName,"_").concat(r.selection,"_").concat(r.points);e[a]||(e[a]={over:null,under:null}),"over"===r.selectionLine?e[a].over=r.price:"under"===r.selectionLine&&(e[a].under=r.price),e[a].typeId=r.typeId,e[a].type=r.type,e[a].sportId=r.sportId}return e}),{}),i=Object.entries(a).reduce((function(e,a){var i=a[0],o=a[1],E=i.split("_"),A=(E[0],E[1]),t=E[2],_=parseFloat(t),p=A===r.awayTeam;return null!==o.over&&null!==o.under&&e.push({line:_,odds:[o.over,o.under],typeId:p?Number(o.typeId)+1:o.typeId,sportId:o.sportId,type:o.type}),e}),[]);return i},_e=function(e,r){var a=e.reduce((function(e,a){var i=a.price,o=a.selection,E=a.typeId,A=a.sportId,t=a.type,_=E;return e[_]||(e[_]={home:null,away:null,draw:null,typeId:null,sportId:null}),o.toLowerCase()===r.homeTeam.toLowerCase()?e[_].home=i:o.toLowerCase()===r.awayTeam.toLowerCase()?e[_].away=i:o.toLowerCase()===K.toLowerCase()&&(e[_].draw=i),e[_].typeId=E,e[_].type=t,e[_].sportId=A,e}),{}),i=Object.entries(a).reduce((function(e,r){r[0];var a=r[1];return null!==a.home&&null!==a.away&&e.push({odds:[a.home,a.away,a.draw],typeId:a.typeId,sportId:a.sportId,type:a.type}),e}),[]);return i},pe=function(e,r,a){var i=[];return e.forEach((function(e){var o=3===e.odds.length,E=ee(e.odds[0])||k,A=ee(e.odds[1])||k,t=ee(e.odds[2])||k,_=o?[E,A,t]:[E,A];if(!(E===k||A===k||o&&t===k)){var p,L=J(r,e.sportId,e.typeId,a);p=null!==L?Z(_,L.minSpread,L.targetSpread):Z(_,a,0),i.push(q(q({},e),{odds:p}))}})),i},Le=function(){return Le=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Le.apply(this,arguments)},se=function(e,r,a,i,o,E,A,t){var _=i.filter((function(r){return r.sportId===String(e.leagueId)})),p=ie(!o,_,a,r,e.leagueId,E,A);p.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=p.errorMessage):e.odds=p.odds.map((function(r){return 0!=r?{american:N("impliedProbability",r).to("moneyline"),decimal:N("impliedProbability",r).to("decimal"),normalizedImplied:r}:(e.errorMessage="Bad odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0})}));var L=oe(r,_,e.leagueId,a,E,t).map((function(r){var a=Le(Le({},e),r);return a.odds.length>0&&(a.odds=a.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:N("impliedProbability",e).to("moneyline"),decimal:N("impliedProbability",e).to("decimal"),normalizedImplied:e}}))),a}));return e.childMarkets=L,e},le=function(e,r,a){var i=v(r),o=e.homeTeam,E=e.homeTotal,A=e.awayTeam,t=e.awayTotal,p=e.clock,L=e.period,s=e.status,l=parseInt(L);return"completed"==s.toLowerCase()?{allow:!1,message:"Blocking game ".concat(o," - ").concat(A," because it is no longer live.")}:i===_.BASKETBALL?Se(o,A,l,a.get(_.BASKETBALL)):i===_.HOCKEY?Se(o,A,l,a.get(_.HOCKEY)):i===_.BASEBALL?Se(o,A,l,a.get(_.BASEBALL)):i===_.SOCCER?Te(o,A,p,L,a.get(_.SOCCER)):i===_.TENNIS?de(e,o,A,L,E,t,r,i):i===_.VOLLEYBALL?de(e,o,A,l,E,t,r,i):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},Se=function(e,r,a,i){return!Number.isNaN(a)&&a>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},Te=function(e,r,a,i,o){var E=Number(a);return!Number.isNaN(E)&&E>=o||Number.isNaN(E)&&"HALF"!=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},de=function(e,r,a,i,o,E,A,t){var L=Number(i),s=ne(L,e),l="atp"==e.league.toLowerCase(),S={home:o,away:E};return t==_.VOLLEYBALL?Ie(r,a,s,S,Ne,5==L?Re:Oe):A.toString().startsWith(p.TENNIS_GS)&&l?Ie(r,a,s,S,ce,Me):A.toString().startsWith(p.TENNIS_GS)&&!l||A.toString().startsWith(p.TENNIS_MASTERS)||A.toString().startsWith(p.SUMMER_OLYMPICS_TENNIS)||A.toString().startsWith(p.TENNIS_WTA)?Ie(r,a,s,S,Pe,Me):{allow:!0,message:"The sport ".concat(A," does not have result constraint")}},ne=function(e,r){var a=0,i=0;switch(e){case 1:a=Number(r.homePeriod1),i=Number(r.awayPeriod1);break;case 2:a=Number(r.homePeriod2),i=Number(r.awayPeriod2);break;case 3:a=Number(r.homePeriod3),i=Number(r.awayPeriod3);break;case 4:a=Number(r.homePeriod4),i=Number(r.awayPeriod4);break;case 5:a=Number(r.homePeriod5),i=Number(r.awayPeriod5)}return{home:a,away:i}},Ie=function(e,r,a,i,o,E){return Number(i.home)!=o&&Number(i.away)!=o||!(Number(i.home)==o&&a.home>=E||Number(i.away)==o&&a.away>=E)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(a.home," - ").concat(a.away,")")}},Ne=2,Oe=20,Re=10,ce=2,Pe=1,Me=5,Ce=function(){return Ce=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Ce.apply(this,arguments)},ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display}}))},me=function(e){return e.map((function(e){return Ce(Ce({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status.toLowerCase(),isLive:e.fixture.is_live,clock:e.in_play.clock,period:e.in_play.period?e.in_play.period.toLowerCase():e.in_play.period,homeTeam:e.fixture.home_team_display,awayTeam:e.fixture.away_team_display,homeTotal:e.scores.home.total,awayTotal:e.scores.away.total},ye(e.scores.home.periods,"home")),ye(e.scores.away.periods,"away"))}))},Ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display,isLive:e.is_live,status:e.status,sport:e.sport.id,league:e.league.name,odds:e.odds.map((function(r){return{id:r.id,sportsBookName:r.sportsbook,name:r.name,price:r.price,timestamp:r.timestamp,points:r.points,isMain:r.is_main,isLive:e.is_live,marketName:r.market.toLowerCase(),playerId:r.player_id,selection:r.selection,selectionLine:r.selection_line}}))}}))},ye=function(e,r){return Object.values(e).reduce((function(e,a,i){var o;return Ce(Ce({},e),((o={})["".concat(r,"Period").concat(i+1)]=a,o))}),{})};return r})()));
|
package/package.json
CHANGED
package/src/constants/sports.ts
CHANGED
|
@@ -49,7 +49,8 @@ export const LeagueMap = {
|
|
|
49
49
|
sport: Sport.BASKETBALL,
|
|
50
50
|
id: League.NCAAB,
|
|
51
51
|
label: 'NCAA Basketball',
|
|
52
|
-
|
|
52
|
+
opticOddsName: 'NCAAB',
|
|
53
|
+
provider: Provider.OPTICODDS,
|
|
53
54
|
scoringType: ScoringType.POINTS,
|
|
54
55
|
matchResolveType: MatchResolveType.OVERTIME,
|
|
55
56
|
periodType: PeriodType.QUARTER,
|
|
@@ -202,7 +203,7 @@ export const LeagueMap = {
|
|
|
202
203
|
sport: Sport.CRICKET,
|
|
203
204
|
id: League.IPL,
|
|
204
205
|
label: 'Indian Premier League',
|
|
205
|
-
provider: Provider.
|
|
206
|
+
provider: Provider.EMPTY,
|
|
206
207
|
scoringType: ScoringType.POINTS,
|
|
207
208
|
matchResolveType: MatchResolveType.EMPTY,
|
|
208
209
|
periodType: PeriodType.INNING,
|
|
@@ -212,7 +213,7 @@ export const LeagueMap = {
|
|
|
212
213
|
sport: Sport.CRICKET,
|
|
213
214
|
id: League.T20_BLAST,
|
|
214
215
|
label: 'T20 Blast',
|
|
215
|
-
provider: Provider.
|
|
216
|
+
provider: Provider.EMPTY,
|
|
216
217
|
scoringType: ScoringType.POINTS,
|
|
217
218
|
matchResolveType: MatchResolveType.EMPTY,
|
|
218
219
|
periodType: PeriodType.INNING,
|
|
@@ -222,7 +223,7 @@ export const LeagueMap = {
|
|
|
222
223
|
sport: Sport.HOCKEY,
|
|
223
224
|
id: League.IIHF_WORLD_CHAMPIONSHIP,
|
|
224
225
|
label: 'IIHF World Championship',
|
|
225
|
-
provider: Provider.
|
|
226
|
+
provider: Provider.EMPTY,
|
|
226
227
|
scoringType: ScoringType.GOALS,
|
|
227
228
|
matchResolveType: MatchResolveType.REGULAR,
|
|
228
229
|
periodType: PeriodType.PERIOD,
|
|
@@ -233,7 +234,7 @@ export const LeagueMap = {
|
|
|
233
234
|
id: League.COPA_AMERICA,
|
|
234
235
|
label: 'Copa America',
|
|
235
236
|
opticOddsName: 'CONMEBOL - Copa America',
|
|
236
|
-
provider: Provider.
|
|
237
|
+
provider: Provider.EMPTY,
|
|
237
238
|
scoringType: ScoringType.GOALS,
|
|
238
239
|
matchResolveType: MatchResolveType.REGULAR,
|
|
239
240
|
periodType: PeriodType.HALF,
|
|
@@ -255,7 +256,7 @@ export const LeagueMap = {
|
|
|
255
256
|
id: League.UEFA_EURO,
|
|
256
257
|
label: 'UEFA EURO 2024',
|
|
257
258
|
opticOddsName: 'UEFA - European Championship',
|
|
258
|
-
provider: Provider.
|
|
259
|
+
provider: Provider.EMPTY,
|
|
259
260
|
scoringType: ScoringType.GOALS,
|
|
260
261
|
matchResolveType: MatchResolveType.REGULAR,
|
|
261
262
|
periodType: PeriodType.HALF,
|
|
@@ -288,7 +289,7 @@ export const LeagueMap = {
|
|
|
288
289
|
id: League.SUMMER_OLYMPICS_SOCCER_WOMEN,
|
|
289
290
|
label: 'Olympic Games Soccer Women',
|
|
290
291
|
opticOddsName: 'Olympics Soccer Women',
|
|
291
|
-
provider: Provider.
|
|
292
|
+
provider: Provider.EMPTY,
|
|
292
293
|
scoringType: ScoringType.GOALS,
|
|
293
294
|
matchResolveType: MatchResolveType.REGULAR,
|
|
294
295
|
periodType: PeriodType.HALF,
|
|
@@ -299,7 +300,7 @@ export const LeagueMap = {
|
|
|
299
300
|
id: League.SUMMER_OLYMPICS_SOCCER,
|
|
300
301
|
label: 'Olympic Games Soccer',
|
|
301
302
|
opticOddsName: 'Olympics Soccer Men',
|
|
302
|
-
provider: Provider.
|
|
303
|
+
provider: Provider.EMPTY,
|
|
303
304
|
scoringType: ScoringType.GOALS,
|
|
304
305
|
matchResolveType: MatchResolveType.REGULAR,
|
|
305
306
|
periodType: PeriodType.HALF,
|
|
@@ -309,7 +310,7 @@ export const LeagueMap = {
|
|
|
309
310
|
sport: Sport.SOCCER,
|
|
310
311
|
id: League.FIFA_WC_WOMEN,
|
|
311
312
|
label: 'FIFA World Cup Women',
|
|
312
|
-
provider: Provider.
|
|
313
|
+
provider: Provider.EMPTY,
|
|
313
314
|
scoringType: ScoringType.GOALS,
|
|
314
315
|
matchResolveType: MatchResolveType.REGULAR,
|
|
315
316
|
periodType: PeriodType.HALF,
|
|
@@ -320,7 +321,7 @@ export const LeagueMap = {
|
|
|
320
321
|
id: League.ENGLAND_CUP,
|
|
321
322
|
label: 'FA Cup',
|
|
322
323
|
opticOddsName: 'England - FA Cup',
|
|
323
|
-
provider: Provider.
|
|
324
|
+
provider: Provider.EMPTY,
|
|
324
325
|
scoringType: ScoringType.GOALS,
|
|
325
326
|
matchResolveType: MatchResolveType.REGULAR,
|
|
326
327
|
periodType: PeriodType.HALF,
|
|
@@ -330,7 +331,7 @@ export const LeagueMap = {
|
|
|
330
331
|
sport: Sport.SOCCER,
|
|
331
332
|
id: League.FRANCE_CUP,
|
|
332
333
|
label: 'Coupe de France',
|
|
333
|
-
provider: Provider.
|
|
334
|
+
provider: Provider.EMPTY,
|
|
334
335
|
scoringType: ScoringType.GOALS,
|
|
335
336
|
matchResolveType: MatchResolveType.REGULAR,
|
|
336
337
|
periodType: PeriodType.HALF,
|
|
@@ -340,7 +341,8 @@ export const LeagueMap = {
|
|
|
340
341
|
sport: Sport.SOCCER,
|
|
341
342
|
id: League.SPAIN_CUP,
|
|
342
343
|
label: 'Copa del Rey',
|
|
343
|
-
|
|
344
|
+
opticOddsName: 'Spain - Copa del Rey',
|
|
345
|
+
provider: Provider.OPTICODDS,
|
|
344
346
|
scoringType: ScoringType.GOALS,
|
|
345
347
|
matchResolveType: MatchResolveType.REGULAR,
|
|
346
348
|
periodType: PeriodType.HALF,
|
|
@@ -350,7 +352,7 @@ export const LeagueMap = {
|
|
|
350
352
|
sport: Sport.SOCCER,
|
|
351
353
|
id: League.ITALY_CUP,
|
|
352
354
|
label: 'Coppa Italia',
|
|
353
|
-
provider: Provider.
|
|
355
|
+
provider: Provider.EMPTY,
|
|
354
356
|
scoringType: ScoringType.GOALS,
|
|
355
357
|
matchResolveType: MatchResolveType.REGULAR,
|
|
356
358
|
periodType: PeriodType.HALF,
|
|
@@ -393,7 +395,7 @@ export const LeagueMap = {
|
|
|
393
395
|
sport: Sport.TENNIS,
|
|
394
396
|
id: League.SUMMER_OLYMPICS_TENNIS,
|
|
395
397
|
label: 'Olympic Games Tennis',
|
|
396
|
-
provider: Provider.
|
|
398
|
+
provider: Provider.EMPTY,
|
|
397
399
|
scoringType: ScoringType.SETS,
|
|
398
400
|
matchResolveType: MatchResolveType.REGULAR,
|
|
399
401
|
periodType: PeriodType.SET,
|
|
@@ -403,7 +405,7 @@ export const LeagueMap = {
|
|
|
403
405
|
sport: Sport.SOCCER,
|
|
404
406
|
id: League.GERMANY_CUP,
|
|
405
407
|
label: 'DFB Pokal',
|
|
406
|
-
provider: Provider.
|
|
408
|
+
provider: Provider.EMPTY,
|
|
407
409
|
scoringType: ScoringType.GOALS,
|
|
408
410
|
matchResolveType: MatchResolveType.REGULAR,
|
|
409
411
|
periodType: PeriodType.HALF,
|
|
@@ -435,7 +437,7 @@ export const LeagueMap = {
|
|
|
435
437
|
sport: Sport.SOCCER,
|
|
436
438
|
id: League.UEFA_EURO_U21,
|
|
437
439
|
label: 'UEFA EURO U21',
|
|
438
|
-
provider: Provider.
|
|
440
|
+
provider: Provider.EMPTY,
|
|
439
441
|
scoringType: ScoringType.GOALS,
|
|
440
442
|
matchResolveType: MatchResolveType.REGULAR,
|
|
441
443
|
periodType: PeriodType.HALF,
|
|
@@ -445,7 +447,7 @@ export const LeagueMap = {
|
|
|
445
447
|
sport: Sport.SOCCER,
|
|
446
448
|
id: League.FIFA_WORLD_CUP_U20,
|
|
447
449
|
label: 'FIFA World Cup U20',
|
|
448
|
-
provider: Provider.
|
|
450
|
+
provider: Provider.EMPTY,
|
|
449
451
|
scoringType: ScoringType.GOALS,
|
|
450
452
|
matchResolveType: MatchResolveType.REGULAR,
|
|
451
453
|
periodType: PeriodType.HALF,
|
|
@@ -456,7 +458,7 @@ export const LeagueMap = {
|
|
|
456
458
|
id: League.SUMMER_OLYMPICS_HANDBALL_WOMEN,
|
|
457
459
|
label: 'Olympic Games Handball Women',
|
|
458
460
|
opticOddsName: 'Olympics Handball Women',
|
|
459
|
-
provider: Provider.
|
|
461
|
+
provider: Provider.EMPTY,
|
|
460
462
|
scoringType: ScoringType.GOALS,
|
|
461
463
|
matchResolveType: MatchResolveType.REGULAR,
|
|
462
464
|
periodType: PeriodType.HALF,
|
|
@@ -467,7 +469,7 @@ export const LeagueMap = {
|
|
|
467
469
|
id: League.SUMMER_OLYMPICS_HANDBALL,
|
|
468
470
|
label: 'Olympic Games Handball',
|
|
469
471
|
opticOddsName: 'Olympics Handball Men',
|
|
470
|
-
provider: Provider.
|
|
472
|
+
provider: Provider.EMPTY,
|
|
471
473
|
scoringType: ScoringType.GOALS,
|
|
472
474
|
matchResolveType: MatchResolveType.REGULAR,
|
|
473
475
|
periodType: PeriodType.HALF,
|
|
@@ -489,7 +491,7 @@ export const LeagueMap = {
|
|
|
489
491
|
id: League.SUMMER_OLYMPICS_BASKETBALL,
|
|
490
492
|
label: 'Olympic Games Basketball',
|
|
491
493
|
opticOddsName: 'Olympics Basketball Men',
|
|
492
|
-
provider: Provider.
|
|
494
|
+
provider: Provider.EMPTY,
|
|
493
495
|
scoringType: ScoringType.POINTS,
|
|
494
496
|
matchResolveType: MatchResolveType.OVERTIME,
|
|
495
497
|
periodType: PeriodType.QUARTER,
|
|
@@ -500,7 +502,7 @@ export const LeagueMap = {
|
|
|
500
502
|
id: League.SUMMER_OLYMPICS_BASKETBALL_WOMEN,
|
|
501
503
|
label: 'Olympic Games Basketball Women',
|
|
502
504
|
opticOddsName: 'Olympics Basketball Women',
|
|
503
|
-
provider: Provider.
|
|
505
|
+
provider: Provider.EMPTY,
|
|
504
506
|
scoringType: ScoringType.POINTS,
|
|
505
507
|
matchResolveType: MatchResolveType.OVERTIME,
|
|
506
508
|
periodType: PeriodType.QUARTER,
|
|
@@ -510,7 +512,7 @@ export const LeagueMap = {
|
|
|
510
512
|
sport: Sport.BASKETBALL,
|
|
511
513
|
id: League.FIBA_WORLD_CUP,
|
|
512
514
|
label: 'FIBA World Cup',
|
|
513
|
-
provider: Provider.
|
|
515
|
+
provider: Provider.EMPTY,
|
|
514
516
|
scoringType: ScoringType.POINTS,
|
|
515
517
|
matchResolveType: MatchResolveType.OVERTIME,
|
|
516
518
|
periodType: PeriodType.QUARTER,
|
|
@@ -520,7 +522,7 @@ export const LeagueMap = {
|
|
|
520
522
|
sport: Sport.MOTOSPORT,
|
|
521
523
|
id: League.FORMULA1,
|
|
522
524
|
label: 'Formula 1',
|
|
523
|
-
provider: Provider.
|
|
525
|
+
provider: Provider.EMPTY,
|
|
524
526
|
scoringType: ScoringType.EMPTY,
|
|
525
527
|
matchResolveType: MatchResolveType.EMPTY,
|
|
526
528
|
periodType: PeriodType.EMPTY,
|
|
@@ -530,7 +532,7 @@ export const LeagueMap = {
|
|
|
530
532
|
sport: Sport.VOLLEYBALL,
|
|
531
533
|
id: League.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,
|
|
532
534
|
label: 'Olympic Games Beach Voleyball Women',
|
|
533
|
-
provider: Provider.
|
|
535
|
+
provider: Provider.EMPTY,
|
|
534
536
|
scoringType: ScoringType.SETS,
|
|
535
537
|
matchResolveType: MatchResolveType.REGULAR,
|
|
536
538
|
periodType: PeriodType.SET,
|
|
@@ -540,7 +542,7 @@ export const LeagueMap = {
|
|
|
540
542
|
sport: Sport.VOLLEYBALL,
|
|
541
543
|
id: League.SUMMER_OLYMPICS_BEACH_VOLEYBALL,
|
|
542
544
|
label: 'Olympic Games Beach Voleyball',
|
|
543
|
-
provider: Provider.
|
|
545
|
+
provider: Provider.EMPTY,
|
|
544
546
|
scoringType: ScoringType.SETS,
|
|
545
547
|
matchResolveType: MatchResolveType.REGULAR,
|
|
546
548
|
periodType: PeriodType.SET,
|
|
@@ -550,7 +552,7 @@ export const LeagueMap = {
|
|
|
550
552
|
sport: Sport.TABLE_TENNIS,
|
|
551
553
|
id: League.SUMMER_OLYMPICS_TABLE_TENNIS,
|
|
552
554
|
label: 'Olympic Games Table Tennis',
|
|
553
|
-
provider: Provider.
|
|
555
|
+
provider: Provider.EMPTY,
|
|
554
556
|
scoringType: ScoringType.SETS,
|
|
555
557
|
matchResolveType: MatchResolveType.REGULAR,
|
|
556
558
|
periodType: PeriodType.SET,
|
|
@@ -560,7 +562,7 @@ export const LeagueMap = {
|
|
|
560
562
|
sport: Sport.MOTOSPORT,
|
|
561
563
|
id: League.MOTOGP,
|
|
562
564
|
label: 'MotoGP',
|
|
563
|
-
provider: Provider.
|
|
565
|
+
provider: Provider.EMPTY,
|
|
564
566
|
scoringType: ScoringType.EMPTY,
|
|
565
567
|
matchResolveType: MatchResolveType.EMPTY,
|
|
566
568
|
periodType: PeriodType.EMPTY,
|
|
@@ -582,7 +584,7 @@ export const LeagueMap = {
|
|
|
582
584
|
id: League.SUMMER_OLYMPICS_WATERPOLO,
|
|
583
585
|
label: 'Olympic Games Water Polo',
|
|
584
586
|
opticOddsName: 'Olympics Water Polo',
|
|
585
|
-
provider: Provider.
|
|
587
|
+
provider: Provider.EMPTY,
|
|
586
588
|
scoringType: ScoringType.GOALS,
|
|
587
589
|
matchResolveType: MatchResolveType.REGULAR,
|
|
588
590
|
periodType: PeriodType.QUARTER,
|
|
@@ -593,7 +595,7 @@ export const LeagueMap = {
|
|
|
593
595
|
id: League.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,
|
|
594
596
|
label: 'Olympic Games Volleyball Women',
|
|
595
597
|
opticOddsName: 'Olympics Volleyball Women',
|
|
596
|
-
provider: Provider.
|
|
598
|
+
provider: Provider.EMPTY,
|
|
597
599
|
scoringType: ScoringType.SETS,
|
|
598
600
|
matchResolveType: MatchResolveType.REGULAR,
|
|
599
601
|
periodType: PeriodType.SET,
|
|
@@ -604,7 +606,7 @@ export const LeagueMap = {
|
|
|
604
606
|
id: League.SUMMER_OLYMPICS_VOLEYBALL,
|
|
605
607
|
label: 'Olympic Games Volleyball',
|
|
606
608
|
opticOddsName: 'Olympics Volleyball Men',
|
|
607
|
-
provider: Provider.
|
|
609
|
+
provider: Provider.EMPTY,
|
|
608
610
|
scoringType: ScoringType.SETS,
|
|
609
611
|
matchResolveType: MatchResolveType.REGULAR,
|
|
610
612
|
periodType: PeriodType.SET,
|
|
@@ -614,7 +616,7 @@ export const LeagueMap = {
|
|
|
614
616
|
sport: Sport.FIGHTING,
|
|
615
617
|
id: League.BOXING,
|
|
616
618
|
label: 'Boxing',
|
|
617
|
-
provider: Provider.
|
|
619
|
+
provider: Provider.EMPTY,
|
|
618
620
|
scoringType: ScoringType.ROUNDS,
|
|
619
621
|
matchResolveType: MatchResolveType.EMPTY,
|
|
620
622
|
periodType: PeriodType.ROUND,
|
|
@@ -625,7 +627,7 @@ export const LeagueMap = {
|
|
|
625
627
|
id: League.SUMMER_OLYMPICS_RUGBY,
|
|
626
628
|
label: 'Olympic Games Rugby',
|
|
627
629
|
opticOddsName: 'Olympics Rugby 7s Men',
|
|
628
|
-
provider: Provider.
|
|
630
|
+
provider: Provider.EMPTY,
|
|
629
631
|
scoringType: ScoringType.POINTS,
|
|
630
632
|
matchResolveType: MatchResolveType.REGULAR,
|
|
631
633
|
periodType: PeriodType.HALF,
|
|
@@ -636,7 +638,7 @@ export const LeagueMap = {
|
|
|
636
638
|
id: League.SUMMER_OLYMPICS_RUGBY_WOMEN,
|
|
637
639
|
label: 'Olympic Games Rugby Women',
|
|
638
640
|
opticOddsName: 'Olympics Rugby 7s Women',
|
|
639
|
-
provider: Provider.
|
|
641
|
+
provider: Provider.EMPTY,
|
|
640
642
|
scoringType: ScoringType.POINTS,
|
|
641
643
|
matchResolveType: MatchResolveType.REGULAR,
|
|
642
644
|
periodType: PeriodType.HALF,
|
|
@@ -646,7 +648,7 @@ export const LeagueMap = {
|
|
|
646
648
|
sport: Sport.HOCKEY,
|
|
647
649
|
id: League.SUMMER_OLYMPICS_HOCKEY_WOMEN,
|
|
648
650
|
label: 'Olympic Games Hockey Women',
|
|
649
|
-
provider: Provider.
|
|
651
|
+
provider: Provider.EMPTY,
|
|
650
652
|
scoringType: ScoringType.GOALS,
|
|
651
653
|
matchResolveType: MatchResolveType.REGULAR,
|
|
652
654
|
periodType: PeriodType.PERIOD,
|
|
@@ -656,7 +658,7 @@ export const LeagueMap = {
|
|
|
656
658
|
sport: Sport.HOCKEY,
|
|
657
659
|
id: League.SUMMER_OLYMPICS_HOCKEY,
|
|
658
660
|
label: 'Olympic Games Hockey',
|
|
659
|
-
provider: Provider.
|
|
661
|
+
provider: Provider.EMPTY,
|
|
660
662
|
scoringType: ScoringType.GOALS,
|
|
661
663
|
matchResolveType: MatchResolveType.REGULAR,
|
|
662
664
|
periodType: PeriodType.PERIOD,
|
|
@@ -677,7 +679,7 @@ export const LeagueMap = {
|
|
|
677
679
|
sport: Sport.SOCCER,
|
|
678
680
|
id: League.CONCACAF_NATIONS_LEAGUE,
|
|
679
681
|
label: 'CONCACAF Nations League',
|
|
680
|
-
provider: Provider.
|
|
682
|
+
provider: Provider.EMPTY,
|
|
681
683
|
scoringType: ScoringType.GOALS,
|
|
682
684
|
matchResolveType: MatchResolveType.REGULAR,
|
|
683
685
|
periodType: PeriodType.HALF,
|
|
@@ -710,7 +712,7 @@ export const LeagueMap = {
|
|
|
710
712
|
id: League.SUMMER_OLYMPICS_BASKETBALL_3X3,
|
|
711
713
|
label: 'Olympic Games Basketball 3x3',
|
|
712
714
|
opticOddsName: 'Olympics Basketball 3x3 Men',
|
|
713
|
-
provider: Provider.
|
|
715
|
+
provider: Provider.EMPTY,
|
|
714
716
|
scoringType: ScoringType.POINTS,
|
|
715
717
|
matchResolveType: MatchResolveType.OVERTIME,
|
|
716
718
|
periodType: PeriodType.QUARTER,
|
|
@@ -721,7 +723,7 @@ export const LeagueMap = {
|
|
|
721
723
|
id: League.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,
|
|
722
724
|
label: 'Olympic Games Basketball 3x3 Women',
|
|
723
725
|
opticOddsName: 'Olympics Basketball 3x3 Women',
|
|
724
|
-
provider: Provider.
|
|
726
|
+
provider: Provider.EMPTY,
|
|
725
727
|
scoringType: ScoringType.POINTS,
|
|
726
728
|
matchResolveType: MatchResolveType.OVERTIME,
|
|
727
729
|
periodType: PeriodType.QUARTER,
|
|
@@ -731,7 +733,7 @@ export const LeagueMap = {
|
|
|
731
733
|
sport: Sport.BASKETBALL,
|
|
732
734
|
id: League.SUMMER_OLYMPICS_QUALIFICATION,
|
|
733
735
|
label: 'Summer Olympics Basketball Qualification',
|
|
734
|
-
provider: Provider.
|
|
736
|
+
provider: Provider.EMPTY,
|
|
735
737
|
scoringType: ScoringType.POINTS,
|
|
736
738
|
matchResolveType: MatchResolveType.OVERTIME,
|
|
737
739
|
periodType: PeriodType.QUARTER,
|
|
@@ -752,7 +754,7 @@ export const LeagueMap = {
|
|
|
752
754
|
sport: Sport.SOCCER,
|
|
753
755
|
id: League.CONMEBOL_WC_QUALIFICATIONS,
|
|
754
756
|
label: 'CONMEBOL WC Qualification',
|
|
755
|
-
provider: Provider.
|
|
757
|
+
provider: Provider.EMPTY,
|
|
756
758
|
scoringType: ScoringType.GOALS,
|
|
757
759
|
matchResolveType: MatchResolveType.REGULAR,
|
|
758
760
|
periodType: PeriodType.HALF,
|
|
@@ -773,7 +775,7 @@ export const LeagueMap = {
|
|
|
773
775
|
sport: Sport.FIGHTING,
|
|
774
776
|
id: League.NON_TITLE_BOXING,
|
|
775
777
|
label: 'Boxing',
|
|
776
|
-
provider: Provider.
|
|
778
|
+
provider: Provider.EMPTY,
|
|
777
779
|
scoringType: ScoringType.ROUNDS,
|
|
778
780
|
matchResolveType: MatchResolveType.EMPTY,
|
|
779
781
|
periodType: PeriodType.ROUND,
|
|
@@ -784,7 +786,7 @@ export const LeagueMap = {
|
|
|
784
786
|
id: League.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,
|
|
785
787
|
label: 'UEFA Champions League Qualification',
|
|
786
788
|
opticOddsName: 'UEFA - Champions League',
|
|
787
|
-
provider: Provider.
|
|
789
|
+
provider: Provider.EMPTY,
|
|
788
790
|
scoringType: ScoringType.GOALS,
|
|
789
791
|
matchResolveType: MatchResolveType.REGULAR,
|
|
790
792
|
periodType: PeriodType.HALF,
|
|
@@ -795,7 +797,7 @@ export const LeagueMap = {
|
|
|
795
797
|
id: League.UEFA_EUROPA_LEAGUE_QUALIFICATION,
|
|
796
798
|
label: 'UEFA Europa League Qualification',
|
|
797
799
|
opticOddsName: 'UEFA - Europa League',
|
|
798
|
-
provider: Provider.
|
|
800
|
+
provider: Provider.EMPTY,
|
|
799
801
|
scoringType: ScoringType.GOALS,
|
|
800
802
|
matchResolveType: MatchResolveType.REGULAR,
|
|
801
803
|
periodType: PeriodType.HALF,
|
|
@@ -806,7 +808,7 @@ export const LeagueMap = {
|
|
|
806
808
|
id: League.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,
|
|
807
809
|
label: 'UEFA Conference League Qualification',
|
|
808
810
|
opticOddsName: 'UEFA - Europa Conference League',
|
|
809
|
-
provider: Provider.
|
|
811
|
+
provider: Provider.EMPTY,
|
|
810
812
|
scoringType: ScoringType.GOALS,
|
|
811
813
|
matchResolveType: MatchResolveType.REGULAR,
|
|
812
814
|
periodType: PeriodType.HALF,
|
|
@@ -1152,6 +1154,17 @@ export const LeagueMap = {
|
|
|
1152
1154
|
periodType: PeriodType.HALF,
|
|
1153
1155
|
isDrawAvailable: true,
|
|
1154
1156
|
},
|
|
1157
|
+
[League.AFC_CHAMPIONS_LEAGUE]: {
|
|
1158
|
+
sport: Sport.SOCCER,
|
|
1159
|
+
id: League.AFC_CHAMPIONS_LEAGUE,
|
|
1160
|
+
label: 'AFC Champions League',
|
|
1161
|
+
opticOddsName: 'AFC - Champions League',
|
|
1162
|
+
provider: Provider.OPTICODDS,
|
|
1163
|
+
scoringType: ScoringType.GOALS,
|
|
1164
|
+
matchResolveType: MatchResolveType.REGULAR,
|
|
1165
|
+
periodType: PeriodType.HALF,
|
|
1166
|
+
isDrawAvailable: true,
|
|
1167
|
+
},
|
|
1155
1168
|
[League.EUROCUP]: {
|
|
1156
1169
|
sport: Sport.BASKETBALL,
|
|
1157
1170
|
id: League.EUROCUP,
|
|
@@ -1163,6 +1176,72 @@ export const LeagueMap = {
|
|
|
1163
1176
|
periodType: PeriodType.QUARTER,
|
|
1164
1177
|
isDrawAvailable: false,
|
|
1165
1178
|
},
|
|
1179
|
+
[League.SPAIN_LIGA_ACB]: {
|
|
1180
|
+
sport: Sport.BASKETBALL,
|
|
1181
|
+
id: League.SPAIN_LIGA_ACB,
|
|
1182
|
+
label: 'Spain Liga ACB',
|
|
1183
|
+
opticOddsName: 'Spain - Liga ACB',
|
|
1184
|
+
provider: Provider.OPTICODDS,
|
|
1185
|
+
scoringType: ScoringType.POINTS,
|
|
1186
|
+
matchResolveType: MatchResolveType.OVERTIME,
|
|
1187
|
+
periodType: PeriodType.QUARTER,
|
|
1188
|
+
isDrawAvailable: false,
|
|
1189
|
+
},
|
|
1190
|
+
[League.ITALY_LEGA_BASKET_SERIE_A]: {
|
|
1191
|
+
sport: Sport.BASKETBALL,
|
|
1192
|
+
id: League.ITALY_LEGA_BASKET_SERIE_A,
|
|
1193
|
+
label: 'Italy Lega Basket Serie A',
|
|
1194
|
+
opticOddsName: 'Italy - Lega Basket Serie A',
|
|
1195
|
+
provider: Provider.OPTICODDS,
|
|
1196
|
+
scoringType: ScoringType.POINTS,
|
|
1197
|
+
matchResolveType: MatchResolveType.OVERTIME,
|
|
1198
|
+
periodType: PeriodType.QUARTER,
|
|
1199
|
+
isDrawAvailable: false,
|
|
1200
|
+
},
|
|
1201
|
+
[League.GERMANY_BBL]: {
|
|
1202
|
+
sport: Sport.BASKETBALL,
|
|
1203
|
+
id: League.GERMANY_BBL,
|
|
1204
|
+
label: 'Germany BBL',
|
|
1205
|
+
opticOddsName: 'Germany - BBL',
|
|
1206
|
+
provider: Provider.OPTICODDS,
|
|
1207
|
+
scoringType: ScoringType.POINTS,
|
|
1208
|
+
matchResolveType: MatchResolveType.OVERTIME,
|
|
1209
|
+
periodType: PeriodType.QUARTER,
|
|
1210
|
+
isDrawAvailable: false,
|
|
1211
|
+
},
|
|
1212
|
+
[League.FRANCE_LNB_PRO_A]: {
|
|
1213
|
+
sport: Sport.BASKETBALL,
|
|
1214
|
+
id: League.FRANCE_LNB_PRO_A,
|
|
1215
|
+
label: 'France LNB Pro A',
|
|
1216
|
+
opticOddsName: 'France - LNB Pro A',
|
|
1217
|
+
provider: Provider.OPTICODDS,
|
|
1218
|
+
scoringType: ScoringType.POINTS,
|
|
1219
|
+
matchResolveType: MatchResolveType.OVERTIME,
|
|
1220
|
+
periodType: PeriodType.QUARTER,
|
|
1221
|
+
isDrawAvailable: false,
|
|
1222
|
+
},
|
|
1223
|
+
[League.CHINA_CBA]: {
|
|
1224
|
+
sport: Sport.BASKETBALL,
|
|
1225
|
+
id: League.CHINA_CBA,
|
|
1226
|
+
label: 'China CBA',
|
|
1227
|
+
opticOddsName: 'China - CBA',
|
|
1228
|
+
provider: Provider.OPTICODDS,
|
|
1229
|
+
scoringType: ScoringType.POINTS,
|
|
1230
|
+
matchResolveType: MatchResolveType.OVERTIME,
|
|
1231
|
+
periodType: PeriodType.QUARTER,
|
|
1232
|
+
isDrawAvailable: false,
|
|
1233
|
+
},
|
|
1234
|
+
[League.AUSTRALIA_NBL]: {
|
|
1235
|
+
sport: Sport.BASKETBALL,
|
|
1236
|
+
id: League.AUSTRALIA_NBL,
|
|
1237
|
+
label: 'Australia NBL',
|
|
1238
|
+
opticOddsName: 'Australia - NBL',
|
|
1239
|
+
provider: Provider.OPTICODDS,
|
|
1240
|
+
scoringType: ScoringType.POINTS,
|
|
1241
|
+
matchResolveType: MatchResolveType.OVERTIME,
|
|
1242
|
+
periodType: PeriodType.QUARTER,
|
|
1243
|
+
isDrawAvailable: false,
|
|
1244
|
+
},
|
|
1166
1245
|
[League.NFL_FUTURES]: {
|
|
1167
1246
|
sport: Sport.FUTURES,
|
|
1168
1247
|
id: League.NFL_FUTURES,
|
|
@@ -1193,11 +1272,21 @@ export const LeagueMap = {
|
|
|
1193
1272
|
periodType: PeriodType.EMPTY,
|
|
1194
1273
|
isDrawAvailable: false,
|
|
1195
1274
|
},
|
|
1275
|
+
[League.UEFA_CHAMPIONS_LEAGUE_FUTURES]: {
|
|
1276
|
+
sport: Sport.FUTURES,
|
|
1277
|
+
id: League.UEFA_CHAMPIONS_LEAGUE_FUTURES,
|
|
1278
|
+
label: 'UEFA Champions League Futures',
|
|
1279
|
+
provider: Provider.EMPTY,
|
|
1280
|
+
scoringType: ScoringType.EMPTY,
|
|
1281
|
+
matchResolveType: MatchResolveType.EMPTY,
|
|
1282
|
+
periodType: PeriodType.EMPTY,
|
|
1283
|
+
isDrawAvailable: false,
|
|
1284
|
+
},
|
|
1196
1285
|
[League.GOLF_H2H]: {
|
|
1197
1286
|
sport: Sport.GOLF,
|
|
1198
1287
|
id: League.GOLF_H2H,
|
|
1199
1288
|
label: 'Golf head-to-head',
|
|
1200
|
-
provider: Provider.
|
|
1289
|
+
provider: Provider.EMPTY,
|
|
1201
1290
|
scoringType: ScoringType.EMPTY,
|
|
1202
1291
|
matchResolveType: MatchResolveType.EMPTY,
|
|
1203
1292
|
periodType: PeriodType.EMPTY,
|
|
@@ -1207,7 +1296,7 @@ export const LeagueMap = {
|
|
|
1207
1296
|
sport: Sport.GOLF,
|
|
1208
1297
|
id: League.GOLF_WINNER,
|
|
1209
1298
|
label: 'Golf Tournament Winner',
|
|
1210
|
-
provider: Provider.
|
|
1299
|
+
provider: Provider.EMPTY,
|
|
1211
1300
|
scoringType: ScoringType.EMPTY,
|
|
1212
1301
|
matchResolveType: MatchResolveType.EMPTY,
|
|
1213
1302
|
periodType: PeriodType.EMPTY,
|
|
@@ -1377,6 +1466,7 @@ export const LeagueIdMapOpticOdds = {
|
|
|
1377
1466
|
2: 'NFL',
|
|
1378
1467
|
3: 'MLB',
|
|
1379
1468
|
4: 'NBA',
|
|
1469
|
+
5: 'NCAAB',
|
|
1380
1470
|
6: 'NHL',
|
|
1381
1471
|
7: 'UFC',
|
|
1382
1472
|
8: 'WNBA',
|
|
@@ -1393,6 +1483,7 @@ export const LeagueIdMapOpticOdds = {
|
|
|
1393
1483
|
45: 'CONMEBOL - Copa Libertadores',
|
|
1394
1484
|
57: 'Netherlands - Eredivisie',
|
|
1395
1485
|
61: 'Portugal - Primeira Liga',
|
|
1486
|
+
138: 'Spain - Copa del Rey',
|
|
1396
1487
|
230: 'Mexico - Liga MX',
|
|
1397
1488
|
268: 'Brazil - Serie A',
|
|
1398
1489
|
399: 'Euroleague',
|
|
@@ -1432,5 +1523,12 @@ export const LeagueIdMapOpticOdds = {
|
|
|
1432
1523
|
20125: 'England - EFL Cup',
|
|
1433
1524
|
20126: 'England - League 1',
|
|
1434
1525
|
20127: 'Uruguay - Primera Division',
|
|
1526
|
+
20128: 'AFC - Champions League',
|
|
1435
1527
|
20200: 'Eurocup',
|
|
1528
|
+
20201: 'Spain - Liga ACB',
|
|
1529
|
+
20202: 'Italy - Lega Basket Serie A',
|
|
1530
|
+
20203: 'Germany - BBL',
|
|
1531
|
+
20204: 'France - LNB Pro A',
|
|
1532
|
+
20205: 'China - CBA',
|
|
1533
|
+
20206: 'Australia - NBL',
|
|
1436
1534
|
};
|
package/src/enums/sports.ts
CHANGED
|
@@ -128,10 +128,18 @@ export enum League {
|
|
|
128
128
|
ENGLAND_EFL_CUP = 20125,
|
|
129
129
|
ENGLAND_LEGAUE_1 = 20126,
|
|
130
130
|
URUGUAY_PRIMERA_DIVISION = 20127,
|
|
131
|
+
AFC_CHAMPIONS_LEAGUE = 20128,
|
|
131
132
|
EUROCUP = 20200,
|
|
133
|
+
SPAIN_LIGA_ACB = 20201,
|
|
134
|
+
ITALY_LEGA_BASKET_SERIE_A = 20202,
|
|
135
|
+
GERMANY_BBL = 20203,
|
|
136
|
+
FRANCE_LNB_PRO_A = 20204,
|
|
137
|
+
CHINA_CBA = 20205,
|
|
138
|
+
AUSTRALIA_NBL = 20206,
|
|
132
139
|
NFL_FUTURES = 30002,
|
|
133
140
|
NBA_FUTURES = 30004,
|
|
134
141
|
EPL_FUTURES = 30011,
|
|
142
|
+
UEFA_CHAMPIONS_LEAGUE_FUTURES = 30016,
|
|
135
143
|
GOLF_H2H = 100021,
|
|
136
144
|
GOLF_WINNER = 100121,
|
|
137
145
|
TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15312,
|
package/src/utils/markets.ts
CHANGED
package/src/utils/odds.ts
CHANGED
|
@@ -191,7 +191,7 @@ export const createChildMarkets: (
|
|
|
191
191
|
defaultSpreadForLiveMarkets,
|
|
192
192
|
leagueMap
|
|
193
193
|
) => {
|
|
194
|
-
const [spreadOdds, totalOdds, childMarkets]: any[] = [[], [], []];
|
|
194
|
+
const [spreadOdds, totalOdds, moneylineOdds, childMarkets]: any[] = [[], [], [], []];
|
|
195
195
|
const leagueInfo = getLeagueInfo(leagueId, leagueMap);
|
|
196
196
|
const commonData = {
|
|
197
197
|
homeTeam: apiResponseWithOdds.homeTeam,
|
|
@@ -205,19 +205,20 @@ export const createChildMarkets: (
|
|
|
205
205
|
liveOddsProviders[0]
|
|
206
206
|
);
|
|
207
207
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
allValidOdds.forEach((odd) => {
|
|
208
|
+
allChildOdds.forEach((odd) => {
|
|
211
209
|
if (odd.type === 'Total') {
|
|
212
|
-
totalOdds.push(odd);
|
|
210
|
+
if (Math.abs(Number(odd.points) % 1) === 0.5) totalOdds.push(odd);
|
|
213
211
|
} else if (odd.type === 'Spread') {
|
|
214
|
-
spreadOdds.push(odd);
|
|
212
|
+
if (Math.abs(Number(odd.points) % 1) === 0.5) spreadOdds.push(odd);
|
|
213
|
+
} else if (odd.type === 'Moneyline') {
|
|
214
|
+
moneylineOdds.push(odd);
|
|
215
215
|
}
|
|
216
216
|
});
|
|
217
217
|
|
|
218
218
|
const formattedOdds = [
|
|
219
219
|
...groupAndFormatSpreadOdds(spreadOdds, commonData),
|
|
220
220
|
...groupAndFormatTotalOdds(totalOdds, commonData),
|
|
221
|
+
...groupAndFormatMoneylineOdds(moneylineOdds, commonData),
|
|
221
222
|
];
|
|
222
223
|
|
|
223
224
|
const oddsWithSpreadAdjusted = adjustSpreadOnChildOdds(
|
|
@@ -231,7 +232,7 @@ export const createChildMarkets: (
|
|
|
231
232
|
leagueId: Number(data.sportId),
|
|
232
233
|
typeId: Number(data.typeId),
|
|
233
234
|
type: data.type.toLowerCase(),
|
|
234
|
-
line: Number(data.line),
|
|
235
|
+
line: Number(data.line || 0),
|
|
235
236
|
odds: data.odds,
|
|
236
237
|
};
|
|
237
238
|
const leagueInfoByTypeId = leagueInfo.find((league) => Number(league.typeId) === Number(data.typeId));
|
|
@@ -294,10 +295,10 @@ export const filterOddsByMarketNameBookmaker = (oddsArray, leagueInfos: LeagueIn
|
|
|
294
295
|
export const groupAndFormatSpreadOdds = (oddsArray, commonData) => {
|
|
295
296
|
// Group odds by their selection points and selection
|
|
296
297
|
const groupedOdds = oddsArray.reduce((acc: any, odd: any) => {
|
|
297
|
-
const { points, price, selection, typeId, sportId, type } = odd;
|
|
298
|
+
const { points, marketName, price, selection, typeId, sportId, type } = odd;
|
|
298
299
|
const isHomeTeam = selection === commonData.homeTeam;
|
|
299
300
|
|
|
300
|
-
const key = isHomeTeam ? points : -points
|
|
301
|
+
const key = `${marketName}_${isHomeTeam ? points : -points}`;
|
|
301
302
|
|
|
302
303
|
if (!acc[key]) {
|
|
303
304
|
acc[key] = { home: null, away: null, typeId: null, sportId: null };
|
|
@@ -317,7 +318,8 @@ export const groupAndFormatSpreadOdds = (oddsArray, commonData) => {
|
|
|
317
318
|
}, {}) as any;
|
|
318
319
|
// Format the grouped odds into the desired output
|
|
319
320
|
const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [key, value]) => {
|
|
320
|
-
const
|
|
321
|
+
const [_marketName, lineFloat] = key.split('_');
|
|
322
|
+
const line = parseFloat(lineFloat);
|
|
321
323
|
if ((value as any).home !== null && (value as any).away !== null) {
|
|
322
324
|
acc.push({
|
|
323
325
|
line: line as any,
|
|
@@ -343,7 +345,7 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
|
|
|
343
345
|
// Group odds by their selection points and selection
|
|
344
346
|
const groupedOdds = oddsArray.reduce((acc, odd) => {
|
|
345
347
|
if (odd) {
|
|
346
|
-
const key = `${odd.selection}_${odd.points}`;
|
|
348
|
+
const key = `${odd.marketName}_${odd.selection}_${odd.points}`;
|
|
347
349
|
if (!acc[key]) {
|
|
348
350
|
acc[key] = { over: null, under: null };
|
|
349
351
|
}
|
|
@@ -363,7 +365,7 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
|
|
|
363
365
|
|
|
364
366
|
// Format the grouped odds into the desired output
|
|
365
367
|
const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [key, value]) => {
|
|
366
|
-
const [selection, selectionLine] = key.split('_');
|
|
368
|
+
const [_marketName, selection, selectionLine] = key.split('_');
|
|
367
369
|
const line = parseFloat(selectionLine);
|
|
368
370
|
|
|
369
371
|
// if we have away team in total odds we know the market is team total and we need to increase typeId by one.
|
|
@@ -384,12 +386,59 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
|
|
|
384
386
|
return formattedOdds;
|
|
385
387
|
};
|
|
386
388
|
|
|
389
|
+
/**
|
|
390
|
+
* Groups spread odds by their lines and formats the result.
|
|
391
|
+
*
|
|
392
|
+
* @param {Array} oddsArray - The input array of odds objects.
|
|
393
|
+
* @param {Object} commonData - The common data object containing homeTeam information.
|
|
394
|
+
* @returns {Array} The grouped and formatted spread odds.
|
|
395
|
+
*/
|
|
396
|
+
export const groupAndFormatMoneylineOdds = (oddsArray, commonData) => {
|
|
397
|
+
// Group odds by their selection points and selection
|
|
398
|
+
const groupedOdds = oddsArray.reduce((acc: any, odd: any) => {
|
|
399
|
+
const { price, selection, typeId, sportId, type } = odd;
|
|
400
|
+
const key = typeId;
|
|
401
|
+
|
|
402
|
+
if (!acc[key]) {
|
|
403
|
+
acc[key] = { home: null, away: null, draw: null, typeId: null, sportId: null };
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
if (selection.toLowerCase() === commonData.homeTeam.toLowerCase()) acc[key].home = price;
|
|
407
|
+
else if (selection.toLowerCase() === commonData.awayTeam.toLowerCase()) acc[key].away = price;
|
|
408
|
+
else if (selection.toLowerCase() === DRAW.toLowerCase()) acc[key].draw = price;
|
|
409
|
+
|
|
410
|
+
acc[key].typeId = typeId;
|
|
411
|
+
acc[key].type = type;
|
|
412
|
+
acc[key].sportId = sportId;
|
|
413
|
+
|
|
414
|
+
return acc;
|
|
415
|
+
}, {}) as any;
|
|
416
|
+
// Format the grouped odds into the desired output
|
|
417
|
+
const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [_key, value]) => {
|
|
418
|
+
if ((value as any).home !== null && (value as any).away !== null) {
|
|
419
|
+
acc.push({
|
|
420
|
+
odds: [(value as any).home, (value as any).away, (value as any).draw],
|
|
421
|
+
typeId: value.typeId,
|
|
422
|
+
sportId: value.sportId,
|
|
423
|
+
type: value.type,
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
return acc;
|
|
427
|
+
}, []);
|
|
428
|
+
|
|
429
|
+
return formattedOdds;
|
|
430
|
+
};
|
|
431
|
+
|
|
387
432
|
export const adjustSpreadOnChildOdds = (iterableGroupedOdds, spreadDataForSport, defaultSpreadForLiveMarkets) => {
|
|
388
433
|
const result: any[] = [];
|
|
389
434
|
iterableGroupedOdds.forEach((data) => {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
435
|
+
const hasDrawOdds = data.odds.length === 3;
|
|
436
|
+
const homeTeamOdds = convertOddsToImpl(data.odds[0]) || ZERO;
|
|
437
|
+
const awayTeamOdds = convertOddsToImpl(data.odds[1]) || ZERO;
|
|
438
|
+
const drawOdds = convertOddsToImpl(data.odds[2]) || ZERO;
|
|
439
|
+
const odds = hasDrawOdds ? [homeTeamOdds, awayTeamOdds, drawOdds] : [homeTeamOdds, awayTeamOdds];
|
|
440
|
+
|
|
441
|
+
const isZeroOddsChild = homeTeamOdds === ZERO || awayTeamOdds === ZERO || (hasDrawOdds && drawOdds === ZERO);
|
|
393
442
|
if (!isZeroOddsChild) {
|
|
394
443
|
const spreadData = getSpreadData(
|
|
395
444
|
spreadDataForSport,
|
|
@@ -399,15 +448,11 @@ export const adjustSpreadOnChildOdds = (iterableGroupedOdds, spreadDataForSport,
|
|
|
399
448
|
);
|
|
400
449
|
let adjustedOdds;
|
|
401
450
|
if (spreadData !== null) {
|
|
402
|
-
adjustedOdds = adjustSpreadOnOdds(
|
|
403
|
-
[homeTeamOdds, awayTeamOdds],
|
|
404
|
-
spreadData.minSpread,
|
|
405
|
-
spreadData.targetSpread
|
|
406
|
-
);
|
|
451
|
+
adjustedOdds = adjustSpreadOnOdds(odds, spreadData.minSpread, spreadData.targetSpread);
|
|
407
452
|
} else {
|
|
408
|
-
adjustedOdds = adjustSpreadOnOdds(
|
|
453
|
+
adjustedOdds = adjustSpreadOnOdds(odds, defaultSpreadForLiveMarkets, 0);
|
|
409
454
|
}
|
|
410
|
-
|
|
455
|
+
|
|
411
456
|
result.push({
|
|
412
457
|
...data,
|
|
413
458
|
odds: adjustedOdds,
|