@levrbet/shared 0.2.79 → 0.2.80

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.
Files changed (36) hide show
  1. package/dist/core/utils/game.utils.d.ts +0 -2
  2. package/dist/core/utils/game.utils.js +1 -69
  3. package/dist/core/utils/game.utils.js.map +1 -1
  4. package/dist/server/oracle/config/game-periods/providers/lsports.periods.js +3 -3
  5. package/dist/server/oracle/config/game-periods/providers/lsports.periods.js.map +1 -1
  6. package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.d.ts +27 -4
  7. package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.js +27 -4
  8. package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.js.map +1 -1
  9. package/dist/server/oracle/config/game-periods/sports.config.js +65 -8
  10. package/dist/server/oracle/config/game-periods/sports.config.js.map +1 -1
  11. package/dist/server/oracle/config/game-periods/types.d.ts +5 -2
  12. package/dist/server/oracle/config/game-periods/types.js +1 -0
  13. package/dist/server/oracle/config/game-periods/types.js.map +1 -1
  14. package/dist/server/oracle/redis-cache-manager/game.progress.d.ts +4 -0
  15. package/dist/server/oracle/redis-cache-manager/game.progress.js +27 -0
  16. package/dist/server/oracle/redis-cache-manager/game.progress.js.map +1 -0
  17. package/dist/server/oracle/types/providers/game-clock/index.d.ts +1 -1
  18. package/dist/server/oracle/types/providers/game-clock/index.js +1 -1
  19. package/dist/server/oracle/types/providers/game-clock/index.js.map +1 -1
  20. package/dist/server/utils/game_progress/caclulate.game.progress.d.ts +6 -0
  21. package/dist/server/utils/game_progress/caclulate.game.progress.js +96 -0
  22. package/dist/server/utils/game_progress/caclulate.game.progress.js.map +1 -0
  23. package/dist/server/utils/game_progress/game.utils.d.ts +2 -0
  24. package/dist/server/utils/game_progress/game.utils.js +65 -0
  25. package/dist/server/utils/game_progress/game.utils.js.map +1 -0
  26. package/dist/server/utils/game_progress/index.d.ts +5 -0
  27. package/dist/server/utils/game_progress/index.js +84 -0
  28. package/dist/server/utils/game_progress/index.js.map +1 -0
  29. package/dist/server/{oracle/types/providers/game-clock → utils/game_progress}/parser.d.ts +1 -7
  30. package/dist/server/{oracle/types/providers/game-clock → utils/game_progress}/parser.js +2 -13
  31. package/dist/server/utils/game_progress/parser.js.map +1 -0
  32. package/dist/server/utils/index.d.ts +1 -0
  33. package/dist/server/utils/index.js +1 -0
  34. package/dist/server/utils/index.js.map +1 -1
  35. package/package.json +1 -1
  36. package/dist/server/oracle/types/providers/game-clock/parser.js.map +0 -1
@@ -1,4 +1,2 @@
1
- import { SportGroup } from "@prisma/client";
2
1
  export declare const calculatePrice: (americanOdds: number, normalizationFactor: number) => number;
3
2
  export declare const calculateAmericanOdds: (price: number, normalizationFactor?: number) => string;
4
- export declare const getGameProgressBPS: (gameClock: string, totalPeriodDurationInSeconds: number, period: number, totalPeriods: number, sportGroup: SportGroup) => number | null;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGameProgressBPS = exports.calculateAmericanOdds = exports.calculatePrice = void 0;
4
- const client_1 = require("@prisma/client");
3
+ exports.calculateAmericanOdds = exports.calculatePrice = void 0;
5
4
  const calculatePrice = (americanOdds, normalizationFactor) => {
6
5
  const decimalOdds = americanOdds > 0 ? americanOdds / 100 + 1 : 100 / Math.abs(americanOdds) + 1;
7
6
  return Number((normalizationFactor / decimalOdds).toFixed(4));
@@ -22,71 +21,4 @@ const calculateAmericanOdds = (price, normalizationFactor = 1) => {
22
21
  }
23
22
  };
24
23
  exports.calculateAmericanOdds = calculateAmericanOdds;
25
- // Game progress calculation utilities
26
- const parseGameClockToSeconds = (gameClock) => {
27
- const [rawMinutes, rawSeconds] = gameClock.split(":");
28
- const minutes = Number(rawMinutes);
29
- const seconds = Number(rawSeconds);
30
- if (isNaN(minutes) || isNaN(seconds))
31
- return null;
32
- return minutes * 60 + seconds;
33
- };
34
- const calculateGameProgressBPSWithPeriodsOnly = (period, totalPeriods) => {
35
- if (period > totalPeriods)
36
- return 1e4;
37
- const progress = period / totalPeriods;
38
- return Math.round(progress * 1e4);
39
- };
40
- //{ totalPeriods: 2, totalPeriodDurationInSeconds: 45 * 60 },
41
- // gameClock: '57:20',
42
- //levr-v1-dev-oracle-core | gamePeriod: 20,
43
- const calculateGameProgressBPS = (elapsedSeconds, totalPeriodDurationInSeconds, totalPeriods, period) => {
44
- if (totalPeriodDurationInSeconds === 0)
45
- return 0;
46
- if (elapsedSeconds > totalPeriodDurationInSeconds)
47
- elapsedSeconds = totalPeriodDurationInSeconds;
48
- const progress = elapsedSeconds / totalPeriodDurationInSeconds;
49
- const periodsPassed = period - 1;
50
- const pastProgress = calculateGameProgressBPSWithPeriodsOnly(periodsPassed, totalPeriods);
51
- const currentPeriodProgress = (progress * 1e4) / totalPeriods;
52
- const value = Math.round(pastProgress + currentPeriodProgress);
53
- //TODO: revise time tracking
54
- if (value > 1e4 || value < 0)
55
- return 5e3;
56
- return value;
57
- };
58
- // Example: { totalPeriods: 2, totalPeriodDurationInSeconds: 45 * 60 }, gameClock: '57:20', period: 2
59
- // gameClock is cumulative (57:20 = 57 mins into game, which is 12:20 into period 2)
60
- // Expected: elapsedInPeriod = 3440 - 2700 = 740 seconds → ~63.7% game progress
61
- const calculateGameProgressBPSWithGameClockCountUp = (gameClock, totalPeriodDurationInSeconds, totalPeriods, period) => {
62
- const cumulativeElapsedSeconds = parseGameClockToSeconds(gameClock);
63
- if (cumulativeElapsedSeconds === null)
64
- return null;
65
- // Subtract time from previous periods since gameClock is cumulative
66
- const previousPeriodsSeconds = (period - 1) * totalPeriodDurationInSeconds;
67
- const elapsedSecondsInCurrentPeriod = cumulativeElapsedSeconds - previousPeriodsSeconds;
68
- return calculateGameProgressBPS(elapsedSecondsInCurrentPeriod, totalPeriodDurationInSeconds, totalPeriods, period);
69
- };
70
- const calculateGameProgressBPSWithGameClockCountDown = (gameClock, totalPeriodDurationInSeconds, totalPeriods, period) => {
71
- const remainingSeconds = parseGameClockToSeconds(gameClock);
72
- if (remainingSeconds === null)
73
- return null;
74
- const elapsedSeconds = totalPeriodDurationInSeconds - remainingSeconds;
75
- return calculateGameProgressBPS(elapsedSeconds, totalPeriodDurationInSeconds, totalPeriods, period);
76
- };
77
- const getGameProgressBPS = (gameClock, totalPeriodDurationInSeconds, period, totalPeriods, sportGroup) => {
78
- switch (sportGroup) {
79
- case client_1.SportGroup.Soccer:
80
- return calculateGameProgressBPSWithGameClockCountUp(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
81
- case client_1.SportGroup.Basketball:
82
- return calculateGameProgressBPSWithGameClockCountDown(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
83
- case client_1.SportGroup.Football:
84
- return calculateGameProgressBPSWithGameClockCountDown(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
85
- case client_1.SportGroup.Baseball:
86
- return calculateGameProgressBPSWithPeriodsOnly(period, totalPeriods);
87
- default:
88
- return null;
89
- }
90
- };
91
- exports.getGameProgressBPS = getGameProgressBPS;
92
24
  //# sourceMappingURL=game.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"game.utils.js","sourceRoot":"","sources":["../../../src/core/utils/game.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game.utils.js","sourceRoot":"","sources":["../../../src/core/utils/game.utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,mBAA2B,EAAU,EAAE;IACxF,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAChG,OAAO,MAAM,CAAC,CAAC,mBAAmB,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC,CAAA;AAHY,QAAA,cAAc,kBAG1B;AAEM,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAE,mBAAmB,GAAG,CAAC,EAAU,EAAE;IACpF,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5B,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,mBAAmB,GAAG,KAAK,CAAA;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,KAAK,CAAA;QAEhE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAA;QAE5G,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;IAC7D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAA;QACrD,OAAO,IAAI,CAAA;IACf,CAAC;AACL,CAAC,CAAA;AAbY,QAAA,qBAAqB,yBAajC"}
@@ -5,9 +5,9 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LSPORTS_NCAA_PERIODS = exports.LSPORTS_AMERICAN_FOOTBALL_PERIODS = exports.LSPORTS_BASEBALL_PERIODS = exports.LSPORTS_BASKETBALL_PERIODS = exports.LSPORTS_SOCCER_PERIODS = void 0;
7
7
  exports.LSPORTS_SOCCER_PERIODS = {
8
- FIRST_HALF: 10, // regular
9
- SECOND_HALF: 20, // regular
10
- THIRD_HALF: 25, // extra time // how is this treated?
8
+ FIRST_HALF: 10, // regular 1, = 44 minutes // maximum
9
+ SECOND_HALF: 20, // regular 2, = 45 minutes
10
+ THIRD_HALF: 25, // extra time // how is this treated? // 15 minutes?
11
11
  OVERTIME_FIRST_HALF: 30, // extra time is it a full cycle period?
12
12
  OVERTIME_SECOND_HALF: 35, // extra time is it a full cycle period?
13
13
  PENALTIES: 50, // full cycle, considered 100% or almost 100% game progress
@@ -1 +1 @@
1
- {"version":3,"file":"lsports.periods.js","sourceRoot":"","sources":["../../../../../../src/server/oracle/config/game-periods/providers/lsports.periods.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,sBAAsB,GAAG;IAClC,UAAU,EAAE,EAAE,EAAE,UAAU;IAC1B,WAAW,EAAE,EAAE,EAAE,UAAU;IAC3B,UAAU,EAAE,EAAE,EAAE,qCAAqC;IACrD,mBAAmB,EAAE,EAAE,EAAE,wCAAwC;IACjE,oBAAoB,EAAE,EAAE,EAAE,wCAAwC;IAClE,SAAS,EAAE,EAAE,EAAE,2DAA2D;IAC1E,IAAI,EAAE,EAAE,EAAE,wBAAwB;IAClC,SAAS,EAAE,GAAG,EAAE,2CAA2C;IAC3D,wBAAwB,EAAE,GAAG,EAAE,2CAA2C;IAC1E,yBAAyB,EAAE,GAAG,EAAE,2CAA2C;CACrE,CAAA;AAEG,QAAA,0BAA0B,GAAG;IACtC,aAAa,EAAE,CAAC,EAAE,UAAU;IAC5B,cAAc,EAAE,CAAC,EAAE,UAAU;IAC7B,aAAa,EAAE,CAAC,EAAE,UAAU;IAC5B,cAAc,EAAE,CAAC,EAAE,UAAU;IAC7B,QAAQ,EAAE,EAAE,EAAE,2DAA2D;IACzE,SAAS,EAAE,GAAG,EAAE,2CAA2C;IAC3D,wBAAwB,EAAE,GAAG,EAAE,2CAA2C;CACpE,CAAA;AAEG,QAAA,wBAAwB,GAAG;IACpC,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,GAAG,EAAE,2CAA2C;IAC3D,0BAA0B,EAAE,GAAG,EAAE,2CAA2C;CACtE,CAAA;AAEG,QAAA,iCAAiC,GAAG;IAC7C,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,GAAG;IACd,wBAAwB,EAAE,GAAG;CACvB,CAAA;AAEV,sDAAsD;AACzC,QAAA,oBAAoB,GAAG;IAChC,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,GAAG;IACd,wBAAwB,EAAE,GAAG;IAC7B,QAAQ,EAAE,EAAE;CACN,CAAA"}
1
+ {"version":3,"file":"lsports.periods.js","sourceRoot":"","sources":["../../../../../../src/server/oracle/config/game-periods/providers/lsports.periods.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGU,QAAA,sBAAsB,GAAG;IAClC,UAAU,EAAE,EAAE,EAAE,wCAAwC;IACxD,WAAW,EAAE,EAAE,EAAE,2BAA2B;IAE5C,UAAU,EAAE,EAAE,EAAE,oDAAoD;IACpE,mBAAmB,EAAE,EAAE,EAAE,wCAAwC;IACjE,oBAAoB,EAAE,EAAE,EAAE,wCAAwC;IAClE,SAAS,EAAE,EAAE,EAAE,2DAA2D;IAC1E,IAAI,EAAE,EAAE,EAAE,wBAAwB;IAClC,SAAS,EAAE,GAAG,EAAE,2CAA2C;IAC3D,wBAAwB,EAAE,GAAG,EAAE,2CAA2C;IAC1E,yBAAyB,EAAE,GAAG,EAAE,2CAA2C;CACrE,CAAA;AAGG,QAAA,0BAA0B,GAAG;IACtC,aAAa,EAAE,CAAC,EAAE,UAAU;IAC5B,cAAc,EAAE,CAAC,EAAE,UAAU;IAC7B,aAAa,EAAE,CAAC,EAAE,UAAU;IAC5B,cAAc,EAAE,CAAC,EAAE,UAAU;IAC7B,QAAQ,EAAE,EAAE,EAAE,2DAA2D;IACzE,SAAS,EAAE,GAAG,EAAE,2CAA2C;IAC3D,wBAAwB,EAAE,GAAG,EAAE,2CAA2C;CACpE,CAAA;AAEG,QAAA,wBAAwB,GAAG;IACpC,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,GAAG,EAAE,2CAA2C;IAC3D,0BAA0B,EAAE,GAAG,EAAE,2CAA2C;CACtE,CAAA;AAEG,QAAA,iCAAiC,GAAG;IAC7C,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,GAAG;IACd,wBAAwB,EAAE,GAAG;CACvB,CAAA;AAEV,sDAAsD;AACzC,QAAA,oBAAoB,GAAG;IAChC,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,GAAG;IACd,wBAAwB,EAAE,GAAG;IAC7B,QAAQ,EAAE,EAAE;CACN,CAAA"}
@@ -2,7 +2,30 @@
2
2
  * OpticOdds provider period constants by sport
3
3
  * TODO: Add period mappings when OpticOdds integration is complete
4
4
  */
5
- export declare const OPTIC_ODDS_SOCCER_PERIODS: {};
6
- export declare const OPTIC_ODDS_BASKETBALL_PERIODS: {};
7
- export declare const OPTIC_ODDS_BASEBALL_PERIODS: {};
8
- export declare const OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS: {};
5
+ export declare const OPTIC_ODDS_SOCCER_PERIODS: {
6
+ readonly FIRST_HALF: 1;
7
+ readonly SECOND_HALF: 2;
8
+ };
9
+ export declare const OPTIC_ODDS_BASKETBALL_PERIODS: {
10
+ readonly FIRST_QUARTER: 1;
11
+ readonly SECOND_QUARTER: 2;
12
+ readonly THIRD_QUARTER: 3;
13
+ readonly FOURTH_QUARTER: 4;
14
+ };
15
+ export declare const OPTIC_ODDS_BASEBALL_PERIODS: {
16
+ readonly FIRST_INNING: 1;
17
+ readonly SECOND_INNING: 2;
18
+ readonly THIRD_INNING: 3;
19
+ readonly FOURTH_INNING: 4;
20
+ readonly FIFTH_INNING: 5;
21
+ readonly SIXTH_INNING: 6;
22
+ readonly SEVENTH_INNING: 7;
23
+ readonly EIGHTH_INNING: 8;
24
+ readonly NINTH_INNING: 9;
25
+ };
26
+ export declare const OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS: {
27
+ readonly FIRST_QUARTER: 1;
28
+ readonly SECOND_QUARTER: 2;
29
+ readonly THIRD_QUARTER: 3;
30
+ readonly FOURTH_QUARTER: 4;
31
+ };
@@ -5,8 +5,31 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS = exports.OPTIC_ODDS_BASEBALL_PERIODS = exports.OPTIC_ODDS_BASKETBALL_PERIODS = exports.OPTIC_ODDS_SOCCER_PERIODS = void 0;
8
- exports.OPTIC_ODDS_SOCCER_PERIODS = {};
9
- exports.OPTIC_ODDS_BASKETBALL_PERIODS = {};
10
- exports.OPTIC_ODDS_BASEBALL_PERIODS = {};
11
- exports.OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS = {};
8
+ exports.OPTIC_ODDS_SOCCER_PERIODS = {
9
+ FIRST_HALF: 1,
10
+ SECOND_HALF: 2,
11
+ };
12
+ exports.OPTIC_ODDS_BASKETBALL_PERIODS = {
13
+ FIRST_QUARTER: 1,
14
+ SECOND_QUARTER: 2,
15
+ THIRD_QUARTER: 3,
16
+ FOURTH_QUARTER: 4,
17
+ };
18
+ exports.OPTIC_ODDS_BASEBALL_PERIODS = {
19
+ FIRST_INNING: 1,
20
+ SECOND_INNING: 2,
21
+ THIRD_INNING: 3,
22
+ FOURTH_INNING: 4,
23
+ FIFTH_INNING: 5,
24
+ SIXTH_INNING: 6,
25
+ SEVENTH_INNING: 7,
26
+ EIGHTH_INNING: 8,
27
+ NINTH_INNING: 9,
28
+ };
29
+ exports.OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS = {
30
+ FIRST_QUARTER: 1,
31
+ SECOND_QUARTER: 2,
32
+ THIRD_QUARTER: 3,
33
+ FOURTH_QUARTER: 4,
34
+ };
12
35
  //# sourceMappingURL=optic-odds.periods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"optic-odds.periods.js","sourceRoot":"","sources":["../../../../../../src/server/oracle/config/game-periods/providers/optic-odds.periods.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEU,QAAA,yBAAyB,GAAG,EAAW,CAAA;AAEvC,QAAA,6BAA6B,GAAG,EAAW,CAAA;AAE3C,QAAA,2BAA2B,GAAG,EAAW,CAAA;AAEzC,QAAA,oCAAoC,GAAG,EAAW,CAAA"}
1
+ {"version":3,"file":"optic-odds.periods.js","sourceRoot":"","sources":["../../../../../../src/server/oracle/config/game-periods/providers/optic-odds.periods.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEU,QAAA,yBAAyB,GAAG;IACrC,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;CACR,CAAA;AAEG,QAAA,6BAA6B,GAAG;IACzC,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;CACX,CAAA;AAEG,QAAA,2BAA2B,GAAG;IACvC,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;CACT,CAAA;AAEG,QAAA,oCAAoC,GAAG;IAChD,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;CACX,CAAA"}
@@ -3,12 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SportsGamePeriodClockConfig = void 0;
4
4
  const client_1 = require("@prisma/client");
5
5
  const providers_1 = require("./providers");
6
+ const core_1 = require("../../../../core");
6
7
  /**
7
8
  * Main configuration for game periods and clock behavior by sport and provider
8
9
  */
9
10
  exports.SportsGamePeriodClockConfig = {
10
11
  [client_1.SportGroup.Basketball]: {
11
- lsports: {
12
+ totalPeriodDurationInSeconds: 720, // 12 minutes per quarter
13
+ totalPeriods: 4,
14
+ [core_1.OddsServices.LSPORTS]: {
12
15
  sportPeriods: {
13
16
  regular: [
14
17
  providers_1.LSPORTS_BASKETBALL_PERIODS.FIRST_QUARTER,
@@ -25,10 +28,24 @@ exports.SportsGamePeriodClockConfig = {
25
28
  },
26
29
  leaguePeriods: null,
27
30
  },
28
- opticOdds: {},
31
+ [core_1.OddsServices.OPTIC_ODDS]: {
32
+ sportPeriods: {
33
+ regular: [
34
+ providers_1.OPTIC_ODDS_BASKETBALL_PERIODS.FIRST_QUARTER,
35
+ providers_1.OPTIC_ODDS_BASKETBALL_PERIODS.SECOND_QUARTER,
36
+ providers_1.OPTIC_ODDS_BASKETBALL_PERIODS.THIRD_QUARTER,
37
+ providers_1.OPTIC_ODDS_BASKETBALL_PERIODS.FOURTH_QUARTER,
38
+ ],
39
+ fullCycle: [],
40
+ extraTime: [],
41
+ },
42
+ leaguePeriods: null,
43
+ },
29
44
  },
30
45
  [client_1.SportGroup.Soccer]: {
31
- lsports: {
46
+ totalPeriodDurationInSeconds: 2700, // 45 minutes per half
47
+ totalPeriods: 2,
48
+ [core_1.OddsServices.LSPORTS]: {
32
49
  sportPeriods: {
33
50
  regular: [providers_1.LSPORTS_SOCCER_PERIODS.FIRST_HALF, providers_1.LSPORTS_SOCCER_PERIODS.SECOND_HALF],
34
51
  fullCycle: [
@@ -45,10 +62,19 @@ exports.SportsGamePeriodClockConfig = {
45
62
  },
46
63
  leaguePeriods: null,
47
64
  },
48
- opticOdds: {},
65
+ [core_1.OddsServices.OPTIC_ODDS]: {
66
+ sportPeriods: {
67
+ regular: [providers_1.OPTIC_ODDS_SOCCER_PERIODS.FIRST_HALF, providers_1.OPTIC_ODDS_SOCCER_PERIODS.SECOND_HALF],
68
+ fullCycle: [],
69
+ extraTime: [],
70
+ },
71
+ leaguePeriods: null,
72
+ },
49
73
  },
50
74
  [client_1.SportGroup.Baseball]: {
51
- lsports: {
75
+ totalPeriodDurationInSeconds: 1200, // Approximate 20 minutes per inning
76
+ totalPeriods: 9,
77
+ [core_1.OddsServices.LSPORTS]: {
52
78
  sportPeriods: {
53
79
  regular: [
54
80
  providers_1.LSPORTS_BASEBALL_PERIODS.FIRST_INNING,
@@ -66,10 +92,29 @@ exports.SportsGamePeriodClockConfig = {
66
92
  },
67
93
  leaguePeriods: null,
68
94
  },
69
- opticOdds: {},
95
+ [core_1.OddsServices.OPTIC_ODDS]: {
96
+ sportPeriods: {
97
+ regular: [
98
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.FIRST_INNING,
99
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.SECOND_INNING,
100
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.THIRD_INNING,
101
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.FOURTH_INNING,
102
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.FIFTH_INNING,
103
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.SIXTH_INNING,
104
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.SEVENTH_INNING,
105
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.EIGHTH_INNING,
106
+ providers_1.OPTIC_ODDS_BASEBALL_PERIODS.NINTH_INNING,
107
+ ],
108
+ fullCycle: [],
109
+ extraTime: [],
110
+ },
111
+ leaguePeriods: null,
112
+ },
70
113
  },
71
114
  [client_1.SportGroup.Football]: {
72
- lsports: {
115
+ totalPeriodDurationInSeconds: 900, // 15 minutes per quarter
116
+ totalPeriods: 4,
117
+ [core_1.OddsServices.LSPORTS]: {
73
118
  sportPeriods: {
74
119
  regular: [
75
120
  providers_1.LSPORTS_AMERICAN_FOOTBALL_PERIODS.FIRST_QUARTER,
@@ -85,7 +130,19 @@ exports.SportsGamePeriodClockConfig = {
85
130
  },
86
131
  leaguePeriods: null,
87
132
  },
88
- opticOdds: {},
133
+ [core_1.OddsServices.OPTIC_ODDS]: {
134
+ sportPeriods: {
135
+ regular: [
136
+ providers_1.OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS.FIRST_QUARTER,
137
+ providers_1.OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS.SECOND_QUARTER,
138
+ providers_1.OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS.THIRD_QUARTER,
139
+ providers_1.OPTIC_ODDS_AMERICAN_FOOTBALL_PERIODS.FOURTH_QUARTER,
140
+ ],
141
+ fullCycle: [],
142
+ extraTime: [],
143
+ },
144
+ leaguePeriods: null,
145
+ },
89
146
  },
90
147
  };
91
148
  //# sourceMappingURL=sports.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sports.config.js","sourceRoot":"","sources":["../../../../../src/server/oracle/config/game-periods/sports.config.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAE3C,2CAKoB;AAEpB;;GAEG;AACU,QAAA,2BAA2B,GAAoC;IACxE,CAAC,mBAAU,CAAC,UAAU,CAAC,EAAE;QACrB,OAAO,EAAE;YACL,YAAY,EAAE;gBACV,OAAO,EAAE;oBACL,sCAA0B,CAAC,aAAa;oBACxC,sCAA0B,CAAC,cAAc;oBACzC,sCAA0B,CAAC,aAAa;oBACxC,sCAA0B,CAAC,cAAc;iBAC5C;gBACD,SAAS,EAAE;oBACP,sCAA0B,CAAC,QAAQ;oBACnC,sCAA0B,CAAC,SAAS;oBACpC,sCAA0B,CAAC,wBAAwB;iBACtD;gBACD,SAAS,EAAE,CAAC,sCAA0B,CAAC,QAAQ,CAAC;aACnD;YACD,aAAa,EAAE,IAAI;SACtB;QACD,SAAS,EAAE,EAAE;KAChB;IACD,CAAC,mBAAU,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,EAAE;YACL,YAAY,EAAE;gBACV,OAAO,EAAE,CAAC,kCAAsB,CAAC,UAAU,EAAE,kCAAsB,CAAC,WAAW,CAAC;gBAChF,SAAS,EAAE;oBACP,kCAAsB,CAAC,SAAS;oBAChC,kCAAsB,CAAC,SAAS;oBAChC,kCAAsB,CAAC,wBAAwB;oBAC/C,kCAAsB,CAAC,yBAAyB;iBACnD;gBACD,SAAS,EAAE;oBACP,kCAAsB,CAAC,UAAU;oBACjC,kCAAsB,CAAC,mBAAmB;oBAC1C,kCAAsB,CAAC,oBAAoB;iBAC9C;aACJ;YACD,aAAa,EAAE,IAAI;SACtB;QACD,SAAS,EAAE,EAAE;KAChB;IACD,CAAC,mBAAU,CAAC,QAAQ,CAAC,EAAE;QACnB,OAAO,EAAE;YACL,YAAY,EAAE;gBACV,OAAO,EAAE;oBACL,oCAAwB,CAAC,YAAY;oBACrC,oCAAwB,CAAC,aAAa;oBACtC,oCAAwB,CAAC,YAAY;oBACrC,oCAAwB,CAAC,aAAa;oBACtC,oCAAwB,CAAC,YAAY;oBACrC,oCAAwB,CAAC,YAAY;oBACrC,oCAAwB,CAAC,cAAc;oBACvC,oCAAwB,CAAC,aAAa;oBACtC,oCAAwB,CAAC,YAAY;iBACxC;gBACD,SAAS,EAAE,CAAC,oCAAwB,CAAC,SAAS,EAAE,oCAAwB,CAAC,0BAA0B,CAAC;gBACpG,SAAS,EAAE,CAAC,oCAAwB,CAAC,aAAa,CAAC;aACtD;YACD,aAAa,EAAE,IAAI;SACtB;QACD,SAAS,EAAE,EAAE;KAChB;IACD,CAAC,mBAAU,CAAC,QAAQ,CAAC,EAAE;QACnB,OAAO,EAAE;YACL,YAAY,EAAE;gBACV,OAAO,EAAE;oBACL,6CAAiC,CAAC,aAAa;oBAC/C,6CAAiC,CAAC,cAAc;oBAChD,6CAAiC,CAAC,aAAa;oBAC/C,6CAAiC,CAAC,cAAc;iBACnD;gBACD,SAAS,EAAE;oBACP,6CAAiC,CAAC,SAAS;oBAC3C,6CAAiC,CAAC,wBAAwB;iBAC7D;gBACD,SAAS,EAAE,CAAC,6CAAiC,CAAC,QAAQ,CAAC;aAC1D;YACD,aAAa,EAAE,IAAI;SACtB;QACD,SAAS,EAAE,EAAE;KAChB;CACJ,CAAA"}
1
+ {"version":3,"file":"sports.config.js","sourceRoot":"","sources":["../../../../../src/server/oracle/config/game-periods/sports.config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { SportGroup } from "@prisma/client";
2
+ import { OddsServices } from "../../../../core";
2
3
  /**
3
4
  * Period configuration for a specific sport or league
4
5
  */
@@ -25,8 +26,10 @@ export interface ProviderPeriodConfig {
25
26
  * Complete period configuration for all providers
26
27
  */
27
28
  export interface SportPeriodClockConfig {
28
- lsports: ProviderPeriodConfig;
29
- opticOdds: Partial<ProviderPeriodConfig>;
29
+ totalPeriods: number;
30
+ totalPeriodDurationInSeconds: number;
31
+ [OddsServices.LSPORTS]: ProviderPeriodConfig;
32
+ [OddsServices.OPTIC_ODDS]: ProviderPeriodConfig;
30
33
  }
31
34
  /**
32
35
  * Main configuration type mapping sport groups to their period configs
@@ -1,3 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("../../../../core");
3
4
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/server/oracle/config/game-periods/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/server/oracle/config/game-periods/types.ts"],"names":[],"mappings":";;AACA,2CAA+C"}
@@ -0,0 +1,4 @@
1
+ import Redis from "ioredis";
2
+ export declare const saveGameProgressToCache: (gameObjectId: string, progressBPS: number, redisClient: Redis) => Promise<void>;
3
+ export declare const getAllGameProgressFromCache: (gameObjectId: string, redisClient: Redis) => Promise<number[]>;
4
+ export declare const getLatestGameProgressFromCache: (gameObjectId: string, redisClient: Redis) => Promise<number | null>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLatestGameProgressFromCache = exports.getAllGameProgressFromCache = exports.saveGameProgressToCache = void 0;
4
+ const cacheKey = `game-progress:test:`;
5
+ const getCacheKey = (gameObjectId) => {
6
+ return `${cacheKey}${gameObjectId}`;
7
+ };
8
+ const saveGameProgressToCache = async (gameObjectId, progressBPS, redisClient) => {
9
+ const cacheKey = getCacheKey(gameObjectId);
10
+ await redisClient.lpush(cacheKey, progressBPS.toString());
11
+ };
12
+ exports.saveGameProgressToCache = saveGameProgressToCache;
13
+ const getAllGameProgressFromCache = async (gameObjectId, redisClient) => {
14
+ const cacheKey = getCacheKey(gameObjectId);
15
+ const results = await redisClient.lrange(cacheKey, 0, -1);
16
+ return results.map((val) => parseInt(val, 10));
17
+ };
18
+ exports.getAllGameProgressFromCache = getAllGameProgressFromCache;
19
+ const getLatestGameProgressFromCache = async (gameObjectId, redisClient) => {
20
+ const cacheKey = getCacheKey(gameObjectId);
21
+ const result = await redisClient.lindex(cacheKey, 0);
22
+ if (result === null)
23
+ return null;
24
+ return parseInt(result, 10);
25
+ };
26
+ exports.getLatestGameProgressFromCache = getLatestGameProgressFromCache;
27
+ //# sourceMappingURL=game.progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game.progress.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/game.progress.ts"],"names":[],"mappings":";;;AAIA,MAAM,QAAQ,GAAG,qBAAqB,CAAA;AAEtC,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAU,EAAE;IACjD,OAAO,GAAG,QAAQ,GAAG,YAAY,EAAE,CAAA;AACvC,CAAC,CAAA;AAEM,MAAM,uBAAuB,GAAG,KAAK,EAAE,YAAoB,EAAE,WAAmB,EAAE,WAAkB,EAAE,EAAE;IAC3G,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAC1C,MAAM,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC7D,CAAC,CAAA;AAHY,QAAA,uBAAuB,2BAGnC;AAEM,MAAM,2BAA2B,GAAG,KAAK,EAAE,YAAoB,EAAE,WAAkB,EAAqB,EAAE;IAC7G,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC;AAEM,MAAM,8BAA8B,GAAG,KAAK,EAAE,YAAoB,EAAE,WAAkB,EAA0B,EAAE;IACrH,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACpD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAChC,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC,CAAA;AALY,QAAA,8BAA8B,kCAK1C"}
@@ -1,2 +1,2 @@
1
1
  export * from "./types";
2
- export * from "./parser";
2
+ export * from "../../../../utils/game_progress/parser";
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./types"), exports);
18
- __exportStar(require("./parser"), exports);
18
+ __exportStar(require("../../../../utils/game_progress/parser"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/server/oracle/types/providers/game-clock/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/server/oracle/types/providers/game-clock/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,yEAAsD"}
@@ -0,0 +1,6 @@
1
+ import { SportGroup } from "@prisma/client";
2
+ import { OddsServices } from "../../../core";
3
+ export declare const calculateSoccerProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup, provider: OddsServices) => number | null;
4
+ export declare const calculateBasketballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup, provider: OddsServices) => number | null;
5
+ export declare const calculateFootballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup, provider: OddsServices) => number | null;
6
+ export declare const calculateBaseballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup, provider: OddsServices) => number | null;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateBaseballProgress = exports.calculateFootballProgress = exports.calculateBasketballProgress = exports.calculateSoccerProgress = void 0;
4
+ const client_1 = require("@prisma/client");
5
+ const game_utils_1 = require("../game_progress/game.utils");
6
+ const parser_1 = require("./parser");
7
+ const oracle_1 = require("../../oracle");
8
+ const core_1 = require("../../../core");
9
+ const PERIOD_MAPPERS = {
10
+ [core_1.OddsServices.LSPORTS]: {
11
+ [client_1.SportGroup.Soccer]: (currentPeriod) => {
12
+ if (currentPeriod === 10)
13
+ return 1;
14
+ if (currentPeriod === 20)
15
+ return 2;
16
+ return null;
17
+ },
18
+ [client_1.SportGroup.Basketball]: (currentPeriod, totalPeriods) => {
19
+ if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
20
+ return currentPeriod;
21
+ return null;
22
+ },
23
+ [client_1.SportGroup.Football]: (currentPeriod, totalPeriods) => {
24
+ if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
25
+ return currentPeriod;
26
+ return null;
27
+ },
28
+ [client_1.SportGroup.Baseball]: (currentPeriod, totalPeriods) => {
29
+ if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
30
+ return currentPeriod;
31
+ return null;
32
+ },
33
+ },
34
+ [core_1.OddsServices.OPTIC_ODDS]: {
35
+ [client_1.SportGroup.Soccer]: (currentPeriod, totalPeriods) => {
36
+ if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
37
+ return currentPeriod;
38
+ return null;
39
+ },
40
+ [client_1.SportGroup.Basketball]: (currentPeriod, totalPeriods) => {
41
+ if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
42
+ return currentPeriod;
43
+ return null;
44
+ },
45
+ [client_1.SportGroup.Football]: (currentPeriod, totalPeriods) => {
46
+ if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
47
+ return currentPeriod;
48
+ return null;
49
+ },
50
+ [client_1.SportGroup.Baseball]: (currentPeriod, totalPeriods) => {
51
+ if (currentPeriod >= 1 && currentPeriod <= totalPeriods)
52
+ return currentPeriod;
53
+ return null;
54
+ },
55
+ },
56
+ };
57
+ const calculateGameProgress = (currentPeriod, gameClock, sportGroup, provider) => {
58
+ const config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
59
+ if (!config?.[provider].sportPeriods.regular.includes(currentPeriod))
60
+ return null;
61
+ const periodMapper = PERIOD_MAPPERS[provider]?.[sportGroup];
62
+ if (!periodMapper)
63
+ return null;
64
+ const period = periodMapper(currentPeriod, config.totalPeriods);
65
+ if (period === null)
66
+ return null;
67
+ const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
68
+ if (gameClockInSeconds === null)
69
+ return null;
70
+ return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
71
+ };
72
+ const calculateSoccerProgress = (currentPeriod, gameClock, sportGroup, provider) => {
73
+ if (sportGroup !== client_1.SportGroup.Soccer)
74
+ throw new Error("Sport group is not soccer");
75
+ return calculateGameProgress(currentPeriod, gameClock, sportGroup, provider);
76
+ };
77
+ exports.calculateSoccerProgress = calculateSoccerProgress;
78
+ const calculateBasketballProgress = (currentPeriod, gameClock, sportGroup, provider) => {
79
+ if (sportGroup !== client_1.SportGroup.Basketball)
80
+ throw new Error("Sport group is not basketball");
81
+ return calculateGameProgress(currentPeriod, gameClock, sportGroup, provider);
82
+ };
83
+ exports.calculateBasketballProgress = calculateBasketballProgress;
84
+ const calculateFootballProgress = (currentPeriod, gameClock, sportGroup, provider) => {
85
+ if (sportGroup !== client_1.SportGroup.Football)
86
+ throw new Error("Sport group is not football");
87
+ return calculateGameProgress(currentPeriod, gameClock, sportGroup, provider);
88
+ };
89
+ exports.calculateFootballProgress = calculateFootballProgress;
90
+ const calculateBaseballProgress = (currentPeriod, gameClock, sportGroup, provider) => {
91
+ if (sportGroup !== client_1.SportGroup.Baseball)
92
+ throw new Error("Sport group is not baseball");
93
+ return calculateGameProgress(currentPeriod, gameClock, sportGroup, provider);
94
+ };
95
+ exports.calculateBaseballProgress = calculateBaseballProgress;
96
+ //# sourceMappingURL=caclulate.game.progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caclulate.game.progress.js","sourceRoot":"","sources":["../../../../src/server/utils/game_progress/caclulate.game.progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { SportGroup } from "@prisma/client";
2
+ export declare const getGameProgressBPS: (gameClock: number, totalPeriodDurationInSeconds: number, period: number, totalPeriods: number, sportGroup: SportGroup) => number | null;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGameProgressBPS = void 0;
4
+ const client_1 = require("@prisma/client");
5
+ const calculateGameProgressBPSWithPeriodsOnly = (period, totalPeriods) => {
6
+ if (period > totalPeriods)
7
+ return 1e4;
8
+ const progress = period / totalPeriods;
9
+ return Math.round(progress * 1e4);
10
+ };
11
+ //{ totalPeriods: 2, totalPeriodDurationInSeconds: 45 * 60 },
12
+ // gameClock: '57:20',
13
+ //levr-v1-dev-oracle-core | gamePeriod: 20,
14
+ const calculateGameProgressBPS = (elapsedSeconds, totalPeriodDurationInSeconds, totalPeriods, period) => {
15
+ if (totalPeriodDurationInSeconds === 0)
16
+ return 0;
17
+ if (elapsedSeconds > totalPeriodDurationInSeconds)
18
+ elapsedSeconds = totalPeriodDurationInSeconds;
19
+ const progress = elapsedSeconds / totalPeriodDurationInSeconds;
20
+ const periodsPassed = period - 1;
21
+ const pastProgress = calculateGameProgressBPSWithPeriodsOnly(periodsPassed, totalPeriods);
22
+ const currentPeriodProgress = (progress * 1e4) / totalPeriods;
23
+ const value = Math.round(pastProgress + currentPeriodProgress);
24
+ //TODO: revise time tracking
25
+ if (value > 1e4)
26
+ return 1e4;
27
+ if (value < 0)
28
+ return 0;
29
+ return value;
30
+ };
31
+ // Example: { totalPeriods: 2, totalPeriodDurationInSeconds: 45 * 60 }, gameClock: '57:20', period: 2
32
+ // gameClock is cumulative (57:20 = 57 mins into game, which is 12:20 into period 2)
33
+ // Expected: elapsedInPeriod = 3440 - 2700 = 740 seconds → ~63.7% game progress
34
+ const calculateGameProgressBPSWithGameClockCountUp = (gameClock, totalPeriodDurationInSeconds, totalPeriods, period) => {
35
+ const cumulativeElapsedSeconds = gameClock;
36
+ if (cumulativeElapsedSeconds === null)
37
+ return null;
38
+ // Subtract time from previous periods since gameClock is cumulative
39
+ const previousPeriodsSeconds = (period - 1) * totalPeriodDurationInSeconds;
40
+ const elapsedSecondsInCurrentPeriod = cumulativeElapsedSeconds - previousPeriodsSeconds;
41
+ return calculateGameProgressBPS(elapsedSecondsInCurrentPeriod, totalPeriodDurationInSeconds, totalPeriods, period);
42
+ };
43
+ const calculateGameProgressBPSWithGameClockCountDown = (gameClock, totalPeriodDurationInSeconds, totalPeriods, period) => {
44
+ const remainingSeconds = gameClock;
45
+ if (remainingSeconds === null)
46
+ return null;
47
+ const elapsedSeconds = totalPeriodDurationInSeconds - remainingSeconds;
48
+ return calculateGameProgressBPS(elapsedSeconds, totalPeriodDurationInSeconds, totalPeriods, period);
49
+ };
50
+ const getGameProgressBPS = (gameClock, totalPeriodDurationInSeconds, period, totalPeriods, sportGroup) => {
51
+ switch (sportGroup) {
52
+ case client_1.SportGroup.Soccer:
53
+ return calculateGameProgressBPSWithGameClockCountUp(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
54
+ case client_1.SportGroup.Basketball:
55
+ return calculateGameProgressBPSWithGameClockCountDown(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
56
+ case client_1.SportGroup.Football:
57
+ return calculateGameProgressBPSWithGameClockCountDown(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
58
+ case client_1.SportGroup.Baseball:
59
+ return calculateGameProgressBPSWithPeriodsOnly(period, totalPeriods);
60
+ default:
61
+ return null;
62
+ }
63
+ };
64
+ exports.getGameProgressBPS = getGameProgressBPS;
65
+ //# sourceMappingURL=game.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game.utils.js","sourceRoot":"","sources":["../../../../src/server/utils/game_progress/game.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { SportGroup } from "@prisma/client";
2
+ export declare const calculateSoccerProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup) => number | null;
3
+ export declare const calculateBasketballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup) => number | null;
4
+ export declare const calculateFootballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup) => number | null;
5
+ export declare const calculateBaseballProgress: (currentPeriod: number, gameClock: string, sportGroup: SportGroup) => number | null;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateBaseballProgress = exports.calculateFootballProgress = exports.calculateBasketballProgress = exports.calculateSoccerProgress = void 0;
4
+ const client_1 = require("@prisma/client");
5
+ const game_utils_1 = require("../game_progress/game.utils");
6
+ const parser_1 = require("./parser");
7
+ const oracle_1 = require("../../oracle");
8
+ // identify the period, match it to the equivalent levr period
9
+ // then identify the clock, maket sure the clock is convert to seconds
10
+ // then calculate the progress based on that
11
+ // 1st half 0-45 minutes
12
+ // 2nd half 46-90 minutes
13
+ // assumptions, use only regular time to calculate progress
14
+ // extra time 91-105 minutes
15
+ // extra time 106-120 minutes
16
+ // penalties 121 minutes +
17
+ // we want seconds for game clock here
18
+ // calculate for soccer
19
+ const calculateSoccerProgress = (currentPeriod, gameClock, sportGroup) => {
20
+ // Implementation here
21
+ if (sportGroup !== client_1.SportGroup.Soccer)
22
+ throw new Error("Sport group is not soccer");
23
+ let config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
24
+ if (!config)
25
+ return null;
26
+ const period = currentPeriod === 10 ? 1 : currentPeriod === 20 ? 2 : currentPeriod > 20 ? config.totalPeriods + 1 : 0;
27
+ if (period === 0)
28
+ return null;
29
+ const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
30
+ if (gameClockInSeconds === null)
31
+ return null;
32
+ return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
33
+ };
34
+ exports.calculateSoccerProgress = calculateSoccerProgress;
35
+ // parse game clock to seconds
36
+ const calculateBasketballProgress = (currentPeriod, gameClock, sportGroup) => {
37
+ // Implementation here
38
+ if (sportGroup !== client_1.SportGroup.Basketball)
39
+ throw new Error("Sport group is not basketball");
40
+ let config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
41
+ if (!config)
42
+ return null;
43
+ const period = currentPeriod >= 1 && currentPeriod <= 4 ? currentPeriod : currentPeriod === 40 ? config.totalPeriods + 1 : 0;
44
+ if (period === 0)
45
+ return null;
46
+ const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
47
+ if (gameClockInSeconds === null)
48
+ return null;
49
+ return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
50
+ };
51
+ exports.calculateBasketballProgress = calculateBasketballProgress;
52
+ const calculateFootballProgress = (currentPeriod, gameClock, sportGroup) => {
53
+ // Implementation here
54
+ if (sportGroup !== client_1.SportGroup.Football)
55
+ throw new Error("Sport group is not football");
56
+ let config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
57
+ if (!config)
58
+ return null;
59
+ const period = currentPeriod >= 1 && currentPeriod <= 4 ? currentPeriod : currentPeriod === 40 ? config.totalPeriods + 1 : 0;
60
+ if (period === 0)
61
+ return null;
62
+ const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
63
+ if (gameClockInSeconds === null)
64
+ return null;
65
+ return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
66
+ };
67
+ exports.calculateFootballProgress = calculateFootballProgress;
68
+ const calculateBaseballProgress = (currentPeriod, gameClock, sportGroup) => {
69
+ // Implementation here
70
+ if (sportGroup !== client_1.SportGroup.Baseball)
71
+ throw new Error("Sport group is not baseball");
72
+ const config = oracle_1.SportsGamePeriodClockConfig[sportGroup];
73
+ if (!config)
74
+ return null;
75
+ const period = currentPeriod >= 1 && currentPeriod <= 9 ? currentPeriod : currentPeriod === 40 ? config.totalPeriods + 1 : 0;
76
+ if (period === 0)
77
+ return null;
78
+ const gameClockInSeconds = (0, parser_1.parseGameClockToSeconds)(gameClock);
79
+ if (gameClockInSeconds === null)
80
+ return null;
81
+ return (0, game_utils_1.getGameProgressBPS)(gameClockInSeconds, config.totalPeriodDurationInSeconds, config.totalPeriods, period, sportGroup);
82
+ };
83
+ exports.calculateBaseballProgress = calculateBaseballProgress;
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/game_progress/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { GameClockPattern } from "./types";
1
+ import { GameClockPattern } from "../../oracle/types/providers/game-clock/types";
2
2
  /**
3
3
  * Detect the pattern of a game clock string
4
4
  * @param gameClock - The game clock string to analyze
@@ -12,9 +12,3 @@ export declare const detectGameClockPattern: (gameClock: string) => GameClockPat
12
12
  * @returns Number of seconds, or null if invalid format
13
13
  */
14
14
  export declare const parseGameClockToSeconds: (gameClock: string) => number | null;
15
- /**
16
- * Format seconds to a clock string (MM:SS)
17
- * @param totalSeconds - Total seconds to format
18
- * @returns Formatted clock string
19
- */
20
- export declare const formatSecondsToGameClock: (totalSeconds: number) => string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatSecondsToGameClock = exports.parseGameClockToSeconds = exports.detectGameClockPattern = void 0;
4
- const types_1 = require("./types");
3
+ exports.parseGameClockToSeconds = exports.detectGameClockPattern = void 0;
4
+ const types_1 = require("../../oracle/types/providers/game-clock/types");
5
5
  /**
6
6
  * Regex patterns for different game clock formats
7
7
  */
@@ -90,15 +90,4 @@ const parseGameClockToSeconds = (gameClock) => {
90
90
  return null;
91
91
  };
92
92
  exports.parseGameClockToSeconds = parseGameClockToSeconds;
93
- /**
94
- * Format seconds to a clock string (MM:SS)
95
- * @param totalSeconds - Total seconds to format
96
- * @returns Formatted clock string
97
- */
98
- const formatSecondsToGameClock = (totalSeconds) => {
99
- const minutes = Math.floor(totalSeconds / 60);
100
- const seconds = totalSeconds % 60;
101
- return `${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}`;
102
- };
103
- exports.formatSecondsToGameClock = formatSecondsToGameClock;
104
93
  //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/server/utils/game_progress/parser.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from "./express.utils";
2
2
  export * from "./tracing";
3
+ export * from "./game_progress";
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./express.utils"), exports);
18
18
  __exportStar(require("./tracing"), exports);
19
+ __exportStar(require("./game_progress"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,4CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,4CAAyB;AACzB,kDAA+B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levrbet/shared",
3
- "version": "0.2.79",
3
+ "version": "0.2.80",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../src/server/oracle/types/providers/game-clock/parser.ts"],"names":[],"mappings":"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"}