overtime-live-trading-utils 0.0.90 → 0.0.98
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/index.ts +0 -9
- package/main.js +1 -1
- package/package.json +1 -1
- package/src/constants/sports.ts +22 -96
- package/src/enums/sports.ts +5 -15
- package/src/utils/bookmakers.ts +0 -7
- package/src/utils/gameMatching.ts +9 -1
- package/src/utils/odds.ts +0 -466
- package/src/utils/sports.ts +0 -10
- package/src/constants/common.ts +0 -7
- package/src/constants/constantsOpticodds.ts +0 -152
- package/src/enums/statuses.ts +0 -19
- package/src/utils/markets.ts +0 -227
package/index.ts
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
//utils
|
|
2
2
|
export * from './src/utils/bookmakers';
|
|
3
3
|
export * from './src/utils/gameMatching';
|
|
4
|
-
export * from './src/utils/markets';
|
|
5
4
|
export * from './src/utils/odds';
|
|
6
5
|
export * from './src/utils/sports';
|
|
7
6
|
export * from './src/utils/spread';
|
|
8
|
-
|
|
9
|
-
// constants
|
|
10
|
-
export * from './src/constants/common';
|
|
11
|
-
export * from './src/constants/constantsOpticodds';
|
|
12
|
-
export * from './src/constants/sports';
|
|
13
|
-
|
|
14
|
-
export * from './src/enums/sports';
|
|
15
|
-
export * from './src/enums/statuses';
|
package/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,_){"object"==typeof exports&&"object"==typeof module?module.exports=_():"function"==typeof define&&define.amd?define([],_):"object"==typeof exports?exports.thalesUtils=_():e.thalesUtils=_()}(this,(()=>(()=>{"use strict";var e={d:(_,a)=>{for(var r in a)e.o(a,r)&&!e.o(_,r)&&Object.defineProperty(_,r,{enumerable:!0,get:a[r]})},o:(e,_)=>Object.prototype.hasOwnProperty.call(e,_),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},_={};e.r(_),e.d(_,{ANYTIME_GOAL_SCORER:()=>D,ASIAN_HANDICAP:()=>B,ASIAN_HANDICAP_CARDS:()=>V,ASIAN_HANDICAP_CORNERS:()=>g,BOTH_TEAMS_TO_SCORE:()=>v,CORRECT_SCORE:()=>H,DRAW:()=>Ca,DRAW_NO_BET:()=>b,EIGHTH_INNING_MONEYLINE_3_WAY:()=>ge,EIGHTH_INNING_RUN_LINE:()=>ve,EIGHTH_INNING_TOTAL_RUNS:()=>He,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:()=>Ae,FIRST_7_INNINGS_TOTAL_RUNS:()=>Ne,FIRST_BASKET_INCLUDING_FT:()=>V_,FIRST_GOAL_SCORER:()=>h,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:()=>N_,FIRST_HALF_MONEYLINE:()=>M,FIRST_HALF_MONEYLINE_3_WAY:()=>I_,FIRST_HALF_POINT_SPREAD:()=>s_,FIRST_HALF_RACE_TO_20_POINTS:()=>S_,FIRST_HALF_RACE_TO_25_POINTS:()=>L_,FIRST_HALF_RACE_TO_30_POINTS:()=>l_,FIRST_HALF_RACE_TO_35_POINTS:()=>T_,FIRST_HALF_RACE_TO_40_POINTS:()=>O_,FIRST_HALF_RACE_TO_45_POINTS:()=>d_,FIRST_HALF_RACE_TO_50_POINTS:()=>R_,FIRST_HALF_RACE_TO_55_POINTS:()=>M_,FIRST_HALF_RACE_TO_60_POINTS:()=>u_,FIRST_HALF_RUN_LINE:()=>Ie,FIRST_HALF_TEAM_TOTAL:()=>u,FIRST_HALF_TEAM_TOTAL_EXACT:()=>C,FIRST_HALF_TOTAL_CORNERS:()=>P,FIRST_HALF_TOTAL_GOALS:()=>c,FIRST_HALF_TOTAL_GOALS_ODD_EVEN:()=>p,FIRST_HALF_TOTAL_POINTS:()=>C_,FIRST_HALF_TOTAL_POINTS_ODD_EVEN:()=>P_,FIRST_HALF_TOTAL_RUNS:()=>se,FIRST_INNING_MONEYLINE_3_WAY:()=>Se,FIRST_INNING_RUN_LINE:()=>Le,FIRST_INNING_TOTAL_RUNS:()=>le,FIRST_INNING_TOTAL_RUNS_ODD_EVEN:()=>Te,FIRST_QUARTER_DOUBLE_CHANCE:()=>c_,FIRST_QUARTER_MONEYLINE:()=>p_,FIRST_QUARTER_MONEYLINE_3_WAY:()=>m_,FIRST_QUARTER_POINT_SPREAD:()=>f_,FIRST_QUARTER_RACE_TO_10_POINTS:()=>U_,FIRST_QUARTER_RACE_TO_15_POINTS:()=>G_,FIRST_QUARTER_RACE_TO_20_POINTS:()=>w_,FIRST_QUARTER_TEAM_TOTAL:()=>F_,FIRST_QUARTER_TOTAL_POINTS:()=>D_,FIRST_QUARTER_TOTAL_POINTS_ODD_EVEN:()=>B_,FIRST_TEAM_TO_SCORE:()=>Ye,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:()=>X_,HALFTIME_FULLTIME:()=>ae,LAST_GOAL_SCORER:()=>Y,LAST_TEAM_TO_SCORE_3_WAY:()=>W,LEAGUES_NO_FORMAL_HOME_AWAY:()=>l,LIVE_TYPE_ID_BASE:()=>Pa,League:()=>L,LeagueMap:()=>ra,METHOD_OF_ENDING:()=>q_,METHOD_OF_VICTORY:()=>j_,MIN_ODDS_FOR_DIFF_CHECKING:()=>ca,MONEYLINE:()=>k,MONEYLINE_TOTAL_ROUNDS:()=>$_,MULTIPLIER_100:()=>fa,NINTH_INNING_MONEYLINE_3_WAY:()=>be,NINTH_INNING_RUN_LINE:()=>he,NINTH_INNING_TOTAL_RUNS:()=>ye,NO_RUNS_FIRST_INNING:()=>We,PLAYER_ASSISTS:()=>g_,PLAYER_BASES:()=>ke,PLAYER_BATTING_STRIKEOUTS:()=>Ke,PLAYER_BATTING_WALKS:()=>Qe,PLAYER_DOUBLES:()=>Xe,PLAYER_DOUBLE_DOUBLE:()=>v_,PLAYER_EARNED_RUNS:()=>je,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:()=>H_,PLAYER_OUTS:()=>$e,PLAYER_POINTS:()=>b_,PLAYER_POINTS_REBOUNDS_ASSISTS:()=>h_,PLAYER_RBIS:()=>e_,PLAYER_REBOUNDS:()=>y_,PLAYER_RUNS:()=>__,PLAYER_SIGNIFICANT_STRIKES:()=>x_,PLAYER_SINGLES:()=>a_,PLAYER_STOLEN_BASES:()=>r_,PLAYER_STRIKEOUTS:()=>t_,PLAYER_TAKEDOWNS:()=>z_,PLAYER_TO_RECORD_WIN:()=>o_,PLAYER_WALKS:()=>n_,POINT_SPREAD:()=>Y_,RACE_TO_20_POINTS:()=>W_,ROUND_BETTING:()=>Z_,RUN_LINE:()=>E_,SECOND_HALF_ASIAN_HANDICAP_CORNERS:()=>m,SECOND_HALF_BOTH_TEAMS_TO_SCORE:()=>f,SECOND_HALF_MONEYLINE:()=>U,SECOND_HALF_TOTAL_CORNERS:()=>G,SECOND_HALF_TOTAL_GOALS:()=>w,SECOND_HALF_TOTAL_GOALS_ODD_EVEN:()=>F,SECOND_INNING_MONEYLINE_3_WAY:()=>Oe,SECOND_INNING_RUN_LINE:()=>de,SECOND_INNING_TOTAL_RUNS:()=>Re,SEVENTH_INNING_MONEYLINE_3_WAY:()=>De,SEVENTH_INNING_RUN_LINE:()=>Be,SEVENTH_INNING_TOTAL_RUNS:()=>Ve,SIXTH_INNING_MONEYLINE_3_WAY:()=>Ge,SIXTH_INNING_RUN_LINE:()=>we,SIXTH_INNING_TOTAL_RUNS:()=>Fe,Sport:()=>S,TAG_CHILD_SPREAD:()=>pa,TAG_CHILD_TOTALS:()=>ma,TEAM_CLEAN_SHEET:()=>Q,TEAM_TOTAL:()=>X,TEAM_TOTAL_CARD_POINTS:()=>j,TEAM_TOTAL_CORNERS:()=>x,TEAM_TOTAL_ODD_EVEN:()=>z,TEAM_TOTAL_POINTS_ODD_EVEN:()=>k_,TENNIS_ATP_GRAND_SLAM_SET_THRESHOLD:()=>Ea,TENNIS_GEMS_LIMIT:()=>Aa,TENNIS_MASTERS_SET_THRESHOLD:()=>ia,THIRD_INNING_MONEYLINE_3_WAY:()=>Me,THIRD_INNING_RUN_LINE:()=>ue,THIRD_INNING_TOTAL_RUNS:()=>Ce,TOTAL_CARDS:()=>Z,TOTAL_CORNERS:()=>J,TOTAL_CORNERS_ODD_EVEN:()=>q,TOTAL_GOALS:()=>$,TOTAL_GOALS_ODD_EVEN:()=>ee,TOTAL_POINTS:()=>K_,TOTAL_POINTS_ODD_EVEN:()=>Q_,TOTAL_ROUNDS:()=>J_,TOTAL_RUNS:()=>i_,TO_QUALIFY:()=>_e,VOLLEYBALL_FIFTH_SET_POINTS_LIMIT:()=>na,VOLLEYBALL_POINTS_LIMIT:()=>oa,VOLLEYBALL_SET_THRESHOLD:()=>ta,WILL_A_POINT_BE_DEDUCTED:()=>ea,WILL_FIGHT_END_IN_FIRST_MINUTE:()=>_a,WILL_THERE_BE_OVERTIME:()=>A_,WINNING_ROUND:()=>aa,ZERO:()=>ua,adjustSpreadOnOdds:()=>Ga,allowGameSportWithPeriodConstraint:()=>La,allowGameSportWithResultConstraint:()=>Ta,allowSoccerGame:()=>la,calculateImpliedOddsDifference:()=>s,checkGameContraints:()=>Sa,checkOddsFromBookmakers:()=>I,createSpreadChildMarkets:()=>Qa,createTotalChildMarkets:()=>Xa,cutOddsCloseToValue:()=>ha,extractOddsForGamePerProvider:()=>Fa,fetchResultInCurrentSet:()=>Oa,filterOddsByMarketNameBookmaker:()=>va,filterOddsByMarketNameTeamNameBookmaker:()=>Va,formatSpreadOdds:()=>Ha,gamesDatesMatching:()=>Ma,getBookmakersArray:()=>N,getLeagueSport:()=>Na,getLeagueSpreadType:()=>Ia,getLeagueTotalType:()=>sa,getParentOdds:()=>ga,getSpreadData:()=>wa,groupAndFormatSpreadOdds:()=>ba,groupOddsBySelectionAndPoints:()=>Ya,processMarket:()=>ka,processTotalOdds:()=>ya,statusCodes:()=>Ua,teamNamesMatching:()=>Ra}),"function"!=typeof Object.assign&&(Object.assign=function(e,_){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=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)&&(a[o]=t[o])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function r(e,_,a){return void 0===a||0==+a?Math[e](_):(_=+_,a=+a,isNaN(_)||"number"!=typeof a||a%1!=0?NaN:_<0?-r(e,-_,a):(_=_.toString().split("e"),+((_=(_=Math[e](+(_[0]+"e"+(_[1]?+_[1]-a:-a)))).toString().split("e"))[0]+"e"+(_[1]?+_[1]+a:a))))}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?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 _=a(100/this.decimalValue);return null!==e.precision&&(_=r("round",_,-e.precision)),_.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var _,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)_=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");_=1}if(0===e||0===_||e/_<=0)throw new Error("Outside valid range");return 1+e/_},to:function(e){return function(e,_){for(var a,r=[0,1],t=[1,0],o=function(e){var _=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var r=null,t=(_=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==t?r=_:0===t?r=_.substring(1,_.length):t<_.length&&(r=_.substring(0,t)+_.substring(t+1,_.length));var o=r,n=o.toString().length,E=e,i=E.toString().length;0===E&&(i=0);var A,N=n-i;for(A=N;A>0&&o%2==0;A--)o/=2;for(A=N;A>0&&o%5==0;A--)o/=5;return o}(e),n=e,E=Math.pow(10,-_)/2,i=2;i<1e3;i++){var A=Math.floor(n);if(r[i]=A*r[i-1]+r[i-2],Math.abs(r[i])>o)return;if(t[i]=A*t[i-1]+t[i-2],a=r[i]/t[i],Math.abs(a-e)<E||NaN==a)return r[i].toString()+"/"+t[i].toString();n=1/(n-A)}}(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)}}},E=((o=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(t=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,t.from=function(e,_){if(!n.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=n[e].from(_);return new o(a)},t);E.prototype.to=function(e,_){if(!n.hasOwnProperty(e))throw new Error("Unknown format "+e+".");_=Object.assign({precision:null,percentage:!1},_);var a=n[e].to.call(this,_);return"number"==typeof a&&null!==_.precision&&(a=r("round",a,-_.precision)),a};var i,A=E.from,N=function(e,_,a){var r=e.find((function(e){return Number(e.sportId)===Number(_)}));if(r){if(""==r.primaryBookmaker)return a;var t=[];return r.primaryBookmaker&&t.push(r.primaryBookmaker),r.secondaryBookmaker&&t.push(r.secondaryBookmaker),r.tertiaryBookmaker&&t.push(r.tertiaryBookmaker),t}return a},I=function(e,_,a,r,t){console.log("########## CHECK ODDS START ##########"),console.log("oddsMap: "+e),console.log("arrayOfBookmakers: "+_),console.log("isTwoPositionalSport: "+a),console.log("maxImpliedPercentageDifference: "+r),console.log("minOddsForDiffChecking: "+t),console.log("########## CHECK ODDS END ##########");var o=_.some((function(_){var r=e.get(_);return!!r&&(0===r.homeOdds||0===r.awayOdds||!a&&0===r.drawOdds||1===r.homeOdds||1===r.awayOdds||!a&&1===r.drawOdds)}));if(1==_.length){if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var n=_[0],E=e.get(n);return[{homeOdds:E.homeOdds,awayOdds:E.awayOdds,drawOdds:a?0:E.drawOdds}]}if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var i=e.get(_[0]),N=i.homeOdds,I=i.awayOdds,S=i.drawOdds;if(_.slice(1).some((function(_){var o=e[_];if(o){var n=o.homeOdds,E=o.awayOdds,i=o.drawOdds,L=A("decimal",N).to("impliedProbability"),l=A("decimal",I).to("impliedProbability"),T=a?0:A("decimal",S).to("impliedProbability"),O=A("decimal",n).to("impliedProbability"),d=A("decimal",E).to("impliedProbability"),R=a?0:A("decimal",i).to("impliedProbability"),M=s(L,O),u=s(l,d),C=a?0:s(T,R);if(M>r&&L>t&&O>t||u>r&&l>t&&d>t||!a&&C>r&&T>t&&R>t)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var L=[];return _.forEach((function(_){return L.push(e.get(_))})),null!=L[0]?L.map((function(e){return{homeOdds:e.homeOdds,awayOdds:e.awayOdds,drawOdds:a?0:e.drawOdds}})):(console.log("Returning zero odds cause no matching bookmakers have been found"),[{homeOdds:0,awayOdds:0,drawOdds:0}])},s=function(e,_){var a=Math.abs(e-_)/e*100;return console.log("% diff: "+a),a},S={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_WTA:152,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,TENNIS_WTA_LIVE_MAPPING_V2_1:15322,TENNIS_WTA_LIVE_MAPPING_V2_2:15323,TENNIS_WTA_LIVE_MAPPING_V2_3:15324,TENNIS_WTA_LIVE_MAPPING_V2_4:15325,TENNIS_WTA_LIVE_MAPPING_V2_5:15326,TENNIS_WTA_LIVE_MAPPING_V2_6:15327,TENNIS_WTA_LIVE_MAPPING_V2_7:15328},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,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],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",u="1st Half Team Total",C="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",G="2nd Half Total Corners",w="2nd Half Total Goals",F="2nd Half Total Goals Odd/Even",D="Anytime Goal Scorer",B="Asian Handicap",V="Asian Handicap Cards",g="Asian Handicap Corners",v="Both Teams To Score",H="Correct Score",b="Draw No Bet",h="First Goal Scorer",y="First Team To Score 3-Way",Y="Last Goal Scorer",W="Last Team To Score 3-Way",k="Moneyline",K="Player Goals",Q="Team Clean Sheet",X="Team Total",j="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",_e="To Qualify",ae="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",Ae="1st 7 Innings Team Total",Ne="1st 7 Innings Total Runs",Ie="1st Half Run Line",se="1st Half Total Runs",Se="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",ue="3rd Inning Run Line",Ce="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",Ge="6th Inning Moneyline 3-Way",we="6th Inning Run Line",Fe="6th Inning Total Runs",De="7th Inning Moneyline 3-Way",Be="7th Inning Run Line",Ve="7th Inning Total Runs",ge="8th Inning Moneyline 3-Way",ve="8th Inning Run Line",He="8th Inning Total Runs",be="9th Inning Moneyline 3-Way",he="9th Inning Run Line",ye="9th Inning Total Runs",Ye="First Team To Score",We="No Runs First Inning",ke="Player Bases",Ke="Player Batting Strikeouts",Qe="Player Batting Walks",Xe="Player Doubles",je="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",e_="Player RBIs",__="Player Runs",a_="Player Singles",r_="Player Stolen Bases",t_="Player Strikeouts",o_="Player To Record Win",n_="Player Walks",E_="Run Line",i_="Total Runs",A_="Will There Be Overtime",N_="1st Half Double Chance",I_="1st Half Moneyline 3-Way",s_="1st Half Point Spread",S_="1st Half Race To 20 Points",L_="1st Half Race To 25 Points",l_="1st Half Race To 30 Points",T_="1st Half Race To 35 Points",O_="1st Half Race To 40 Points",d_="1st Half Race To 45 Points",R_="1st Half Race To 50 Points",M_="1st Half Race To 55 Points",u_="1st Half Race To 60 Points",C_="1st Half Total Points",P_="1st Half Total Points Odd/Even",c_="1st Quarter Double Chance",p_="1st Quarter Moneyline",m_="1st Quarter Moneyline 3-Way",f_="1st Quarter Point Spread",U_="1st Quarter Race To 10 Points",G_="1st Quarter Race To 15 Points",w_="1st Quarter Race To 20 Points",F_="1st Quarter Team Total",D_="1st Quarter Total Points",B_="1st Quarter Total Points Odd/Even",V_="First Basket Including FT",g_="Player Assists",v_="Player Double Double",H_="Player Made Threes",b_="Player Points",h_="Player Points + Rebounds + Assists",y_="Player Rebounds",Y_="Point Spread",W_="Race To 20 Points",k_="Team Total Points Odd/Even",K_="Total Points",Q_="Total Points Odd/Even",X_="Go The Distance",j_="Method of Victory",x_="Player Significant Strikes",z_="Player Takedowns",Z_="Round Betting",J_="Total Rounds",q_="Method Of Ending",$_="Moneyline + Total Rounds",ea="Will A Point Be Deducted",_a="Will Fight End In First Minute",aa="Winning Round",ra=((i={})[L.NCAAF]={sport:S.FOOTBALL,id:L.NCAAF,isDrawAvailable:!1},i[L.NFL]={sport:S.FOOTBALL,id:L.NFL,isDrawAvailable:!1,spread:B,total:K_},i[L.MLB]={sport:S.BASEBALL,id:L.MLB,isDrawAvailable:!1,spread:E_,total:i_},i[L.NBA]={sport:S.BASKETBALL,id:L.NBA,isDrawAvailable:!1,spread:Y_,total:K_},i[L.NCAAB]={sport:S.BASKETBALL,id:L.NCAAB,isDrawAvailable:!1,spread:Y_,total:K_},i[L.NHL]={sport:S.HOCKEY,id:L.NHL,isDrawAvailable:!1},i[L.UFC]={sport:S.FIGHTING,id:L.UFC,isDrawAvailable:!1},i[L.WNBA]={sport:S.BASKETBALL,id:L.WNBA,isDrawAvailable:!1,spread:Y_,total:K_},i[L.MLS]={sport:S.SOCCER,id:L.MLS,isDrawAvailable:!0,spread:B,total:$},i[L.EPL]={sport:S.SOCCER,id:L.EPL,isDrawAvailable:!0,spread:B,total:$},i[L.LIGUE_ONE]={sport:S.SOCCER,id:L.LIGUE_ONE,isDrawAvailable:!0,spread:B,total:$},i[L.BUNDESLIGA]={sport:S.SOCCER,id:L.BUNDESLIGA,isDrawAvailable:!0,spread:B,total:$},i[L.LA_LIGA]={sport:S.SOCCER,id:L.LA_LIGA,isDrawAvailable:!0,spread:B,total:$},i[L.SERIE_A]={sport:S.SOCCER,id:L.SERIE_A,isDrawAvailable:!0,spread:B,total:$},i[L.UEFA_CL]={sport:S.SOCCER,id:L.UEFA_CL,isDrawAvailable:!0,spread:B,total:$},i[L.UEFA_EL]={sport:S.SOCCER,id:L.UEFA_EL,isDrawAvailable:!0,spread:B,total:$},i[L.FIFA_WC]={sport:S.SOCCER,id:L.FIFA_WC,isDrawAvailable:!0,spread:B,total:$},i[L.J1_LEAGUE]={sport:S.SOCCER,id:L.J1_LEAGUE,isDrawAvailable:!0,spread:B,total:$},i[L.IPL]={sport:S.CRICKET,id:L.IPL,isDrawAvailable:!1},i[L.T20_BLAST]={sport:S.CRICKET,id:L.T20_BLAST,isDrawAvailable:!1},i[L.IIHF_WORLD_CHAMPIONSHIP]={sport:S.HOCKEY,id:L.IIHF_WORLD_CHAMPIONSHIP,isDrawAvailable:!0},i[L.COPA_AMERICA]={sport:S.SOCCER,id:L.COPA_AMERICA,isDrawAvailable:!0,spread:B,total:$},i[L.COPA_LIBERTADORES]={sport:S.SOCCER,id:L.COPA_LIBERTADORES,isDrawAvailable:!0,spread:B,total:$},i[L.UEFA_EURO]={sport:S.SOCCER,id:L.UEFA_EURO,isDrawAvailable:!0,spread:B,total:$},i[L.EREDIVISIE]={sport:S.SOCCER,id:L.EREDIVISIE,isDrawAvailable:!0,spread:B,total:$},i[L.PRIMEIRA_LIGA]={sport:S.SOCCER,id:L.PRIMEIRA_LIGA,isDrawAvailable:!0,spread:B,total:$},i[L.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:S.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER_WOMEN,isDrawAvailable:!0,spread:B,total:$},i[L.SUMMER_OLYMPICS_SOCCER]={sport:S.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER,isDrawAvailable:!0,spread:B,total:$},i[L.FIFA_WC_WOMEN]={sport:S.SOCCER,id:L.FIFA_WC_WOMEN,isDrawAvailable:!0,spread:B,total:$},i[L.ENGLAND_CUP]={sport:S.SOCCER,id:L.ENGLAND_CUP,isDrawAvailable:!0,spread:B,total:$},i[L.FRANCE_CUP]={sport:S.SOCCER,id:L.FRANCE_CUP,isDrawAvailable:!0,spread:B,total:$},i[L.SPAIN_CUP]={sport:S.SOCCER,id:L.SPAIN_CUP,isDrawAvailable:!0,spread:B,total:$},i[L.ITALY_CUP]={sport:S.SOCCER,id:L.ITALY_CUP,isDrawAvailable:!0,spread:B,total:$},i[L.TENNIS_WTA]={sport:S.TENNIS,id:L.TENNIS_WTA,isDrawAvailable:!1},i[L.TENNIS_GS]={sport:S.TENNIS,id:L.TENNIS_GS,isDrawAvailable:!1},i[L.TENNIS_MASTERS]={sport:S.TENNIS,id:L.TENNIS_MASTERS,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_TENNIS]={sport:S.TENNIS,id:L.SUMMER_OLYMPICS_TENNIS,isDrawAvailable:!1},i[L.GERMANY_CUP]={sport:S.SOCCER,id:L.GERMANY_CUP,isDrawAvailable:!0,spread:B,total:$},i[L.BRAZIL_1]={sport:S.SOCCER,id:L.BRAZIL_1,isDrawAvailable:!0,spread:B,total:$},i[L.UEFA_EURO_U21]={sport:S.SOCCER,id:L.UEFA_EURO_U21,isDrawAvailable:!0,spread:B,total:$},i[L.FIFA_WORLD_CUP_U20]={sport:S.SOCCER,id:L.FIFA_WORLD_CUP_U20,isDrawAvailable:!0,spread:B,total:$},i[L.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:S.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL_WOMEN,isDrawAvailable:!0},i[L.SUMMER_OLYMPICS_HANDBALL]={sport:S.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL,isDrawAvailable:!0},i[L.EUROLEAGUE]={sport:S.BASKETBALL,id:L.EUROLEAGUE,isDrawAvailable:!1,spread:Y_,total:K_},i[L.SUMMER_OLYMPICS_BASKETBALL]={sport:S.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL,isDrawAvailable:!1,spread:Y_,total:K_},i[L.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:S.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_WOMEN,isDrawAvailable:!1,spread:Y_,total:K_},i[L.FIBA_WORLD_CUP]={sport:S.BASKETBALL,id:L.FIBA_WORLD_CUP,isDrawAvailable:!1,spread:Y_,total:K_},i[L.FORMULA1]={sport:S.MOTOSPORT,id:L.FORMULA1,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:S.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:S.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:S.TABLE_TENNIS,id:L.SUMMER_OLYMPICS_TABLE_TENNIS,isDrawAvailable:!1},i[L.MOTOGP]={sport:S.MOTOSPORT,id:L.MOTOGP,isDrawAvailable:!1},i[L.SAUDI_PROFESSIONAL_LEAGUE]={sport:S.SOCCER,id:L.SAUDI_PROFESSIONAL_LEAGUE,isDrawAvailable:!0,spread:B,total:$},i[L.SUMMER_OLYMPICS_WATERPOLO]={sport:S.WATERPOLO,id:L.SUMMER_OLYMPICS_WATERPOLO,isDrawAvailable:!0},i[L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:S.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_VOLEYBALL]={sport:S.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL,isDrawAvailable:!1},i[L.BOXING]={sport:S.FIGHTING,id:L.BOXING,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_RUGBY]={sport:S.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY,isDrawAvailable:!0},i[L.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:S.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY_WOMEN,isDrawAvailable:!0},i[L.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:S.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY_WOMEN,isDrawAvailable:!0},i[L.SUMMER_OLYMPICS_HOCKEY]={sport:S.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY,isDrawAvailable:!0},i[L.UEFA_NATIONS_LEAGUE]={sport:S.SOCCER,id:L.UEFA_NATIONS_LEAGUE,isDrawAvailable:!0,spread:B,total:$},i[L.CONCACAF_NATIONS_LEAGUE]={sport:S.SOCCER,id:L.CONCACAF_NATIONS_LEAGUE,isDrawAvailable:!0,spread:B,total:$},i[L.CSGO]={sport:S.ESPORTS,id:L.CSGO,isDrawAvailable:!1},i[L.DOTA2]={sport:S.ESPORTS,id:L.DOTA2,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:S.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:S.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,isDrawAvailable:!1},i[L.SUMMER_OLYMPICS_QUALIFICATION]={sport:S.BASKETBALL,id:L.SUMMER_OLYMPICS_QUALIFICATION,isDrawAvailable:!1,spread:Y_,total:K_},i[L.LOL]={sport:S.ESPORTS,id:L.LOL,isDrawAvailable:!1},i[L.CONMEBOL_WC_QUALIFICATIONS]={sport:S.SOCCER,id:L.CONMEBOL_WC_QUALIFICATIONS,isDrawAvailable:!0,spread:B,total:$},i[L.UEFA_CONFERENCE_LEAGUE]={sport:S.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE,isDrawAvailable:!0,spread:B,total:$},i[L.NON_TITLE_BOXING]={sport:S.FIGHTING,id:L.NON_TITLE_BOXING,isDrawAvailable:!1},i[L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:S.SOCCER,id:L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:B,total:$},i[L.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:S.SOCCER,id:L.UEFA_EUROPA_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:B,total:$},i[L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:S.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,isDrawAvailable:!0,spread:B,total:$},i[L.GOLF_H2H]={sport:S.GOLF,id:L.GOLF_H2H,isDrawAvailable:!1},i[L.GOLF_WINNER]={sport:S.GOLF,id:L.GOLF_WINNER,isDrawAvailable:!1},i[L.LIGA_MX]={sport:S.SOCCER,id:L.LIGA_MX,isDrawAvailable:!0,spread:B,total:$},i),ta=2,oa=20,na=10,Ea=2,ia=1,Aa=5,Na=function(e){var _=ra[e];return _?_.sport:S.EMPTY},Ia=function(e){var _=ra[e];return _?_.spread:void 0},sa=function(e){var _=ra[e];return _?_.total:void 0},Sa=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,A=e.away_team,N=parseInt(n),I=Na(_);return"completed"==E.toLowerCase()?{allow:!1,message:"Blocking game ".concat(i," - ").concat(A," because it is no longer live.")}:I===S.BASKETBALL?La(i,A,N,a.get(S.BASKETBALL)):I===S.HOCKEY?La(i,A,N,a.get(S.HOCKEY)):I===S.BASEBALL?La(i,A,N,a.get(S.BASEBALL)):I===S.SOCCER?la(i,A,o,n,a.get(S.SOCCER)):I===S.TENNIS?Ta(e,i,A,n,r,t,_,I):I===S.VOLLEYBALL?Ta(e,i,A,N,r,t,_,I):{allow:!0,message:"The sport ".concat(_," does not have constraint")}},La=function(e,_,a,r){return!Number.isNaN(a)&&a>=r?{allow:!1,message:"Blocking game ".concat(e," - ").concat(_," due to period: ").concat(a,". period")}:{allow:!0,message:""}},la=function(e,_,a,r,t){var o=Number(a);return!Number.isNaN(o)&&o>=t||Number.isNaN(o)&&"HALF"!=r?{allow:!1,message:"Blocking game ".concat(e," - ").concat(_," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},Ta=function(e,_,a,r,t,o,n,E){var i=Number(r),A=Oa(i,e),N="atp"==e.league.toLowerCase(),I={home:t,away:o};return E==S.VOLLEYBALL?da(_,a,A,I,ta,5==i?na:oa):n.toString().startsWith(L.TENNIS_GS)&&N?da(_,a,A,I,Ea,Aa):n.toString().startsWith(L.TENNIS_GS)&&!N||n.toString().startsWith(L.TENNIS_MASTERS)||n.toString().startsWith(L.SUMMER_OLYMPICS_TENNIS)?da(_,a,A,I,ia,Aa):{allow:!0,message:"The sport ".concat(n," does not have result constraint")}},Oa=function(e,_){var a=0,r=0;switch(e){case 1:a=Number(_.score_home_period_1),r=Number(_.score_away_period_1);break;case 2:a=Number(_.score_home_period_2),r=Number(_.score_away_period_2);break;case 3:a=Number(_.score_home_period_3),r=Number(_.score_away_period_3);break;case 4:a=Number(_.score_home_period_4),r=Number(_.score_away_period_4);break;case 5:a=Number(_.score_home_period_5),r=Number(_.score_away_period_5)}return{home:a,away:r}},da=function(e,_,a,r,t,o){return Number(r.home)!=t&&Number(r.away)!=t||!(Number(r.home)==t&&a.home>=o||Number(r.away)==t&&a.away>=o)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(_," due to current result: ").concat(r.home," - ").concat(r.away," (").concat(a.home," - ").concat(a.away,")")}},Ra=function(e,_,a,r,t,o){var n,E;if(l.includes(e)?(n=r.toLowerCase()==_.toLowerCase()||r.toLowerCase()==a.toLowerCase(),E=t.toLowerCase()==_.toLowerCase()||t.toLowerCase()==a.toLowerCase()):(n=r.toLowerCase()==_.toLowerCase(),E=t.toLowerCase()==a.toLowerCase()),!0!==n){var i=o.get(r.toLowerCase()),A=o.get(_.toLowerCase()),N=o.get(a.toLowerCase());if([i,A].some((function(e){return null==e})))return!1;n=l.includes(e)?i==A||i==N:i==A}if(!0!==E){var I=o.get(t.toLowerCase());if(A=o.get(_.toLowerCase()),[I,N=o.get(a.toLowerCase())].some((function(e){return null==e})))return!1;E=l.includes(e)&&I==A||I==N}return n&&E},Ma=function(e,_,a,r){var t;if(Na(a)==S.TENNIS){var o=_.getTime(),n=e.getTime();t=Math.abs(n-o)<=Number(60*r*1e3)}else t=_.toUTCString()==e.toUTCString();return t},ua=0,Ca="Draw",Pa=1e5,ca=.2,pa=10001,ma=10002,fa=100,Ua={OPEN:0,PAUSED:1,IN_PROGRESS:3,FINISHED:8,RESOLVED:10,CANCELED:255},Ga=function(e,_,a){if(e.some((function(e){return 0===e})))return e;var r=e.reduce((function(e,_){return e+_}),0);if(r<=1)return Array(e.length).fill(0);if(0===a){if(!(_>100*(r-1)))return e;a=_}var t=1+a/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,_){return e+_}),0);if(E<1)return Array(e.length).fill(0);var i=t/E;return n.map((function(e){return e*i}))},wa=function(e,_,a,r){var t=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(_)}));return t?{minSpread:t.minSpread?Number(t.minSpread):r,targetSpread:t.targetSpread?Number(t.targetSpread):0}:{minSpread:r,targetSpread:0}},Fa=function(e,_,a,r,t){var o=new Map;return e.forEach((function(e){var n,E,i=_.odds.filter((function(_){return _.sports_book_name.toLowerCase()==e.toLowerCase()})),A=r.get(a.homeTeam.toLowerCase()),N=r.get(a.awayTeam.toLowerCase()),I=0;null!=(n=null==A?i.find((function(e){var _=r.get(e.name.toLowerCase());return null==_?e.name.toLowerCase()==a.homeTeam.toLowerCase():_==a.homeTeam.toLowerCase()})):i.find((function(e){var _=r.get(e.name.toLowerCase());return null==_?e.name.toLowerCase()==A:_==A})))&&(I=n.price);var s=0;null!=(E=null==N?i.find((function(e){var _=r.get(e.name.toLowerCase());return null==_?e.name.toLowerCase()==a.awayTeam.toLowerCase():_==a.awayTeam.toLowerCase()})):i.find((function(e){var _=r.get(e.name.toLowerCase());return null==_?e.name.toLowerCase()==N:_==N})))&&(s=E.price);var S=0;if(t){var L=i.find((function(e){return"draw"==e.name.toLowerCase()}));null!=L&&(S=L.price)}o.set(e.toLowerCase(),{homeOdds:I,awayOdds:s,drawOdds:S})})),o},Da=function(e){return e===ua?0:Ba("decimal","impliedProbability",e)},Ba=function(e,_,a){try{return A(e,a).to(_)}catch(e){return 0}},Va=function(e,_,a,r,t){var o=new Map;return a.forEach((function(a){var n=0,E=e.filter((function(e){return e&&e.market_name.toLowerCase()===_.toLowerCase()&&e.sports_book_name.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===r.homeTeam.toLowerCase()}));0!==E.length&&(n=E[0].price);var i=0,A=e.filter((function(e){return e&&e.market_name.toLowerCase()===_.toLowerCase()&&e.sports_book_name.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===r.awayTeam.toLowerCase()}));0!==A.length&&(i=A[0].price);var N=0;if(!t){var I=e.filter((function(e){return e&&e.market_name.toLowerCase()===_.toLowerCase()&&e.sports_book_name.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===Ca.toLowerCase()}));0!==I.length&&(N=I[0].price)}o.set(a.toLowerCase(),{homeOdds:n,awayOdds:i,drawOdds:N})})),o},ga=function(e,_,a,r,t,o,n){var E={homeTeam:r.home_team,awayTeam:r.away_team},i=Va(r.odds,k,a,E,e),A=I(i,a,e,n,ca),N=A.some((function(e){return 1==e.homeOdds||1==e.awayOdds||1==e.drawOdds}));if([A[0].homeOdds,A[0].awayOdds,A[0].drawOdds].every((function(e){return e==ua}))||N)return console.log("No Moneyline odds found or there is 100% odd, returning zero odds."),e?[0,0]:[0,0,0];var s=[A[0].homeOdds,A[0].awayOdds,A[0].drawOdds].map((function(e){return Da(e)})),S=wa(_,t,Pa,o);return null!==S?Ga(s,S.minSpread,S.targetSpread):Ga(s,o,0)},va=function(e,_,a){return e.filter((function(e){return e.market_name.toLowerCase()===_.toLowerCase()&&e.sports_book_name.toLowerCase()==a.toLowerCase()}))},Ha=function(e,_,a,r,t,o){var n=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)}));return ba(n,_).map((function(e){var _=e.line,n=e.odds,E=Da(n[0])||ua,i=Da(n[1])||ua,A=E===ua||i===ua;if(!A){var N,I=wa(r,a,t,o);null!==I?(N=Ga([E,i],I.minSpread,I.targetSpread)).some((function(e){return e===ua}))?A=!0:(E=N[0],i=N[1]):(N=Ga([E,i],o,0)).some((function(e){return e===ua}))?A=!0:(E=N[0],i=N[1])}return{leagueId:a,typeId:t,type:"spread",results:[],status:A?Ua.PAUSED:Ua.OPEN,line:_,odds:[E,i]}})).filter((function(e){return null!==e}))},ba=function(e,_){var a=e.reduce((function(e,a){var r=a.selection_points,t=a.price,o=a.selection===_.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(a).reduce((function(e,_){var a=_[0],r=_[1],t=parseFloat(a);return null!==r.home&&null!==r.away&&e.push({line:t,odds:[r.home,r.away]}),e}),[]);return r},ha=function(e,_){return void 0===_&&(_=.952),e.map((function(e){return Math.abs(e)>_?ua:e}))},ya=function(e,_,a,r,t){var o=[],n=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)})),E=Ya(n);return Object.entries(E).forEach((function(e){var n=e[0],E=e[1],i=E.over,A=E.under,N=n.split("_"),I=(N[0],N[1]),s=Da(i)||ua,S=Da(A)||ua,L=s===ua||S===ua;if(!L){var l,T=wa(a,_,r,t);null!==T?(l=Ga([s,S],T.minSpread,T.targetSpread)).some((function(e){return e===ua}))?L=!0:(s=l[0],S=l[1]):(l=Ga([s,S],t,0)).some((function(e){return e===ua}))?L=!0:(s=l[0],S=l[1])}var O={leagueId:_,typeId:r,type:"total",results:[],status:L?Ua.PAUSED:Ua.OPEN,line:parseFloat(I),odds:[s,S]};o.push(O)})),o},Ya=function(e){return e.reduce((function(e,_){if(_){var a="".concat(_.selection,"_").concat(_.selection_points);e[a]||(e[a]={over:null,under:null}),"over"===_.selection_line?e[a].over=_.price:"under"===_.selection_line&&(e[a].under=_.price)}return e}),{})},Wa=function(){return Wa=Object.assign||function(e){for(var _,a=1,r=arguments.length;a<r;a++)for(var t in _=arguments[a])Object.prototype.hasOwnProperty.call(_,t)&&(e[t]=_[t]);return e},Wa.apply(this,arguments)},ka=function(e,_,a,r,t,o,n){var E=r.filter((function(_){return _.sportId===String(e.leagueId)})),i=ga(!t,E,a,_,e.leagueId,o,n),N=i[0]==ua||i[1]==ua||t&&i[2]==ua;e.odds.length>0&&(e.odds=e.odds.map((function(e,_){var a;return _<3&&(a=i[_]),0==a?{american:0,decimal:0,normalizedImplied:0}:{american:A("impliedProbability",a).to("moneyline"),decimal:A("impliedProbability",a).to("decimal"),normalizedImplied:a}})));var I=(N?[]:Ka(e.leagueId,E,_,a,o)).map((function(_){var a=Wa(Wa({},e),_);return a.odds.length>0&&(a.odds=a.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:A("impliedProbability",e).to("moneyline"),decimal:A("impliedProbability",e).to("decimal"),normalizedImplied:e}}))),a}));return e.childMarkets=I,e},Ka=function(e,_,a,r,t){var o=[];return(o=o.concat(Qa(a,e,_,r,t))).concat(Xa(a,e,_,r,t))},Qa=function(e,_,a,r,t){var o=[],n=Ia(_),E={homeTeam:e.home_team,awayTeam:e.away_team};if(n){var i=va(e.odds,n,r[0]);if(i.length>0){var A=Ha(i,E,_,a,pa,t);o.push.apply(o,A)}}else console.warn("Spread type for sport ID ".concat(_," not found."));return o},Xa=function(e,_,a,r,t){var o=[],n=sa(_);if(n){var E=va(e.odds,n,r[0]);E.length>0&&o.push.apply(o,ya(E,_,a,ma,t))}else console.warn("Configuration (totals) for sport ID ".concat(_," not found."));return o};return _})()));
|
|
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 t in a)e.o(a,t)&&!e.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:a[t]})},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,{adjustSpreadOnOdds:()=>q,allowGameSportWithPeriodConstraint:()=>G,allowGameSportWithResultConstraint:()=>W,allowSoccerGame:()=>I,calculateImpliedOddsDifference:()=>w,checkGameContraints:()=>x,checkOddsFromBookmakers:()=>c,extractOddsForGamePerProvider:()=>K,fetchResultInCurrentSet:()=>U,gamesDatesMatching:()=>z,getBookmakersArray:()=>u,getLeagueSport:()=>M,getSpreadData:()=>J,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),t=1;t<arguments.length;t++){var o=arguments[t];if(null!=o)for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(a[i]=o[i])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function t(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?-t(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,i,s={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=t("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,t=[0,1],o=[1,0],i=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var t=null,o=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==o?t=r:0===o?t=r.substring(1,r.length):o<r.length&&(t=r.substring(0,o)+r.substring(o+1,r.length));var i=t,s=i.toString().length,n=e,l=n.toString().length;0===n&&(l=0);var d,u=s-l;for(d=u;d>0&&i%2==0;d--)i/=2;for(d=u;d>0&&i%5==0;d--)i/=5;return i}(e),s=e,n=Math.pow(10,-r)/2,l=2;l<1e3;l++){var d=Math.floor(s);if(t[l]=d*t[l-1]+t[l-2],Math.abs(t[l])>i)return;if(o[l]=d*o[l-1]+o[l-2],a=t[l]/o[l],Math.abs(a-e)<n||NaN==a)return t[l].toString()+"/"+o[l].toString();s=1/(s-d)}}(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)}}},n=((i=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(!s.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=s[e].from(r);return new i(a)},o);n.prototype.to=function(e,r){if(!s.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=s[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=t("round",a,-r.precision)),a};var l,d=n.from,u=function(e,r,a){var t=e.find((function(e){return Number(e.sportId)===Number(r)}));if(t){if(""==t.primaryBookmaker)return a;var o=[];return t.primaryBookmaker&&o.push(t.primaryBookmaker),t.secondaryBookmaker&&o.push(t.secondaryBookmaker),t.tertiaryBookmaker&&o.push(t.tertiaryBookmaker),o}return a},c=function(e,r,a,t,o){var i=r.some((function(r){var t=e.get(r);return!!t&&(0===t.homeOdds||0===t.awayOdds||!a&&0===t.drawOdds||1===t.homeOdds||1===t.awayOdds||!a&&1===t.drawOdds)}));if(1==r.length){if(i)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var s=r[0],n=e.get(s);return[{homeOdds:n.homeOdds,awayOdds:n.awayOdds,drawOdds:a?0:n.drawOdds}]}if(i)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var l=e.get(r[0]),u=l.homeOdds,c=l.awayOdds,p=l.drawOdds;if(r.slice(1).some((function(r){var i=e[r];if(i){var s=i.homeOdds,n=i.awayOdds,l=i.drawOdds,m=d("decimal",u).to("impliedProbability"),f=d("decimal",c).to("impliedProbability"),b=a?0:d("decimal",p).to("impliedProbability"),v=d("decimal",s).to("impliedProbability"),g=d("decimal",n).to("impliedProbability"),h=a?0:d("decimal",l).to("impliedProbability"),A=w(m,v),D=w(f,g),y=a?0:w(b,h);if(A>t&&m>o&&v>o||D>t&&f>o&&g>o||!a&&y>t&&b>o&&h>o)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var m=[];return r.forEach((function(r){return m.push(e.get(r))})),null!=m[0]?m.map((function(e){return{homeOdds:e.homeOdds,awayOdds:e.awayOdds,drawOdds:a?0:e.drawOdds}})):(console.log("Returning zero odds cause no matching bookmakers have been found"),[{homeOdds:0,awayOdds:0,drawOdds:0}])},w=function(e,r){var a=Math.abs(e-r)/e*100;return console.log("% diff: "+a),a},p="Soccer",m="Football",f="Basketball",b="Baseball",v="Hockey",g="Fighting",h="Tennis",A="eSports",D="Rugby",y="Volleyball",O="Handball",C="Cricket",S="Motosport",N="Golf",k=153,L=156,_=158,T=9977,P=9983,V=10138,B=100021,E=100121,F=[T,P,V,k,L,_,15312,15313,15314,15315,15316,15317,15318,15622,15623,15624,15625,15626,15627,15628,15632,15633,15634,15635,15636,15637,15638,15641,15642,15643,15644,15645,15646,15647,15648],j=((l={})[1]={sport:m,id:1,isDrawAvailable:!1},l[2]={sport:m,id:2,isDrawAvailable:!1},l[3]={sport:b,id:3,isDrawAvailable:!1},l[4]={sport:f,id:4,isDrawAvailable:!1},l[5]={sport:f,id:5,isDrawAvailable:!1},l[6]={sport:v,id:6,isDrawAvailable:!1},l[7]={sport:g,id:7,isDrawAvailable:!1},l[8]={sport:f,id:8,isDrawAvailable:!1},l[10]={sport:p,id:10,isDrawAvailable:!0},l[11]={sport:p,id:11,isDrawAvailable:!0},l[12]={sport:p,id:12,isDrawAvailable:!0},l[13]={sport:p,id:13,isDrawAvailable:!0},l[14]={sport:p,id:14,isDrawAvailable:!0},l[15]={sport:p,id:15,isDrawAvailable:!0},l[16]={sport:p,id:16,isDrawAvailable:!0},l[17]={sport:p,id:17,isDrawAvailable:!0},l[18]={sport:p,id:18,isDrawAvailable:!0},l[19]={sport:p,id:19,isDrawAvailable:!0},l[20]={sport:C,id:20,isDrawAvailable:!1},l[21]={sport:C,id:21,isDrawAvailable:!1},l[33]={sport:v,id:33,isDrawAvailable:!0},l[44]={sport:p,id:44,isDrawAvailable:!0},l[45]={sport:p,id:45,isDrawAvailable:!0},l[50]={sport:p,id:50,isDrawAvailable:!0},l[57]={sport:p,id:57,isDrawAvailable:!0},l[61]={sport:p,id:61,isDrawAvailable:!0},l[65]={sport:p,id:65,isDrawAvailable:!0},l[66]={sport:p,id:66,isDrawAvailable:!0},l[76]={sport:p,id:76,isDrawAvailable:!0},l[132]={sport:p,id:132,isDrawAvailable:!0},l[134]={sport:p,id:134,isDrawAvailable:!0},l[138]={sport:p,id:138,isDrawAvailable:!0},l[141]={sport:p,id:141,isDrawAvailable:!0},l[153]={sport:h,id:k,isDrawAvailable:!1},l[156]={sport:h,id:L,isDrawAvailable:!1},l[158]={sport:h,id:_,isDrawAvailable:!1},l[209]={sport:p,id:209,isDrawAvailable:!0},l[268]={sport:p,id:268,isDrawAvailable:!0},l[288]={sport:p,id:288,isDrawAvailable:!0},l[296]={sport:p,id:296,isDrawAvailable:!0},l[380]={sport:O,id:380,isDrawAvailable:!0},l[381]={sport:O,id:381,isDrawAvailable:!0},l[399]={sport:f,id:399,isDrawAvailable:!1},l[406]={sport:f,id:406,isDrawAvailable:!1},l[407]={sport:f,id:407,isDrawAvailable:!1},l[409]={sport:f,id:409,isDrawAvailable:!1},l[445]={sport:S,id:445,isDrawAvailable:!1},l[453]={sport:y,id:453,isDrawAvailable:!1},l[454]={sport:y,id:454,isDrawAvailable:!1},l[8910]={sport:"TableTennis",id:8910,isDrawAvailable:!1},l[497]={sport:S,id:497,isDrawAvailable:!1},l[536]={sport:p,id:536,isDrawAvailable:!0},l[8881]={sport:"Waterpolo",id:8881,isDrawAvailable:!0},l[8893]={sport:y,id:8893,isDrawAvailable:!1},l[8894]={sport:y,id:8894,isDrawAvailable:!1},l[9196]={sport:g,id:9196,isDrawAvailable:!1},l[9578]={sport:D,id:9578,isDrawAvailable:!0},l[9588]={sport:D,id:9588,isDrawAvailable:!0},l[9698]={sport:v,id:9698,isDrawAvailable:!0},l[9699]={sport:v,id:9699,isDrawAvailable:!0},l[9806]={sport:p,id:9806,isDrawAvailable:!0},l[9821]={sport:p,id:9821,isDrawAvailable:!0},l[9977]={sport:A,id:T,isDrawAvailable:!1},l[9983]={sport:A,id:P,isDrawAvailable:!1},l[10071]={sport:f,id:10071,isDrawAvailable:!1},l[10072]={sport:f,id:10072,isDrawAvailable:!1},l[10502]={sport:f,id:10502,isDrawAvailable:!1},l[10138]={sport:A,id:V,isDrawAvailable:!1},l[10199]={sport:p,id:10199,isDrawAvailable:!0},l[10216]={sport:p,id:10216,isDrawAvailable:!0},l[10595]={sport:g,id:10595,isDrawAvailable:!1},l[10611]={sport:p,id:10611,isDrawAvailable:!0},l[10613]={sport:p,id:10613,isDrawAvailable:!0},l[10615]={sport:p,id:10615,isDrawAvailable:!0},l[2e4]={sport:"Politics",id:2e4,isDrawAvailable:!1},l[20001]={sport:p,id:20001,isDrawAvailable:!0},l[20002]={sport:p,id:20002,isDrawAvailable:!0},l[20011]={sport:p,id:20011,isDrawAvailable:!0},l[100021]={sport:N,id:B,isDrawAvailable:!1},l[100121]={sport:N,id:E,isDrawAvailable:!1},l[230]={sport:p,id:230,isDrawAvailable:!0},l),M=function(e){var r=j[e];return r?r.sport:""},x=function(e,r,a){var t=e.score_home_total,o=e.score_away_total,i=e.clock,s=e.period,n=e.status,l=e.home_team,d=e.away_team,u=parseInt(s),c=M(r);return"completed"==n.toLowerCase()?{allow:!1,message:"Blocking game ".concat(l," - ").concat(d," because it is no longer live.")}:c===f?G(l,d,u,a.get(f)):c===v?G(l,d,u,a.get(v)):c===b?G(l,d,u,a.get(b)):c===p?I(l,d,i,s,a.get(p)):c===h?W(e,l,d,s,t,o,r,c):c===y?W(e,l,d,u,t,o,r,c):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},G=function(e,r,a,t){return!Number.isNaN(a)&&a>=t?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},I=function(e,r,a,t,o){var i=Number(a);return!Number.isNaN(i)&&i>=o||Number.isNaN(i)&&"HALF"!=t?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},W=function(e,r,a,t,o,i,s,n){var l=Number(t),d=U(l,e),u="atp"==e.league.toLowerCase(),c={home:o,away:i};return n==y?R(r,a,d,c,2,5==l?10:20):s.toString().startsWith(k)&&u?R(r,a,d,c,2,5):s.toString().startsWith(k)&&!u||s.toString().startsWith(L)||s.toString().startsWith(_)?R(r,a,d,c,1,5):{allow:!0,message:"The sport ".concat(s," does not have result constraint")}},U=function(e,r){var a=0,t=0;switch(e){case 1:a=Number(r.score_home_period_1),t=Number(r.score_away_period_1);break;case 2:a=Number(r.score_home_period_2),t=Number(r.score_away_period_2);break;case 3:a=Number(r.score_home_period_3),t=Number(r.score_away_period_3);break;case 4:a=Number(r.score_home_period_4),t=Number(r.score_away_period_4);break;case 5:a=Number(r.score_home_period_5),t=Number(r.score_away_period_5)}return{home:a,away:t}},R=function(e,r,a,t,o,i){return Number(t.home)!=o&&Number(t.away)!=o||!(Number(t.home)==o&&a.home>=i||Number(t.away)==o&&a.away>=i)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(t.home," - ").concat(t.away," (").concat(a.home," - ").concat(a.away,")")}},H=function(e,r,a,t,o,i){var s,n;if(F.includes(e)?(s=t.toLowerCase()==r.toLowerCase()||t.toLowerCase()==a.toLowerCase(),n=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(s=t.toLowerCase()==r.toLowerCase(),n=o.toLowerCase()==a.toLowerCase()),!0!==s){var l=i.get(t.toLowerCase()),d=i.get(r.toLowerCase()),u=i.get(a.toLowerCase());if([l,d].some((function(e){return null==e})))return!1;s=F.includes(e)?l==d||l==u:l==d}if(!0!==n){var c=i.get(o.toLowerCase());if(d=i.get(r.toLowerCase()),[c,u=i.get(a.toLowerCase())].some((function(e){return null==e})))return!1;n=F.includes(e)&&c==d||c==u}return s&&n},z=function(e,r,a,t,o){var i,s=M(a);if(console.log("marketSport: ",s),s==h){var n=r.getTime(),l=e.getTime(),d=Math.abs(l-n);o&&(console.log("opticOddsTimestamp: ",n),console.log("marketTimestamp: ",l),console.log("differenceBetweenDates: ",d),console.log("tennisDifferenceEnvVariable: ",t)),i=d<=Number(60*t*1e3)}else i=r.toUTCString()==e.toUTCString();return i},K=function(e,r,a,t,o){var i=new Map;return e.forEach((function(e){var s,n,l=r.odds.filter((function(r){return r.sports_book_name.toLowerCase()==e.toLowerCase()})),d=t.get(a.homeTeam.toLowerCase()),u=t.get(a.awayTeam.toLowerCase()),c=0;null!=(s=null==d?l.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==a.homeTeam.toLowerCase():r==a.homeTeam.toLowerCase()})):l.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==d:r==d})))&&(c=s.price);var w=0;null!=(n=null==u?l.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==a.awayTeam.toLowerCase():r==a.awayTeam.toLowerCase()})):l.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==u:r==u})))&&(w=n.price);var p=0;if(o){var m=l.find((function(e){return"draw"==e.name.toLowerCase()}));null!=m&&(p=m.price)}i.set(e.toLowerCase(),{homeOdds:c,awayOdds:w,drawOdds:p})})),i},q=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var t=e.reduce((function(e,r){return e+r}),0);if(t<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(t-1)))return e;a=r}var o=1+a/100,i=o/t,s=e.map((function(e){return e*i}));if(s.some((function(e){return e>=1})))return Array(e.length).fill(0);var n=s.reduce((function(e,r){return e+r}),0);if(n<1)return Array(e.length).fill(0);var l=o/n;return s.map((function(e){return e*l}))},J=function(e,r,a,t){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):t,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:t,targetSpread:0}};return r})()));
|
package/package.json
CHANGED
package/src/constants/sports.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { League, Sport } from '../enums/sports';
|
|
2
|
-
import { ASIAN_HANDICAP, POINT_SPREAD, RUN_LINE, TOTAL_GOALS, TOTAL_POINTS, TOTAL_RUNS } from './constantsOpticodds';
|
|
3
2
|
|
|
4
3
|
export const LeagueMap: Record<number, any> = {
|
|
5
4
|
[League.NCAAF]: {
|
|
@@ -11,29 +10,21 @@ export const LeagueMap: Record<number, any> = {
|
|
|
11
10
|
sport: Sport.FOOTBALL,
|
|
12
11
|
id: League.NFL,
|
|
13
12
|
isDrawAvailable: false,
|
|
14
|
-
spread: ASIAN_HANDICAP,
|
|
15
|
-
total: TOTAL_POINTS,
|
|
16
13
|
},
|
|
17
14
|
[League.MLB]: {
|
|
18
15
|
sport: Sport.BASEBALL,
|
|
19
16
|
id: League.MLB,
|
|
20
17
|
isDrawAvailable: false,
|
|
21
|
-
spread: RUN_LINE,
|
|
22
|
-
total: TOTAL_RUNS,
|
|
23
18
|
},
|
|
24
19
|
[League.NBA]: {
|
|
25
20
|
sport: Sport.BASKETBALL,
|
|
26
21
|
id: League.NBA,
|
|
27
22
|
isDrawAvailable: false,
|
|
28
|
-
spread: POINT_SPREAD,
|
|
29
|
-
total: TOTAL_POINTS,
|
|
30
23
|
},
|
|
31
24
|
[League.NCAAB]: {
|
|
32
25
|
sport: Sport.BASKETBALL,
|
|
33
26
|
id: League.NCAAB,
|
|
34
27
|
isDrawAvailable: false,
|
|
35
|
-
spread: POINT_SPREAD,
|
|
36
|
-
total: TOTAL_POINTS,
|
|
37
28
|
},
|
|
38
29
|
[League.NHL]: {
|
|
39
30
|
sport: Sport.HOCKEY,
|
|
@@ -49,79 +40,57 @@ export const LeagueMap: Record<number, any> = {
|
|
|
49
40
|
sport: Sport.BASKETBALL,
|
|
50
41
|
id: League.WNBA,
|
|
51
42
|
isDrawAvailable: false,
|
|
52
|
-
spread: POINT_SPREAD,
|
|
53
|
-
total: TOTAL_POINTS,
|
|
54
43
|
},
|
|
55
44
|
[League.MLS]: {
|
|
56
45
|
sport: Sport.SOCCER,
|
|
57
46
|
id: League.MLS,
|
|
58
47
|
isDrawAvailable: true,
|
|
59
|
-
spread: ASIAN_HANDICAP,
|
|
60
|
-
total: TOTAL_GOALS,
|
|
61
48
|
},
|
|
62
49
|
[League.EPL]: {
|
|
63
50
|
sport: Sport.SOCCER,
|
|
64
51
|
id: League.EPL,
|
|
65
52
|
isDrawAvailable: true,
|
|
66
|
-
spread: ASIAN_HANDICAP,
|
|
67
|
-
total: TOTAL_GOALS,
|
|
68
53
|
},
|
|
69
54
|
[League.LIGUE_ONE]: {
|
|
70
55
|
sport: Sport.SOCCER,
|
|
71
56
|
id: League.LIGUE_ONE,
|
|
72
57
|
isDrawAvailable: true,
|
|
73
|
-
spread: ASIAN_HANDICAP,
|
|
74
|
-
total: TOTAL_GOALS,
|
|
75
58
|
},
|
|
76
59
|
|
|
77
60
|
[League.BUNDESLIGA]: {
|
|
78
61
|
sport: Sport.SOCCER,
|
|
79
62
|
id: League.BUNDESLIGA,
|
|
80
63
|
isDrawAvailable: true,
|
|
81
|
-
spread: ASIAN_HANDICAP,
|
|
82
|
-
total: TOTAL_GOALS,
|
|
83
64
|
},
|
|
84
65
|
[League.LA_LIGA]: {
|
|
85
66
|
sport: Sport.SOCCER,
|
|
86
67
|
id: League.LA_LIGA,
|
|
87
68
|
isDrawAvailable: true,
|
|
88
|
-
spread: ASIAN_HANDICAP,
|
|
89
|
-
total: TOTAL_GOALS,
|
|
90
69
|
},
|
|
91
70
|
[League.SERIE_A]: {
|
|
92
71
|
sport: Sport.SOCCER,
|
|
93
72
|
id: League.SERIE_A,
|
|
94
73
|
isDrawAvailable: true,
|
|
95
|
-
spread: ASIAN_HANDICAP,
|
|
96
|
-
total: TOTAL_GOALS,
|
|
97
74
|
},
|
|
98
75
|
[League.UEFA_CL]: {
|
|
99
76
|
sport: Sport.SOCCER,
|
|
100
77
|
id: League.UEFA_CL,
|
|
101
78
|
isDrawAvailable: true,
|
|
102
|
-
spread: ASIAN_HANDICAP,
|
|
103
|
-
total: TOTAL_GOALS,
|
|
104
79
|
},
|
|
105
80
|
[League.UEFA_EL]: {
|
|
106
81
|
sport: Sport.SOCCER,
|
|
107
82
|
id: League.UEFA_EL,
|
|
108
83
|
isDrawAvailable: true,
|
|
109
|
-
spread: ASIAN_HANDICAP,
|
|
110
|
-
total: TOTAL_GOALS,
|
|
111
84
|
},
|
|
112
85
|
[League.FIFA_WC]: {
|
|
113
86
|
sport: Sport.SOCCER,
|
|
114
87
|
id: League.FIFA_WC,
|
|
115
88
|
isDrawAvailable: true,
|
|
116
|
-
spread: ASIAN_HANDICAP,
|
|
117
|
-
total: TOTAL_GOALS,
|
|
118
89
|
},
|
|
119
90
|
[League.J1_LEAGUE]: {
|
|
120
91
|
sport: Sport.SOCCER,
|
|
121
92
|
id: League.J1_LEAGUE,
|
|
122
93
|
isDrawAvailable: true,
|
|
123
|
-
spread: ASIAN_HANDICAP,
|
|
124
|
-
total: TOTAL_GOALS,
|
|
125
94
|
},
|
|
126
95
|
[League.IPL]: {
|
|
127
96
|
sport: Sport.CRICKET,
|
|
@@ -142,90 +111,61 @@ export const LeagueMap: Record<number, any> = {
|
|
|
142
111
|
sport: Sport.SOCCER,
|
|
143
112
|
id: League.COPA_AMERICA,
|
|
144
113
|
isDrawAvailable: true,
|
|
145
|
-
spread: ASIAN_HANDICAP,
|
|
146
|
-
total: TOTAL_GOALS,
|
|
147
114
|
},
|
|
148
115
|
[League.COPA_LIBERTADORES]: {
|
|
149
116
|
sport: Sport.SOCCER,
|
|
150
117
|
id: League.COPA_LIBERTADORES,
|
|
151
118
|
isDrawAvailable: true,
|
|
152
|
-
spread: ASIAN_HANDICAP,
|
|
153
|
-
total: TOTAL_GOALS,
|
|
154
119
|
},
|
|
155
120
|
[League.UEFA_EURO]: {
|
|
156
121
|
sport: Sport.SOCCER,
|
|
157
122
|
id: League.UEFA_EURO,
|
|
158
123
|
isDrawAvailable: true,
|
|
159
|
-
spread: ASIAN_HANDICAP,
|
|
160
|
-
total: TOTAL_GOALS,
|
|
161
124
|
},
|
|
162
125
|
[League.EREDIVISIE]: {
|
|
163
126
|
sport: Sport.SOCCER,
|
|
164
127
|
id: League.EREDIVISIE,
|
|
165
128
|
isDrawAvailable: true,
|
|
166
|
-
spread: ASIAN_HANDICAP,
|
|
167
|
-
total: TOTAL_GOALS,
|
|
168
129
|
},
|
|
169
130
|
[League.PRIMEIRA_LIGA]: {
|
|
170
131
|
sport: Sport.SOCCER,
|
|
171
132
|
id: League.PRIMEIRA_LIGA,
|
|
172
133
|
isDrawAvailable: true,
|
|
173
|
-
spread: ASIAN_HANDICAP,
|
|
174
|
-
total: TOTAL_GOALS,
|
|
175
134
|
},
|
|
176
135
|
[League.SUMMER_OLYMPICS_SOCCER_WOMEN]: {
|
|
177
136
|
sport: Sport.SOCCER,
|
|
178
137
|
id: League.SUMMER_OLYMPICS_SOCCER_WOMEN,
|
|
179
138
|
isDrawAvailable: true,
|
|
180
|
-
spread: ASIAN_HANDICAP,
|
|
181
|
-
total: TOTAL_GOALS,
|
|
182
139
|
},
|
|
183
140
|
[League.SUMMER_OLYMPICS_SOCCER]: {
|
|
184
141
|
sport: Sport.SOCCER,
|
|
185
142
|
id: League.SUMMER_OLYMPICS_SOCCER,
|
|
186
143
|
isDrawAvailable: true,
|
|
187
|
-
spread: ASIAN_HANDICAP,
|
|
188
|
-
total: TOTAL_GOALS,
|
|
189
144
|
},
|
|
190
145
|
[League.FIFA_WC_WOMEN]: {
|
|
191
146
|
sport: Sport.SOCCER,
|
|
192
147
|
id: League.FIFA_WC_WOMEN,
|
|
193
148
|
isDrawAvailable: true,
|
|
194
|
-
spread: ASIAN_HANDICAP,
|
|
195
|
-
total: TOTAL_GOALS,
|
|
196
149
|
},
|
|
197
150
|
[League.ENGLAND_CUP]: {
|
|
198
151
|
sport: Sport.SOCCER,
|
|
199
152
|
id: League.ENGLAND_CUP,
|
|
200
153
|
isDrawAvailable: true,
|
|
201
|
-
spread: ASIAN_HANDICAP,
|
|
202
|
-
total: TOTAL_GOALS,
|
|
203
154
|
},
|
|
204
155
|
[League.FRANCE_CUP]: {
|
|
205
156
|
sport: Sport.SOCCER,
|
|
206
157
|
id: League.FRANCE_CUP,
|
|
207
158
|
isDrawAvailable: true,
|
|
208
|
-
spread: ASIAN_HANDICAP,
|
|
209
|
-
total: TOTAL_GOALS,
|
|
210
159
|
},
|
|
211
160
|
[League.SPAIN_CUP]: {
|
|
212
161
|
sport: Sport.SOCCER,
|
|
213
162
|
id: League.SPAIN_CUP,
|
|
214
163
|
isDrawAvailable: true,
|
|
215
|
-
spread: ASIAN_HANDICAP,
|
|
216
|
-
total: TOTAL_GOALS,
|
|
217
164
|
},
|
|
218
165
|
[League.ITALY_CUP]: {
|
|
219
166
|
sport: Sport.SOCCER,
|
|
220
167
|
id: League.ITALY_CUP,
|
|
221
168
|
isDrawAvailable: true,
|
|
222
|
-
spread: ASIAN_HANDICAP,
|
|
223
|
-
total: TOTAL_GOALS,
|
|
224
|
-
},
|
|
225
|
-
[League.TENNIS_WTA]: {
|
|
226
|
-
sport: Sport.TENNIS,
|
|
227
|
-
id: League.TENNIS_WTA,
|
|
228
|
-
isDrawAvailable: false,
|
|
229
169
|
},
|
|
230
170
|
[League.TENNIS_GS]: {
|
|
231
171
|
sport: Sport.TENNIS,
|
|
@@ -246,29 +186,21 @@ export const LeagueMap: Record<number, any> = {
|
|
|
246
186
|
sport: Sport.SOCCER,
|
|
247
187
|
id: League.GERMANY_CUP,
|
|
248
188
|
isDrawAvailable: true,
|
|
249
|
-
spread: ASIAN_HANDICAP,
|
|
250
|
-
total: TOTAL_GOALS,
|
|
251
189
|
},
|
|
252
190
|
[League.BRAZIL_1]: {
|
|
253
191
|
sport: Sport.SOCCER,
|
|
254
192
|
id: League.BRAZIL_1,
|
|
255
193
|
isDrawAvailable: true,
|
|
256
|
-
spread: ASIAN_HANDICAP,
|
|
257
|
-
total: TOTAL_GOALS,
|
|
258
194
|
},
|
|
259
195
|
[League.UEFA_EURO_U21]: {
|
|
260
196
|
sport: Sport.SOCCER,
|
|
261
197
|
id: League.UEFA_EURO_U21,
|
|
262
198
|
isDrawAvailable: true,
|
|
263
|
-
spread: ASIAN_HANDICAP,
|
|
264
|
-
total: TOTAL_GOALS,
|
|
265
199
|
},
|
|
266
200
|
[League.FIFA_WORLD_CUP_U20]: {
|
|
267
201
|
sport: Sport.SOCCER,
|
|
268
202
|
id: League.FIFA_WORLD_CUP_U20,
|
|
269
203
|
isDrawAvailable: true,
|
|
270
|
-
spread: ASIAN_HANDICAP,
|
|
271
|
-
total: TOTAL_GOALS,
|
|
272
204
|
},
|
|
273
205
|
[League.SUMMER_OLYMPICS_HANDBALL_WOMEN]: {
|
|
274
206
|
sport: Sport.HANDBALL,
|
|
@@ -284,29 +216,21 @@ export const LeagueMap: Record<number, any> = {
|
|
|
284
216
|
sport: Sport.BASKETBALL,
|
|
285
217
|
id: League.EUROLEAGUE,
|
|
286
218
|
isDrawAvailable: false,
|
|
287
|
-
spread: POINT_SPREAD,
|
|
288
|
-
total: TOTAL_POINTS,
|
|
289
219
|
},
|
|
290
220
|
[League.SUMMER_OLYMPICS_BASKETBALL]: {
|
|
291
221
|
sport: Sport.BASKETBALL,
|
|
292
222
|
id: League.SUMMER_OLYMPICS_BASKETBALL,
|
|
293
223
|
isDrawAvailable: false,
|
|
294
|
-
spread: POINT_SPREAD,
|
|
295
|
-
total: TOTAL_POINTS,
|
|
296
224
|
},
|
|
297
225
|
[League.SUMMER_OLYMPICS_BASKETBALL_WOMEN]: {
|
|
298
226
|
sport: Sport.BASKETBALL,
|
|
299
227
|
id: League.SUMMER_OLYMPICS_BASKETBALL_WOMEN,
|
|
300
228
|
isDrawAvailable: false,
|
|
301
|
-
spread: POINT_SPREAD,
|
|
302
|
-
total: TOTAL_POINTS,
|
|
303
229
|
},
|
|
304
230
|
[League.FIBA_WORLD_CUP]: {
|
|
305
231
|
sport: Sport.BASKETBALL,
|
|
306
232
|
id: League.FIBA_WORLD_CUP,
|
|
307
233
|
isDrawAvailable: false,
|
|
308
|
-
spread: POINT_SPREAD,
|
|
309
|
-
total: TOTAL_POINTS,
|
|
310
234
|
},
|
|
311
235
|
[League.FORMULA1]: {
|
|
312
236
|
sport: Sport.MOTOSPORT,
|
|
@@ -337,8 +261,6 @@ export const LeagueMap: Record<number, any> = {
|
|
|
337
261
|
sport: Sport.SOCCER,
|
|
338
262
|
id: League.SAUDI_PROFESSIONAL_LEAGUE,
|
|
339
263
|
isDrawAvailable: true,
|
|
340
|
-
spread: ASIAN_HANDICAP,
|
|
341
|
-
total: TOTAL_GOALS,
|
|
342
264
|
},
|
|
343
265
|
[League.SUMMER_OLYMPICS_WATERPOLO]: {
|
|
344
266
|
sport: Sport.WATERPOLO,
|
|
@@ -368,11 +290,13 @@ export const LeagueMap: Record<number, any> = {
|
|
|
368
290
|
[League.SUMMER_OLYMPICS_RUGBY_WOMEN]: {
|
|
369
291
|
sport: Sport.RUGBY,
|
|
370
292
|
id: League.SUMMER_OLYMPICS_RUGBY_WOMEN,
|
|
293
|
+
|
|
371
294
|
isDrawAvailable: true,
|
|
372
295
|
},
|
|
373
296
|
[League.SUMMER_OLYMPICS_HOCKEY_WOMEN]: {
|
|
374
297
|
sport: Sport.HOCKEY,
|
|
375
298
|
id: League.SUMMER_OLYMPICS_HOCKEY_WOMEN,
|
|
299
|
+
|
|
376
300
|
isDrawAvailable: true,
|
|
377
301
|
},
|
|
378
302
|
[League.SUMMER_OLYMPICS_HOCKEY]: {
|
|
@@ -384,15 +308,11 @@ export const LeagueMap: Record<number, any> = {
|
|
|
384
308
|
sport: Sport.SOCCER,
|
|
385
309
|
id: League.UEFA_NATIONS_LEAGUE,
|
|
386
310
|
isDrawAvailable: true,
|
|
387
|
-
spread: ASIAN_HANDICAP,
|
|
388
|
-
total: TOTAL_GOALS,
|
|
389
311
|
},
|
|
390
312
|
[League.CONCACAF_NATIONS_LEAGUE]: {
|
|
391
313
|
sport: Sport.SOCCER,
|
|
392
314
|
id: League.CONCACAF_NATIONS_LEAGUE,
|
|
393
315
|
isDrawAvailable: true,
|
|
394
|
-
spread: ASIAN_HANDICAP,
|
|
395
|
-
total: TOTAL_GOALS,
|
|
396
316
|
},
|
|
397
317
|
[League.CSGO]: {
|
|
398
318
|
sport: Sport.ESPORTS,
|
|
@@ -418,8 +338,6 @@ export const LeagueMap: Record<number, any> = {
|
|
|
418
338
|
sport: Sport.BASKETBALL,
|
|
419
339
|
id: League.SUMMER_OLYMPICS_QUALIFICATION,
|
|
420
340
|
isDrawAvailable: false,
|
|
421
|
-
spread: POINT_SPREAD,
|
|
422
|
-
total: TOTAL_POINTS,
|
|
423
341
|
},
|
|
424
342
|
[League.LOL]: {
|
|
425
343
|
sport: Sport.ESPORTS,
|
|
@@ -430,15 +348,11 @@ export const LeagueMap: Record<number, any> = {
|
|
|
430
348
|
sport: Sport.SOCCER,
|
|
431
349
|
id: League.CONMEBOL_WC_QUALIFICATIONS,
|
|
432
350
|
isDrawAvailable: true,
|
|
433
|
-
spread: ASIAN_HANDICAP,
|
|
434
|
-
total: TOTAL_GOALS,
|
|
435
351
|
},
|
|
436
352
|
[League.UEFA_CONFERENCE_LEAGUE]: {
|
|
437
353
|
sport: Sport.SOCCER,
|
|
438
354
|
id: League.UEFA_CONFERENCE_LEAGUE,
|
|
439
355
|
isDrawAvailable: true,
|
|
440
|
-
spread: ASIAN_HANDICAP,
|
|
441
|
-
total: TOTAL_GOALS,
|
|
442
356
|
},
|
|
443
357
|
[League.NON_TITLE_BOXING]: {
|
|
444
358
|
sport: Sport.FIGHTING,
|
|
@@ -449,22 +363,36 @@ export const LeagueMap: Record<number, any> = {
|
|
|
449
363
|
sport: Sport.SOCCER,
|
|
450
364
|
id: League.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,
|
|
451
365
|
isDrawAvailable: true,
|
|
452
|
-
spread: ASIAN_HANDICAP,
|
|
453
|
-
total: TOTAL_GOALS,
|
|
454
366
|
},
|
|
455
367
|
[League.UEFA_EUROPA_LEAGUE_QUALIFICATION]: {
|
|
456
368
|
sport: Sport.SOCCER,
|
|
457
369
|
id: League.UEFA_EUROPA_LEAGUE_QUALIFICATION,
|
|
458
370
|
isDrawAvailable: true,
|
|
459
|
-
spread: ASIAN_HANDICAP,
|
|
460
|
-
total: TOTAL_GOALS,
|
|
461
371
|
},
|
|
462
372
|
[League.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]: {
|
|
463
373
|
sport: Sport.SOCCER,
|
|
464
374
|
id: League.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,
|
|
465
375
|
isDrawAvailable: true,
|
|
466
|
-
|
|
467
|
-
|
|
376
|
+
},
|
|
377
|
+
[League.US_ELECTION]: {
|
|
378
|
+
sport: Sport.POLITICS,
|
|
379
|
+
id: League.US_ELECTION,
|
|
380
|
+
isDrawAvailable: false,
|
|
381
|
+
},
|
|
382
|
+
[League.UEFA_SUPER_CUP]: {
|
|
383
|
+
sport: Sport.SOCCER,
|
|
384
|
+
id: League.UEFA_SUPER_CUP,
|
|
385
|
+
isDrawAvailable: true,
|
|
386
|
+
},
|
|
387
|
+
[League.BRAZIL_CUP]: {
|
|
388
|
+
sport: Sport.SOCCER,
|
|
389
|
+
id: League.BRAZIL_CUP,
|
|
390
|
+
isDrawAvailable: true,
|
|
391
|
+
},
|
|
392
|
+
[League.ENGLAND_CHAMPIONSHIP]: {
|
|
393
|
+
sport: Sport.SOCCER,
|
|
394
|
+
id: League.ENGLAND_CHAMPIONSHIP,
|
|
395
|
+
isDrawAvailable: true,
|
|
468
396
|
},
|
|
469
397
|
[League.GOLF_H2H]: {
|
|
470
398
|
sport: Sport.GOLF,
|
|
@@ -480,8 +408,6 @@ export const LeagueMap: Record<number, any> = {
|
|
|
480
408
|
sport: Sport.SOCCER,
|
|
481
409
|
id: League.LIGA_MX,
|
|
482
410
|
isDrawAvailable: true,
|
|
483
|
-
spread: ASIAN_HANDICAP,
|
|
484
|
-
total: TOTAL_GOALS,
|
|
485
411
|
},
|
|
486
412
|
};
|
|
487
413
|
|
package/src/enums/sports.ts
CHANGED
|
@@ -15,6 +15,7 @@ export const Sport = {
|
|
|
15
15
|
MOTOSPORT: 'Motosport',
|
|
16
16
|
GOLF: 'Golf',
|
|
17
17
|
TABLE_TENNIS: 'TableTennis',
|
|
18
|
+
POLITICS: 'Politics',
|
|
18
19
|
EMPTY: '',
|
|
19
20
|
};
|
|
20
21
|
|
|
@@ -52,7 +53,6 @@ export const League = {
|
|
|
52
53
|
FRANCE_CUP: 134,
|
|
53
54
|
SPAIN_CUP: 138,
|
|
54
55
|
ITALY_CUP: 141,
|
|
55
|
-
TENNIS_WTA: 152,
|
|
56
56
|
TENNIS_GS: 153,
|
|
57
57
|
TENNIS_MASTERS: 156,
|
|
58
58
|
SUMMER_OLYMPICS_TENNIS: 158,
|
|
@@ -95,6 +95,10 @@ export const League = {
|
|
|
95
95
|
UEFA_CHAMPIONS_LEAGUE_QUALIFICATION: 10611,
|
|
96
96
|
UEFA_EUROPA_LEAGUE_QUALIFICATION: 10613,
|
|
97
97
|
UEFA_CONFERENCE_LEAGUE_QUALIFICATION: 10615,
|
|
98
|
+
US_ELECTION: 20000,
|
|
99
|
+
UEFA_SUPER_CUP: 20001,
|
|
100
|
+
BRAZIL_CUP: 20002,
|
|
101
|
+
ENGLAND_CHAMPIONSHIP: 20011,
|
|
98
102
|
GOLF_H2H: 100021,
|
|
99
103
|
GOLF_WINNER: 100121,
|
|
100
104
|
TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1: 15312,
|
|
@@ -126,13 +130,6 @@ export const League = {
|
|
|
126
130
|
TENNIS_MASTERS_LIVE_MAPPING_V2_20: 15646,
|
|
127
131
|
TENNIS_MASTERS_LIVE_MAPPING_V2_21: 15647,
|
|
128
132
|
TENNIS_MASTERS_LIVE_MAPPING_V2_22: 15648,
|
|
129
|
-
TENNIS_WTA_LIVE_MAPPING_V2_1: 15322,
|
|
130
|
-
TENNIS_WTA_LIVE_MAPPING_V2_2: 15323,
|
|
131
|
-
TENNIS_WTA_LIVE_MAPPING_V2_3: 15324,
|
|
132
|
-
TENNIS_WTA_LIVE_MAPPING_V2_4: 15325,
|
|
133
|
-
TENNIS_WTA_LIVE_MAPPING_V2_5: 15326,
|
|
134
|
-
TENNIS_WTA_LIVE_MAPPING_V2_6: 15327,
|
|
135
|
-
TENNIS_WTA_LIVE_MAPPING_V2_7: 15328,
|
|
136
133
|
};
|
|
137
134
|
|
|
138
135
|
export const LEAGUES_NO_FORMAL_HOME_AWAY = [
|
|
@@ -171,11 +168,4 @@ export const LEAGUES_NO_FORMAL_HOME_AWAY = [
|
|
|
171
168
|
League.TENNIS_MASTERS_LIVE_MAPPING_V2_20,
|
|
172
169
|
League.TENNIS_MASTERS_LIVE_MAPPING_V2_21,
|
|
173
170
|
League.TENNIS_MASTERS_LIVE_MAPPING_V2_22,
|
|
174
|
-
League.TENNIS_WTA_LIVE_MAPPING_V2_1,
|
|
175
|
-
League.TENNIS_WTA_LIVE_MAPPING_V2_2,
|
|
176
|
-
League.TENNIS_WTA_LIVE_MAPPING_V2_3,
|
|
177
|
-
League.TENNIS_WTA_LIVE_MAPPING_V2_4,
|
|
178
|
-
League.TENNIS_WTA_LIVE_MAPPING_V2_5,
|
|
179
|
-
League.TENNIS_WTA_LIVE_MAPPING_V2_6,
|
|
180
|
-
League.TENNIS_WTA_LIVE_MAPPING_V2_7,
|
|
181
171
|
];
|
package/src/utils/bookmakers.ts
CHANGED
|
@@ -24,13 +24,6 @@ export const checkOddsFromBookmakers = (
|
|
|
24
24
|
maxImpliedPercentageDifference: number,
|
|
25
25
|
minOddsForDiffChecking: number
|
|
26
26
|
) => {
|
|
27
|
-
console.log('########## CHECK ODDS START ##########');
|
|
28
|
-
console.log('oddsMap: ' + oddsMap);
|
|
29
|
-
console.log('arrayOfBookmakers: ' + arrayOfBookmakers);
|
|
30
|
-
console.log('isTwoPositionalSport: ' + isTwoPositionalSport);
|
|
31
|
-
console.log('maxImpliedPercentageDifference: ' + maxImpliedPercentageDifference);
|
|
32
|
-
console.log('minOddsForDiffChecking: ' + minOddsForDiffChecking);
|
|
33
|
-
console.log('########## CHECK ODDS END ##########');
|
|
34
27
|
// Check if any bookmaker has odds of 0 or 0.0001
|
|
35
28
|
const hasZeroOrOne = arrayOfBookmakers.some((bookmakerId) => {
|
|
36
29
|
const line = oddsMap.get(bookmakerId);
|
|
@@ -66,14 +66,22 @@ export const gamesDatesMatching = (
|
|
|
66
66
|
marketMaturityDate: Date,
|
|
67
67
|
apiStartDate: Date,
|
|
68
68
|
sportId: number,
|
|
69
|
-
tennisDifferenceEnvVariable: number
|
|
69
|
+
tennisDifferenceEnvVariable: number,
|
|
70
|
+
areTeamNamesEqual?: boolean
|
|
70
71
|
) => {
|
|
71
72
|
let datesMatch;
|
|
72
73
|
const marketSport = getLeagueSport(sportId);
|
|
74
|
+
console.log('marketSport: ', marketSport);
|
|
73
75
|
if (marketSport == Sport.TENNIS) {
|
|
74
76
|
const opticOddsTimestamp = apiStartDate.getTime();
|
|
75
77
|
const marketTimestamp = marketMaturityDate.getTime();
|
|
76
78
|
const differenceBetweenDates = Math.abs(marketTimestamp - opticOddsTimestamp);
|
|
79
|
+
if (areTeamNamesEqual) {
|
|
80
|
+
console.log('opticOddsTimestamp: ', opticOddsTimestamp);
|
|
81
|
+
console.log('marketTimestamp: ', marketTimestamp);
|
|
82
|
+
console.log('differenceBetweenDates: ', differenceBetweenDates);
|
|
83
|
+
console.log('tennisDifferenceEnvVariable: ', tennisDifferenceEnvVariable);
|
|
84
|
+
}
|
|
77
85
|
if (differenceBetweenDates <= Number(tennisDifferenceEnvVariable * 60 * 1000)) {
|
|
78
86
|
datesMatch = true;
|
|
79
87
|
} else {
|