overtime-live-trading-utils 0.0.21 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/main.js +1 -1
- package/package.json +1 -1
- package/src/constants/sports.ts +30 -2
- package/src/enums/sports.ts +20 -3
- package/src/utils/sports.ts +9 -0
package/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var 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:()=>F,allowGameSportWithPeriodConstraint:()=>U,allowSoccerGame:()=>v,allowTennisMatch:()=>g,calculateImpliedOddsDifference:()=>l,checkGameContraints:()=>R,checkOddsFromBookmakers:()=>N,extractOddsForGamePerProvider:()=>C,gamesDatesMatching:()=>G,getBookmakersArray:()=>E,getLeagueSport:()=>V,getSpreadData:()=>D,teamNamesMatching:()=>f}),"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 _ in o)Object.prototype.hasOwnProperty.call(o,_)&&(a[_]=o[_])}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={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],_=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 _=t,i=_.toString().length,n=e,A=n.toString().length;0===n&&(A=0);var s,E=i-A;for(s=E;s>0&&_%2==0;s--)_/=2;for(s=E;s>0&&_%5==0;s--)_/=5;return _}(e),i=e,n=Math.pow(10,-r)/2,A=2;A<1e3;A++){var s=Math.floor(i);if(t[A]=s*t[A-1]+t[A-2],Math.abs(t[A])>_)return;if(o[A]=s*o[A-1]+o[A-2],a=t[A]/o[A],Math.abs(a-e)<n||NaN==a)return t[A].toString()+"/"+o[A].toString();i=1/(i-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?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=((_=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(!i.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=i[e].from(r);return new _(a)},o);n.prototype.to=function(e,r){if(!i.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=i[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=t("round",a,-r.precision)),a};var A,s=n.from,E=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},N=function(e,r,a,t,o){var _=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(_)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var i=r[0],n=e.get(i);return[{homeOdds:n.homeOdds,awayOdds:n.awayOdds,drawOdds:a?0:n.drawOdds}]}if(_)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var A=e.get(r[0]),E=A.homeOdds,N=A.awayOdds,I=A.drawOdds;if(r.slice(1).some((function(r){var _=e[r];if(_){var i=_.homeOdds,n=_.awayOdds,A=_.drawOdds,S=s("decimal",E).to("impliedProbability"),d=s("decimal",N).to("impliedProbability"),u=a?0:s("decimal",I).to("impliedProbability"),L=s("decimal",i).to("impliedProbability"),c=s("decimal",n).to("impliedProbability"),m=a?0:s("decimal",A).to("impliedProbability"),P=l(S,L),O=l(d,c),w=a?0:l(u,m);if(P>t&&S>o&&L>o||O>t&&d>o&&c>o||!a&&w>t&&u>o&&m>o)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var S=[];return r.forEach((function(r){return S.push(e.get(r))})),null!=S[0]?S.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}])},l=function(e,r){var a=Math.abs(e-r)/e*100;return console.log("% diff: "+a),a},I="Soccer",S="Football",d="Basketball",u="Baseball",L="Hockey",c="Fighting",m="Tennis",P="eSports",O="Cricket",w="Motosport",M="Golf",T={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,FIFA_WC_WOMEN:76,ENGLAND_CUP:132,FRANCE_CUP:134,SPAIN_CUP:138,ITALY_CUP:141,TENNIS_GS:153,TENNIS_MASTERS:156,GERMANY_CUP:209,LIGA_MX:230,BRAZIL_1:268,UEFA_EURO_U21:288,FIFA_WORLD_CUP_U20:296,EUROLEAGUE:399,FIBA_WORLD_CUP:409,FORMULA1:445,MOTOGP:497,SAUDI_PROFESSIONAL_LEAGUE:536,BOXING:9196,UEFA_NATIONS_LEAGUE:9806,CONCACAF_NATIONS_LEAGUE:9821,CSGO:9977,DOTA2:9983,SUMMER_OLYMPICS_QUALIFICATION:10502,LOL:10138,CONMEBOL_WC_QUALIFICATIONS:10199,UEFA_CONFERENCE_LEAGUE:10216,NON_TITLE_BOXING:10595,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,UEFA_CHAMPIONS_LEAGUE_QUALIFICATION:10611,UEFA_EUROPA_LEAGUE_QUALIFICATION:10613,UEFA_CONFERENCE_LEAGUE_QUALIFICATION:10615},p=[T.CSGO,T.DOTA2,T.LOL,T.TENNIS_GS,T.TENNIS_MASTERS,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,T.TENNIS_MASTERS_LIVE_MAPPING_V2_1,T.TENNIS_MASTERS_LIVE_MAPPING_V2_2,T.TENNIS_MASTERS_LIVE_MAPPING_V2_3,T.TENNIS_MASTERS_LIVE_MAPPING_V2_4,T.TENNIS_MASTERS_LIVE_MAPPING_V2_5,T.TENNIS_MASTERS_LIVE_MAPPING_V2_6,T.TENNIS_MASTERS_LIVE_MAPPING_V2_7,T.TENNIS_MASTERS_LIVE_MAPPING_V2_8,T.TENNIS_MASTERS_LIVE_MAPPING_V2_9,T.TENNIS_MASTERS_LIVE_MAPPING_V2_10,T.TENNIS_MASTERS_LIVE_MAPPING_V2_11,T.TENNIS_MASTERS_LIVE_MAPPING_V2_12,T.TENNIS_MASTERS_LIVE_MAPPING_V2_13,T.TENNIS_MASTERS_LIVE_MAPPING_V2_14,T.TENNIS_MASTERS_LIVE_MAPPING_V2_15,T.TENNIS_MASTERS_LIVE_MAPPING_V2_16,T.TENNIS_MASTERS_LIVE_MAPPING_V2_17,T.TENNIS_MASTERS_LIVE_MAPPING_V2_18,T.TENNIS_MASTERS_LIVE_MAPPING_V2_19,T.TENNIS_MASTERS_LIVE_MAPPING_V2_20,T.TENNIS_MASTERS_LIVE_MAPPING_V2_21,T.TENNIS_MASTERS_LIVE_MAPPING_V2_22],f=function(e,r,a,t,o,_){var i,n;if(p.includes(e)?(i=t.toLowerCase()==r.toLowerCase()||t.toLowerCase()==a.toLowerCase(),n=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(i=t.toLowerCase()==r.toLowerCase(),n=o.toLowerCase()==a.toLowerCase()),!0!==i){var A=_.get(t.toLowerCase()),s=_.get(r.toLowerCase()),E=_.get(a.toLowerCase());if([A,s].some((function(e){return null==e})))return!1;i=p.includes(e)?A==s||A==E:A==s}if(!0!==n){var N=_.get(o.toLowerCase());if(s=_.get(r.toLowerCase()),[N,E=_.get(a.toLowerCase())].some((function(e){return null==e})))return!1;n=p.includes(e)&&N==s||N==E}return i&&n},G=function(e,r,a,t){var o;if(a.toString().startsWith(T.TENNIS_GS.toString())||a.toString().startsWith(T.TENNIS_MASTERS.toString())){var _=r.getTime(),i=e.getTime();o=Math.abs(i-_)<=Number(60*t*1e3)}else o=r.toUTCString()==e.toUTCString();return o},C=function(e,r,a,t,o){var _=new Map;return e.forEach((function(e){var i,n,A=r.odds.filter((function(r){return r.sports_book_name.toLowerCase()==e.toLowerCase()})),s=t.get(a.homeTeam.toLowerCase()),E=t.get(a.awayTeam.toLowerCase()),N=0;null!=(i=null==s?A.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==a.homeTeam.toLowerCase():r==a.homeTeam.toLowerCase()})):A.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==s:r==s})))&&(N=i.price);var l=0;null!=(n=null==E?A.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==a.awayTeam.toLowerCase():r==a.awayTeam.toLowerCase()})):A.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==E:r==E})))&&(l=n.price);var I=0;if(o){var S=A.find((function(e){return"draw"==e.name.toLowerCase()}));null!=S&&(I=S.price)}_.set(e.toLowerCase(),{homeOdds:N,awayOdds:l,drawOdds:I})})),_},b=((A={})[T.NCAAF]={sport:S,id:T.NCAAF,isDrawAvailable:!1},A[T.NFL]={sport:S,id:T.NFL,isDrawAvailable:!1},A[T.MLB]={sport:u,id:T.MLB,isDrawAvailable:!1},A[T.NBA]={sport:d,id:T.NBA,isDrawAvailable:!1},A[T.NCAAB]={sport:d,id:T.NCAAB,isDrawAvailable:!1},A[T.NHL]={sport:L,id:T.NHL,isDrawAvailable:!1},A[T.UFC]={sport:c,id:T.UFC,isDrawAvailable:!1},A[T.WNBA]={sport:d,id:T.WNBA,isDrawAvailable:!1},A[T.MLS]={sport:I,id:T.MLS,isDrawAvailable:!0},A[T.EPL]={sport:I,id:T.EPL,isDrawAvailable:!0},A[T.LIGUE_ONE]={sport:I,id:T.LIGUE_ONE,isDrawAvailable:!0},A[T.BUNDESLIGA]={sport:I,id:T.BUNDESLIGA,isDrawAvailable:!0},A[T.LA_LIGA]={sport:I,id:T.LA_LIGA,isDrawAvailable:!0},A[T.SERIE_A]={sport:I,id:T.SERIE_A,isDrawAvailable:!0},A[T.UEFA_CL]={sport:I,id:T.UEFA_CL,isDrawAvailable:!0},A[T.UEFA_EL]={sport:I,id:T.UEFA_EL,isDrawAvailable:!0,priority:104},A[T.FIFA_WC]={sport:I,id:T.FIFA_WC,isDrawAvailable:!0},A[T.J1_LEAGUE]={sport:I,id:T.J1_LEAGUE,isDrawAvailable:!0},A[T.IPL]={sport:O,id:T.IPL,isDrawAvailable:!1},A[T.T20_BLAST]={sport:O,id:T.T20_BLAST,isDrawAvailable:!1},A[T.IIHF_WORLD_CHAMPIONSHIP]={sport:L,id:T.IIHF_WORLD_CHAMPIONSHIP,isDrawAvailable:!0},A[T.COPA_AMERICA]={sport:I,id:T.COPA_AMERICA,isDrawAvailable:!0},A[T.COPA_LIBERTADORES]={sport:I,id:T.COPA_LIBERTADORES,isDrawAvailable:!0},A[T.UEFA_EURO]={sport:I,id:T.UEFA_EURO,isDrawAvailable:!0},A[T.EREDIVISIE]={sport:I,id:T.EREDIVISIE,isDrawAvailable:!0},A[T.PRIMEIRA_LIGA]={sport:I,id:T.PRIMEIRA_LIGA,isDrawAvailable:!0},A[T.FIFA_WC_WOMEN]={sport:I,id:T.FIFA_WC_WOMEN,priority:112},A[T.ENGLAND_CUP]={sport:I,id:T.ENGLAND_CUP,isDrawAvailable:!0},A[T.FRANCE_CUP]={sport:I,isDrawAvailable:!0},A[T.SPAIN_CUP]={sport:I,id:T.SPAIN_CUP,isDrawAvailable:!0},A[T.ITALY_CUP]={sport:I,isDrawAvailable:!0},A[T.TENNIS_GS]={sport:m,id:T.TENNIS_GS,isDrawAvailable:!1},A[T.TENNIS_MASTERS]={sport:m,id:T.TENNIS_MASTERS,isDrawAvailable:!1},A[T.GERMANY_CUP]={sport:I,id:T.GERMANY_CUP,isDrawAvailable:!0},A[T.BRAZIL_1]={sport:I,id:T.BRAZIL_1,isDrawAvailable:!0},A[T.UEFA_EURO_U21]={sport:I,id:T.UEFA_EURO_U21,isDrawAvailable:!0},A[T.FIFA_WORLD_CUP_U20]={sport:I,id:T.FIFA_WORLD_CUP_U20,isDrawAvailable:!0},A[T.EUROLEAGUE]={sport:d,id:T.EUROLEAGUE,isDrawAvailable:!1},A[T.FIBA_WORLD_CUP]={sport:d,id:T.FIBA_WORLD_CUP,isDrawAvailable:!1},A[T.FORMULA1]={sport:w,id:T.FORMULA1,isDrawAvailable:!1},A[T.MOTOGP]={sport:w,id:T.MOTOGP,isDrawAvailable:!1},A[T.SAUDI_PROFESSIONAL_LEAGUE]={sport:I,id:T.SAUDI_PROFESSIONAL_LEAGUE,isDrawAvailable:!0},A[T.BOXING]={sport:c,id:T.BOXING,isDrawAvailable:!1},A[T.UEFA_NATIONS_LEAGUE]={sport:I,id:T.UEFA_NATIONS_LEAGUE,isDrawAvailable:!0},A[T.CONCACAF_NATIONS_LEAGUE]={sport:I,id:T.CONCACAF_NATIONS_LEAGUE,isDrawAvailable:!0},A[T.CSGO]={sport:P,id:T.CSGO,isDrawAvailable:!1},A[T.DOTA2]={sport:P,id:T.DOTA2,isDrawAvailable:!1},A[T.SUMMER_OLYMPICS_QUALIFICATION]={sport:d,id:T.SUMMER_OLYMPICS_QUALIFICATION,isDrawAvailable:!1},A[T.LOL]={sport:P,id:T.LOL,isDrawAvailable:!1},A[T.CONMEBOL_WC_QUALIFICATIONS]={sport:I,id:T.CONMEBOL_WC_QUALIFICATIONS,isDrawAvailable:!0},A[T.UEFA_CONFERENCE_LEAGUE]={sport:I,id:T.UEFA_CONFERENCE_LEAGUE,isDrawAvailable:!0},A[T.NON_TITLE_BOXING]={sport:c,isDrawAvailable:!1},A[T.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:I,id:T.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,isDrawAvailable:!0},A[T.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:I,id:T.UEFA_EUROPA_LEAGUE_QUALIFICATION,isDrawAvailable:!0},A[T.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:I,isDrawAvailable:!0},A[T.GOLF_H2H]={sport:M,id:T.GOLF_H2H,isDrawAvailable:!1},A[T.GOLF_WINNER]={sport:M,id:T.GOLF_WINNER,isDrawAvailable:!1},A[T.LIGA_MX]={sport:I,id:T.LIGA_MX,isDrawAvailable:!0},A),V=function(e){var r=b[e];return r?r.sport:""},R=function(e,r,a){var t,o=e.score_home_total,_=e.score_away_total,i=e.clock,n=e.period,A=e.status,s=e.home_team,E=e.away_team,N=V(r);return"completed"==A.toLowerCase()?(console.log("Blocking game ".concat(s," - ").concat(E," because it is no longer live.")),null):(N===d&&(t=U(s,E,n,a.get(d))),N===L&&(t=U(s,E,n,a.get(L))),N===u&&(t=U(s,E,n,a.get(u))),N===I&&(t=v(s,E,i,n,a.get(I))),N===m&&(t=g(e,s,E,n,o,_,r)),t)},U=function(e,r,a,t){return Number(a)>=t?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},v=function(e,r,a,t,o){var _=Number(a);return!Number.isNaN(_)&&_>=o||Number.isNaN(_)&&"HALF"!=t?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},g=function(e,r,a,t,o,_,i){var n,A,s=Number(t),E="atp"==e.league.toLowerCase();if(i==T.TENNIS_GS&&E){if(2==Number(o)||2==Number(_)){switch(s){case 3:n=Number(e.score_home_period_3),A=Number(e.score_away_period_3);break;case 4:n=Number(e.score_home_period_4),A=Number(e.score_away_period_4);break;case 5:n=Number(e.score_home_period_5),A=Number(e.score_away_period_5)}return 2==Number(o)&&n>=5||2==Number(_)&&A>=5?{allow:!1,message:"Blocking game ".concat(r," - ").concat(a," due to current result: ").concat(o," - ").concat(_," (").concat(n," - ").concat(A,")")}:{allow:!0,message:"",currentHomeGameScore:n,currentAwayGameScore:A}}return{allow:!0,message:"",currentHomeGameScore:n,currentAwayGameScore:A}}if(1==Number(o)||1==Number(_)){switch(s){case 2:n=Number(e.score_home_period_2),A=Number(e.score_away_period_2);break;case 3:n=Number(e.score_home_period_3),A=Number(e.score_away_period_3)}return 1==Number(o)&&n>=5||1==Number(_)&&A>=5?{allow:!1,message:"Blocking game ".concat(r," - ").concat(a," due to current result: ").concat(o," - ").concat(_," (").concat(n," - ").concat(A,")")}:{allow:!0,message:"",currentHomeGameScore:n,currentAwayGameScore:A}}return{allow:!0,message:"",currentHomeGameScore:n,currentAwayGameScore:A}},F=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,_=o/t,i=e.map((function(e){return e*_}));if(i.some((function(e){return e>=1})))return Array(e.length).fill(0);var n=i.reduce((function(e,r){return e+r}),0);if(n<1)return Array(e.length).fill(0);var A=o/n;return i.map((function(e){return e*A}))},D=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})()));
|
|
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 _ in a)e.o(a,_)&&!e.o(r,_)&&Object.defineProperty(r,_,{enumerable:!0,get:a[_]})},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:()=>F,allowGameSportWithPeriodConstraint:()=>v,allowSoccerGame:()=>g,allowTennisMatch:()=>D,calculateImpliedOddsDifference:()=>I,checkGameContraints:()=>V,checkOddsFromBookmakers:()=>N,extractOddsForGamePerProvider:()=>G,gamesDatesMatching:()=>f,getBookmakersArray:()=>s,getLeagueSport:()=>b,getSpreadData:()=>h,teamNamesMatching:()=>R}),"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),_=1;_<arguments.length;_++){var t=arguments[_];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 _(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?-_(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 t,o,i={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=_("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,_=[0,1],t=[1,0],o=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var _=null,t=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==t?_=r:0===t?_=r.substring(1,r.length):t<r.length&&(_=r.substring(0,t)+r.substring(t+1,r.length));var o=_,i=o.toString().length,A=e,n=A.toString().length;0===A&&(n=0);var E,s=i-n;for(E=s;E>0&&o%2==0;E--)o/=2;for(E=s;E>0&&o%5==0;E--)o/=5;return o}(e),i=e,A=Math.pow(10,-r)/2,n=2;n<1e3;n++){var E=Math.floor(i);if(_[n]=E*_[n-1]+_[n-2],Math.abs(_[n])>o)return;if(t[n]=E*t[n-1]+t[n-2],a=_[n]/t[n],Math.abs(a-e)<A||NaN==a)return _[n].toString()+"/"+t[n].toString();i=1/(i-E)}}(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)}}},A=((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,r){if(!i.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=i[e].from(r);return new o(a)},t);A.prototype.to=function(e,r){if(!i.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=i[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=_("round",a,-r.precision)),a};var n,E=A.from,s=function(e,r,a){var _=e.find((function(e){return Number(e.sportId)===Number(r)}));if(_){if(""==_.primaryBookmaker)return a;var t=[];return _.primaryBookmaker&&t.push(_.primaryBookmaker),_.secondaryBookmaker&&t.push(_.secondaryBookmaker),_.tertiaryBookmaker&&t.push(_.tertiaryBookmaker),t}return a},N=function(e,r,a,_,t){var o=r.some((function(r){var _=e.get(r);return!!_&&(0===_.homeOdds||0===_.awayOdds||!a&&0===_.drawOdds||1===_.homeOdds||1===_.awayOdds||!a&&1===_.drawOdds)}));if(1==r.length){if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var i=r[0],A=e.get(i);return[{homeOdds:A.homeOdds,awayOdds:A.awayOdds,drawOdds:a?0:A.drawOdds}]}if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var n=e.get(r[0]),s=n.homeOdds,N=n.awayOdds,l=n.drawOdds;if(r.slice(1).some((function(r){var o=e[r];if(o){var i=o.homeOdds,A=o.awayOdds,n=o.drawOdds,S=E("decimal",s).to("impliedProbability"),L=E("decimal",N).to("impliedProbability"),d=a?0:E("decimal",l).to("impliedProbability"),u=E("decimal",i).to("impliedProbability"),M=E("decimal",A).to("impliedProbability"),c=a?0:E("decimal",n).to("impliedProbability"),O=I(S,u),P=I(L,M),m=a?0:I(d,c);if(O>_&&S>t&&u>t||P>_&&L>t&&M>t||!a&&m>_&&d>t&&c>t)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var S=[];return r.forEach((function(r){return S.push(e.get(r))})),null!=S[0]?S.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}])},I=function(e,r){var a=Math.abs(e-r)/e*100;return console.log("% diff: "+a),a},l="Soccer",S="Football",L="Basketball",d="Baseball",u="Hockey",M="Fighting",c="Tennis",O="eSports",P="Volleyball",m="Cricket",w="Motosport",T="Golf",C={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,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,MOTOGP:497,SAUDI_PROFESSIONAL_LEAGUE:536,SUMMER_OLYMPICS_WATERPOLO:8881,SUMMER_OLYMPICS_VOLEYBALL_WOMEN:8893,SUMMER_OLYMPICS_VOLEYBALL:8894,BOXING:9196,SUMMER_OLYMPICS_RUGBY:9578,SUMMER_OLYMPICS_RUGBY_WOMEN:9588,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},p=[C.CSGO,C.DOTA2,C.LOL,C.TENNIS_GS,C.TENNIS_MASTERS,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,C.TENNIS_MASTERS_LIVE_MAPPING_V2_1,C.TENNIS_MASTERS_LIVE_MAPPING_V2_2,C.TENNIS_MASTERS_LIVE_MAPPING_V2_3,C.TENNIS_MASTERS_LIVE_MAPPING_V2_4,C.TENNIS_MASTERS_LIVE_MAPPING_V2_5,C.TENNIS_MASTERS_LIVE_MAPPING_V2_6,C.TENNIS_MASTERS_LIVE_MAPPING_V2_7,C.TENNIS_MASTERS_LIVE_MAPPING_V2_8,C.TENNIS_MASTERS_LIVE_MAPPING_V2_9,C.TENNIS_MASTERS_LIVE_MAPPING_V2_10,C.TENNIS_MASTERS_LIVE_MAPPING_V2_11,C.TENNIS_MASTERS_LIVE_MAPPING_V2_12,C.TENNIS_MASTERS_LIVE_MAPPING_V2_13,C.TENNIS_MASTERS_LIVE_MAPPING_V2_14,C.TENNIS_MASTERS_LIVE_MAPPING_V2_15,C.TENNIS_MASTERS_LIVE_MAPPING_V2_16,C.TENNIS_MASTERS_LIVE_MAPPING_V2_17,C.TENNIS_MASTERS_LIVE_MAPPING_V2_18,C.TENNIS_MASTERS_LIVE_MAPPING_V2_19,C.TENNIS_MASTERS_LIVE_MAPPING_V2_20,C.TENNIS_MASTERS_LIVE_MAPPING_V2_21,C.TENNIS_MASTERS_LIVE_MAPPING_V2_22],R=function(e,r,a,_,t,o){var i,A;if(p.includes(e)?(i=_.toLowerCase()==r.toLowerCase()||_.toLowerCase()==a.toLowerCase(),A=t.toLowerCase()==r.toLowerCase()||t.toLowerCase()==a.toLowerCase()):(i=_.toLowerCase()==r.toLowerCase(),A=t.toLowerCase()==a.toLowerCase()),!0!==i){var n=o.get(_.toLowerCase()),E=o.get(r.toLowerCase()),s=o.get(a.toLowerCase());if([n,E].some((function(e){return null==e})))return!1;i=p.includes(e)?n==E||n==s:n==E}if(!0!==A){var N=o.get(t.toLowerCase());if(E=o.get(r.toLowerCase()),[N,s=o.get(a.toLowerCase())].some((function(e){return null==e})))return!1;A=p.includes(e)&&N==E||N==s}return i&&A},f=function(e,r,a,_){var t;if(a.toString().startsWith(C.TENNIS_GS.toString())||a.toString().startsWith(C.TENNIS_MASTERS.toString())){var o=r.getTime(),i=e.getTime();t=Math.abs(i-o)<=Number(60*_*1e3)}else t=r.toUTCString()==e.toUTCString();return t},G=function(e,r,a,_,t){var o=new Map;return e.forEach((function(e){var i,A,n=r.odds.filter((function(r){return r.sports_book_name.toLowerCase()==e.toLowerCase()})),E=_.get(a.homeTeam.toLowerCase()),s=_.get(a.awayTeam.toLowerCase()),N=0;null!=(i=null==E?n.find((function(e){var r=_.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==a.homeTeam.toLowerCase():r==a.homeTeam.toLowerCase()})):n.find((function(e){var r=_.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==E:r==E})))&&(N=i.price);var I=0;null!=(A=null==s?n.find((function(e){var r=_.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==a.awayTeam.toLowerCase():r==a.awayTeam.toLowerCase()})):n.find((function(e){var r=_.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==s:r==s})))&&(I=A.price);var l=0;if(t){var S=n.find((function(e){return"draw"==e.name.toLowerCase()}));null!=S&&(l=S.price)}o.set(e.toLowerCase(),{homeOdds:N,awayOdds:I,drawOdds:l})})),o},U=((n={})[C.NCAAF]={sport:S,id:C.NCAAF,isDrawAvailable:!1},n[C.NFL]={sport:S,id:C.NFL,isDrawAvailable:!1},n[C.MLB]={sport:d,id:C.MLB,isDrawAvailable:!1},n[C.NBA]={sport:L,id:C.NBA,isDrawAvailable:!1},n[C.NCAAB]={sport:L,id:C.NCAAB,isDrawAvailable:!1},n[C.NHL]={sport:u,id:C.NHL,isDrawAvailable:!1},n[C.UFC]={sport:M,id:C.UFC,isDrawAvailable:!1},n[C.WNBA]={sport:L,id:C.WNBA,isDrawAvailable:!1},n[C.MLS]={sport:l,id:C.MLS,isDrawAvailable:!0},n[C.EPL]={sport:l,id:C.EPL,isDrawAvailable:!0},n[C.LIGUE_ONE]={sport:l,id:C.LIGUE_ONE,isDrawAvailable:!0},n[C.BUNDESLIGA]={sport:l,id:C.BUNDESLIGA,isDrawAvailable:!0},n[C.LA_LIGA]={sport:l,id:C.LA_LIGA,isDrawAvailable:!0},n[C.SERIE_A]={sport:l,id:C.SERIE_A,isDrawAvailable:!0},n[C.UEFA_CL]={sport:l,id:C.UEFA_CL,isDrawAvailable:!0},n[C.UEFA_EL]={sport:l,id:C.UEFA_EL,isDrawAvailable:!0},n[C.FIFA_WC]={sport:l,id:C.FIFA_WC,isDrawAvailable:!0},n[C.J1_LEAGUE]={sport:l,id:C.J1_LEAGUE,isDrawAvailable:!0},n[C.IPL]={sport:m,id:C.IPL,isDrawAvailable:!1},n[C.T20_BLAST]={sport:m,id:C.T20_BLAST,isDrawAvailable:!1},n[C.IIHF_WORLD_CHAMPIONSHIP]={sport:u,id:C.IIHF_WORLD_CHAMPIONSHIP,isDrawAvailable:!0},n[C.COPA_AMERICA]={sport:l,id:C.COPA_AMERICA,isDrawAvailable:!0},n[C.COPA_LIBERTADORES]={sport:l,id:C.COPA_LIBERTADORES,isDrawAvailable:!0},n[C.UEFA_EURO]={sport:l,id:C.UEFA_EURO,isDrawAvailable:!0},n[C.EREDIVISIE]={sport:l,id:C.EREDIVISIE,isDrawAvailable:!0},n[C.PRIMEIRA_LIGA]={sport:l,id:C.PRIMEIRA_LIGA,isDrawAvailable:!0},n[C.FIFA_WC_WOMEN]={sport:l,id:C.FIFA_WC_WOMEN,isDrawAvailable:!0},n[C.ENGLAND_CUP]={sport:l,id:C.ENGLAND_CUP,isDrawAvailable:!0},n[C.FRANCE_CUP]={sport:l,isDrawAvailable:!0},n[C.SPAIN_CUP]={sport:l,id:C.SPAIN_CUP,isDrawAvailable:!0},n[C.ITALY_CUP]={sport:l,isDrawAvailable:!0},n[C.TENNIS_GS]={sport:c,id:C.TENNIS_GS,isDrawAvailable:!1},n[C.TENNIS_MASTERS]={sport:c,id:C.TENNIS_MASTERS,isDrawAvailable:!1},n[C.GERMANY_CUP]={sport:l,id:C.GERMANY_CUP,isDrawAvailable:!0},n[C.BRAZIL_1]={sport:l,id:C.BRAZIL_1,isDrawAvailable:!0},n[C.UEFA_EURO_U21]={sport:l,id:C.UEFA_EURO_U21,isDrawAvailable:!0},n[C.FIFA_WORLD_CUP_U20]={sport:l,id:C.FIFA_WORLD_CUP_U20,isDrawAvailable:!0},n[C.EUROLEAGUE]={sport:L,id:C.EUROLEAGUE,isDrawAvailable:!1},n[C.FIBA_WORLD_CUP]={sport:L,id:C.FIBA_WORLD_CUP,isDrawAvailable:!1},n[C.FORMULA1]={sport:w,id:C.FORMULA1,isDrawAvailable:!1},n[C.MOTOGP]={sport:w,id:C.MOTOGP,isDrawAvailable:!1},n[C.SAUDI_PROFESSIONAL_LEAGUE]={sport:l,id:C.SAUDI_PROFESSIONAL_LEAGUE,isDrawAvailable:!0},n[C.BOXING]={sport:M,id:C.BOXING,isDrawAvailable:!1},n[C.UEFA_NATIONS_LEAGUE]={sport:l,id:C.UEFA_NATIONS_LEAGUE,isDrawAvailable:!0},n[C.CONCACAF_NATIONS_LEAGUE]={sport:l,id:C.CONCACAF_NATIONS_LEAGUE,isDrawAvailable:!0},n[C.CSGO]={sport:O,id:C.CSGO,isDrawAvailable:!1},n[C.DOTA2]={sport:O,id:C.DOTA2,isDrawAvailable:!1},n[C.SUMMER_OLYMPICS_QUALIFICATION]={sport:L,id:C.SUMMER_OLYMPICS_QUALIFICATION,isDrawAvailable:!1},n[C.LOL]={sport:O,id:C.LOL,isDrawAvailable:!1},n[C.CONMEBOL_WC_QUALIFICATIONS]={sport:l,id:C.CONMEBOL_WC_QUALIFICATIONS,isDrawAvailable:!0},n[C.UEFA_CONFERENCE_LEAGUE]={sport:l,id:C.UEFA_CONFERENCE_LEAGUE,isDrawAvailable:!0},n[C.NON_TITLE_BOXING]={sport:M,isDrawAvailable:!1},n[C.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:l,id:C.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,isDrawAvailable:!0},n[C.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:l,id:C.UEFA_EUROPA_LEAGUE_QUALIFICATION,isDrawAvailable:!0},n[C.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:l,isDrawAvailable:!0},n[C.GOLF_H2H]={sport:T,id:C.GOLF_H2H,isDrawAvailable:!1},n[C.GOLF_WINNER]={sport:T,id:C.GOLF_WINNER,isDrawAvailable:!1},n[C.LIGA_MX]={sport:l,id:C.LIGA_MX,isDrawAvailable:!0},n[C.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:l,id:C.SUMMER_OLYMPICS_SOCCER_WOMEN,isDrawAvailable:!0},n[C.SUMMER_OLYMPICS_SOCCER]={sport:l,id:C.SUMMER_OLYMPICS_SOCCER,isDrawAvailable:!0},n[C.SUMMER_OLYMPICS_BASKETBALL]={sport:L,id:C.SUMMER_OLYMPICS_BASKETBALL,isDrawAvailable:!1},n[C.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:L,id:C.SUMMER_OLYMPICS_BASKETBALL_WOMEN,isDrawAvailable:!1},n[C.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:P,id:C.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,isDrawAvailable:!1},n[C.SUMMER_OLYMPICS_VOLEYBALL]={sport:P,isDrawAvailable:!1},n),b=function(e){var r=U[e];return r?r.sport:""},V=function(e,r,a){var _,t=e.score_home_total,o=e.score_away_total,i=e.clock,A=e.period,n=e.status,E=e.home_team,s=e.away_team,N=b(r);return"completed"==n.toLowerCase()?(console.log("Blocking game ".concat(E," - ").concat(s," because it is no longer live.")),null):(N===L&&(_=v(E,s,A,a.get(L))),N===u&&(_=v(E,s,A,a.get(u))),N===d&&(_=v(E,s,A,a.get(d))),N===l&&(_=g(E,s,i,A,a.get(l))),N===c&&(_=D(e,E,s,A,t,o,r)),N===P&&(_=v(E,s,A,a.get(P))),_)},v=function(e,r,a,_){return Number(a)>=_?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},g=function(e,r,a,_,t){var o=Number(a);return!Number.isNaN(o)&&o>=t||Number.isNaN(o)&&"HALF"!=_?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},D=function(e,r,a,_,t,o,i){var A,n,E=Number(_),s="atp"==e.league.toLowerCase();if(i==C.TENNIS_GS&&s){if(2==Number(t)||2==Number(o)){switch(E){case 3:A=Number(e.score_home_period_3),n=Number(e.score_away_period_3);break;case 4:A=Number(e.score_home_period_4),n=Number(e.score_away_period_4);break;case 5:A=Number(e.score_home_period_5),n=Number(e.score_away_period_5)}return 2==Number(t)&&A>=5||2==Number(o)&&n>=5?{allow:!1,message:"Blocking game ".concat(r," - ").concat(a," due to current result: ").concat(t," - ").concat(o," (").concat(A," - ").concat(n,")")}:{allow:!0,message:"",currentHomeGameScore:A,currentAwayGameScore:n}}return{allow:!0,message:"",currentHomeGameScore:A,currentAwayGameScore:n}}if(1==Number(t)||1==Number(o)){switch(E){case 2:A=Number(e.score_home_period_2),n=Number(e.score_away_period_2);break;case 3:A=Number(e.score_home_period_3),n=Number(e.score_away_period_3)}return 1==Number(t)&&A>=5||1==Number(o)&&n>=5?{allow:!1,message:"Blocking game ".concat(r," - ").concat(a," due to current result: ").concat(t," - ").concat(o," (").concat(A," - ").concat(n,")")}:{allow:!0,message:"",currentHomeGameScore:A,currentAwayGameScore:n}}return{allow:!0,message:"",currentHomeGameScore:A,currentAwayGameScore:n}},F=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var _=e.reduce((function(e,r){return e+r}),0);if(_<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(_-1)))return e;a=r}var t=1+a/100,o=t/_,i=e.map((function(e){return e*o}));if(i.some((function(e){return e>=1})))return Array(e.length).fill(0);var A=i.reduce((function(e,r){return e+r}),0);if(A<1)return Array(e.length).fill(0);var n=t/A;return i.map((function(e){return e*n}))},h=function(e,r,a,_){var t=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return t?{minSpread:t.minSpread?Number(t.minSpread):_,targetSpread:t.targetSpread?Number(t.targetSpread):0}:{minSpread:_,targetSpread:0}};return r})()));
|
package/package.json
CHANGED
package/src/constants/sports.ts
CHANGED
|
@@ -81,7 +81,6 @@ export const LeagueMap: Record<number, any> = {
|
|
|
81
81
|
sport: Sport.SOCCER,
|
|
82
82
|
id: League.UEFA_EL,
|
|
83
83
|
isDrawAvailable: true,
|
|
84
|
-
priority: 104,
|
|
85
84
|
},
|
|
86
85
|
[League.FIFA_WC]: {
|
|
87
86
|
sport: Sport.SOCCER,
|
|
@@ -136,7 +135,7 @@ export const LeagueMap: Record<number, any> = {
|
|
|
136
135
|
[League.FIFA_WC_WOMEN]: {
|
|
137
136
|
sport: Sport.SOCCER,
|
|
138
137
|
id: League.FIFA_WC_WOMEN,
|
|
139
|
-
|
|
138
|
+
isDrawAvailable: true,
|
|
140
139
|
},
|
|
141
140
|
[League.ENGLAND_CUP]: {
|
|
142
141
|
sport: Sport.SOCCER,
|
|
@@ -289,4 +288,33 @@ export const LeagueMap: Record<number, any> = {
|
|
|
289
288
|
id: League.LIGA_MX,
|
|
290
289
|
isDrawAvailable: true,
|
|
291
290
|
},
|
|
291
|
+
[League.SUMMER_OLYMPICS_SOCCER_WOMEN]: {
|
|
292
|
+
sport: Sport.SOCCER,
|
|
293
|
+
id: League.SUMMER_OLYMPICS_SOCCER_WOMEN,
|
|
294
|
+
isDrawAvailable: true,
|
|
295
|
+
},
|
|
296
|
+
[League.SUMMER_OLYMPICS_SOCCER]: {
|
|
297
|
+
sport: Sport.SOCCER,
|
|
298
|
+
id: League.SUMMER_OLYMPICS_SOCCER,
|
|
299
|
+
isDrawAvailable: true,
|
|
300
|
+
},
|
|
301
|
+
[League.SUMMER_OLYMPICS_BASKETBALL]: {
|
|
302
|
+
sport: Sport.BASKETBALL,
|
|
303
|
+
id: League.SUMMER_OLYMPICS_BASKETBALL,
|
|
304
|
+
isDrawAvailable: false,
|
|
305
|
+
},
|
|
306
|
+
[League.SUMMER_OLYMPICS_BASKETBALL_WOMEN]: {
|
|
307
|
+
sport: Sport.BASKETBALL,
|
|
308
|
+
id: League.SUMMER_OLYMPICS_BASKETBALL_WOMEN,
|
|
309
|
+
isDrawAvailable: false,
|
|
310
|
+
},
|
|
311
|
+
[League.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]: {
|
|
312
|
+
sport: Sport.VOLLEYBALL,
|
|
313
|
+
id: League.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,
|
|
314
|
+
isDrawAvailable: false,
|
|
315
|
+
},
|
|
316
|
+
[League.SUMMER_OLYMPICS_VOLEYBALL]: {
|
|
317
|
+
sport: Sport.VOLLEYBALL,
|
|
318
|
+
isDrawAvailable: false,
|
|
319
|
+
},
|
|
292
320
|
};
|
package/src/enums/sports.ts
CHANGED
|
@@ -7,6 +7,10 @@ export const Sport = {
|
|
|
7
7
|
FIGHTING: 'Fighting',
|
|
8
8
|
TENNIS: 'Tennis',
|
|
9
9
|
ESPORTS: 'eSports',
|
|
10
|
+
RUGBY: 'Rugby',
|
|
11
|
+
VOLLEYBALL: 'Volleyball',
|
|
12
|
+
HANDBALL: 'Handball',
|
|
13
|
+
WATERPOLO: 'Waterpolo',
|
|
10
14
|
CRICKET: 'Cricket',
|
|
11
15
|
MOTOSPORT: 'Motosport',
|
|
12
16
|
GOLF: 'Golf',
|
|
@@ -40,6 +44,8 @@ export const League = {
|
|
|
40
44
|
UEFA_EURO: 50,
|
|
41
45
|
EREDIVISIE: 57,
|
|
42
46
|
PRIMEIRA_LIGA: 61,
|
|
47
|
+
SUMMER_OLYMPICS_SOCCER_WOMEN: 65,
|
|
48
|
+
SUMMER_OLYMPICS_SOCCER: 66,
|
|
43
49
|
FIFA_WC_WOMEN: 76,
|
|
44
50
|
ENGLAND_CUP: 132,
|
|
45
51
|
FRANCE_CUP: 134,
|
|
@@ -52,21 +58,35 @@ export const League = {
|
|
|
52
58
|
BRAZIL_1: 268,
|
|
53
59
|
UEFA_EURO_U21: 288,
|
|
54
60
|
FIFA_WORLD_CUP_U20: 296,
|
|
61
|
+
SUMMER_OLYMPICS_HANDBALL_WOMEN: 380,
|
|
62
|
+
SUMMER_OLYMPICS_HANDBALL: 381,
|
|
55
63
|
EUROLEAGUE: 399,
|
|
64
|
+
SUMMER_OLYMPICS_BASKETBALL: 406,
|
|
65
|
+
SUMMER_OLYMPICS_BASKETBALL_WOMEN: 407,
|
|
56
66
|
FIBA_WORLD_CUP: 409,
|
|
57
67
|
FORMULA1: 445,
|
|
58
68
|
MOTOGP: 497,
|
|
59
69
|
SAUDI_PROFESSIONAL_LEAGUE: 536,
|
|
70
|
+
SUMMER_OLYMPICS_WATERPOLO: 8881,
|
|
71
|
+
SUMMER_OLYMPICS_VOLEYBALL_WOMEN: 8893,
|
|
72
|
+
SUMMER_OLYMPICS_VOLEYBALL: 8894,
|
|
60
73
|
BOXING: 9196,
|
|
74
|
+
SUMMER_OLYMPICS_RUGBY: 9578,
|
|
75
|
+
SUMMER_OLYMPICS_RUGBY_WOMEN: 9588,
|
|
61
76
|
UEFA_NATIONS_LEAGUE: 9806,
|
|
62
77
|
CONCACAF_NATIONS_LEAGUE: 9821,
|
|
63
78
|
CSGO: 9977,
|
|
64
79
|
DOTA2: 9983,
|
|
80
|
+
SUMMER_OLYMPICS_BASKETBALL_3X3: 10071,
|
|
81
|
+
SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN: 10072,
|
|
65
82
|
SUMMER_OLYMPICS_QUALIFICATION: 10502,
|
|
66
83
|
LOL: 10138,
|
|
67
84
|
CONMEBOL_WC_QUALIFICATIONS: 10199,
|
|
68
85
|
UEFA_CONFERENCE_LEAGUE: 10216,
|
|
69
86
|
NON_TITLE_BOXING: 10595,
|
|
87
|
+
UEFA_CHAMPIONS_LEAGUE_QUALIFICATION: 10611,
|
|
88
|
+
UEFA_EUROPA_LEAGUE_QUALIFICATION: 10613,
|
|
89
|
+
UEFA_CONFERENCE_LEAGUE_QUALIFICATION: 10615,
|
|
70
90
|
GOLF_H2H: 100021,
|
|
71
91
|
GOLF_WINNER: 100121,
|
|
72
92
|
TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1: 15312,
|
|
@@ -98,9 +118,6 @@ export const League = {
|
|
|
98
118
|
TENNIS_MASTERS_LIVE_MAPPING_V2_20: 15646,
|
|
99
119
|
TENNIS_MASTERS_LIVE_MAPPING_V2_21: 15647,
|
|
100
120
|
TENNIS_MASTERS_LIVE_MAPPING_V2_22: 15648,
|
|
101
|
-
UEFA_CHAMPIONS_LEAGUE_QUALIFICATION: 10611,
|
|
102
|
-
UEFA_EUROPA_LEAGUE_QUALIFICATION: 10613,
|
|
103
|
-
UEFA_CONFERENCE_LEAGUE_QUALIFICATION: 10615,
|
|
104
121
|
};
|
|
105
122
|
|
|
106
123
|
export const LEAGUES_NO_FORMAL_HOME_AWAY = [
|
package/src/utils/sports.ts
CHANGED
|
@@ -72,6 +72,15 @@ export const checkGameContraints = (opticOddsScoresApiResponse, marketLeague, co
|
|
|
72
72
|
);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
if (marketSport === Sport.VOLLEYBALL) {
|
|
76
|
+
allowedObject = allowGameSportWithPeriodConstraint(
|
|
77
|
+
homeTeam,
|
|
78
|
+
awayTeam,
|
|
79
|
+
currentPeriod,
|
|
80
|
+
constraintsMap.get(Sport.VOLLEYBALL)
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
75
84
|
return allowedObject;
|
|
76
85
|
};
|
|
77
86
|
|