overtime-live-trading-utils 0.0.75 → 0.0.76

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 CHANGED
@@ -1 +1 @@
1
- !function(e,a){"object"==typeof exports&&"object"==typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):"object"==typeof exports?exports.thalesUtils=a():e.thalesUtils=a()}(this,(()=>(()=>{"use strict";var e={d:(a,_)=>{for(var r in _)e.o(_,r)&&!e.o(a,r)&&Object.defineProperty(a,r,{enumerable:!0,get:_[r]})},o:(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},a={};e.r(a),e.d(a,{ANYTIME_GOAL_SCORER:()=>F,ASIAN_HANDICAP:()=>g,ASIAN_HANDICAP_CARDS:()=>v,ASIAN_HANDICAP_CORNERS:()=>B,BOTH_TEAMS_TO_SCORE:()=>H,CORRECT_SCORE:()=>b,DRAW:()=>u_,DRAW_NO_BET:()=>h,EIGHTH_INNING_MONEYLINE_3_WAY:()=>Be,EIGHTH_INNING_RUN_LINE:()=>He,EIGHTH_INNING_TOTAL_RUNS:()=>be,FIFTH_INNING_MONEYLINE_3_WAY:()=>me,FIFTH_INNING_RUN_LINE:()=>fe,FIFTH_INNING_TOTAL_RUNS:()=>Ue,FIRST_3_INNINGS_MONEYLINE:()=>re,FIRST_3_INNINGS_RUN_LINE:()=>oe,FIRST_3_INNINGS_TEAM_TOTAL:()=>te,FIRST_3_INNINGS_TOTAL_RUNS:()=>ne,FIRST_7_INNINGS_MONEYLINE:()=>Ee,FIRST_7_INNINGS_RUN_LINE:()=>ie,FIRST_7_INNINGS_TEAM_TOTAL:()=>se,FIRST_7_INNINGS_TOTAL_RUNS:()=>Ae,FIRST_BASKET_INCLUDING_FT:()=>va,FIRST_GOAL_SCORER:()=>y,FIRST_HALF_ASIAN_HANDICAP:()=>T,FIRST_HALF_ASIAN_HANDICAP_CORNERS:()=>O,FIRST_HALF_BOTH_TEAMS_TO_SCORE:()=>d,FIRST_HALF_CORRECT_SCORE:()=>R,FIRST_HALF_DOUBLE_CHANCE:()=>Aa,FIRST_HALF_MONEYLINE:()=>M,FIRST_HALF_MONEYLINE_3_WAY:()=>Sa,FIRST_HALF_POINT_SPREAD:()=>Na,FIRST_HALF_RACE_TO_20_POINTS:()=>Ia,FIRST_HALF_RACE_TO_25_POINTS:()=>la,FIRST_HALF_RACE_TO_30_POINTS:()=>La,FIRST_HALF_RACE_TO_35_POINTS:()=>Ta,FIRST_HALF_RACE_TO_40_POINTS:()=>Oa,FIRST_HALF_RACE_TO_45_POINTS:()=>da,FIRST_HALF_RACE_TO_50_POINTS:()=>Ra,FIRST_HALF_RACE_TO_55_POINTS:()=>Ma,FIRST_HALF_RACE_TO_60_POINTS:()=>Ca,FIRST_HALF_RUN_LINE:()=>Se,FIRST_HALF_TEAM_TOTAL:()=>C,FIRST_HALF_TEAM_TOTAL_EXACT:()=>u,FIRST_HALF_TOTAL_CORNERS:()=>P,FIRST_HALF_TOTAL_GOALS:()=>c,FIRST_HALF_TOTAL_GOALS_ODD_EVEN:()=>p,FIRST_HALF_TOTAL_POINTS:()=>ua,FIRST_HALF_TOTAL_POINTS_ODD_EVEN:()=>Pa,FIRST_HALF_TOTAL_RUNS:()=>Ne,FIRST_INNING_MONEYLINE_3_WAY:()=>Ie,FIRST_INNING_RUN_LINE:()=>le,FIRST_INNING_TOTAL_RUNS:()=>Le,FIRST_INNING_TOTAL_RUNS_ODD_EVEN:()=>Te,FIRST_QUARTER_DOUBLE_CHANCE:()=>ca,FIRST_QUARTER_MONEYLINE:()=>pa,FIRST_QUARTER_MONEYLINE_3_WAY:()=>ma,FIRST_QUARTER_POINT_SPREAD:()=>fa,FIRST_QUARTER_RACE_TO_10_POINTS:()=>Ua,FIRST_QUARTER_RACE_TO_15_POINTS:()=>wa,FIRST_QUARTER_RACE_TO_20_POINTS:()=>Da,FIRST_QUARTER_TEAM_TOTAL:()=>Ga,FIRST_QUARTER_TOTAL_POINTS:()=>Fa,FIRST_QUARTER_TOTAL_POINTS_ODD_EVEN:()=>ga,FIRST_TEAM_TO_SCORE:()=>Ve,FIRST_TEAM_TO_SCORE_3_WAY:()=>Y,FOURTH_INNING_MONEYLINE_3_WAY:()=>Pe,FOURTH_INNING_RUN_LINE:()=>ce,FOURTH_INNING_TOTAL_RUNS:()=>pe,GO_THE_DISTANCE:()=>ja,HALFTIME_FULLTIME:()=>_e,LAST_GOAL_SCORER:()=>V,LAST_TEAM_TO_SCORE_3_WAY:()=>W,LEAGUES_NO_FORMAL_HOME_AWAY:()=>L,LIVE_TYPE_ID_BASE:()=>P_,League:()=>l,LeagueMap:()=>r_,METHOD_OF_ENDING:()=>qa,METHOD_OF_VICTORY:()=>Xa,MIN_ODDS_FOR_DIFF_CHECKING:()=>c_,MONEYLINE:()=>k,MONEYLINE_TOTAL_ROUNDS:()=>$a,MULTIPLIER_100:()=>f_,NINTH_INNING_MONEYLINE_3_WAY:()=>he,NINTH_INNING_RUN_LINE:()=>ye,NINTH_INNING_TOTAL_RUNS:()=>Ye,NO_RUNS_FIRST_INNING:()=>We,PLAYER_ASSISTS:()=>Ba,PLAYER_BASES:()=>ke,PLAYER_BATTING_STRIKEOUTS:()=>Ke,PLAYER_BATTING_WALKS:()=>Qe,PLAYER_DOUBLES:()=>je,PLAYER_DOUBLE_DOUBLE:()=>Ha,PLAYER_EARNED_RUNS:()=>Xe,PLAYER_GOALS:()=>K,PLAYER_HITS:()=>xe,PLAYER_HITS_ALLOWED:()=>Je,PLAYER_HITS_RUNS_RBIS:()=>ze,PLAYER_HOME_RUNS:()=>Ze,PLAYER_HOME_RUNS_YES_NO:()=>qe,PLAYER_MADE_THREES:()=>ba,PLAYER_OUTS:()=>$e,PLAYER_POINTS:()=>ha,PLAYER_POINTS_REBOUNDS_ASSISTS:()=>ya,PLAYER_RBIS:()=>ea,PLAYER_REBOUNDS:()=>Ya,PLAYER_RUNS:()=>aa,PLAYER_SIGNIFICANT_STRIKES:()=>xa,PLAYER_SINGLES:()=>_a,PLAYER_STOLEN_BASES:()=>ra,PLAYER_STRIKEOUTS:()=>oa,PLAYER_TAKEDOWNS:()=>za,PLAYER_TO_RECORD_WIN:()=>ta,PLAYER_WALKS:()=>na,POINT_SPREAD:()=>Va,RACE_TO_20_POINTS:()=>Wa,ROUND_BETTING:()=>Ja,RUN_LINE:()=>Ea,SECOND_HALF_ASIAN_HANDICAP_CORNERS:()=>m,SECOND_HALF_BOTH_TEAMS_TO_SCORE:()=>f,SECOND_HALF_MONEYLINE:()=>U,SECOND_HALF_TOTAL_CORNERS:()=>w,SECOND_HALF_TOTAL_GOALS:()=>D,SECOND_HALF_TOTAL_GOALS_ODD_EVEN:()=>G,SECOND_INNING_MONEYLINE_3_WAY:()=>Oe,SECOND_INNING_RUN_LINE:()=>de,SECOND_INNING_TOTAL_RUNS:()=>Re,SEVENTH_INNING_MONEYLINE_3_WAY:()=>Fe,SEVENTH_INNING_RUN_LINE:()=>ge,SEVENTH_INNING_TOTAL_RUNS:()=>ve,SIXTH_INNING_MONEYLINE_3_WAY:()=>we,SIXTH_INNING_RUN_LINE:()=>De,SIXTH_INNING_TOTAL_RUNS:()=>Ge,Sport:()=>I,TAG_CHILD_SPREAD:()=>p_,TAG_CHILD_TOTALS:()=>m_,TEAM_CLEAN_SHEET:()=>Q,TEAM_TOTAL:()=>j,TEAM_TOTAL_CARD_POINTS:()=>X,TEAM_TOTAL_CORNERS:()=>x,TEAM_TOTAL_ODD_EVEN:()=>z,TEAM_TOTAL_POINTS_ODD_EVEN:()=>ka,TENNIS_ATP_GRAND_SLAM_SET_THRESHOLD:()=>E_,TENNIS_GEMS_LIMIT:()=>s_,TENNIS_MASTERS_SET_THRESHOLD:()=>i_,THIRD_INNING_MONEYLINE_3_WAY:()=>Me,THIRD_INNING_RUN_LINE:()=>Ce,THIRD_INNING_TOTAL_RUNS:()=>ue,TOTAL_CARDS:()=>J,TOTAL_CORNERS:()=>Z,TOTAL_CORNERS_ODD_EVEN:()=>q,TOTAL_GOALS:()=>$,TOTAL_GOALS_ODD_EVEN:()=>ee,TOTAL_POINTS:()=>Ka,TOTAL_POINTS_ODD_EVEN:()=>Qa,TOTAL_ROUNDS:()=>Za,TOTAL_RUNS:()=>ia,TO_QUALIFY:()=>ae,VOLLEYBALL_FIFTH_SET_POINTS_LIMIT:()=>n_,VOLLEYBALL_POINTS_LIMIT:()=>t_,VOLLEYBALL_SET_THRESHOLD:()=>o_,WILL_A_POINT_BE_DEDUCTED:()=>e_,WILL_FIGHT_END_IN_FIRST_MINUTE:()=>a_,WILL_THERE_BE_OVERTIME:()=>sa,WINNING_ROUND:()=>__,ZERO:()=>C_,adjustSpreadOnOdds:()=>w_,allowGameSportWithPeriodConstraint:()=>l_,allowGameSportWithResultConstraint:()=>T_,allowSoccerGame:()=>L_,calculateImpliedOddsDifference:()=>N,checkGameContraints:()=>I_,checkOddsFromBookmakers:()=>S,createTotalChildMarkets:()=>j_,cutOddsCloseToValue:()=>Y_,extractOddsForGamePerProvider:()=>F_,fetchResultInCurrentSet:()=>O_,filterOddsByMarketNameBookmaker:()=>b_,filterOddsByMarketNameTeamNameBookmaker:()=>B_,formatSpreadOdds:()=>h_,gamesDatesMatching:()=>M_,getBookmakersArray:()=>A,getLeagueSport:()=>A_,getLeagueSpreadType:()=>S_,getLeagueTotalType:()=>N_,getParentOdds:()=>H_,getSpreadData:()=>D_,groupAndFormatSpreadOdds:()=>y_,groupOddsBySelectionAndPoints:()=>W_,processMarket:()=>k_,processTotalOdds:()=>V_,statusCodes:()=>U_,teamNamesMatching:()=>R_}),"function"!=typeof Object.assign&&(Object.assign=function(e,a){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var _=Object(e),r=1;r<arguments.length;r++){var o=arguments[r];if(null!=o)for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(_[t]=o[t])}return _});var _=function(e){return parseFloat(e.toPrecision(12))};function r(e,a,_){return void 0===_||0==+_?Math[e](a):(a=+a,_=+_,isNaN(a)||"number"!=typeof _||_%1!=0?NaN:a<0?-r(e,-a,_):(a=a.toString().split("e"),+((a=(a=Math[e](+(a[0]+"e"+(a[1]?+a[1]-_:-_)))).toString().split("e"))[0]+"e"+(a[1]?+a[1]+_:_))))}var o,t,n={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?_(100*(this.decimalValue-1)):_(-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 _(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 a=_(100/this.decimalValue);return null!==e.precision&&(a=r("round",a,-e.precision)),a.toString()+"%"}return _(1/this.decimalValue)}},fractional:{from:function(e){var a,_=e.toString().split("/");if(e=parseFloat(_[0]),2===_.length)a=parseFloat(_[1]);else{if(1!==_.length)throw new Error("Invalid fraction");a=1}if(0===e||0===a||e/a<=0)throw new Error("Outside valid range");return 1+e/a},to:function(e){return function(e,a){for(var _,r=[0,1],o=[1,0],t=function(e){var a=null,_=e.toString().indexOf("E");-1==_&&(_=e.toString().indexOf("e"));var r=null,o=(a=-1==_?e.toString():e.toString().substring(0,_)).toString().indexOf(".");-1==o?r=a:0===o?r=a.substring(1,a.length):o<a.length&&(r=a.substring(0,o)+a.substring(o+1,a.length));var t=r,n=t.toString().length,E=e,i=E.toString().length;0===E&&(i=0);var s,A=n-i;for(s=A;s>0&&t%2==0;s--)t/=2;for(s=A;s>0&&t%5==0;s--)t/=5;return t}(e),n=e,E=Math.pow(10,-a)/2,i=2;i<1e3;i++){var s=Math.floor(n);if(r[i]=s*r[i-1]+r[i-2],Math.abs(r[i])>t)return;if(o[i]=s*o[i-1]+o[i-2],_=r[i]/o[i],Math.abs(_-e)<E||NaN==_)return r[i].toString()+"/"+o[i].toString();n=1/(n-s)}}(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?_(this.decimalValue-1):_(-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?_(-1/(this.decimalValue-1)):_(this.decimalValue-1)}}},E=((t=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=_(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,a){if(!n.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var _=n[e].from(a);return new t(_)},o);E.prototype.to=function(e,a){if(!n.hasOwnProperty(e))throw new Error("Unknown format "+e+".");a=Object.assign({precision:null,percentage:!1},a);var _=n[e].to.call(this,a);return"number"==typeof _&&null!==a.precision&&(_=r("round",_,-a.precision)),_};var i,s=E.from,A=function(e,a,_){var r=e.find((function(e){return Number(e.sportId)===Number(a)}));if(r){if(""==r.primaryBookmaker)return _;var o=[];return r.primaryBookmaker&&o.push(r.primaryBookmaker),r.secondaryBookmaker&&o.push(r.secondaryBookmaker),r.tertiaryBookmaker&&o.push(r.tertiaryBookmaker),o}return _},S=function(e,a,_,r,o){console.log("########## CHECK ODDS START ##########"),console.log("oddsMap: "+e),console.log("arrayOfBookmakers: "+a),console.log("isTwoPositionalSport: "+_),console.log("maxImpliedPercentageDifference: "+r),console.log("minOddsForDiffChecking: "+o),console.log("########## CHECK ODDS END ##########");var t=a.some((function(a){var r=e.get(a);return!!r&&(0===r.homeOdds||0===r.awayOdds||!_&&0===r.drawOdds||1===r.homeOdds||1===r.awayOdds||!_&&1===r.drawOdds)}));if(1==a.length){if(t)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var n=a[0],E=e.get(n);return[{homeOdds:E.homeOdds,awayOdds:E.awayOdds,drawOdds:_?0:E.drawOdds}]}if(t)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var i=e.get(a[0]),A=i.homeOdds,S=i.awayOdds,I=i.drawOdds;if(a.slice(1).some((function(a){var t=e[a];if(t){var n=t.homeOdds,E=t.awayOdds,i=t.drawOdds,l=s("decimal",A).to("impliedProbability"),L=s("decimal",S).to("impliedProbability"),T=_?0:s("decimal",I).to("impliedProbability"),O=s("decimal",n).to("impliedProbability"),d=s("decimal",E).to("impliedProbability"),R=_?0:s("decimal",i).to("impliedProbability"),M=N(l,O),C=N(L,d),u=_?0:N(T,R);if(M>r&&l>o&&O>o||C>r&&L>o&&d>o||!_&&u>r&&T>o&&R>o)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var l=[];return a.forEach((function(a){return l.push(e.get(a))})),null!=l[0]?l.map((function(e){return{homeOdds:e.homeOdds,awayOdds:e.awayOdds,drawOdds:_?0:e.drawOdds}})):(console.log("Returning zero odds cause no matching bookmakers have been found"),[{homeOdds:0,awayOdds:0,drawOdds:0}])},N=function(e,a){var _=Math.abs(e-a)/e*100;return console.log("% diff: "+_),_},I={SOCCER:"Soccer",FOOTBALL:"Football",BASKETBALL:"Basketball",BASEBALL:"Baseball",HOCKEY:"Hockey",FIGHTING:"Fighting",TENNIS:"Tennis",ESPORTS:"eSports",RUGBY:"Rugby",VOLLEYBALL:"Volleyball",HANDBALL:"Handball",WATERPOLO:"Waterpolo",CRICKET:"Cricket",MOTOSPORT:"Motosport",GOLF:"Golf",TABLE_TENNIS:"TableTennis",EMPTY:""},l={NCAAF:1,NFL:2,MLB:3,NBA:4,NCAAB:5,NHL:6,UFC:7,WNBA:8,MLS:10,EPL:11,LIGUE_ONE:12,BUNDESLIGA:13,LA_LIGA:14,SERIE_A:15,UEFA_CL:16,UEFA_EL:17,FIFA_WC:18,J1_LEAGUE:19,IPL:20,T20_BLAST:21,IIHF_WORLD_CHAMPIONSHIP:33,COPA_AMERICA:44,COPA_LIBERTADORES:45,UEFA_EURO:50,EREDIVISIE:57,PRIMEIRA_LIGA:61,SUMMER_OLYMPICS_SOCCER_WOMEN:65,SUMMER_OLYMPICS_SOCCER:66,FIFA_WC_WOMEN:76,ENGLAND_CUP:132,FRANCE_CUP:134,SPAIN_CUP:138,ITALY_CUP:141,TENNIS_GS:153,TENNIS_MASTERS:156,SUMMER_OLYMPICS_TENNIS:158,GERMANY_CUP:209,LIGA_MX:230,BRAZIL_1:268,UEFA_EURO_U21:288,FIFA_WORLD_CUP_U20:296,SUMMER_OLYMPICS_HANDBALL_WOMEN:380,SUMMER_OLYMPICS_HANDBALL:381,EUROLEAGUE:399,SUMMER_OLYMPICS_BASKETBALL:406,SUMMER_OLYMPICS_BASKETBALL_WOMEN:407,FIBA_WORLD_CUP:409,FORMULA1:445,SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN:453,SUMMER_OLYMPICS_BEACH_VOLEYBALL:454,MOTOGP:497,SAUDI_PROFESSIONAL_LEAGUE:536,SUMMER_OLYMPICS_WATERPOLO:8881,SUMMER_OLYMPICS_VOLEYBALL_WOMEN:8893,SUMMER_OLYMPICS_VOLEYBALL:8894,SUMMER_OLYMPICS_TABLE_TENNIS:8910,BOXING:9196,SUMMER_OLYMPICS_RUGBY:9578,SUMMER_OLYMPICS_RUGBY_WOMEN:9588,SUMMER_OLYMPICS_HOCKEY_WOMEN:9698,SUMMER_OLYMPICS_HOCKEY:9699,UEFA_NATIONS_LEAGUE:9806,CONCACAF_NATIONS_LEAGUE:9821,CSGO:9977,DOTA2:9983,SUMMER_OLYMPICS_BASKETBALL_3X3:10071,SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN:10072,SUMMER_OLYMPICS_QUALIFICATION:10502,LOL:10138,CONMEBOL_WC_QUALIFICATIONS:10199,UEFA_CONFERENCE_LEAGUE:10216,NON_TITLE_BOXING:10595,UEFA_CHAMPIONS_LEAGUE_QUALIFICATION:10611,UEFA_EUROPA_LEAGUE_QUALIFICATION:10613,UEFA_CONFERENCE_LEAGUE_QUALIFICATION:10615,GOLF_H2H:100021,GOLF_WINNER:100121,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1:15312,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2:15313,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3:15314,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4:15315,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5:15316,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6:15317,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7:15318,TENNIS_MASTERS_LIVE_MAPPING_V2_1:15622,TENNIS_MASTERS_LIVE_MAPPING_V2_2:15623,TENNIS_MASTERS_LIVE_MAPPING_V2_3:15624,TENNIS_MASTERS_LIVE_MAPPING_V2_4:15625,TENNIS_MASTERS_LIVE_MAPPING_V2_5:15626,TENNIS_MASTERS_LIVE_MAPPING_V2_6:15627,TENNIS_MASTERS_LIVE_MAPPING_V2_7:15628,TENNIS_MASTERS_LIVE_MAPPING_V2_8:15632,TENNIS_MASTERS_LIVE_MAPPING_V2_9:15633,TENNIS_MASTERS_LIVE_MAPPING_V2_10:15634,TENNIS_MASTERS_LIVE_MAPPING_V2_11:15635,TENNIS_MASTERS_LIVE_MAPPING_V2_12:15636,TENNIS_MASTERS_LIVE_MAPPING_V2_13:15637,TENNIS_MASTERS_LIVE_MAPPING_V2_14:15638,TENNIS_MASTERS_LIVE_MAPPING_V2_15:15641,TENNIS_MASTERS_LIVE_MAPPING_V2_16:15642,TENNIS_MASTERS_LIVE_MAPPING_V2_17:15643,TENNIS_MASTERS_LIVE_MAPPING_V2_18:15644,TENNIS_MASTERS_LIVE_MAPPING_V2_19:15645,TENNIS_MASTERS_LIVE_MAPPING_V2_20:15646,TENNIS_MASTERS_LIVE_MAPPING_V2_21:15647,TENNIS_MASTERS_LIVE_MAPPING_V2_22:15648},L=[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],T="1st Half Asian Handicap",O="1st Half Asian Handicap Corners",d="1st Half Both Teams To Score",R="1st Half Correct Score",M="1st Half Moneyline",C="1st Half Team Total",u="1st Half Team Total Exact",P="1st Half Total Corners",c="1st Half Total Goals",p="1st Half Total Goals Odd/Even",m="2nd Half Asian Handicap Corners",f="2nd Half Both Teams To Score",U="2nd Half Moneyline",w="2nd Half Total Corners",D="2nd Half Total Goals",G="2nd Half Total Goals Odd/Even",F="Anytime Goal Scorer",g="Asian Handicap",v="Asian Handicap Cards",B="Asian Handicap Corners",H="Both Teams To Score",b="Correct Score",h="Draw No Bet",y="First Goal Scorer",Y="First Team To Score 3-Way",V="Last Goal Scorer",W="Last Team To Score 3-Way",k="Moneyline",K="Player Goals",Q="Team Clean Sheet",j="Team Total",X="Team Total Card Points",x="Team Total Corners",z="Team Total Odd/Even",J="Total Cards",Z="Total Corners",q="Total Corners Odd/Even",$="Total Goals",ee="Total Goals Odd/Even",ae="To Qualify",_e="Halftime / Fulltime",re="1st 3 Innings Moneyline",oe="1st 3 Innings Run Line",te="1st 3 Innings Team Total",ne="1st 3 Innings Total Runs",Ee="1st 7 Innings Moneyline",ie="1st 7 Innings Run Line",se="1st 7 Innings Team Total",Ae="1st 7 Innings Total Runs",Se="1st Half Run Line",Ne="1st Half Total Runs",Ie="1st Inning Moneyline 3-Way",le="1st Inning Run Line",Le="1st Inning Total Runs",Te="1st Inning Total Runs Odd/Even",Oe="2nd Inning Moneyline 3-Way",de="2nd Inning Run Line",Re="2nd Inning Total Runs",Me="3rd Inning Moneyline 3-Way",Ce="3rd Inning Run Line",ue="3rd Inning Total Runs",Pe="4th Inning Moneyline 3-Way",ce="4th Inning Run Line",pe="4th Inning Total Runs",me="5th Inning Moneyline 3-Way",fe="5th Inning Run Line",Ue="5th Inning Total Runs",we="6th Inning Moneyline 3-Way",De="6th Inning Run Line",Ge="6th Inning Total Runs",Fe="7th Inning Moneyline 3-Way",ge="7th Inning Run Line",ve="7th Inning Total Runs",Be="8th Inning Moneyline 3-Way",He="8th Inning Run Line",be="8th Inning Total Runs",he="9th Inning Moneyline 3-Way",ye="9th Inning Run Line",Ye="9th Inning Total Runs",Ve="First Team To Score",We="No Runs First Inning",ke="Player Bases",Ke="Player Batting Strikeouts",Qe="Player Batting Walks",je="Player Doubles",Xe="Player Earned Runs",xe="Player Hits",ze="Player Hits + Runs + RBIs",Je="Player Hits Allowed",Ze="Player Home Runs",qe="Player Home Runs Yes/No",$e="Player Outs",ea="Player RBIs",aa="Player Runs",_a="Player Singles",ra="Player Stolen Bases",oa="Player Strikeouts",ta="Player To Record Win",na="Player Walks",Ea="Run Line",ia="Total Runs",sa="Will There Be Overtime",Aa="1st Half Double Chance",Sa="1st Half Moneyline 3-Way",Na="1st Half Point Spread",Ia="1st Half Race To 20 Points",la="1st Half Race To 25 Points",La="1st Half Race To 30 Points",Ta="1st Half Race To 35 Points",Oa="1st Half Race To 40 Points",da="1st Half Race To 45 Points",Ra="1st Half Race To 50 Points",Ma="1st Half Race To 55 Points",Ca="1st Half Race To 60 Points",ua="1st Half Total Points",Pa="1st Half Total Points Odd/Even",ca="1st Quarter Double Chance",pa="1st Quarter Moneyline",ma="1st Quarter Moneyline 3-Way",fa="1st Quarter Point Spread",Ua="1st Quarter Race To 10 Points",wa="1st Quarter Race To 15 Points",Da="1st Quarter Race To 20 Points",Ga="1st Quarter Team Total",Fa="1st Quarter Total Points",ga="1st Quarter Total Points Odd/Even",va="First Basket Including FT",Ba="Player Assists",Ha="Player Double Double",ba="Player Made Threes",ha="Player Points",ya="Player Points + Rebounds + Assists",Ya="Player Rebounds",Va="Point Spread",Wa="Race To 20 Points",ka="Team Total Points Odd/Even",Ka="Total Points",Qa="Total Points Odd/Even",ja="Go The Distance",Xa="Method of Victory",xa="Player Significant Strikes",za="Player Takedowns",Ja="Round Betting",Za="Total Rounds",qa="Method Of Ending",$a="Moneyline + Total Rounds",e_="Will A Point Be Deducted",a_="Will Fight End In First Minute",__="Winning Round",r_=((i={})[l.NCAAF]={sport:I.FOOTBALL,id:l.NCAAF,isDrawAvailable:!1},i[l.NFL]={sport:I.FOOTBALL,id:l.NFL,isDrawAvailable:!1,spread:g,total:Ka},i[l.MLB]={sport:I.BASEBALL,id:l.MLB,isDrawAvailable:!1,spread:Ea,total:ia},i[l.NBA]={sport:I.BASKETBALL,id:l.NBA,isDrawAvailable:!1,spread:Va,total:Ka},i[l.NCAAB]={sport:I.BASKETBALL,id:l.NCAAB,isDrawAvailable:!1,spread:Va,total:Ka},i[l.NHL]={sport:I.HOCKEY,id:l.NHL,isDrawAvailable:!1},i[l.UFC]={sport:I.FIGHTING,id:l.UFC,isDrawAvailable:!1},i[l.WNBA]={sport:I.BASKETBALL,id:l.WNBA,isDrawAvailable:!1,spread:Va,total:Ka},i[l.MLS]={sport:I.SOCCER,id:l.MLS,isDrawAvailable:!0,spread:g,total:$},i[l.EPL]={sport:I.SOCCER,id:l.EPL,isDrawAvailable:!0,spread:g,total:$},i[l.LIGUE_ONE]={sport:I.SOCCER,id:l.LIGUE_ONE,isDrawAvailable:!0,spread:g,total:$},i[l.BUNDESLIGA]={sport:I.SOCCER,id:l.BUNDESLIGA,isDrawAvailable:!0,spread:g,total:$},i[l.LA_LIGA]={sport:I.SOCCER,id:l.LA_LIGA,isDrawAvailable:!0,spread:g,total:$},i[l.SERIE_A]={sport:I.SOCCER,id:l.SERIE_A,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_CL]={sport:I.SOCCER,id:l.UEFA_CL,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_EL]={sport:I.SOCCER,id:l.UEFA_EL,isDrawAvailable:!0,spread:g,total:$},i[l.FIFA_WC]={sport:I.SOCCER,id:l.FIFA_WC,isDrawAvailable:!0,spread:g,total:$},i[l.J1_LEAGUE]={sport:I.SOCCER,id:l.J1_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.IPL]={sport:I.CRICKET,id:l.IPL,isDrawAvailable:!1},i[l.T20_BLAST]={sport:I.CRICKET,id:l.T20_BLAST,isDrawAvailable:!1},i[l.IIHF_WORLD_CHAMPIONSHIP]={sport:I.HOCKEY,id:l.IIHF_WORLD_CHAMPIONSHIP,isDrawAvailable:!0},i[l.COPA_AMERICA]={sport:I.SOCCER,id:l.COPA_AMERICA,isDrawAvailable:!0,spread:g,total:$},i[l.COPA_LIBERTADORES]={sport:I.SOCCER,id:l.COPA_LIBERTADORES,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_EURO]={sport:I.SOCCER,id:l.UEFA_EURO,isDrawAvailable:!0,spread:g,total:$},i[l.EREDIVISIE]={sport:I.SOCCER,id:l.EREDIVISIE,isDrawAvailable:!0,spread:g,total:$},i[l.PRIMEIRA_LIGA]={sport:I.SOCCER,id:l.PRIMEIRA_LIGA,isDrawAvailable:!0,spread:g,total:$},i[l.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:I.SOCCER,id:l.SUMMER_OLYMPICS_SOCCER_WOMEN,isDrawAvailable:!0,spread:g,total:$},i[l.SUMMER_OLYMPICS_SOCCER]={sport:I.SOCCER,id:l.SUMMER_OLYMPICS_SOCCER,isDrawAvailable:!0,spread:g,total:$},i[l.FIFA_WC_WOMEN]={sport:I.SOCCER,id:l.FIFA_WC_WOMEN,isDrawAvailable:!0,spread:g,total:$},i[l.ENGLAND_CUP]={sport:I.SOCCER,id:l.ENGLAND_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.FRANCE_CUP]={sport:I.SOCCER,id:l.FRANCE_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.SPAIN_CUP]={sport:I.SOCCER,id:l.SPAIN_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.ITALY_CUP]={sport:I.SOCCER,id:l.ITALY_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.TENNIS_GS]={sport:I.TENNIS,id:l.TENNIS_GS,isDrawAvailable:!1},i[l.TENNIS_MASTERS]={sport:I.TENNIS,id:l.TENNIS_MASTERS,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_TENNIS]={sport:I.TENNIS,id:l.SUMMER_OLYMPICS_TENNIS,isDrawAvailable:!1},i[l.GERMANY_CUP]={sport:I.SOCCER,id:l.GERMANY_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.BRAZIL_1]={sport:I.SOCCER,id:l.BRAZIL_1,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_EURO_U21]={sport:I.SOCCER,id:l.UEFA_EURO_U21,isDrawAvailable:!0,spread:g,total:$},i[l.FIFA_WORLD_CUP_U20]={sport:I.SOCCER,id:l.FIFA_WORLD_CUP_U20,isDrawAvailable:!0,spread:g,total:$},i[l.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:I.HANDBALL,id:l.SUMMER_OLYMPICS_HANDBALL_WOMEN,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_HANDBALL]={sport:I.HANDBALL,id:l.SUMMER_OLYMPICS_HANDBALL,isDrawAvailable:!0},i[l.EUROLEAGUE]={sport:I.BASKETBALL,id:l.EUROLEAGUE,isDrawAvailable:!1,spread:Va,total:Ka},i[l.SUMMER_OLYMPICS_BASKETBALL]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_BASKETBALL,isDrawAvailable:!1,spread:Va,total:Ka},i[l.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_BASKETBALL_WOMEN,isDrawAvailable:!1,spread:Va,total:Ka},i[l.FIBA_WORLD_CUP]={sport:I.BASKETBALL,id:l.FIBA_WORLD_CUP,isDrawAvailable:!1,spread:Va,total:Ka},i[l.FORMULA1]={sport:I.MOTOSPORT,id:l.FORMULA1,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:I.VOLLEYBALL,id:l.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:I.VOLLEYBALL,id:l.SUMMER_OLYMPICS_BEACH_VOLEYBALL,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:I.TABLE_TENNIS,id:l.SUMMER_OLYMPICS_TABLE_TENNIS,isDrawAvailable:!1},i[l.MOTOGP]={sport:I.MOTOSPORT,id:l.MOTOGP,isDrawAvailable:!1},i[l.SAUDI_PROFESSIONAL_LEAGUE]={sport:I.SOCCER,id:l.SAUDI_PROFESSIONAL_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.SUMMER_OLYMPICS_WATERPOLO]={sport:I.WATERPOLO,id:l.SUMMER_OLYMPICS_WATERPOLO,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:I.VOLLEYBALL,id:l.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_VOLEYBALL]={sport:I.VOLLEYBALL,id:l.SUMMER_OLYMPICS_VOLEYBALL,isDrawAvailable:!1},i[l.BOXING]={sport:I.FIGHTING,id:l.BOXING,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_RUGBY]={sport:I.RUGBY,id:l.SUMMER_OLYMPICS_RUGBY,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:I.RUGBY,id:l.SUMMER_OLYMPICS_RUGBY_WOMEN,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:I.HOCKEY,id:l.SUMMER_OLYMPICS_HOCKEY_WOMEN,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_HOCKEY]={sport:I.HOCKEY,id:l.SUMMER_OLYMPICS_HOCKEY,isDrawAvailable:!0},i[l.UEFA_NATIONS_LEAGUE]={sport:I.SOCCER,id:l.UEFA_NATIONS_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.CONCACAF_NATIONS_LEAGUE]={sport:I.SOCCER,id:l.CONCACAF_NATIONS_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.CSGO]={sport:I.ESPORTS,id:l.CSGO,isDrawAvailable:!1},i[l.DOTA2]={sport:I.ESPORTS,id:l.DOTA2,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_BASKETBALL_3X3,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_QUALIFICATION]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_QUALIFICATION,isDrawAvailable:!1,spread:Va,total:Ka},i[l.LOL]={sport:I.ESPORTS,id:l.LOL,isDrawAvailable:!1},i[l.CONMEBOL_WC_QUALIFICATIONS]={sport:I.SOCCER,id:l.CONMEBOL_WC_QUALIFICATIONS,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_CONFERENCE_LEAGUE]={sport:I.SOCCER,id:l.UEFA_CONFERENCE_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.NON_TITLE_BOXING]={sport:I.FIGHTING,id:l.NON_TITLE_BOXING,isDrawAvailable:!1},i[l.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:I.SOCCER,id:l.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:I.SOCCER,id:l.UEFA_EUROPA_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:I.SOCCER,id:l.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:g,total:$},i[l.GOLF_H2H]={sport:I.GOLF,id:l.GOLF_H2H,isDrawAvailable:!1},i[l.GOLF_WINNER]={sport:I.GOLF,id:l.GOLF_WINNER,isDrawAvailable:!1},i[l.LIGA_MX]={sport:I.SOCCER,id:l.LIGA_MX,isDrawAvailable:!0,spread:g,total:$},i),o_=2,t_=20,n_=10,E_=2,i_=1,s_=5,A_=function(e){var a=r_[e];return a?a.sport:I.EMPTY},S_=function(e){var a=r_[e];return a?a.spread:void 0},N_=function(e){var a=r_[e];return a?a.total:void 0},I_=function(e,a,_){var r=e.score_home_total,o=e.score_away_total,t=e.clock,n=e.period,E=e.status,i=e.home_team,s=e.away_team,A=parseInt(n),S=A_(a);return"completed"==E.toLowerCase()?{allow:!1,message:"Blocking game ".concat(i," - ").concat(s," because it is no longer live.")}:S===I.BASKETBALL?l_(i,s,A,_.get(I.BASKETBALL)):S===I.HOCKEY?l_(i,s,A,_.get(I.HOCKEY)):S===I.BASEBALL?l_(i,s,A,_.get(I.BASEBALL)):S===I.SOCCER?L_(i,s,t,n,_.get(I.SOCCER)):S===I.TENNIS?T_(e,i,s,n,r,o,a,S):S===I.VOLLEYBALL?T_(e,i,s,A,r,o,a,S):{allow:!0,message:"The sport ".concat(a," does not have constraint")}},l_=function(e,a,_,r){return!Number.isNaN(_)&&_>=r?{allow:!1,message:"Blocking game ".concat(e," - ").concat(a," due to period: ").concat(_,". period")}:{allow:!0,message:""}},L_=function(e,a,_,r,o){var t=Number(_);return!Number.isNaN(t)&&t>=o||Number.isNaN(t)&&"HALF"!=r?{allow:!1,message:"Blocking game ".concat(e," - ").concat(a," due to clock: ").concat(_,"min")}:{allow:!0,message:""}},T_=function(e,a,_,r,o,t,n,E){var i=Number(r),s=O_(i,e),A="atp"==e.league.toLowerCase(),S={home:o,away:t};return E==I.VOLLEYBALL?d_(a,_,s,S,o_,5==i?n_:t_):n.toString().startsWith(l.TENNIS_GS)&&A?d_(a,_,s,S,E_,s_):n.toString().startsWith(l.TENNIS_GS)&&!A||n.toString().startsWith(l.TENNIS_MASTERS)||n.toString().startsWith(l.SUMMER_OLYMPICS_TENNIS)?d_(a,_,s,S,i_,s_):{allow:!0,message:"The sport ".concat(n," does not have result constraint")}},O_=function(e,a){var _=0,r=0;switch(e){case 1:_=Number(a.score_home_period_1),r=Number(a.score_away_period_1);break;case 2:_=Number(a.score_home_period_2),r=Number(a.score_away_period_2);break;case 3:_=Number(a.score_home_period_3),r=Number(a.score_away_period_3);break;case 4:_=Number(a.score_home_period_4),r=Number(a.score_away_period_4);break;case 5:_=Number(a.score_home_period_5),r=Number(a.score_away_period_5)}return{home:_,away:r}},d_=function(e,a,_,r,o,t){return Number(r.home)!=o&&Number(r.away)!=o||!(Number(r.home)==o&&_.home>=t||Number(r.away)==o&&_.away>=t)?{allow:!0,message:"",currentHomeGameScore:_.home,currentAwayGameScore:_.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(a," due to current result: ").concat(r.home," - ").concat(r.away," (").concat(_.home," - ").concat(_.away,")")}},R_=function(e,a,_,r,o,t){var n,E;if(L.includes(e)?(n=r.toLowerCase()==a.toLowerCase()||r.toLowerCase()==_.toLowerCase(),E=o.toLowerCase()==a.toLowerCase()||o.toLowerCase()==_.toLowerCase()):(n=r.toLowerCase()==a.toLowerCase(),E=o.toLowerCase()==_.toLowerCase()),!0!==n){var i=t.get(r.toLowerCase()),s=t.get(a.toLowerCase()),A=t.get(_.toLowerCase());if([i,s].some((function(e){return null==e})))return!1;n=L.includes(e)?i==s||i==A:i==s}if(!0!==E){var S=t.get(o.toLowerCase());if(s=t.get(a.toLowerCase()),[S,A=t.get(_.toLowerCase())].some((function(e){return null==e})))return!1;E=L.includes(e)&&S==s||S==A}return n&&E},M_=function(e,a,_,r){var o;if(A_(_)==I.TENNIS){var t=a.getTime(),n=e.getTime();o=Math.abs(n-t)<=Number(60*r*1e3)}else o=a.toUTCString()==e.toUTCString();return o},C_=0,u_="Draw",P_=1e5,c_=.2,p_=10001,m_=10002,f_=100,U_={OPEN:0,PAUSED:1,IN_PROGRESS:3,FINISHED:8,RESOLVED:10,CANCELED:255},w_=function(e,a,_){if(e.some((function(e){return 0===e})))return e;var r=e.reduce((function(e,a){return e+a}),0);if(r<=1)return Array(e.length).fill(0);if(0===_){if(!(a>100*(r-1)))return e;_=a}var o=1+_/100,t=o/r,n=e.map((function(e){return e*t}));if(n.some((function(e){return e>=1})))return Array(e.length).fill(0);var E=n.reduce((function(e,a){return e+a}),0);if(E<1)return Array(e.length).fill(0);var i=o/E;return n.map((function(e){return e*i}))},D_=function(e,a,_,r){var o=e.find((function(e){return Number(e.typeId)===Number(_)&&Number(e.sportId)===Number(a)}));return o?{minSpread:o.minSpread?Number(o.minSpread):r,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:r,targetSpread:0}},G_=function(){return G_=Object.assign||function(e){for(var a,_=1,r=arguments.length;_<r;_++)for(var o in a=arguments[_])Object.prototype.hasOwnProperty.call(a,o)&&(e[o]=a[o]);return e},G_.apply(this,arguments)},F_=function(e,a,_,r,o){var t=new Map;return e.forEach((function(e){var n,E,i=a.odds.filter((function(a){return a.sports_book_name.toLowerCase()==e.toLowerCase()})),s=r.get(_.homeTeam.toLowerCase()),A=r.get(_.awayTeam.toLowerCase()),S=0;null!=(n=null==s?i.find((function(e){var a=r.get(e.name.toLowerCase());return null==a?e.name.toLowerCase()==_.homeTeam.toLowerCase():a==_.homeTeam.toLowerCase()})):i.find((function(e){var a=r.get(e.name.toLowerCase());return null==a?e.name.toLowerCase()==s:a==s})))&&(S=n.price);var N=0;null!=(E=null==A?i.find((function(e){var a=r.get(e.name.toLowerCase());return null==a?e.name.toLowerCase()==_.awayTeam.toLowerCase():a==_.awayTeam.toLowerCase()})):i.find((function(e){var a=r.get(e.name.toLowerCase());return null==a?e.name.toLowerCase()==A:a==A})))&&(N=E.price);var I=0;if(o){var l=i.find((function(e){return"draw"==e.name.toLowerCase()}));null!=l&&(I=l.price)}t.set(e.toLowerCase(),{homeOdds:S,awayOdds:N,drawOdds:I})})),t},g_=function(e){return e===C_?0:v_("decimal","impliedProbability",e)},v_=function(e,a,_){try{return s(e,_).to(a)}catch(e){return 0}},B_=function(e,a,_,r,o){var t=new Map;return console.log("########## FILTER ODDS START ##########"),console.log("oddsArray: "+e),console.log("marketName: "+a),console.log("liveOddsProviders: "+_),console.log("isTwoPositionalSport: "+o),console.log("########## FILTER ODDS END ##########"),_.forEach((function(_){console.log("oddsProvider: ",_);var n=0,E=e.filter((function(e){return console.log("oddd: ",e),e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==_.toLowerCase()&&e.selection.toLowerCase()===r.homeTeam.toLowerCase()}));console.log("homeTeamOddsObject: "+E),0!==E.length&&(n=E[0].price);var i=0,s=e.filter((function(e){return e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==_.toLowerCase()&&e.selection.toLowerCase()===r.awayTeam.toLowerCase()}));console.log("awayTeamOddsObject: "+s),0!==s.length&&(i=s[0].price);var A=0;if(!o){var S=e.filter((function(e){return e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==_.toLowerCase()&&e.selection.toLowerCase()===u_.toLowerCase()}));console.log("drawOddsObject: "+S),0!==S.length&&(A=S[0].price)}t.set(_.toLowerCase(),{homeOdds:n,awayOdds:i,drawOdds:A})})),t},H_=function(e,a,_,r,o,t,n){console.log("Calculating parent odds");var E={homeTeam:r.home_team,awayTeam:r.away_team},i=B_(r.odds,k,_,E,e);console.log("moneylineOddsMap: ",i);var s=S(i,_,e,n,c_);console.log("oddsList: ",s);var A=s.some((function(e){return 1==e.homeOdds||1==e.awayOdds||1==e.drawOdds}));if([s[0].homeOdds,s[0].awayOdds,s[0].drawOdds].every((function(e){return e==C_}))||A)return console.log("No Moneyline odds found or there is 100% odd, returning zero odds."),e?[0,0]:[0,0,0];var N=[s[0].homeOdds,s[0].awayOdds,s[0].drawOdds];console.log("primaryBookmakerOdds: ",N);var I=N.map((function(e){return g_(e)}));console.log("primaryBookmakerOdds -> parentOdds: ",I);var l=D_(a,o,P_,t);return console.log("spreadData: ",l),I=null!==l?w_(I,l.minSpread,l.targetSpread):w_(I,t,0),console.log("Parent odds calculated and adjusted for spread: "+JSON.stringify(I)),I},b_=function(e,a,_){return e.filter((function(e){return e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==_.toLowerCase()}))},h_=function(e,a,_,r,o,t){var n=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)}));return y_(n,a).map((function(e){var a=e.line,n=e.odds,E=g_(n[0])||C_,i=g_(n[1])||C_,s=E===C_||i===C_;if(!s){var A,S=D_(r,_.leagueId,o,t);null!==S?(A=w_([E,i],S.minSpread,S.targetSpread)).some((function(e){return e===C_}))?s=!0:(E=A[0],i=A[1]):(A=w_([E,i],t,0)).some((function(e){return e===C_}))?s=!0:(E=A[0],i=A[1])}return G_(G_({},_),{typeId:o,results:[],status:s?U_.PAUSED:U_.OPEN,line:a*f_,odds:[E,i]})})).filter((function(e){return null!==e}))},y_=function(e,a){var _=e.reduce((function(e,_){var r=_.selection_points,o=_.price,t=_.selection===a.homeTeam,n=t?r:-r;return e[n]||(e[n]={home:null,away:null}),t?e[n].home=o:e[n].away=o,e}),{}),r=Object.entries(_).reduce((function(e,a){var _=a[0],r=a[1],o=parseFloat(_);return null!==r.home&&null!==r.away&&e.push({line:o,odds:[r.home,r.away]}),e}),[]);return r},Y_=function(e,a){return void 0===a&&(a=.952),e.map((function(e){return Math.abs(e)>a?C_:e}))},V_=function(e,a,_,r,o,t){var n=[],E=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)})),i=W_(E);return Object.entries(i).forEach((function(e){var a=e[0],E=e[1],i=E.over,s=E.under,A=a.split("_"),S=(A[0],A[1]),N=g_(i)||C_,I=g_(s)||C_,l=N===C_||I===C_;if(!l){var L,T=D_(r,_.leagueId,o,t);null!==T?(L=w_([N,I],T.minSpread,T.targetSpread)).some((function(e){return e===C_}))?l=!0:(N=L[0],I=L[1]):(L=w_([N,I],t,0)).some((function(e){return e===C_}))?l=!0:(N=L[0],I=L[1])}var O=G_(G_({},_),{typeId:o,results:[],status:l?U_.PAUSED:U_.OPEN,line:parseFloat(S)*f_,odds:[N,I]});n.push(O)})),n},W_=function(e){return e.reduce((function(e,a){if(a){var _="".concat(a.selection,"_").concat(a.selection_points);e[_]||(e[_]={over:null,under:null}),"over"===a.selection_line?e[_].over=a.price:"under"===a.selection_line&&(e[_].under=a.price)}return e}),{})},k_=function(e,a,_,r,o,t,n){var E=r.filter((function(a){return a.sportId===String(e.leagueId)}));console.log("READY TO FETCH PARENT ODDS");var i=H_(!o,E,_,a,e.leagueId,t,n);console.log("FETCHED PARENT ODDS: ",i);var A=i[0]==C_||i[1]==C_||o&&i[2]==C_;e.odds.length>0&&(e.odds=e.odds.map((function(e,a){var _;switch(a){case 0:_=i[0];break;case 1:_=i[1];break;case 2:_=i[2]}return{american:s("impliedProbability",_).to("moneyline"),decimal:s("impliedProbability",_).to("decimal"),normalizedImplied:_}}))),console.log("FETCHING CHILD ODDS:");var S=A?[]:K_(e,E,a,_,t);return console.log("Mapped event for game ID: "+e.gameId),e.childMarkets=S,e},K_=function(e,a,_,r,o){var t=[];return(t=t.concat(Q_(_,e,a,r,o))).concat(j_(_,e,a,r,o))},Q_=function(e,a,_,r,o){console.log("CREATING SPREAD CHILD MARKETS");var t=[],n=S_(a.leagueId),E={homeTeam:e.home_team,awayTeam:e.away_team};if(n){var i=b_(e.odds,n,r[0]);if(i.length>0){var s=h_(i,E,a,_,p_,o);t.push.apply(t,s)}}else console.warn("Spread type for sport ID ".concat(a.leagueId," not found."));return console.log("RETURNING SPREAD CHILD MARKETS",t),t},j_=function(e,a,_,r,o){console.log("CREATING TOTAL CHILD MARKETS");var t=[],n=N_(a.leagueId),E={homeTeam:e.home_team,awayTeam:e.away_team};if(n){var i=b_(e.odds,n,r[0]);i.length>0&&t.push.apply(t,V_(i,E,a,_,m_,o))}else console.warn("Configuration (totals) for sport ID ".concat(a.leagueId," not found."));return console.log("RETURNING TOTAL CHILD MARKETS: ",t),t};return a})()));
1
+ !function(e,a){"object"==typeof exports&&"object"==typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):"object"==typeof exports?exports.thalesUtils=a():e.thalesUtils=a()}(this,(()=>(()=>{"use strict";var e={d:(a,_)=>{for(var r in _)e.o(_,r)&&!e.o(a,r)&&Object.defineProperty(a,r,{enumerable:!0,get:_[r]})},o:(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},a={};e.r(a),e.d(a,{ANYTIME_GOAL_SCORER:()=>F,ASIAN_HANDICAP:()=>g,ASIAN_HANDICAP_CARDS:()=>B,ASIAN_HANDICAP_CORNERS:()=>v,BOTH_TEAMS_TO_SCORE:()=>H,CORRECT_SCORE:()=>b,DRAW:()=>u_,DRAW_NO_BET:()=>h,EIGHTH_INNING_MONEYLINE_3_WAY:()=>ve,EIGHTH_INNING_RUN_LINE:()=>He,EIGHTH_INNING_TOTAL_RUNS:()=>be,FIFTH_INNING_MONEYLINE_3_WAY:()=>me,FIFTH_INNING_RUN_LINE:()=>fe,FIFTH_INNING_TOTAL_RUNS:()=>Ue,FIRST_3_INNINGS_MONEYLINE:()=>re,FIRST_3_INNINGS_RUN_LINE:()=>te,FIRST_3_INNINGS_TEAM_TOTAL:()=>oe,FIRST_3_INNINGS_TOTAL_RUNS:()=>ne,FIRST_7_INNINGS_MONEYLINE:()=>Ee,FIRST_7_INNINGS_RUN_LINE:()=>ie,FIRST_7_INNINGS_TEAM_TOTAL:()=>se,FIRST_7_INNINGS_TOTAL_RUNS:()=>Ae,FIRST_BASKET_INCLUDING_FT:()=>Ba,FIRST_GOAL_SCORER:()=>Y,FIRST_HALF_ASIAN_HANDICAP:()=>T,FIRST_HALF_ASIAN_HANDICAP_CORNERS:()=>O,FIRST_HALF_BOTH_TEAMS_TO_SCORE:()=>R,FIRST_HALF_CORRECT_SCORE:()=>d,FIRST_HALF_DOUBLE_CHANCE:()=>Aa,FIRST_HALF_MONEYLINE:()=>M,FIRST_HALF_MONEYLINE_3_WAY:()=>Sa,FIRST_HALF_POINT_SPREAD:()=>Na,FIRST_HALF_RACE_TO_20_POINTS:()=>Ia,FIRST_HALF_RACE_TO_25_POINTS:()=>la,FIRST_HALF_RACE_TO_30_POINTS:()=>La,FIRST_HALF_RACE_TO_35_POINTS:()=>Ta,FIRST_HALF_RACE_TO_40_POINTS:()=>Oa,FIRST_HALF_RACE_TO_45_POINTS:()=>Ra,FIRST_HALF_RACE_TO_50_POINTS:()=>da,FIRST_HALF_RACE_TO_55_POINTS:()=>Ma,FIRST_HALF_RACE_TO_60_POINTS:()=>Ca,FIRST_HALF_RUN_LINE:()=>Se,FIRST_HALF_TEAM_TOTAL:()=>C,FIRST_HALF_TEAM_TOTAL_EXACT:()=>u,FIRST_HALF_TOTAL_CORNERS:()=>P,FIRST_HALF_TOTAL_GOALS:()=>c,FIRST_HALF_TOTAL_GOALS_ODD_EVEN:()=>p,FIRST_HALF_TOTAL_POINTS:()=>ua,FIRST_HALF_TOTAL_POINTS_ODD_EVEN:()=>Pa,FIRST_HALF_TOTAL_RUNS:()=>Ne,FIRST_INNING_MONEYLINE_3_WAY:()=>Ie,FIRST_INNING_RUN_LINE:()=>le,FIRST_INNING_TOTAL_RUNS:()=>Le,FIRST_INNING_TOTAL_RUNS_ODD_EVEN:()=>Te,FIRST_QUARTER_DOUBLE_CHANCE:()=>ca,FIRST_QUARTER_MONEYLINE:()=>pa,FIRST_QUARTER_MONEYLINE_3_WAY:()=>ma,FIRST_QUARTER_POINT_SPREAD:()=>fa,FIRST_QUARTER_RACE_TO_10_POINTS:()=>Ua,FIRST_QUARTER_RACE_TO_15_POINTS:()=>wa,FIRST_QUARTER_RACE_TO_20_POINTS:()=>Ga,FIRST_QUARTER_TEAM_TOTAL:()=>Da,FIRST_QUARTER_TOTAL_POINTS:()=>Fa,FIRST_QUARTER_TOTAL_POINTS_ODD_EVEN:()=>ga,FIRST_TEAM_TO_SCORE:()=>Ve,FIRST_TEAM_TO_SCORE_3_WAY:()=>y,FOURTH_INNING_MONEYLINE_3_WAY:()=>Pe,FOURTH_INNING_RUN_LINE:()=>ce,FOURTH_INNING_TOTAL_RUNS:()=>pe,GO_THE_DISTANCE:()=>ja,HALFTIME_FULLTIME:()=>_e,LAST_GOAL_SCORER:()=>V,LAST_TEAM_TO_SCORE_3_WAY:()=>W,LEAGUES_NO_FORMAL_HOME_AWAY:()=>L,LIVE_TYPE_ID_BASE:()=>P_,League:()=>l,LeagueMap:()=>r_,METHOD_OF_ENDING:()=>qa,METHOD_OF_VICTORY:()=>Xa,MIN_ODDS_FOR_DIFF_CHECKING:()=>c_,MONEYLINE:()=>k,MONEYLINE_TOTAL_ROUNDS:()=>$a,MULTIPLIER_100:()=>f_,NINTH_INNING_MONEYLINE_3_WAY:()=>he,NINTH_INNING_RUN_LINE:()=>Ye,NINTH_INNING_TOTAL_RUNS:()=>ye,NO_RUNS_FIRST_INNING:()=>We,PLAYER_ASSISTS:()=>va,PLAYER_BASES:()=>ke,PLAYER_BATTING_STRIKEOUTS:()=>Ke,PLAYER_BATTING_WALKS:()=>Qe,PLAYER_DOUBLES:()=>je,PLAYER_DOUBLE_DOUBLE:()=>Ha,PLAYER_EARNED_RUNS:()=>Xe,PLAYER_GOALS:()=>K,PLAYER_HITS:()=>xe,PLAYER_HITS_ALLOWED:()=>Ze,PLAYER_HITS_RUNS_RBIS:()=>ze,PLAYER_HOME_RUNS:()=>Je,PLAYER_HOME_RUNS_YES_NO:()=>qe,PLAYER_MADE_THREES:()=>ba,PLAYER_OUTS:()=>$e,PLAYER_POINTS:()=>ha,PLAYER_POINTS_REBOUNDS_ASSISTS:()=>Ya,PLAYER_RBIS:()=>ea,PLAYER_REBOUNDS:()=>ya,PLAYER_RUNS:()=>aa,PLAYER_SIGNIFICANT_STRIKES:()=>xa,PLAYER_SINGLES:()=>_a,PLAYER_STOLEN_BASES:()=>ra,PLAYER_STRIKEOUTS:()=>ta,PLAYER_TAKEDOWNS:()=>za,PLAYER_TO_RECORD_WIN:()=>oa,PLAYER_WALKS:()=>na,POINT_SPREAD:()=>Va,RACE_TO_20_POINTS:()=>Wa,ROUND_BETTING:()=>Za,RUN_LINE:()=>Ea,SECOND_HALF_ASIAN_HANDICAP_CORNERS:()=>m,SECOND_HALF_BOTH_TEAMS_TO_SCORE:()=>f,SECOND_HALF_MONEYLINE:()=>U,SECOND_HALF_TOTAL_CORNERS:()=>w,SECOND_HALF_TOTAL_GOALS:()=>G,SECOND_HALF_TOTAL_GOALS_ODD_EVEN:()=>D,SECOND_INNING_MONEYLINE_3_WAY:()=>Oe,SECOND_INNING_RUN_LINE:()=>Re,SECOND_INNING_TOTAL_RUNS:()=>de,SEVENTH_INNING_MONEYLINE_3_WAY:()=>Fe,SEVENTH_INNING_RUN_LINE:()=>ge,SEVENTH_INNING_TOTAL_RUNS:()=>Be,SIXTH_INNING_MONEYLINE_3_WAY:()=>we,SIXTH_INNING_RUN_LINE:()=>Ge,SIXTH_INNING_TOTAL_RUNS:()=>De,Sport:()=>I,TAG_CHILD_SPREAD:()=>p_,TAG_CHILD_TOTALS:()=>m_,TEAM_CLEAN_SHEET:()=>Q,TEAM_TOTAL:()=>j,TEAM_TOTAL_CARD_POINTS:()=>X,TEAM_TOTAL_CORNERS:()=>x,TEAM_TOTAL_ODD_EVEN:()=>z,TEAM_TOTAL_POINTS_ODD_EVEN:()=>ka,TENNIS_ATP_GRAND_SLAM_SET_THRESHOLD:()=>E_,TENNIS_GEMS_LIMIT:()=>s_,TENNIS_MASTERS_SET_THRESHOLD:()=>i_,THIRD_INNING_MONEYLINE_3_WAY:()=>Me,THIRD_INNING_RUN_LINE:()=>Ce,THIRD_INNING_TOTAL_RUNS:()=>ue,TOTAL_CARDS:()=>Z,TOTAL_CORNERS:()=>J,TOTAL_CORNERS_ODD_EVEN:()=>q,TOTAL_GOALS:()=>$,TOTAL_GOALS_ODD_EVEN:()=>ee,TOTAL_POINTS:()=>Ka,TOTAL_POINTS_ODD_EVEN:()=>Qa,TOTAL_ROUNDS:()=>Ja,TOTAL_RUNS:()=>ia,TO_QUALIFY:()=>ae,VOLLEYBALL_FIFTH_SET_POINTS_LIMIT:()=>n_,VOLLEYBALL_POINTS_LIMIT:()=>o_,VOLLEYBALL_SET_THRESHOLD:()=>t_,WILL_A_POINT_BE_DEDUCTED:()=>e_,WILL_FIGHT_END_IN_FIRST_MINUTE:()=>a_,WILL_THERE_BE_OVERTIME:()=>sa,WINNING_ROUND:()=>__,ZERO:()=>C_,adjustSpreadOnOdds:()=>w_,allowGameSportWithPeriodConstraint:()=>l_,allowGameSportWithResultConstraint:()=>T_,allowSoccerGame:()=>L_,calculateImpliedOddsDifference:()=>N,checkGameContraints:()=>I_,checkOddsFromBookmakers:()=>S,createSpreadChildMarkets:()=>K_,createTotalChildMarkets:()=>Q_,cutOddsCloseToValue:()=>Y_,extractOddsForGamePerProvider:()=>D_,fetchResultInCurrentSet:()=>O_,filterOddsByMarketNameBookmaker:()=>H_,filterOddsByMarketNameTeamNameBookmaker:()=>B_,formatSpreadOdds:()=>b_,gamesDatesMatching:()=>M_,getBookmakersArray:()=>A,getLeagueSport:()=>A_,getLeagueSpreadType:()=>S_,getLeagueTotalType:()=>N_,getParentOdds:()=>v_,getSpreadData:()=>G_,groupAndFormatSpreadOdds:()=>h_,groupOddsBySelectionAndPoints:()=>V_,processMarket:()=>W_,processTotalOdds:()=>y_,statusCodes:()=>U_,teamNamesMatching:()=>d_}),"function"!=typeof Object.assign&&(Object.assign=function(e,a){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var _=Object(e),r=1;r<arguments.length;r++){var t=arguments[r];if(null!=t)for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(_[o]=t[o])}return _});var _=function(e){return parseFloat(e.toPrecision(12))};function r(e,a,_){return void 0===_||0==+_?Math[e](a):(a=+a,_=+_,isNaN(a)||"number"!=typeof _||_%1!=0?NaN:a<0?-r(e,-a,_):(a=a.toString().split("e"),+((a=(a=Math[e](+(a[0]+"e"+(a[1]?+a[1]-_:-_)))).toString().split("e"))[0]+"e"+(a[1]?+a[1]+_:_))))}var t,o,n={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?_(100*(this.decimalValue-1)):_(-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 _(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 a=_(100/this.decimalValue);return null!==e.precision&&(a=r("round",a,-e.precision)),a.toString()+"%"}return _(1/this.decimalValue)}},fractional:{from:function(e){var a,_=e.toString().split("/");if(e=parseFloat(_[0]),2===_.length)a=parseFloat(_[1]);else{if(1!==_.length)throw new Error("Invalid fraction");a=1}if(0===e||0===a||e/a<=0)throw new Error("Outside valid range");return 1+e/a},to:function(e){return function(e,a){for(var _,r=[0,1],t=[1,0],o=function(e){var a=null,_=e.toString().indexOf("E");-1==_&&(_=e.toString().indexOf("e"));var r=null,t=(a=-1==_?e.toString():e.toString().substring(0,_)).toString().indexOf(".");-1==t?r=a:0===t?r=a.substring(1,a.length):t<a.length&&(r=a.substring(0,t)+a.substring(t+1,a.length));var o=r,n=o.toString().length,E=e,i=E.toString().length;0===E&&(i=0);var s,A=n-i;for(s=A;s>0&&o%2==0;s--)o/=2;for(s=A;s>0&&o%5==0;s--)o/=5;return o}(e),n=e,E=Math.pow(10,-a)/2,i=2;i<1e3;i++){var s=Math.floor(n);if(r[i]=s*r[i-1]+r[i-2],Math.abs(r[i])>o)return;if(t[i]=s*t[i-1]+t[i-2],_=r[i]/t[i],Math.abs(_-e)<E||NaN==_)return r[i].toString()+"/"+t[i].toString();n=1/(n-s)}}(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?_(this.decimalValue-1):_(-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?_(-1/(this.decimalValue-1)):_(this.decimalValue-1)}}},E=((o=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=_(e)}).prototype=(t=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,t.from=function(e,a){if(!n.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var _=n[e].from(a);return new o(_)},t);E.prototype.to=function(e,a){if(!n.hasOwnProperty(e))throw new Error("Unknown format "+e+".");a=Object.assign({precision:null,percentage:!1},a);var _=n[e].to.call(this,a);return"number"==typeof _&&null!==a.precision&&(_=r("round",_,-a.precision)),_};var i,s=E.from,A=function(e,a,_){var r=e.find((function(e){return Number(e.sportId)===Number(a)}));if(r){if(""==r.primaryBookmaker)return _;var t=[];return r.primaryBookmaker&&t.push(r.primaryBookmaker),r.secondaryBookmaker&&t.push(r.secondaryBookmaker),r.tertiaryBookmaker&&t.push(r.tertiaryBookmaker),t}return _},S=function(e,a,_,r,t){console.log("########## CHECK ODDS START ##########"),console.log("oddsMap: "+e),console.log("arrayOfBookmakers: "+a),console.log("isTwoPositionalSport: "+_),console.log("maxImpliedPercentageDifference: "+r),console.log("minOddsForDiffChecking: "+t),console.log("########## CHECK ODDS END ##########");var o=a.some((function(a){var r=e.get(a);return!!r&&(0===r.homeOdds||0===r.awayOdds||!_&&0===r.drawOdds||1===r.homeOdds||1===r.awayOdds||!_&&1===r.drawOdds)}));if(1==a.length){if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var n=a[0],E=e.get(n);return[{homeOdds:E.homeOdds,awayOdds:E.awayOdds,drawOdds:_?0:E.drawOdds}]}if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var i=e.get(a[0]),A=i.homeOdds,S=i.awayOdds,I=i.drawOdds;if(a.slice(1).some((function(a){var o=e[a];if(o){var n=o.homeOdds,E=o.awayOdds,i=o.drawOdds,l=s("decimal",A).to("impliedProbability"),L=s("decimal",S).to("impliedProbability"),T=_?0:s("decimal",I).to("impliedProbability"),O=s("decimal",n).to("impliedProbability"),R=s("decimal",E).to("impliedProbability"),d=_?0:s("decimal",i).to("impliedProbability"),M=N(l,O),C=N(L,R),u=_?0:N(T,d);if(M>r&&l>t&&O>t||C>r&&L>t&&R>t||!_&&u>r&&T>t&&d>t)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var l=[];return a.forEach((function(a){return l.push(e.get(a))})),null!=l[0]?l.map((function(e){return{homeOdds:e.homeOdds,awayOdds:e.awayOdds,drawOdds:_?0:e.drawOdds}})):(console.log("Returning zero odds cause no matching bookmakers have been found"),[{homeOdds:0,awayOdds:0,drawOdds:0}])},N=function(e,a){var _=Math.abs(e-a)/e*100;return console.log("% diff: "+_),_},I={SOCCER:"Soccer",FOOTBALL:"Football",BASKETBALL:"Basketball",BASEBALL:"Baseball",HOCKEY:"Hockey",FIGHTING:"Fighting",TENNIS:"Tennis",ESPORTS:"eSports",RUGBY:"Rugby",VOLLEYBALL:"Volleyball",HANDBALL:"Handball",WATERPOLO:"Waterpolo",CRICKET:"Cricket",MOTOSPORT:"Motosport",GOLF:"Golf",TABLE_TENNIS:"TableTennis",EMPTY:""},l={NCAAF:1,NFL:2,MLB:3,NBA:4,NCAAB:5,NHL:6,UFC:7,WNBA:8,MLS:10,EPL:11,LIGUE_ONE:12,BUNDESLIGA:13,LA_LIGA:14,SERIE_A:15,UEFA_CL:16,UEFA_EL:17,FIFA_WC:18,J1_LEAGUE:19,IPL:20,T20_BLAST:21,IIHF_WORLD_CHAMPIONSHIP:33,COPA_AMERICA:44,COPA_LIBERTADORES:45,UEFA_EURO:50,EREDIVISIE:57,PRIMEIRA_LIGA:61,SUMMER_OLYMPICS_SOCCER_WOMEN:65,SUMMER_OLYMPICS_SOCCER:66,FIFA_WC_WOMEN:76,ENGLAND_CUP:132,FRANCE_CUP:134,SPAIN_CUP:138,ITALY_CUP:141,TENNIS_GS:153,TENNIS_MASTERS:156,SUMMER_OLYMPICS_TENNIS:158,GERMANY_CUP:209,LIGA_MX:230,BRAZIL_1:268,UEFA_EURO_U21:288,FIFA_WORLD_CUP_U20:296,SUMMER_OLYMPICS_HANDBALL_WOMEN:380,SUMMER_OLYMPICS_HANDBALL:381,EUROLEAGUE:399,SUMMER_OLYMPICS_BASKETBALL:406,SUMMER_OLYMPICS_BASKETBALL_WOMEN:407,FIBA_WORLD_CUP:409,FORMULA1:445,SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN:453,SUMMER_OLYMPICS_BEACH_VOLEYBALL:454,MOTOGP:497,SAUDI_PROFESSIONAL_LEAGUE:536,SUMMER_OLYMPICS_WATERPOLO:8881,SUMMER_OLYMPICS_VOLEYBALL_WOMEN:8893,SUMMER_OLYMPICS_VOLEYBALL:8894,SUMMER_OLYMPICS_TABLE_TENNIS:8910,BOXING:9196,SUMMER_OLYMPICS_RUGBY:9578,SUMMER_OLYMPICS_RUGBY_WOMEN:9588,SUMMER_OLYMPICS_HOCKEY_WOMEN:9698,SUMMER_OLYMPICS_HOCKEY:9699,UEFA_NATIONS_LEAGUE:9806,CONCACAF_NATIONS_LEAGUE:9821,CSGO:9977,DOTA2:9983,SUMMER_OLYMPICS_BASKETBALL_3X3:10071,SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN:10072,SUMMER_OLYMPICS_QUALIFICATION:10502,LOL:10138,CONMEBOL_WC_QUALIFICATIONS:10199,UEFA_CONFERENCE_LEAGUE:10216,NON_TITLE_BOXING:10595,UEFA_CHAMPIONS_LEAGUE_QUALIFICATION:10611,UEFA_EUROPA_LEAGUE_QUALIFICATION:10613,UEFA_CONFERENCE_LEAGUE_QUALIFICATION:10615,GOLF_H2H:100021,GOLF_WINNER:100121,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1:15312,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2:15313,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3:15314,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4:15315,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5:15316,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6:15317,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7:15318,TENNIS_MASTERS_LIVE_MAPPING_V2_1:15622,TENNIS_MASTERS_LIVE_MAPPING_V2_2:15623,TENNIS_MASTERS_LIVE_MAPPING_V2_3:15624,TENNIS_MASTERS_LIVE_MAPPING_V2_4:15625,TENNIS_MASTERS_LIVE_MAPPING_V2_5:15626,TENNIS_MASTERS_LIVE_MAPPING_V2_6:15627,TENNIS_MASTERS_LIVE_MAPPING_V2_7:15628,TENNIS_MASTERS_LIVE_MAPPING_V2_8:15632,TENNIS_MASTERS_LIVE_MAPPING_V2_9:15633,TENNIS_MASTERS_LIVE_MAPPING_V2_10:15634,TENNIS_MASTERS_LIVE_MAPPING_V2_11:15635,TENNIS_MASTERS_LIVE_MAPPING_V2_12:15636,TENNIS_MASTERS_LIVE_MAPPING_V2_13:15637,TENNIS_MASTERS_LIVE_MAPPING_V2_14:15638,TENNIS_MASTERS_LIVE_MAPPING_V2_15:15641,TENNIS_MASTERS_LIVE_MAPPING_V2_16:15642,TENNIS_MASTERS_LIVE_MAPPING_V2_17:15643,TENNIS_MASTERS_LIVE_MAPPING_V2_18:15644,TENNIS_MASTERS_LIVE_MAPPING_V2_19:15645,TENNIS_MASTERS_LIVE_MAPPING_V2_20:15646,TENNIS_MASTERS_LIVE_MAPPING_V2_21:15647,TENNIS_MASTERS_LIVE_MAPPING_V2_22:15648},L=[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],T="1st Half Asian Handicap",O="1st Half Asian Handicap Corners",R="1st Half Both Teams To Score",d="1st Half Correct Score",M="1st Half Moneyline",C="1st Half Team Total",u="1st Half Team Total Exact",P="1st Half Total Corners",c="1st Half Total Goals",p="1st Half Total Goals Odd/Even",m="2nd Half Asian Handicap Corners",f="2nd Half Both Teams To Score",U="2nd Half Moneyline",w="2nd Half Total Corners",G="2nd Half Total Goals",D="2nd Half Total Goals Odd/Even",F="Anytime Goal Scorer",g="Asian Handicap",B="Asian Handicap Cards",v="Asian Handicap Corners",H="Both Teams To Score",b="Correct Score",h="Draw No Bet",Y="First Goal Scorer",y="First Team To Score 3-Way",V="Last Goal Scorer",W="Last Team To Score 3-Way",k="Moneyline",K="Player Goals",Q="Team Clean Sheet",j="Team Total",X="Team Total Card Points",x="Team Total Corners",z="Team Total Odd/Even",Z="Total Cards",J="Total Corners",q="Total Corners Odd/Even",$="Total Goals",ee="Total Goals Odd/Even",ae="To Qualify",_e="Halftime / Fulltime",re="1st 3 Innings Moneyline",te="1st 3 Innings Run Line",oe="1st 3 Innings Team Total",ne="1st 3 Innings Total Runs",Ee="1st 7 Innings Moneyline",ie="1st 7 Innings Run Line",se="1st 7 Innings Team Total",Ae="1st 7 Innings Total Runs",Se="1st Half Run Line",Ne="1st Half Total Runs",Ie="1st Inning Moneyline 3-Way",le="1st Inning Run Line",Le="1st Inning Total Runs",Te="1st Inning Total Runs Odd/Even",Oe="2nd Inning Moneyline 3-Way",Re="2nd Inning Run Line",de="2nd Inning Total Runs",Me="3rd Inning Moneyline 3-Way",Ce="3rd Inning Run Line",ue="3rd Inning Total Runs",Pe="4th Inning Moneyline 3-Way",ce="4th Inning Run Line",pe="4th Inning Total Runs",me="5th Inning Moneyline 3-Way",fe="5th Inning Run Line",Ue="5th Inning Total Runs",we="6th Inning Moneyline 3-Way",Ge="6th Inning Run Line",De="6th Inning Total Runs",Fe="7th Inning Moneyline 3-Way",ge="7th Inning Run Line",Be="7th Inning Total Runs",ve="8th Inning Moneyline 3-Way",He="8th Inning Run Line",be="8th Inning Total Runs",he="9th Inning Moneyline 3-Way",Ye="9th Inning Run Line",ye="9th Inning Total Runs",Ve="First Team To Score",We="No Runs First Inning",ke="Player Bases",Ke="Player Batting Strikeouts",Qe="Player Batting Walks",je="Player Doubles",Xe="Player Earned Runs",xe="Player Hits",ze="Player Hits + Runs + RBIs",Ze="Player Hits Allowed",Je="Player Home Runs",qe="Player Home Runs Yes/No",$e="Player Outs",ea="Player RBIs",aa="Player Runs",_a="Player Singles",ra="Player Stolen Bases",ta="Player Strikeouts",oa="Player To Record Win",na="Player Walks",Ea="Run Line",ia="Total Runs",sa="Will There Be Overtime",Aa="1st Half Double Chance",Sa="1st Half Moneyline 3-Way",Na="1st Half Point Spread",Ia="1st Half Race To 20 Points",la="1st Half Race To 25 Points",La="1st Half Race To 30 Points",Ta="1st Half Race To 35 Points",Oa="1st Half Race To 40 Points",Ra="1st Half Race To 45 Points",da="1st Half Race To 50 Points",Ma="1st Half Race To 55 Points",Ca="1st Half Race To 60 Points",ua="1st Half Total Points",Pa="1st Half Total Points Odd/Even",ca="1st Quarter Double Chance",pa="1st Quarter Moneyline",ma="1st Quarter Moneyline 3-Way",fa="1st Quarter Point Spread",Ua="1st Quarter Race To 10 Points",wa="1st Quarter Race To 15 Points",Ga="1st Quarter Race To 20 Points",Da="1st Quarter Team Total",Fa="1st Quarter Total Points",ga="1st Quarter Total Points Odd/Even",Ba="First Basket Including FT",va="Player Assists",Ha="Player Double Double",ba="Player Made Threes",ha="Player Points",Ya="Player Points + Rebounds + Assists",ya="Player Rebounds",Va="Point Spread",Wa="Race To 20 Points",ka="Team Total Points Odd/Even",Ka="Total Points",Qa="Total Points Odd/Even",ja="Go The Distance",Xa="Method of Victory",xa="Player Significant Strikes",za="Player Takedowns",Za="Round Betting",Ja="Total Rounds",qa="Method Of Ending",$a="Moneyline + Total Rounds",e_="Will A Point Be Deducted",a_="Will Fight End In First Minute",__="Winning Round",r_=((i={})[l.NCAAF]={sport:I.FOOTBALL,id:l.NCAAF,isDrawAvailable:!1},i[l.NFL]={sport:I.FOOTBALL,id:l.NFL,isDrawAvailable:!1,spread:g,total:Ka},i[l.MLB]={sport:I.BASEBALL,id:l.MLB,isDrawAvailable:!1,spread:Ea,total:ia},i[l.NBA]={sport:I.BASKETBALL,id:l.NBA,isDrawAvailable:!1,spread:Va,total:Ka},i[l.NCAAB]={sport:I.BASKETBALL,id:l.NCAAB,isDrawAvailable:!1,spread:Va,total:Ka},i[l.NHL]={sport:I.HOCKEY,id:l.NHL,isDrawAvailable:!1},i[l.UFC]={sport:I.FIGHTING,id:l.UFC,isDrawAvailable:!1},i[l.WNBA]={sport:I.BASKETBALL,id:l.WNBA,isDrawAvailable:!1,spread:Va,total:Ka},i[l.MLS]={sport:I.SOCCER,id:l.MLS,isDrawAvailable:!0,spread:g,total:$},i[l.EPL]={sport:I.SOCCER,id:l.EPL,isDrawAvailable:!0,spread:g,total:$},i[l.LIGUE_ONE]={sport:I.SOCCER,id:l.LIGUE_ONE,isDrawAvailable:!0,spread:g,total:$},i[l.BUNDESLIGA]={sport:I.SOCCER,id:l.BUNDESLIGA,isDrawAvailable:!0,spread:g,total:$},i[l.LA_LIGA]={sport:I.SOCCER,id:l.LA_LIGA,isDrawAvailable:!0,spread:g,total:$},i[l.SERIE_A]={sport:I.SOCCER,id:l.SERIE_A,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_CL]={sport:I.SOCCER,id:l.UEFA_CL,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_EL]={sport:I.SOCCER,id:l.UEFA_EL,isDrawAvailable:!0,spread:g,total:$},i[l.FIFA_WC]={sport:I.SOCCER,id:l.FIFA_WC,isDrawAvailable:!0,spread:g,total:$},i[l.J1_LEAGUE]={sport:I.SOCCER,id:l.J1_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.IPL]={sport:I.CRICKET,id:l.IPL,isDrawAvailable:!1},i[l.T20_BLAST]={sport:I.CRICKET,id:l.T20_BLAST,isDrawAvailable:!1},i[l.IIHF_WORLD_CHAMPIONSHIP]={sport:I.HOCKEY,id:l.IIHF_WORLD_CHAMPIONSHIP,isDrawAvailable:!0},i[l.COPA_AMERICA]={sport:I.SOCCER,id:l.COPA_AMERICA,isDrawAvailable:!0,spread:g,total:$},i[l.COPA_LIBERTADORES]={sport:I.SOCCER,id:l.COPA_LIBERTADORES,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_EURO]={sport:I.SOCCER,id:l.UEFA_EURO,isDrawAvailable:!0,spread:g,total:$},i[l.EREDIVISIE]={sport:I.SOCCER,id:l.EREDIVISIE,isDrawAvailable:!0,spread:g,total:$},i[l.PRIMEIRA_LIGA]={sport:I.SOCCER,id:l.PRIMEIRA_LIGA,isDrawAvailable:!0,spread:g,total:$},i[l.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:I.SOCCER,id:l.SUMMER_OLYMPICS_SOCCER_WOMEN,isDrawAvailable:!0,spread:g,total:$},i[l.SUMMER_OLYMPICS_SOCCER]={sport:I.SOCCER,id:l.SUMMER_OLYMPICS_SOCCER,isDrawAvailable:!0,spread:g,total:$},i[l.FIFA_WC_WOMEN]={sport:I.SOCCER,id:l.FIFA_WC_WOMEN,isDrawAvailable:!0,spread:g,total:$},i[l.ENGLAND_CUP]={sport:I.SOCCER,id:l.ENGLAND_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.FRANCE_CUP]={sport:I.SOCCER,id:l.FRANCE_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.SPAIN_CUP]={sport:I.SOCCER,id:l.SPAIN_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.ITALY_CUP]={sport:I.SOCCER,id:l.ITALY_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.TENNIS_GS]={sport:I.TENNIS,id:l.TENNIS_GS,isDrawAvailable:!1},i[l.TENNIS_MASTERS]={sport:I.TENNIS,id:l.TENNIS_MASTERS,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_TENNIS]={sport:I.TENNIS,id:l.SUMMER_OLYMPICS_TENNIS,isDrawAvailable:!1},i[l.GERMANY_CUP]={sport:I.SOCCER,id:l.GERMANY_CUP,isDrawAvailable:!0,spread:g,total:$},i[l.BRAZIL_1]={sport:I.SOCCER,id:l.BRAZIL_1,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_EURO_U21]={sport:I.SOCCER,id:l.UEFA_EURO_U21,isDrawAvailable:!0,spread:g,total:$},i[l.FIFA_WORLD_CUP_U20]={sport:I.SOCCER,id:l.FIFA_WORLD_CUP_U20,isDrawAvailable:!0,spread:g,total:$},i[l.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:I.HANDBALL,id:l.SUMMER_OLYMPICS_HANDBALL_WOMEN,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_HANDBALL]={sport:I.HANDBALL,id:l.SUMMER_OLYMPICS_HANDBALL,isDrawAvailable:!0},i[l.EUROLEAGUE]={sport:I.BASKETBALL,id:l.EUROLEAGUE,isDrawAvailable:!1,spread:Va,total:Ka},i[l.SUMMER_OLYMPICS_BASKETBALL]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_BASKETBALL,isDrawAvailable:!1,spread:Va,total:Ka},i[l.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_BASKETBALL_WOMEN,isDrawAvailable:!1,spread:Va,total:Ka},i[l.FIBA_WORLD_CUP]={sport:I.BASKETBALL,id:l.FIBA_WORLD_CUP,isDrawAvailable:!1,spread:Va,total:Ka},i[l.FORMULA1]={sport:I.MOTOSPORT,id:l.FORMULA1,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:I.VOLLEYBALL,id:l.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:I.VOLLEYBALL,id:l.SUMMER_OLYMPICS_BEACH_VOLEYBALL,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:I.TABLE_TENNIS,id:l.SUMMER_OLYMPICS_TABLE_TENNIS,isDrawAvailable:!1},i[l.MOTOGP]={sport:I.MOTOSPORT,id:l.MOTOGP,isDrawAvailable:!1},i[l.SAUDI_PROFESSIONAL_LEAGUE]={sport:I.SOCCER,id:l.SAUDI_PROFESSIONAL_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.SUMMER_OLYMPICS_WATERPOLO]={sport:I.WATERPOLO,id:l.SUMMER_OLYMPICS_WATERPOLO,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:I.VOLLEYBALL,id:l.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_VOLEYBALL]={sport:I.VOLLEYBALL,id:l.SUMMER_OLYMPICS_VOLEYBALL,isDrawAvailable:!1},i[l.BOXING]={sport:I.FIGHTING,id:l.BOXING,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_RUGBY]={sport:I.RUGBY,id:l.SUMMER_OLYMPICS_RUGBY,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:I.RUGBY,id:l.SUMMER_OLYMPICS_RUGBY_WOMEN,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:I.HOCKEY,id:l.SUMMER_OLYMPICS_HOCKEY_WOMEN,isDrawAvailable:!0},i[l.SUMMER_OLYMPICS_HOCKEY]={sport:I.HOCKEY,id:l.SUMMER_OLYMPICS_HOCKEY,isDrawAvailable:!0},i[l.UEFA_NATIONS_LEAGUE]={sport:I.SOCCER,id:l.UEFA_NATIONS_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.CONCACAF_NATIONS_LEAGUE]={sport:I.SOCCER,id:l.CONCACAF_NATIONS_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.CSGO]={sport:I.ESPORTS,id:l.CSGO,isDrawAvailable:!1},i[l.DOTA2]={sport:I.ESPORTS,id:l.DOTA2,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_BASKETBALL_3X3,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,isDrawAvailable:!1},i[l.SUMMER_OLYMPICS_QUALIFICATION]={sport:I.BASKETBALL,id:l.SUMMER_OLYMPICS_QUALIFICATION,isDrawAvailable:!1,spread:Va,total:Ka},i[l.LOL]={sport:I.ESPORTS,id:l.LOL,isDrawAvailable:!1},i[l.CONMEBOL_WC_QUALIFICATIONS]={sport:I.SOCCER,id:l.CONMEBOL_WC_QUALIFICATIONS,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_CONFERENCE_LEAGUE]={sport:I.SOCCER,id:l.UEFA_CONFERENCE_LEAGUE,isDrawAvailable:!0,spread:g,total:$},i[l.NON_TITLE_BOXING]={sport:I.FIGHTING,id:l.NON_TITLE_BOXING,isDrawAvailable:!1},i[l.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:I.SOCCER,id:l.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:I.SOCCER,id:l.UEFA_EUROPA_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:g,total:$},i[l.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:I.SOCCER,id:l.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:g,total:$},i[l.GOLF_H2H]={sport:I.GOLF,id:l.GOLF_H2H,isDrawAvailable:!1},i[l.GOLF_WINNER]={sport:I.GOLF,id:l.GOLF_WINNER,isDrawAvailable:!1},i[l.LIGA_MX]={sport:I.SOCCER,id:l.LIGA_MX,isDrawAvailable:!0,spread:g,total:$},i),t_=2,o_=20,n_=10,E_=2,i_=1,s_=5,A_=function(e){var a=r_[e];return a?a.sport:I.EMPTY},S_=function(e){var a=r_[e];return a?a.spread:void 0},N_=function(e){var a=r_[e];return a?a.total:void 0},I_=function(e,a,_){var r=e.score_home_total,t=e.score_away_total,o=e.clock,n=e.period,E=e.status,i=e.home_team,s=e.away_team,A=parseInt(n),S=A_(a);return"completed"==E.toLowerCase()?{allow:!1,message:"Blocking game ".concat(i," - ").concat(s," because it is no longer live.")}:S===I.BASKETBALL?l_(i,s,A,_.get(I.BASKETBALL)):S===I.HOCKEY?l_(i,s,A,_.get(I.HOCKEY)):S===I.BASEBALL?l_(i,s,A,_.get(I.BASEBALL)):S===I.SOCCER?L_(i,s,o,n,_.get(I.SOCCER)):S===I.TENNIS?T_(e,i,s,n,r,t,a,S):S===I.VOLLEYBALL?T_(e,i,s,A,r,t,a,S):{allow:!0,message:"The sport ".concat(a," does not have constraint")}},l_=function(e,a,_,r){return!Number.isNaN(_)&&_>=r?{allow:!1,message:"Blocking game ".concat(e," - ").concat(a," due to period: ").concat(_,". period")}:{allow:!0,message:""}},L_=function(e,a,_,r,t){var o=Number(_);return!Number.isNaN(o)&&o>=t||Number.isNaN(o)&&"HALF"!=r?{allow:!1,message:"Blocking game ".concat(e," - ").concat(a," due to clock: ").concat(_,"min")}:{allow:!0,message:""}},T_=function(e,a,_,r,t,o,n,E){var i=Number(r),s=O_(i,e),A="atp"==e.league.toLowerCase(),S={home:t,away:o};return E==I.VOLLEYBALL?R_(a,_,s,S,t_,5==i?n_:o_):n.toString().startsWith(l.TENNIS_GS)&&A?R_(a,_,s,S,E_,s_):n.toString().startsWith(l.TENNIS_GS)&&!A||n.toString().startsWith(l.TENNIS_MASTERS)||n.toString().startsWith(l.SUMMER_OLYMPICS_TENNIS)?R_(a,_,s,S,i_,s_):{allow:!0,message:"The sport ".concat(n," does not have result constraint")}},O_=function(e,a){var _=0,r=0;switch(e){case 1:_=Number(a.score_home_period_1),r=Number(a.score_away_period_1);break;case 2:_=Number(a.score_home_period_2),r=Number(a.score_away_period_2);break;case 3:_=Number(a.score_home_period_3),r=Number(a.score_away_period_3);break;case 4:_=Number(a.score_home_period_4),r=Number(a.score_away_period_4);break;case 5:_=Number(a.score_home_period_5),r=Number(a.score_away_period_5)}return{home:_,away:r}},R_=function(e,a,_,r,t,o){return Number(r.home)!=t&&Number(r.away)!=t||!(Number(r.home)==t&&_.home>=o||Number(r.away)==t&&_.away>=o)?{allow:!0,message:"",currentHomeGameScore:_.home,currentAwayGameScore:_.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(a," due to current result: ").concat(r.home," - ").concat(r.away," (").concat(_.home," - ").concat(_.away,")")}},d_=function(e,a,_,r,t,o){var n,E;if(L.includes(e)?(n=r.toLowerCase()==a.toLowerCase()||r.toLowerCase()==_.toLowerCase(),E=t.toLowerCase()==a.toLowerCase()||t.toLowerCase()==_.toLowerCase()):(n=r.toLowerCase()==a.toLowerCase(),E=t.toLowerCase()==_.toLowerCase()),!0!==n){var i=o.get(r.toLowerCase()),s=o.get(a.toLowerCase()),A=o.get(_.toLowerCase());if([i,s].some((function(e){return null==e})))return!1;n=L.includes(e)?i==s||i==A:i==s}if(!0!==E){var S=o.get(t.toLowerCase());if(s=o.get(a.toLowerCase()),[S,A=o.get(_.toLowerCase())].some((function(e){return null==e})))return!1;E=L.includes(e)&&S==s||S==A}return n&&E},M_=function(e,a,_,r){var t;if(A_(_)==I.TENNIS){var o=a.getTime(),n=e.getTime();t=Math.abs(n-o)<=Number(60*r*1e3)}else t=a.toUTCString()==e.toUTCString();return t},C_=0,u_="Draw",P_=1e5,c_=.2,p_=10001,m_=10002,f_=100,U_={OPEN:0,PAUSED:1,IN_PROGRESS:3,FINISHED:8,RESOLVED:10,CANCELED:255},w_=function(e,a,_){if(e.some((function(e){return 0===e})))return e;var r=e.reduce((function(e,a){return e+a}),0);if(r<=1)return Array(e.length).fill(0);if(0===_){if(!(a>100*(r-1)))return e;_=a}var t=1+_/100,o=t/r,n=e.map((function(e){return e*o}));if(n.some((function(e){return e>=1})))return Array(e.length).fill(0);var E=n.reduce((function(e,a){return e+a}),0);if(E<1)return Array(e.length).fill(0);var i=t/E;return n.map((function(e){return e*i}))},G_=function(e,a,_,r){var t=e.find((function(e){return Number(e.typeId)===Number(_)&&Number(e.sportId)===Number(a)}));return t?{minSpread:t.minSpread?Number(t.minSpread):r,targetSpread:t.targetSpread?Number(t.targetSpread):0}:{minSpread:r,targetSpread:0}},D_=function(e,a,_,r,t){var o=new Map;return e.forEach((function(e){var n,E,i=a.odds.filter((function(a){return a.sports_book_name.toLowerCase()==e.toLowerCase()})),s=r.get(_.homeTeam.toLowerCase()),A=r.get(_.awayTeam.toLowerCase()),S=0;null!=(n=null==s?i.find((function(e){var a=r.get(e.name.toLowerCase());return null==a?e.name.toLowerCase()==_.homeTeam.toLowerCase():a==_.homeTeam.toLowerCase()})):i.find((function(e){var a=r.get(e.name.toLowerCase());return null==a?e.name.toLowerCase()==s:a==s})))&&(S=n.price);var N=0;null!=(E=null==A?i.find((function(e){var a=r.get(e.name.toLowerCase());return null==a?e.name.toLowerCase()==_.awayTeam.toLowerCase():a==_.awayTeam.toLowerCase()})):i.find((function(e){var a=r.get(e.name.toLowerCase());return null==a?e.name.toLowerCase()==A:a==A})))&&(N=E.price);var I=0;if(t){var l=i.find((function(e){return"draw"==e.name.toLowerCase()}));null!=l&&(I=l.price)}o.set(e.toLowerCase(),{homeOdds:S,awayOdds:N,drawOdds:I})})),o},F_=function(e){return e===C_?0:g_("decimal","impliedProbability",e)},g_=function(e,a,_){try{return s(e,_).to(a)}catch(e){return 0}},B_=function(e,a,_,r,t){var o=new Map;return console.log("########## FILTER ODDS START ##########"),console.log("oddsArray: "+e),console.log("marketName: "+a),console.log("liveOddsProviders: "+_),console.log("isTwoPositionalSport: "+t),console.log("########## FILTER ODDS END ##########"),_.forEach((function(_){console.log("oddsProvider: ",_);var n=0,E=e.filter((function(e){return console.log("oddd: ",e),e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==_.toLowerCase()&&e.selection.toLowerCase()===r.homeTeam.toLowerCase()}));console.log("homeTeamOddsObject: "+E),0!==E.length&&(n=E[0].price);var i=0,s=e.filter((function(e){return e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==_.toLowerCase()&&e.selection.toLowerCase()===r.awayTeam.toLowerCase()}));console.log("awayTeamOddsObject: "+s),0!==s.length&&(i=s[0].price);var A=0;if(!t){var S=e.filter((function(e){return e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==_.toLowerCase()&&e.selection.toLowerCase()===u_.toLowerCase()}));console.log("drawOddsObject: "+S),0!==S.length&&(A=S[0].price)}o.set(_.toLowerCase(),{homeOdds:n,awayOdds:i,drawOdds:A})})),o},v_=function(e,a,_,r,t,o,n){var E={homeTeam:r.home_team,awayTeam:r.away_team},i=B_(r.odds,k,_,E,e),s=S(i,_,e,n,c_),A=s.some((function(e){return 1==e.homeOdds||1==e.awayOdds||1==e.drawOdds}));if([s[0].homeOdds,s[0].awayOdds,s[0].drawOdds].every((function(e){return e==C_}))||A)return console.log("No Moneyline odds found or there is 100% odd, returning zero odds."),e?[0,0]:[0,0,0];var N=[s[0].homeOdds,s[0].awayOdds,s[0].drawOdds].map((function(e){return F_(e)})),I=G_(a,t,P_,o);return null!==I?w_(N,I.minSpread,I.targetSpread):w_(N,o,0)},H_=function(e,a,_){return e.filter((function(e){return e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==_.toLowerCase()}))},b_=function(e,a,_,r,t,o){var n=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)}));return h_(n,a).map((function(e){var a=e.line,n=e.odds,E=F_(n[0])||C_,i=F_(n[1])||C_,s=E===C_||i===C_;if(!s){var A,S=G_(r,_,t,o);null!==S?(A=w_([E,i],S.minSpread,S.targetSpread)).some((function(e){return e===C_}))?s=!0:(E=A[0],i=A[1]):(A=w_([E,i],o,0)).some((function(e){return e===C_}))?s=!0:(E=A[0],i=A[1])}return{leagueId:_,typeId:t,results:[],status:s?U_.PAUSED:U_.OPEN,line:a*f_,odds:[E,i]}})).filter((function(e){return null!==e}))},h_=function(e,a){var _=e.reduce((function(e,_){var r=_.selection_points,t=_.price,o=_.selection===a.homeTeam,n=o?r:-r;return e[n]||(e[n]={home:null,away:null}),o?e[n].home=t:e[n].away=t,e}),{}),r=Object.entries(_).reduce((function(e,a){var _=a[0],r=a[1],t=parseFloat(_);return null!==r.home&&null!==r.away&&e.push({line:t,odds:[r.home,r.away]}),e}),[]);return r},Y_=function(e,a){return void 0===a&&(a=.952),e.map((function(e){return Math.abs(e)>a?C_:e}))},y_=function(e,a,_,r,t){var o=[],n=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)})),E=V_(n);return Object.entries(E).forEach((function(e){var n=e[0],E=e[1],i=E.over,s=E.under,A=n.split("_"),S=(A[0],A[1]),N=F_(i)||C_,I=F_(s)||C_,l=N===C_||I===C_;if(!l){var L,T=G_(_,a,r,t);null!==T?(L=w_([N,I],T.minSpread,T.targetSpread)).some((function(e){return e===C_}))?l=!0:(N=L[0],I=L[1]):(L=w_([N,I],t,0)).some((function(e){return e===C_}))?l=!0:(N=L[0],I=L[1])}var O={leagueId:a,typeId:r,results:[],status:l?U_.PAUSED:U_.OPEN,line:parseFloat(S)*f_,odds:[N,I]};o.push(O)})),o},V_=function(e){return e.reduce((function(e,a){if(a){var _="".concat(a.selection,"_").concat(a.selection_points);e[_]||(e[_]={over:null,under:null}),"over"===a.selection_line?e[_].over=a.price:"under"===a.selection_line&&(e[_].under=a.price)}return e}),{})},W_=function(e,a,_,r,t,o,n){var E=r.filter((function(a){return a.sportId===String(e.leagueId)})),i=v_(!t,E,_,a,e.leagueId,o,n),A=i[0]==C_||i[1]==C_||t&&i[2]==C_;e.odds.length>0&&(e.odds=e.odds.map((function(e,a){var _;return a<3&&(_=i[a]),{american:s("impliedProbability",_).to("moneyline"),decimal:s("impliedProbability",_).to("decimal"),normalizedImplied:_}})));var S=A?[]:k_(e.leagueId,E,a,_,o);return console.log("Mapped event for game ID: "+e.gameId),e.childMarkets=S,e},k_=function(e,a,_,r,t){var o=[];return(o=o.concat(K_(_,e,a,r,t))).concat(Q_(_,e,a,r,t))},K_=function(e,a,_,r,t){console.log("CREATING SPREAD CHILD MARKETS");var o=[],n=S_(a),E={homeTeam:e.home_team,awayTeam:e.away_team};if(n){var i=H_(e.odds,n,r[0]);if(i.length>0){var s=b_(i,E,a,_,p_,t);o.push.apply(o,s)}}else console.warn("Spread type for sport ID ".concat(a," not found."));return console.log("RETURNING SPREAD CHILD MARKETS",o),o},Q_=function(e,a,_,r,t){console.log("CREATING TOTAL CHILD MARKETS");var o=[],n=N_(a);if(n){var E=H_(e.odds,n,r[0]);E.length>0&&o.push.apply(o,y_(E,a,_,m_,t))}else console.warn("Configuration (totals) for sport ID ".concat(a," not found."));return console.log("RETURNING TOTAL CHILD MARKETS: ",o),o};return a})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overtime-live-trading-utils",
3
- "version": "0.0.75",
3
+ "version": "0.0.76",
4
4
  "description": "",
5
5
  "main": "main.js",
6
6
  "scripts": {
@@ -27,7 +27,6 @@ export const processMarket = (
27
27
  ) => {
28
28
  const sportSpreadData = spreadData.filter((data) => data.sportId === String(market.leagueId));
29
29
 
30
- console.log('READY TO FETCH PARENT ODDS');
31
30
  const moneylineOdds = getParentOdds(
32
31
  !isDrawAvailable,
33
32
  sportSpreadData,
@@ -37,7 +36,6 @@ export const processMarket = (
37
36
  defaultSpreadForLiveMarkets,
38
37
  maxPercentageDiffBetwenOdds
39
38
  );
40
- console.log('FETCHED PARENT ODDS: ', moneylineOdds);
41
39
 
42
40
  const isZeroParentOdds =
43
41
  moneylineOdds[0] == ZERO || moneylineOdds[1] == ZERO || (isDrawAvailable && moneylineOdds[2] == ZERO);
@@ -45,17 +43,8 @@ export const processMarket = (
45
43
  if (market.odds.length > 0) {
46
44
  market.odds = market.odds.map((_odd, index) => {
47
45
  let positionOdds;
48
- switch (index) {
49
- case 0:
50
- positionOdds = moneylineOdds[0];
51
- break;
52
- case 1:
53
- positionOdds = moneylineOdds[1];
54
- break;
55
- case 2:
56
- positionOdds = moneylineOdds[2];
57
- break;
58
- }
46
+ if (index < 3) positionOdds = moneylineOdds[index];
47
+
59
48
  return {
60
49
  american: oddslib.from('impliedProbability', positionOdds).to('moneyline'),
61
50
  decimal: oddslib.from('impliedProbability', positionOdds).to('decimal'),
@@ -64,12 +53,16 @@ export const processMarket = (
64
53
  });
65
54
  }
66
55
 
67
- console.log('FETCHING CHILD ODDS:');
68
56
  const childMarkets = isZeroParentOdds
69
57
  ? []
70
- : getChildMarkets(market, sportSpreadData, apiResponseWithOdds, liveOddsProviders, defaultSpreadForLiveMarkets);
58
+ : getChildMarkets(
59
+ market.leagueId,
60
+ sportSpreadData,
61
+ apiResponseWithOdds,
62
+ liveOddsProviders,
63
+ defaultSpreadForLiveMarkets
64
+ );
71
65
  console.log('Mapped event for game ID: ' + market.gameId);
72
-
73
66
  market.childMarkets = childMarkets;
74
67
 
75
68
  return market;
@@ -85,7 +78,7 @@ export const processMarket = (
85
78
  * @returns {Array} The child markets for the event.
86
79
  */
87
80
  const getChildMarkets = (
88
- market,
81
+ leagueId,
89
82
  spreadDataForSport,
90
83
  apiResponseWithOdds,
91
84
  liveOddsProviders,
@@ -97,7 +90,7 @@ const getChildMarkets = (
97
90
  childMarkets = childMarkets.concat(
98
91
  createSpreadChildMarkets(
99
92
  apiResponseWithOdds,
100
- market,
93
+ leagueId,
101
94
  spreadDataForSport,
102
95
  liveOddsProviders,
103
96
  defaultSpreadForLiveMarkets
@@ -108,7 +101,7 @@ const getChildMarkets = (
108
101
  childMarkets = childMarkets.concat(
109
102
  createTotalChildMarkets(
110
103
  apiResponseWithOdds,
111
- market,
104
+ leagueId,
112
105
  spreadDataForSport,
113
106
  liveOddsProviders,
114
107
  defaultSpreadForLiveMarkets
@@ -128,16 +121,16 @@ const getChildMarkets = (
128
121
  * @param {Number} defaultSpreadForLiveMarkets - Default spread for live markets
129
122
  * @returns {Array} The spread child markets.
130
123
  */
131
- const createSpreadChildMarkets = (
124
+ export const createSpreadChildMarkets = (
132
125
  apiResponseWithOdds,
133
- market,
126
+ leagueId,
134
127
  spreadDataForSport,
135
128
  liveOddsProviders,
136
129
  defaultSpreadForLiveMarkets
137
130
  ) => {
138
131
  console.log('CREATING SPREAD CHILD MARKETS');
139
132
  const childMarkets = [];
140
- const spreadType = getLeagueSpreadType(market.leagueId);
133
+ const spreadType = getLeagueSpreadType(leagueId);
141
134
  const commonData = {
142
135
  homeTeam: apiResponseWithOdds.home_team,
143
136
  awayTeam: apiResponseWithOdds.away_team,
@@ -154,7 +147,7 @@ const createSpreadChildMarkets = (
154
147
  const formattedSpreadOdds = formatSpreadOdds(
155
148
  allSpreadOdds,
156
149
  commonData,
157
- market,
150
+ leagueId,
158
151
  spreadDataForSport,
159
152
  TAG_CHILD_SPREAD,
160
153
  defaultSpreadForLiveMarkets
@@ -163,7 +156,7 @@ const createSpreadChildMarkets = (
163
156
  childMarkets.push(...formattedSpreadOdds);
164
157
  }
165
158
  } else {
166
- console.warn(`Spread type for sport ID ${market.leagueId} not found.`);
159
+ console.warn(`Spread type for sport ID ${leagueId} not found.`);
167
160
  }
168
161
  console.log('RETURNING SPREAD CHILD MARKETS', childMarkets);
169
162
  return childMarkets;
@@ -181,18 +174,14 @@ const createSpreadChildMarkets = (
181
174
  */
182
175
  export const createTotalChildMarkets = (
183
176
  apiResponseWithOdds,
184
- market,
177
+ leagueId,
185
178
  spreadDataForSport,
186
179
  liveOddsProviders,
187
180
  defaultSpreadForLiveMarkets
188
181
  ) => {
189
182
  console.log('CREATING TOTAL CHILD MARKETS');
190
183
  const childMarkets = [];
191
- const totalType = getLeagueTotalType(market.leagueId);
192
- const commonData = {
193
- homeTeam: apiResponseWithOdds.home_team,
194
- awayTeam: apiResponseWithOdds.away_team,
195
- };
184
+ const totalType = getLeagueTotalType(leagueId);
196
185
 
197
186
  if (totalType) {
198
187
  // TODO ADD ODDS COMPARISON BETWEEN BOOKMAKERS
@@ -202,8 +191,7 @@ export const createTotalChildMarkets = (
202
191
  childMarkets.push(
203
192
  ...processTotalOdds(
204
193
  totalOdds,
205
- commonData,
206
- market,
194
+ leagueId,
207
195
  spreadDataForSport,
208
196
  TAG_CHILD_TOTALS,
209
197
  defaultSpreadForLiveMarkets
@@ -211,7 +199,7 @@ export const createTotalChildMarkets = (
211
199
  );
212
200
  }
213
201
  } else {
214
- console.warn(`Configuration (totals) for sport ID ${market.leagueId} not found.`);
202
+ console.warn(`Configuration (totals) for sport ID ${leagueId} not found.`);
215
203
  }
216
204
 
217
205
  console.log('RETURNING TOTAL CHILD MARKETS: ', childMarkets);
package/src/utils/odds.ts CHANGED
@@ -221,8 +221,6 @@ export const getParentOdds = (
221
221
  defaultSpreadForLiveMarkets,
222
222
  maxPercentageDiffBetwenOdds
223
223
  ) => {
224
- console.log('Calculating parent odds');
225
-
226
224
  const commonData = { homeTeam: oddsApiObject.home_team, awayTeam: oddsApiObject.away_team };
227
225
 
228
226
  // EXTRACTING ODDS FROM THE RESPONSE PER MARKET NAME AND BOOKMAKER
@@ -234,8 +232,6 @@ export const getParentOdds = (
234
232
  isTwoPositionalSport
235
233
  );
236
234
 
237
- console.log('moneylineOddsMap: ', moneylineOddsMap);
238
-
239
235
  // CHECKING AND COMPARING ODDS FOR THE GIVEN BOOKMAKERS
240
236
  const oddsList = checkOddsFromBookmakers(
241
237
  moneylineOddsMap,
@@ -245,8 +241,6 @@ export const getParentOdds = (
245
241
  MIN_ODDS_FOR_DIFF_CHECKING
246
242
  );
247
243
 
248
- console.log('oddsList: ', oddsList);
249
-
250
244
  const isThere100PercentOdd = oddsList.some(
251
245
  (oddsObject) => oddsObject.homeOdds == 1 || oddsObject.awayOdds == 1 || oddsObject.drawOdds == 1
252
246
  );
@@ -260,24 +254,15 @@ export const getParentOdds = (
260
254
  }
261
255
  const primaryBookmakerOdds = [oddsList[0].homeOdds, oddsList[0].awayOdds, oddsList[0].drawOdds];
262
256
 
263
- console.log('primaryBookmakerOdds: ', primaryBookmakerOdds);
264
-
265
257
  let parentOdds = primaryBookmakerOdds.map((odd) => convertOddsToImpl(odd));
266
-
267
- console.log('primaryBookmakerOdds -> parentOdds: ', parentOdds);
268
-
269
258
  const spreadData = getSpreadData(sportSpreadData, sportId, LIVE_TYPE_ID_BASE, defaultSpreadForLiveMarkets);
270
259
 
271
- console.log('spreadData: ', spreadData);
272
-
273
260
  if (spreadData !== null) {
274
261
  parentOdds = adjustSpreadOnOdds(parentOdds, spreadData.minSpread, spreadData.targetSpread);
275
262
  } else {
276
263
  // Use min spread by sport if available, otherwise use default min spread
277
264
  parentOdds = adjustSpreadOnOdds(parentOdds, defaultSpreadForLiveMarkets, 0);
278
265
  }
279
-
280
- console.log('Parent odds calculated and adjusted for spread: ' + JSON.stringify(parentOdds));
281
266
  return parentOdds;
282
267
  };
283
268
 
@@ -311,7 +296,7 @@ export const filterOddsByMarketNameBookmaker = (oddsArray, marketName, oddsProvi
311
296
  export const formatSpreadOdds = (
312
297
  spreadOdds,
313
298
  commonData,
314
- market,
299
+ leagueId,
315
300
  spreadDataForSport,
316
301
  typeId,
317
302
  defaultSpreadForLiveMarkets
@@ -334,7 +319,7 @@ export const formatSpreadOdds = (
334
319
  if (!isZeroOddsChild) {
335
320
  const spreadData = getSpreadData(
336
321
  spreadDataForSport,
337
- market.leagueId,
322
+ leagueId,
338
323
  // TODO SREDITI TYPEID KOJI TREBA DA BUDE
339
324
  typeId,
340
325
  defaultSpreadForLiveMarkets
@@ -389,7 +374,7 @@ export const formatSpreadOdds = (
389
374
  // }
390
375
 
391
376
  return {
392
- ...market,
377
+ leagueId,
393
378
  typeId: typeId,
394
379
  results: [],
395
380
  status: isZeroOddsChild ? statusCodes.PAUSED : statusCodes.OPEN,
@@ -467,14 +452,7 @@ export const cutOddsCloseToValue = (oddsArray, threshold = 0.952) => {
467
452
  * @param {Number} defaultSpreadForLiveMarkets - Default spread for live markets,
468
453
  * @returns {Array} The processed total odds market objects.
469
454
  */
470
- export const processTotalOdds = (
471
- totalOdds,
472
- commonData,
473
- market,
474
- spreadDataForSport,
475
- typeId,
476
- defaultSpreadForLiveMarkets
477
- ) => {
455
+ export const processTotalOdds = (totalOdds, leagueId, spreadDataForSport, typeId, defaultSpreadForLiveMarkets) => {
478
456
  const childMarkets = [];
479
457
  const validTotalOdds = totalOdds.filter((odd) => odd && Math.abs(odd.selection_points % 1) === 0.5);
480
458
  const groupedOdds = groupOddsBySelectionAndPoints(validTotalOdds);
@@ -492,7 +470,7 @@ export const processTotalOdds = (
492
470
  // const maxOdds = MAX_ODDS_RANGE_CHILDREN[sportTypeIdKey];
493
471
 
494
472
  if (!isZeroOddsChild) {
495
- const spreadData = getSpreadData(spreadDataForSport, market.leagueId, typeId, defaultSpreadForLiveMarkets);
473
+ const spreadData = getSpreadData(spreadDataForSport, leagueId, typeId, defaultSpreadForLiveMarkets);
496
474
  if (spreadData !== null) {
497
475
  let adjustedOdds = adjustSpreadOnOdds(
498
476
  [overOdds, underOdds],
@@ -545,7 +523,7 @@ export const processTotalOdds = (
545
523
  // }
546
524
 
547
525
  const childMarket = {
548
- ...market,
526
+ leagueId,
549
527
  typeId: typeId,
550
528
  results: [],
551
529
  status: isZeroOddsChild ? statusCodes.PAUSED : statusCodes.OPEN,