volleyballsimtypes 0.0.162 → 0.0.165
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/dist/cjs/src/data/common/events.d.ts +82 -0
- package/dist/cjs/src/data/common/events.js +97 -0
- package/dist/cjs/src/data/common/index.d.ts +2 -0
- package/dist/cjs/src/data/common/index.js +18 -0
- package/dist/cjs/src/data/common/status.d.ts +8 -0
- package/dist/cjs/src/data/common/status.js +11 -0
- package/dist/cjs/src/data/index.d.ts +4 -0
- package/dist/cjs/src/data/index.js +22 -0
- package/dist/cjs/src/data/init-models.d.ts +2 -0
- package/dist/cjs/src/data/init-models.js +204 -0
- package/dist/cjs/src/data/models/coach.d.ts +40 -0
- package/dist/cjs/src/data/models/coach.js +55 -0
- package/dist/cjs/src/data/models/competition-champion.d.ts +23 -0
- package/dist/cjs/src/data/models/competition-champion.js +38 -0
- package/dist/cjs/src/data/models/competition-match.d.ts +29 -0
- package/dist/cjs/src/data/models/competition-match.js +46 -0
- package/dist/cjs/src/data/models/competition-teams.d.ts +23 -0
- package/dist/cjs/src/data/models/competition-teams.js +42 -0
- package/dist/cjs/src/data/models/competition.d.ts +70 -0
- package/dist/cjs/src/data/models/competition.js +44 -0
- package/dist/cjs/src/data/models/country.d.ts +61 -0
- package/dist/cjs/src/data/models/country.js +34 -0
- package/dist/cjs/src/data/models/draft-pick.d.ts +31 -0
- package/dist/cjs/src/data/models/draft-pick.js +50 -0
- package/dist/cjs/src/data/models/draft.d.ts +29 -0
- package/dist/cjs/src/data/models/draft.js +34 -0
- package/dist/cjs/src/data/models/index.d.ts +25 -0
- package/dist/cjs/src/data/models/index.js +41 -0
- package/dist/cjs/src/data/models/iteration.d.ts +26 -0
- package/dist/cjs/src/data/models/iteration.js +30 -0
- package/dist/cjs/src/data/models/league-season.d.ts +23 -0
- package/dist/cjs/src/data/models/league-season.js +38 -0
- package/dist/cjs/src/data/models/league.d.ts +44 -0
- package/dist/cjs/src/data/models/league.js +38 -0
- package/dist/cjs/src/data/models/match-rating.d.ts +27 -0
- package/dist/cjs/src/data/models/match-rating.js +52 -0
- package/dist/cjs/src/data/models/match-result.d.ts +27 -0
- package/dist/cjs/src/data/models/match-result.js +38 -0
- package/dist/cjs/src/data/models/match-set-stats.d.ts +58 -0
- package/dist/cjs/src/data/models/match-set-stats.js +127 -0
- package/dist/cjs/src/data/models/match-set.d.ts +85 -0
- package/dist/cjs/src/data/models/match-set.js +51 -0
- package/dist/cjs/src/data/models/match.d.ts +72 -0
- package/dist/cjs/src/data/models/match.js +52 -0
- package/dist/cjs/src/data/models/performance-stats.d.ts +40 -0
- package/dist/cjs/src/data/models/performance-stats.js +85 -0
- package/dist/cjs/src/data/models/player-team.d.ts +28 -0
- package/dist/cjs/src/data/models/player-team.js +52 -0
- package/dist/cjs/src/data/models/player-trait.d.ts +23 -0
- package/dist/cjs/src/data/models/player-trait.js +42 -0
- package/dist/cjs/src/data/models/player.d.ts +128 -0
- package/dist/cjs/src/data/models/player.js +51 -0
- package/dist/cjs/src/data/models/rally.d.ts +29 -0
- package/dist/cjs/src/data/models/rally.js +50 -0
- package/dist/cjs/src/data/models/set-position.d.ts +29 -0
- package/dist/cjs/src/data/models/set-position.js +50 -0
- package/dist/cjs/src/data/models/team.d.ts +162 -0
- package/dist/cjs/src/data/models/team.js +63 -0
- package/dist/cjs/src/data/models/trait.d.ts +37 -0
- package/dist/cjs/src/data/models/trait.js +30 -0
- package/dist/cjs/src/data/models/user.d.ts +22 -0
- package/dist/cjs/src/data/models/user.js +57 -0
- package/dist/cjs/src/data/transformers/coach.d.ts +5 -0
- package/dist/cjs/src/data/transformers/coach.js +29 -0
- package/dist/cjs/src/data/transformers/country.d.ts +5 -0
- package/dist/cjs/src/data/transformers/country.js +20 -0
- package/dist/cjs/src/data/transformers/court-position.d.ts +5 -0
- package/dist/cjs/src/data/transformers/court-position.js +31 -0
- package/dist/cjs/src/data/transformers/draft-pick.d.ts +5 -0
- package/dist/cjs/src/data/transformers/draft-pick.js +22 -0
- package/dist/cjs/src/data/transformers/draft.d.ts +5 -0
- package/dist/cjs/src/data/transformers/draft.js +23 -0
- package/dist/cjs/src/data/transformers/formation.d.ts +5 -0
- package/dist/cjs/src/data/transformers/formation.js +12 -0
- package/dist/cjs/src/data/transformers/index.d.ts +25 -0
- package/dist/cjs/src/data/transformers/index.js +41 -0
- package/dist/cjs/src/data/transformers/iteration.d.ts +5 -0
- package/dist/cjs/src/data/transformers/iteration.js +18 -0
- package/dist/cjs/src/data/transformers/league.d.ts +5 -0
- package/dist/cjs/src/data/transformers/league.js +27 -0
- package/dist/cjs/src/data/transformers/match-rating.d.ts +4 -0
- package/dist/cjs/src/data/transformers/match-rating.js +16 -0
- package/dist/cjs/src/data/transformers/match-set-stats.d.ts +5 -0
- package/dist/cjs/src/data/transformers/match-set-stats.js +61 -0
- package/dist/cjs/src/data/transformers/match-set.d.ts +5 -0
- package/dist/cjs/src/data/transformers/match-set.js +39 -0
- package/dist/cjs/src/data/transformers/match.d.ts +5 -0
- package/dist/cjs/src/data/transformers/match.js +32 -0
- package/dist/cjs/src/data/transformers/performance-stats.d.ts +5 -0
- package/dist/cjs/src/data/transformers/performance-stats.js +37 -0
- package/dist/cjs/src/data/transformers/player-team.d.ts +3 -0
- package/dist/cjs/src/data/transformers/player-team.js +12 -0
- package/dist/cjs/src/data/transformers/player.d.ts +5 -0
- package/dist/cjs/src/data/transformers/player.js +32 -0
- package/dist/cjs/src/data/transformers/rally.d.ts +5 -0
- package/dist/cjs/src/data/transformers/rally.js +27 -0
- package/dist/cjs/src/data/transformers/role.d.ts +5 -0
- package/dist/cjs/src/data/transformers/role.js +25 -0
- package/dist/cjs/src/data/transformers/season-match.d.ts +4 -0
- package/dist/cjs/src/data/transformers/season-match.js +16 -0
- package/dist/cjs/src/data/transformers/season.d.ts +5 -0
- package/dist/cjs/src/data/transformers/season.js +40 -0
- package/dist/cjs/src/data/transformers/set-position.d.ts +5 -0
- package/dist/cjs/src/data/transformers/set-position.js +20 -0
- package/dist/cjs/src/data/transformers/stage.d.ts +5 -0
- package/dist/cjs/src/data/transformers/stage.js +25 -0
- package/dist/cjs/src/data/transformers/team.d.ts +5 -0
- package/dist/cjs/src/data/transformers/team.js +30 -0
- package/dist/cjs/src/data/transformers/tournament-match.d.ts +5 -0
- package/dist/cjs/src/data/transformers/tournament-match.js +23 -0
- package/dist/cjs/src/data/transformers/tournament.d.ts +5 -0
- package/dist/cjs/src/data/transformers/tournament.js +42 -0
- package/dist/cjs/src/data/transformers/trait.d.ts +5 -0
- package/dist/cjs/src/data/transformers/trait.js +19 -0
- package/dist/cjs/src/formula/event.formula.json +125 -0
- package/dist/cjs/src/formula/events.d.ts +125 -0
- package/dist/cjs/src/formula/events.js +8 -0
- package/dist/cjs/src/formula/index.d.ts +3 -0
- package/dist/cjs/src/formula/index.js +19 -0
- package/dist/cjs/src/formula/role.formula.json +82 -0
- package/dist/cjs/src/formula/roles.d.ts +20 -0
- package/dist/cjs/src/formula/roles.js +9 -0
- package/dist/cjs/src/formula/stat.formula.json +66 -0
- package/dist/cjs/src/formula/stats.d.ts +10 -0
- package/dist/cjs/src/formula/stats.js +18 -0
- package/dist/cjs/src/index.d.ts +3 -0
- package/dist/cjs/src/index.js +19 -0
- package/dist/cjs/src/service/coach/coach.d.ts +19 -0
- package/dist/cjs/src/service/coach/coach.js +15 -0
- package/dist/cjs/src/service/coach/formation.d.ts +30 -0
- package/dist/cjs/src/service/coach/formation.js +123 -0
- package/dist/cjs/src/service/coach/index.d.ts +2 -0
- package/dist/cjs/src/service/coach/index.js +18 -0
- package/dist/cjs/src/service/competition/index.d.ts +11 -0
- package/dist/cjs/src/service/competition/index.js +29 -0
- package/dist/cjs/src/service/competition/iteration.d.ts +10 -0
- package/dist/cjs/src/service/competition/iteration.js +12 -0
- package/dist/cjs/src/service/competition/league.d.ts +16 -0
- package/dist/cjs/src/service/competition/league.js +12 -0
- package/dist/cjs/src/service/competition/season.d.ts +26 -0
- package/dist/cjs/src/service/competition/season.js +32 -0
- package/dist/cjs/src/service/competition/stage.d.ts +11 -0
- package/dist/cjs/src/service/competition/stage.js +27 -0
- package/dist/cjs/src/service/competition/standing.d.ts +28 -0
- package/dist/cjs/src/service/competition/standing.js +80 -0
- package/dist/cjs/src/service/competition/tournament-match.d.ts +14 -0
- package/dist/cjs/src/service/competition/tournament-match.js +13 -0
- package/dist/cjs/src/service/competition/tournament.d.ts +23 -0
- package/dist/cjs/src/service/competition/tournament.js +23 -0
- package/dist/cjs/src/service/country/country.d.ts +17 -0
- package/dist/cjs/src/service/country/country.js +22 -0
- package/dist/cjs/src/service/country/index.d.ts +1 -0
- package/dist/cjs/src/service/country/index.js +17 -0
- package/dist/cjs/src/service/draft/draft-pick.d.ts +14 -0
- package/dist/cjs/src/service/draft/draft-pick.js +11 -0
- package/dist/cjs/src/service/draft/draft.d.ts +15 -0
- package/dist/cjs/src/service/draft/draft.js +12 -0
- package/dist/cjs/src/service/draft/index.d.ts +2 -0
- package/dist/cjs/src/service/draft/index.js +18 -0
- package/dist/cjs/src/service/event/index.d.ts +1 -0
- package/dist/cjs/src/service/event/index.js +17 -0
- package/dist/cjs/src/service/event/rally-event.d.ts +11 -0
- package/dist/cjs/src/service/event/rally-event.js +10 -0
- package/dist/cjs/src/service/index.d.ts +9 -0
- package/dist/cjs/src/service/index.js +25 -0
- package/dist/cjs/src/service/match/court-position.d.ts +34 -0
- package/dist/cjs/src/service/match/court-position.js +70 -0
- package/dist/cjs/src/service/match/index.d.ts +6 -0
- package/dist/cjs/src/service/match/index.js +22 -0
- package/dist/cjs/src/service/match/match-rating.d.ts +35 -0
- package/dist/cjs/src/service/match/match-rating.js +65 -0
- package/dist/cjs/src/service/match/match-set.d.ts +65 -0
- package/dist/cjs/src/service/match/match-set.js +60 -0
- package/dist/cjs/src/service/match/match-team.d.ts +7 -0
- package/dist/cjs/src/service/match/match-team.js +20 -0
- package/dist/cjs/src/service/match/match.d.ts +44 -0
- package/dist/cjs/src/service/match/match.js +68 -0
- package/dist/cjs/src/service/match/rally.d.ts +22 -0
- package/dist/cjs/src/service/match/rally.js +17 -0
- package/dist/cjs/src/service/player/index.d.ts +5 -0
- package/dist/cjs/src/service/player/index.js +21 -0
- package/dist/cjs/src/service/player/performance-stats.d.ts +30 -0
- package/dist/cjs/src/service/player/performance-stats.js +38 -0
- package/dist/cjs/src/service/player/player.d.ts +49 -0
- package/dist/cjs/src/service/player/player.js +114 -0
- package/dist/cjs/src/service/player/rarity.d.ts +14 -0
- package/dist/cjs/src/service/player/rarity.js +18 -0
- package/dist/cjs/src/service/player/role.d.ts +16 -0
- package/dist/cjs/src/service/player/role.js +44 -0
- package/dist/cjs/src/service/player/trait.d.ts +22 -0
- package/dist/cjs/src/service/player/trait.js +148 -0
- package/dist/cjs/src/service/team/index.d.ts +1 -0
- package/dist/cjs/src/service/team/index.js +17 -0
- package/dist/cjs/src/service/team/team.d.ts +31 -0
- package/dist/cjs/src/service/team/team.js +36 -0
- package/dist/cjs/src/service/utils/index.d.ts +2 -0
- package/dist/cjs/src/service/utils/index.js +18 -0
- package/dist/cjs/src/service/utils/object-utils.d.ts +1 -0
- package/dist/cjs/src/service/utils/object-utils.js +4 -0
- package/dist/cjs/src/service/utils/string-utils.d.ts +2 -0
- package/dist/cjs/src/service/utils/string-utils.js +16 -0
- package/dist/esm/src/data/common/events.d.ts +82 -0
- package/dist/esm/src/data/common/events.js +94 -0
- package/dist/esm/src/data/common/index.d.ts +2 -0
- package/dist/esm/src/data/common/index.js +2 -0
- package/dist/esm/src/data/common/status.d.ts +8 -0
- package/dist/esm/src/data/common/status.js +8 -0
- package/dist/esm/src/data/index.d.ts +4 -0
- package/dist/esm/src/data/index.js +4 -0
- package/dist/esm/src/data/init-models.d.ts +2 -0
- package/dist/esm/src/data/init-models.js +200 -0
- package/dist/esm/src/data/models/coach.d.ts +40 -0
- package/dist/esm/src/data/models/coach.js +51 -0
- package/dist/esm/src/data/models/competition-champion.d.ts +23 -0
- package/dist/esm/src/data/models/competition-champion.js +34 -0
- package/dist/esm/src/data/models/competition-match.d.ts +29 -0
- package/dist/esm/src/data/models/competition-match.js +42 -0
- package/dist/esm/src/data/models/competition-teams.d.ts +23 -0
- package/dist/esm/src/data/models/competition-teams.js +38 -0
- package/dist/esm/src/data/models/competition.d.ts +70 -0
- package/dist/esm/src/data/models/competition.js +40 -0
- package/dist/esm/src/data/models/country.d.ts +61 -0
- package/dist/esm/src/data/models/country.js +30 -0
- package/dist/esm/src/data/models/draft-pick.d.ts +31 -0
- package/dist/esm/src/data/models/draft-pick.js +46 -0
- package/dist/esm/src/data/models/draft.d.ts +29 -0
- package/dist/esm/src/data/models/draft.js +30 -0
- package/dist/esm/src/data/models/index.d.ts +25 -0
- package/dist/esm/src/data/models/index.js +25 -0
- package/dist/esm/src/data/models/iteration.d.ts +26 -0
- package/dist/esm/src/data/models/iteration.js +26 -0
- package/dist/esm/src/data/models/league-season.d.ts +23 -0
- package/dist/esm/src/data/models/league-season.js +34 -0
- package/dist/esm/src/data/models/league.d.ts +44 -0
- package/dist/esm/src/data/models/league.js +34 -0
- package/dist/esm/src/data/models/match-rating.d.ts +27 -0
- package/dist/esm/src/data/models/match-rating.js +48 -0
- package/dist/esm/src/data/models/match-result.d.ts +27 -0
- package/dist/esm/src/data/models/match-result.js +34 -0
- package/dist/esm/src/data/models/match-set-stats.d.ts +58 -0
- package/dist/esm/src/data/models/match-set-stats.js +123 -0
- package/dist/esm/src/data/models/match-set.d.ts +85 -0
- package/dist/esm/src/data/models/match-set.js +47 -0
- package/dist/esm/src/data/models/match.d.ts +72 -0
- package/dist/esm/src/data/models/match.js +48 -0
- package/dist/esm/src/data/models/performance-stats.d.ts +40 -0
- package/dist/esm/src/data/models/performance-stats.js +81 -0
- package/dist/esm/src/data/models/player-team.d.ts +28 -0
- package/dist/esm/src/data/models/player-team.js +48 -0
- package/dist/esm/src/data/models/player-trait.d.ts +23 -0
- package/dist/esm/src/data/models/player-trait.js +38 -0
- package/dist/esm/src/data/models/player.d.ts +128 -0
- package/dist/esm/src/data/models/player.js +47 -0
- package/dist/esm/src/data/models/rally.d.ts +29 -0
- package/dist/esm/src/data/models/rally.js +46 -0
- package/dist/esm/src/data/models/set-position.d.ts +29 -0
- package/dist/esm/src/data/models/set-position.js +46 -0
- package/dist/esm/src/data/models/team.d.ts +162 -0
- package/dist/esm/src/data/models/team.js +59 -0
- package/dist/esm/src/data/models/trait.d.ts +37 -0
- package/dist/esm/src/data/models/trait.js +26 -0
- package/dist/esm/src/data/models/user.d.ts +22 -0
- package/dist/esm/src/data/models/user.js +53 -0
- package/dist/esm/src/data/transformers/coach.d.ts +5 -0
- package/dist/esm/src/data/transformers/coach.js +25 -0
- package/dist/esm/src/data/transformers/country.d.ts +5 -0
- package/dist/esm/src/data/transformers/country.js +16 -0
- package/dist/esm/src/data/transformers/court-position.d.ts +5 -0
- package/dist/esm/src/data/transformers/court-position.js +27 -0
- package/dist/esm/src/data/transformers/draft-pick.d.ts +5 -0
- package/dist/esm/src/data/transformers/draft-pick.js +18 -0
- package/dist/esm/src/data/transformers/draft.d.ts +5 -0
- package/dist/esm/src/data/transformers/draft.js +19 -0
- package/dist/esm/src/data/transformers/formation.d.ts +5 -0
- package/dist/esm/src/data/transformers/formation.js +8 -0
- package/dist/esm/src/data/transformers/index.d.ts +25 -0
- package/dist/esm/src/data/transformers/index.js +25 -0
- package/dist/esm/src/data/transformers/iteration.d.ts +5 -0
- package/dist/esm/src/data/transformers/iteration.js +14 -0
- package/dist/esm/src/data/transformers/league.d.ts +5 -0
- package/dist/esm/src/data/transformers/league.js +23 -0
- package/dist/esm/src/data/transformers/match-rating.d.ts +4 -0
- package/dist/esm/src/data/transformers/match-rating.js +13 -0
- package/dist/esm/src/data/transformers/match-set-stats.d.ts +5 -0
- package/dist/esm/src/data/transformers/match-set-stats.js +57 -0
- package/dist/esm/src/data/transformers/match-set.d.ts +5 -0
- package/dist/esm/src/data/transformers/match-set.js +35 -0
- package/dist/esm/src/data/transformers/match.d.ts +5 -0
- package/dist/esm/src/data/transformers/match.js +28 -0
- package/dist/esm/src/data/transformers/performance-stats.d.ts +5 -0
- package/dist/esm/src/data/transformers/performance-stats.js +33 -0
- package/dist/esm/src/data/transformers/player-team.d.ts +3 -0
- package/dist/esm/src/data/transformers/player-team.js +9 -0
- package/dist/esm/src/data/transformers/player.d.ts +5 -0
- package/dist/esm/src/data/transformers/player.js +28 -0
- package/dist/esm/src/data/transformers/rally.d.ts +5 -0
- package/dist/esm/src/data/transformers/rally.js +23 -0
- package/dist/esm/src/data/transformers/role.d.ts +5 -0
- package/dist/esm/src/data/transformers/role.js +21 -0
- package/dist/esm/src/data/transformers/season-match.d.ts +4 -0
- package/dist/esm/src/data/transformers/season-match.js +13 -0
- package/dist/esm/src/data/transformers/season.d.ts +5 -0
- package/dist/esm/src/data/transformers/season.js +36 -0
- package/dist/esm/src/data/transformers/set-position.d.ts +5 -0
- package/dist/esm/src/data/transformers/set-position.js +16 -0
- package/dist/esm/src/data/transformers/stage.d.ts +5 -0
- package/dist/esm/src/data/transformers/stage.js +21 -0
- package/dist/esm/src/data/transformers/team.d.ts +5 -0
- package/dist/esm/src/data/transformers/team.js +26 -0
- package/dist/esm/src/data/transformers/tournament-match.d.ts +5 -0
- package/dist/esm/src/data/transformers/tournament-match.js +19 -0
- package/dist/esm/src/data/transformers/tournament.d.ts +5 -0
- package/dist/esm/src/data/transformers/tournament.js +38 -0
- package/dist/esm/src/data/transformers/trait.d.ts +5 -0
- package/dist/esm/src/data/transformers/trait.js +15 -0
- package/dist/esm/src/formula/event.formula.json +125 -0
- package/dist/esm/src/formula/events.d.ts +125 -0
- package/dist/esm/src/formula/events.js +2 -0
- package/dist/esm/src/formula/index.d.ts +3 -0
- package/dist/esm/src/formula/index.js +3 -0
- package/dist/esm/src/formula/role.formula.json +82 -0
- package/dist/esm/src/formula/roles.d.ts +20 -0
- package/dist/esm/src/formula/roles.js +3 -0
- package/dist/esm/src/formula/stat.formula.json +66 -0
- package/dist/esm/src/formula/stats.d.ts +10 -0
- package/dist/esm/src/formula/stats.js +11 -0
- package/dist/esm/src/index.d.ts +3 -0
- package/dist/esm/src/index.js +3 -0
- package/dist/esm/src/service/coach/coach.d.ts +19 -0
- package/dist/esm/src/service/coach/coach.js +11 -0
- package/dist/esm/src/service/coach/formation.d.ts +30 -0
- package/dist/esm/src/service/coach/formation.js +119 -0
- package/dist/esm/src/service/coach/index.d.ts +2 -0
- package/dist/esm/src/service/coach/index.js +2 -0
- package/dist/esm/src/service/competition/index.d.ts +11 -0
- package/dist/esm/src/service/competition/index.js +12 -0
- package/dist/esm/src/service/competition/iteration.d.ts +10 -0
- package/dist/esm/src/service/competition/iteration.js +8 -0
- package/dist/esm/src/service/competition/league.d.ts +16 -0
- package/dist/esm/src/service/competition/league.js +8 -0
- package/dist/esm/src/service/competition/season.d.ts +26 -0
- package/dist/esm/src/service/competition/season.js +28 -0
- package/dist/esm/src/service/competition/stage.d.ts +11 -0
- package/dist/esm/src/service/competition/stage.js +24 -0
- package/dist/esm/src/service/competition/standing.d.ts +28 -0
- package/dist/esm/src/service/competition/standing.js +76 -0
- package/dist/esm/src/service/competition/tournament-match.d.ts +14 -0
- package/dist/esm/src/service/competition/tournament-match.js +9 -0
- package/dist/esm/src/service/competition/tournament.d.ts +23 -0
- package/dist/esm/src/service/competition/tournament.js +19 -0
- package/dist/esm/src/service/country/country.d.ts +17 -0
- package/dist/esm/src/service/country/country.js +18 -0
- package/dist/esm/src/service/country/index.d.ts +1 -0
- package/dist/esm/src/service/country/index.js +1 -0
- package/dist/esm/src/service/draft/draft-pick.d.ts +14 -0
- package/dist/esm/src/service/draft/draft-pick.js +7 -0
- package/dist/esm/src/service/draft/draft.d.ts +15 -0
- package/dist/esm/src/service/draft/draft.js +8 -0
- package/dist/esm/src/service/draft/index.d.ts +2 -0
- package/dist/esm/src/service/draft/index.js +2 -0
- package/dist/esm/src/service/event/index.d.ts +1 -0
- package/dist/esm/src/service/event/index.js +1 -0
- package/dist/esm/src/service/event/rally-event.d.ts +11 -0
- package/dist/esm/src/service/event/rally-event.js +6 -0
- package/dist/esm/src/service/index.d.ts +9 -0
- package/dist/esm/src/service/index.js +9 -0
- package/dist/esm/src/service/match/court-position.d.ts +34 -0
- package/dist/esm/src/service/match/court-position.js +62 -0
- package/dist/esm/src/service/match/index.d.ts +6 -0
- package/dist/esm/src/service/match/index.js +6 -0
- package/dist/esm/src/service/match/match-rating.d.ts +35 -0
- package/dist/esm/src/service/match/match-rating.js +61 -0
- package/dist/esm/src/service/match/match-set.d.ts +65 -0
- package/dist/esm/src/service/match/match-set.js +56 -0
- package/dist/esm/src/service/match/match-team.d.ts +7 -0
- package/dist/esm/src/service/match/match-team.js +17 -0
- package/dist/esm/src/service/match/match.d.ts +44 -0
- package/dist/esm/src/service/match/match.js +64 -0
- package/dist/esm/src/service/match/rally.d.ts +22 -0
- package/dist/esm/src/service/match/rally.js +13 -0
- package/dist/esm/src/service/player/index.d.ts +5 -0
- package/dist/esm/src/service/player/index.js +5 -0
- package/dist/esm/src/service/player/performance-stats.d.ts +30 -0
- package/dist/esm/src/service/player/performance-stats.js +34 -0
- package/dist/esm/src/service/player/player.d.ts +49 -0
- package/dist/esm/src/service/player/player.js +85 -0
- package/dist/esm/src/service/player/rarity.d.ts +14 -0
- package/dist/esm/src/service/player/rarity.js +15 -0
- package/dist/esm/src/service/player/role.d.ts +16 -0
- package/dist/esm/src/service/player/role.js +40 -0
- package/dist/esm/src/service/player/trait.d.ts +22 -0
- package/dist/esm/src/service/player/trait.js +121 -0
- package/dist/esm/src/service/team/index.d.ts +1 -0
- package/dist/esm/src/service/team/index.js +1 -0
- package/dist/esm/src/service/team/team.d.ts +31 -0
- package/dist/esm/src/service/team/team.js +32 -0
- package/dist/esm/src/service/utils/index.d.ts +2 -0
- package/dist/esm/src/service/utils/index.js +2 -0
- package/dist/esm/src/service/utils/object-utils.d.ts +1 -0
- package/dist/esm/src/service/utils/object-utils.js +1 -0
- package/dist/esm/src/service/utils/string-utils.d.ts +2 -0
- package/dist/esm/src/service/utils/string-utils.js +11 -0
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./draft"), exports);
|
|
18
|
+
__exportStar(require("./draft-pick"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './rally-event';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./rally-event"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EventTypeEnum } from '../../data';
|
|
2
|
+
export interface RallyEventOpts {
|
|
3
|
+
readonly player: string;
|
|
4
|
+
readonly eventType: EventTypeEnum;
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class RallyEvent {
|
|
7
|
+
readonly player: string;
|
|
8
|
+
readonly eventType: EventTypeEnum;
|
|
9
|
+
protected constructor({ eventType, player }: RallyEventOpts);
|
|
10
|
+
abstract toString(): string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RallyEvent = void 0;
|
|
4
|
+
class RallyEvent {
|
|
5
|
+
constructor({ eventType, player }) {
|
|
6
|
+
this.player = player;
|
|
7
|
+
this.eventType = eventType;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.RallyEvent = RallyEvent;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./match"), exports);
|
|
18
|
+
__exportStar(require("./coach"), exports);
|
|
19
|
+
__exportStar(require("./country"), exports);
|
|
20
|
+
__exportStar(require("./draft"), exports);
|
|
21
|
+
__exportStar(require("./team"), exports);
|
|
22
|
+
__exportStar(require("./event"), exports);
|
|
23
|
+
__exportStar(require("./player"), exports);
|
|
24
|
+
__exportStar(require("./competition"), exports);
|
|
25
|
+
__exportStar(require("./utils"), exports);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare enum CourtRow {
|
|
2
|
+
BACK = "BACK_ROW",
|
|
3
|
+
FRONT = "FRONT_ROW"
|
|
4
|
+
}
|
|
5
|
+
export declare enum CourtPosition {
|
|
6
|
+
NOT_IN_COURT = -1,
|
|
7
|
+
LIBERO_ZONE = 0,
|
|
8
|
+
LEFT_FRONT = 4,
|
|
9
|
+
MIDDLE_FRONT = 3,
|
|
10
|
+
RIGHT_FRONT = 2,
|
|
11
|
+
LEFT_BACK = 5,
|
|
12
|
+
MIDDLE_BACK = 6,
|
|
13
|
+
RIGHT_BACK = 1
|
|
14
|
+
}
|
|
15
|
+
export declare enum CourtTarget {
|
|
16
|
+
NO_TARGET = 0,
|
|
17
|
+
OPPONENT_RIGHT_BACK = 7,
|
|
18
|
+
OPPONENT_MIDDLE_BACK = 12,
|
|
19
|
+
OPPONENT_LEFT_BACK = 11,
|
|
20
|
+
OPPONENT_RIGHT_FRONT = 8,
|
|
21
|
+
OPPONENT_MIDDLE_FRONT = 9,
|
|
22
|
+
OPPONENT_LEFT_FRONT = 10,
|
|
23
|
+
TEAM_LEFT_FRONT = 4,
|
|
24
|
+
TEAM_MIDDLE_FRONT = 3,
|
|
25
|
+
TEAM_RIGHT_FRONT = 2,
|
|
26
|
+
TEAM_LEFT_BACK = 5,
|
|
27
|
+
TEAM_MIDDLE_BACK = 6,
|
|
28
|
+
TEAM_RIGHT_BACK = 1
|
|
29
|
+
}
|
|
30
|
+
export declare function getPositions(): CourtPosition[];
|
|
31
|
+
export declare function rotatePosition(position: number): CourtPosition;
|
|
32
|
+
export declare function isFrontRow(position: number): boolean;
|
|
33
|
+
export declare function isBackRow(position: number): boolean;
|
|
34
|
+
export declare function getCourtRow(row: CourtRow): CourtPosition[];
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCourtRow = exports.isBackRow = exports.isFrontRow = exports.rotatePosition = exports.getPositions = exports.CourtTarget = exports.CourtPosition = exports.CourtRow = void 0;
|
|
4
|
+
var CourtRow;
|
|
5
|
+
(function (CourtRow) {
|
|
6
|
+
CourtRow["BACK"] = "BACK_ROW";
|
|
7
|
+
CourtRow["FRONT"] = "FRONT_ROW";
|
|
8
|
+
})(CourtRow = exports.CourtRow || (exports.CourtRow = {}));
|
|
9
|
+
var CourtPosition;
|
|
10
|
+
(function (CourtPosition) {
|
|
11
|
+
CourtPosition[CourtPosition["NOT_IN_COURT"] = -1] = "NOT_IN_COURT";
|
|
12
|
+
CourtPosition[CourtPosition["LIBERO_ZONE"] = 0] = "LIBERO_ZONE";
|
|
13
|
+
// -----------------------------------------------------
|
|
14
|
+
CourtPosition[CourtPosition["LEFT_FRONT"] = 4] = "LEFT_FRONT";
|
|
15
|
+
CourtPosition[CourtPosition["MIDDLE_FRONT"] = 3] = "MIDDLE_FRONT";
|
|
16
|
+
CourtPosition[CourtPosition["RIGHT_FRONT"] = 2] = "RIGHT_FRONT";
|
|
17
|
+
CourtPosition[CourtPosition["LEFT_BACK"] = 5] = "LEFT_BACK";
|
|
18
|
+
CourtPosition[CourtPosition["MIDDLE_BACK"] = 6] = "MIDDLE_BACK";
|
|
19
|
+
CourtPosition[CourtPosition["RIGHT_BACK"] = 1] = "RIGHT_BACK";
|
|
20
|
+
})(CourtPosition = exports.CourtPosition || (exports.CourtPosition = {}));
|
|
21
|
+
var CourtTarget;
|
|
22
|
+
(function (CourtTarget) {
|
|
23
|
+
CourtTarget[CourtTarget["NO_TARGET"] = 0] = "NO_TARGET";
|
|
24
|
+
CourtTarget[CourtTarget["OPPONENT_RIGHT_BACK"] = 7] = "OPPONENT_RIGHT_BACK";
|
|
25
|
+
CourtTarget[CourtTarget["OPPONENT_MIDDLE_BACK"] = 12] = "OPPONENT_MIDDLE_BACK";
|
|
26
|
+
CourtTarget[CourtTarget["OPPONENT_LEFT_BACK"] = 11] = "OPPONENT_LEFT_BACK";
|
|
27
|
+
CourtTarget[CourtTarget["OPPONENT_RIGHT_FRONT"] = 8] = "OPPONENT_RIGHT_FRONT";
|
|
28
|
+
CourtTarget[CourtTarget["OPPONENT_MIDDLE_FRONT"] = 9] = "OPPONENT_MIDDLE_FRONT";
|
|
29
|
+
CourtTarget[CourtTarget["OPPONENT_LEFT_FRONT"] = 10] = "OPPONENT_LEFT_FRONT";
|
|
30
|
+
// --------------------------------------------------------------------------------
|
|
31
|
+
CourtTarget[CourtTarget["TEAM_LEFT_FRONT"] = 4] = "TEAM_LEFT_FRONT";
|
|
32
|
+
CourtTarget[CourtTarget["TEAM_MIDDLE_FRONT"] = 3] = "TEAM_MIDDLE_FRONT";
|
|
33
|
+
CourtTarget[CourtTarget["TEAM_RIGHT_FRONT"] = 2] = "TEAM_RIGHT_FRONT";
|
|
34
|
+
CourtTarget[CourtTarget["TEAM_LEFT_BACK"] = 5] = "TEAM_LEFT_BACK";
|
|
35
|
+
CourtTarget[CourtTarget["TEAM_MIDDLE_BACK"] = 6] = "TEAM_MIDDLE_BACK";
|
|
36
|
+
CourtTarget[CourtTarget["TEAM_RIGHT_BACK"] = 1] = "TEAM_RIGHT_BACK";
|
|
37
|
+
})(CourtTarget = exports.CourtTarget || (exports.CourtTarget = {}));
|
|
38
|
+
const FRONT_ROW = [CourtPosition.LEFT_FRONT, CourtPosition.MIDDLE_FRONT, CourtPosition.RIGHT_FRONT];
|
|
39
|
+
const BACK_ROW = [CourtPosition.LEFT_BACK, CourtPosition.MIDDLE_BACK, CourtPosition.RIGHT_BACK];
|
|
40
|
+
function getPositions() {
|
|
41
|
+
return [...BACK_ROW, ...FRONT_ROW];
|
|
42
|
+
}
|
|
43
|
+
exports.getPositions = getPositions;
|
|
44
|
+
function rotatePosition(position) {
|
|
45
|
+
if (position < 1 || position > 6)
|
|
46
|
+
throw new Error('POSITION_INDEX_OUT_OF_BOUNDS');
|
|
47
|
+
if (position > CourtPosition.RIGHT_BACK)
|
|
48
|
+
return position - 1;
|
|
49
|
+
else
|
|
50
|
+
return CourtPosition.MIDDLE_BACK;
|
|
51
|
+
}
|
|
52
|
+
exports.rotatePosition = rotatePosition;
|
|
53
|
+
function isFrontRow(position) {
|
|
54
|
+
if (position < 1 || position > 6)
|
|
55
|
+
throw new Error('POSITION_INDEX_OUT_OF_BOUNDS');
|
|
56
|
+
return FRONT_ROW.includes(position);
|
|
57
|
+
}
|
|
58
|
+
exports.isFrontRow = isFrontRow;
|
|
59
|
+
function isBackRow(position) {
|
|
60
|
+
if (position < 1 || position > 6)
|
|
61
|
+
throw new Error(`POSITION_INDEX_OUT_OF_BOUNDS: ${position}`);
|
|
62
|
+
return BACK_ROW.includes(position);
|
|
63
|
+
}
|
|
64
|
+
exports.isBackRow = isBackRow;
|
|
65
|
+
function getCourtRow(row) {
|
|
66
|
+
if (![CourtRow.BACK, CourtRow.FRONT].includes(row))
|
|
67
|
+
throw new Error(`INVALID_ROW: ${row}`);
|
|
68
|
+
return CourtRow.BACK === row ? [...BACK_ROW] : [...FRONT_ROW];
|
|
69
|
+
}
|
|
70
|
+
exports.getCourtRow = getCourtRow;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./match"), exports);
|
|
18
|
+
__exportStar(require("./match-rating"), exports);
|
|
19
|
+
__exportStar(require("./match-set"), exports);
|
|
20
|
+
__exportStar(require("./rally"), exports);
|
|
21
|
+
__exportStar(require("./court-position"), exports);
|
|
22
|
+
__exportStar(require("./match-team"), exports);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Match, MatchTeam } from '.';
|
|
2
|
+
import { CompetitionType } from '../../data';
|
|
3
|
+
interface MatchRatingParams {
|
|
4
|
+
readonly match: Match;
|
|
5
|
+
readonly competitionType: CompetitionType;
|
|
6
|
+
}
|
|
7
|
+
interface SetScoreVariant {
|
|
8
|
+
'3-0': number;
|
|
9
|
+
'3-1': number;
|
|
10
|
+
'3-2': number;
|
|
11
|
+
'2-3': number;
|
|
12
|
+
'1-3': number;
|
|
13
|
+
'0-3': number;
|
|
14
|
+
}
|
|
15
|
+
interface MatchWeightFactor {
|
|
16
|
+
TOURNAMENT: number;
|
|
17
|
+
LEAGUE: number;
|
|
18
|
+
}
|
|
19
|
+
export declare class MatchRating {
|
|
20
|
+
static K: number;
|
|
21
|
+
static SSV: SetScoreVariant;
|
|
22
|
+
static C1: number;
|
|
23
|
+
static C2: number;
|
|
24
|
+
static C3: number;
|
|
25
|
+
static C4: number;
|
|
26
|
+
static C5: number;
|
|
27
|
+
static MWF: MatchWeightFactor;
|
|
28
|
+
readonly match: Match;
|
|
29
|
+
readonly weight: number;
|
|
30
|
+
constructor({ match, competitionType }: MatchRatingParams);
|
|
31
|
+
getPoints(team: MatchTeam): number;
|
|
32
|
+
static calculateProbability(z: number): number;
|
|
33
|
+
getExpectedResult(): number;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MatchRating = void 0;
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
class MatchRating {
|
|
6
|
+
constructor({ match, competitionType }) {
|
|
7
|
+
this.match = match;
|
|
8
|
+
this.weight = MatchRating.MWF[competitionType];
|
|
9
|
+
}
|
|
10
|
+
getPoints(team) {
|
|
11
|
+
const rankingValue = MatchRating.SSV[this.match.getScore()] - this.getExpectedResult();
|
|
12
|
+
const weighted = rankingValue * this.weight / MatchRating.K;
|
|
13
|
+
if (this.match.isWinner(team))
|
|
14
|
+
return weighted;
|
|
15
|
+
else
|
|
16
|
+
return weighted * -1;
|
|
17
|
+
}
|
|
18
|
+
static calculateProbability(z) {
|
|
19
|
+
let area = 0.0;
|
|
20
|
+
const rectangles = 100000;
|
|
21
|
+
const width = (z - (-10)) / rectangles;
|
|
22
|
+
for (let i = 0; i < rectangles; i++) {
|
|
23
|
+
area += width * Math.exp(-Math.pow((width * i + (-10)), 2) / 2) / Math.sqrt(2 * Math.PI);
|
|
24
|
+
}
|
|
25
|
+
return area;
|
|
26
|
+
}
|
|
27
|
+
getExpectedResult() {
|
|
28
|
+
const D = MatchRating.K * (this.match.homeTeam.rating - this.match.awayTeam.rating) / 1000; // Strength difference between the teams
|
|
29
|
+
const P1 = MatchRating.calculateProbability(MatchRating.C1 + D); // 3-0
|
|
30
|
+
const P2 = MatchRating.calculateProbability(MatchRating.C2 + D) -
|
|
31
|
+
MatchRating.calculateProbability(MatchRating.C1 + D); // 3-1
|
|
32
|
+
const P3 = MatchRating.calculateProbability(MatchRating.C3 + D) -
|
|
33
|
+
MatchRating.calculateProbability(MatchRating.C2 + D); // 3-2
|
|
34
|
+
const P4 = MatchRating.calculateProbability(MatchRating.C4 + D) -
|
|
35
|
+
MatchRating.calculateProbability(MatchRating.C3 + D); // 2-3
|
|
36
|
+
const P5 = MatchRating.calculateProbability(MatchRating.C5 + D) -
|
|
37
|
+
MatchRating.calculateProbability(MatchRating.C4 + D); // 1-3
|
|
38
|
+
const P6 = 1 - MatchRating.calculateProbability(MatchRating.C5 + D); // 0-3
|
|
39
|
+
return P1 * MatchRating.SSV['3-0'] +
|
|
40
|
+
P2 * MatchRating.SSV['3-1'] +
|
|
41
|
+
P3 * MatchRating.SSV['3-2'] +
|
|
42
|
+
P4 * MatchRating.SSV['2-3'] +
|
|
43
|
+
P5 * MatchRating.SSV['1-3'] +
|
|
44
|
+
P6 * MatchRating.SSV['0-3']; // Expected Match Result EMR
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.MatchRating = MatchRating;
|
|
48
|
+
MatchRating.K = 8; // Standard scaling factor
|
|
49
|
+
MatchRating.SSV = {
|
|
50
|
+
[_1.MatchScore['3-0']]: 2,
|
|
51
|
+
[_1.MatchScore['3-1']]: 1.5,
|
|
52
|
+
[_1.MatchScore['3-2']]: 1,
|
|
53
|
+
[_1.MatchScore['2-3']]: -1,
|
|
54
|
+
[_1.MatchScore['1-3']]: -1.5,
|
|
55
|
+
[_1.MatchScore['0-3']]: -2
|
|
56
|
+
};
|
|
57
|
+
MatchRating.C1 = -1.060;
|
|
58
|
+
MatchRating.C2 = -0.394;
|
|
59
|
+
MatchRating.C3 = 0;
|
|
60
|
+
MatchRating.C4 = 0.394;
|
|
61
|
+
MatchRating.C5 = 1.060;
|
|
62
|
+
MatchRating.MWF = {
|
|
63
|
+
TOURNAMENT: 50,
|
|
64
|
+
LEAGUE: 35
|
|
65
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { PlayerPosition, Rally } from './rally';
|
|
2
|
+
import { MatchTeam } from './match-team';
|
|
3
|
+
import { Player } from '../player';
|
|
4
|
+
declare enum ScoreThreshold {
|
|
5
|
+
SET = 25,
|
|
6
|
+
TIE_BREAK = 15
|
|
7
|
+
}
|
|
8
|
+
interface MatchSetParams {
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly order: number;
|
|
11
|
+
readonly isTieBreak: boolean;
|
|
12
|
+
readonly homePlayerPosition: PlayerPosition[];
|
|
13
|
+
readonly awayPlayerPosition: PlayerPosition[];
|
|
14
|
+
readonly homeScore: number;
|
|
15
|
+
readonly awayScore: number;
|
|
16
|
+
readonly stats: SetStatistics[];
|
|
17
|
+
readonly rallies: Rally[];
|
|
18
|
+
}
|
|
19
|
+
export interface EventStat {
|
|
20
|
+
success: number;
|
|
21
|
+
error: number;
|
|
22
|
+
}
|
|
23
|
+
export interface SetStatistics {
|
|
24
|
+
player: Player;
|
|
25
|
+
ace: number;
|
|
26
|
+
attempts: number;
|
|
27
|
+
contacts: number;
|
|
28
|
+
ralliesPlayed: number;
|
|
29
|
+
serve: EventStat;
|
|
30
|
+
reception: EventStat;
|
|
31
|
+
set: EventStat;
|
|
32
|
+
attack: EventStat;
|
|
33
|
+
block: EventStat;
|
|
34
|
+
kills: number;
|
|
35
|
+
killBlocks: number;
|
|
36
|
+
assists: number;
|
|
37
|
+
}
|
|
38
|
+
export declare class MatchSet {
|
|
39
|
+
readonly id: string;
|
|
40
|
+
readonly order: number;
|
|
41
|
+
readonly isTieBreak: boolean;
|
|
42
|
+
readonly homePlayerPosition: PlayerPosition[];
|
|
43
|
+
readonly awayPlayerPosition: PlayerPosition[];
|
|
44
|
+
readonly stats: SetStatistics[];
|
|
45
|
+
readonly rallies: Rally[];
|
|
46
|
+
readonly scoreThreshold: ScoreThreshold;
|
|
47
|
+
private _homeScore;
|
|
48
|
+
private _awayScore;
|
|
49
|
+
constructor({ id, order, isTieBreak, homePlayerPosition, awayPlayerPosition, stats, rallies, homeScore, awayScore }: MatchSetParams);
|
|
50
|
+
get homeScore(): number;
|
|
51
|
+
get awayScore(): number;
|
|
52
|
+
increaseScore(team: MatchTeam): void;
|
|
53
|
+
addRally(rally: Rally): void;
|
|
54
|
+
/**
|
|
55
|
+
* Has a team reached at least 25 points and is the score difference between both teams at least 2?
|
|
56
|
+
* @returns boolean
|
|
57
|
+
*/
|
|
58
|
+
isOver(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Get the team that won the Set. Return undefined if set is not over.
|
|
61
|
+
* @returns CourtTeam
|
|
62
|
+
*/
|
|
63
|
+
getWinner(): MatchTeam;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MatchSet = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const match_team_1 = require("./match-team");
|
|
6
|
+
var ScoreThreshold;
|
|
7
|
+
(function (ScoreThreshold) {
|
|
8
|
+
ScoreThreshold[ScoreThreshold["SET"] = 25] = "SET";
|
|
9
|
+
ScoreThreshold[ScoreThreshold["TIE_BREAK"] = 15] = "TIE_BREAK";
|
|
10
|
+
})(ScoreThreshold || (ScoreThreshold = {}));
|
|
11
|
+
class MatchSet {
|
|
12
|
+
constructor({ id, order, isTieBreak, homePlayerPosition, awayPlayerPosition, stats, rallies, homeScore, awayScore }) {
|
|
13
|
+
(0, utils_1.validateUUID)(id);
|
|
14
|
+
this.id = id;
|
|
15
|
+
this.order = order;
|
|
16
|
+
this._homeScore = homeScore;
|
|
17
|
+
this._awayScore = awayScore;
|
|
18
|
+
this.homePlayerPosition = homePlayerPosition;
|
|
19
|
+
this.awayPlayerPosition = awayPlayerPosition;
|
|
20
|
+
this.stats = stats;
|
|
21
|
+
this.rallies = rallies;
|
|
22
|
+
this.isTieBreak = isTieBreak;
|
|
23
|
+
this.scoreThreshold = isTieBreak ? ScoreThreshold.TIE_BREAK : ScoreThreshold.SET;
|
|
24
|
+
}
|
|
25
|
+
get homeScore() {
|
|
26
|
+
return this._homeScore;
|
|
27
|
+
}
|
|
28
|
+
get awayScore() {
|
|
29
|
+
return this._awayScore;
|
|
30
|
+
}
|
|
31
|
+
increaseScore(team) {
|
|
32
|
+
if (team === match_team_1.MatchTeam.HOME)
|
|
33
|
+
this._homeScore++;
|
|
34
|
+
else if (team === match_team_1.MatchTeam.AWAY)
|
|
35
|
+
this._awayScore++;
|
|
36
|
+
else
|
|
37
|
+
throw new Error('UNKNOWN_TEAM');
|
|
38
|
+
}
|
|
39
|
+
addRally(rally) {
|
|
40
|
+
this.rallies.push(rally);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Has a team reached at least 25 points and is the score difference between both teams at least 2?
|
|
44
|
+
* @returns boolean
|
|
45
|
+
*/
|
|
46
|
+
isOver() {
|
|
47
|
+
return Math.abs(this.homeScore - this.awayScore) > 1 &&
|
|
48
|
+
(this.homeScore >= this.scoreThreshold || this.awayScore >= this.scoreThreshold);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the team that won the Set. Return undefined if set is not over.
|
|
52
|
+
* @returns CourtTeam
|
|
53
|
+
*/
|
|
54
|
+
getWinner() {
|
|
55
|
+
if (!this.isOver())
|
|
56
|
+
throw new Error('UNFINISHED_SET');
|
|
57
|
+
return this.homeScore > this.awayScore ? match_team_1.MatchTeam.HOME : match_team_1.MatchTeam.AWAY;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.MatchSet = MatchSet;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MatchTeam = void 0;
|
|
4
|
+
var MatchTeam;
|
|
5
|
+
(function (MatchTeam) {
|
|
6
|
+
MatchTeam["HOME"] = "homeTeam";
|
|
7
|
+
MatchTeam["AWAY"] = "awayTeam";
|
|
8
|
+
})(MatchTeam = exports.MatchTeam || (exports.MatchTeam = {}));
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
10
|
+
(function (MatchTeam) {
|
|
11
|
+
function otherTeam(team) {
|
|
12
|
+
if (team === MatchTeam.HOME)
|
|
13
|
+
return MatchTeam.AWAY;
|
|
14
|
+
else if (team === MatchTeam.AWAY)
|
|
15
|
+
return MatchTeam.HOME;
|
|
16
|
+
else
|
|
17
|
+
throw new Error('UNKNOWN_MATCH_TEAM');
|
|
18
|
+
}
|
|
19
|
+
MatchTeam.otherTeam = otherTeam;
|
|
20
|
+
})(MatchTeam = exports.MatchTeam || (exports.MatchTeam = {}));
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { MatchSet } from './match-set';
|
|
2
|
+
import { Team } from '../team';
|
|
3
|
+
import { MatchTeam } from './match-team';
|
|
4
|
+
import { StatusEnum } from '../../data';
|
|
5
|
+
interface MatchParams {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly homeTeam: Team;
|
|
8
|
+
readonly awayTeam: Team;
|
|
9
|
+
readonly scheduledDate: Date;
|
|
10
|
+
readonly sets: MatchSet[];
|
|
11
|
+
readonly status: StatusEnum;
|
|
12
|
+
readonly homeScore?: number;
|
|
13
|
+
readonly awayScore?: number;
|
|
14
|
+
readonly winner?: Team;
|
|
15
|
+
}
|
|
16
|
+
export declare enum MatchScore {
|
|
17
|
+
'3-0' = "3-0",
|
|
18
|
+
'3-1' = "3-1",
|
|
19
|
+
'3-2' = "3-2",
|
|
20
|
+
'2-3' = "2-3",
|
|
21
|
+
'1-3' = "1-3",
|
|
22
|
+
'0-3' = "0-3"
|
|
23
|
+
}
|
|
24
|
+
export declare class Match {
|
|
25
|
+
static readonly BEST_OF = 5;
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly homeTeam: Team;
|
|
28
|
+
readonly awayTeam: Team;
|
|
29
|
+
readonly sets: MatchSet[];
|
|
30
|
+
readonly scheduledDate: Date;
|
|
31
|
+
readonly homeScore?: number;
|
|
32
|
+
readonly awayScore?: number;
|
|
33
|
+
readonly winner?: Team;
|
|
34
|
+
status: StatusEnum;
|
|
35
|
+
constructor({ id, homeTeam, awayTeam, scheduledDate, sets, status, homeScore, awayScore, winner }: MatchParams);
|
|
36
|
+
addSet(set: MatchSet): void;
|
|
37
|
+
getTeamSets(team: MatchTeam): number;
|
|
38
|
+
getScore(): MatchScore;
|
|
39
|
+
isOver(): boolean;
|
|
40
|
+
getWinner(): Team;
|
|
41
|
+
isWinner(team: MatchTeam): boolean;
|
|
42
|
+
isSimulated(): boolean;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Match = exports.MatchScore = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const match_team_1 = require("./match-team");
|
|
6
|
+
const data_1 = require("../../data");
|
|
7
|
+
var MatchScore;
|
|
8
|
+
(function (MatchScore) {
|
|
9
|
+
MatchScore["3-0"] = "3-0";
|
|
10
|
+
MatchScore["3-1"] = "3-1";
|
|
11
|
+
MatchScore["3-2"] = "3-2";
|
|
12
|
+
MatchScore["2-3"] = "2-3";
|
|
13
|
+
MatchScore["1-3"] = "1-3";
|
|
14
|
+
MatchScore["0-3"] = "0-3";
|
|
15
|
+
})(MatchScore = exports.MatchScore || (exports.MatchScore = {}));
|
|
16
|
+
class Match {
|
|
17
|
+
constructor({ id, homeTeam, awayTeam, scheduledDate, sets, status, homeScore, awayScore, winner }) {
|
|
18
|
+
(0, utils_1.validateUUID)(id);
|
|
19
|
+
this.id = id;
|
|
20
|
+
this.homeTeam = homeTeam;
|
|
21
|
+
this.awayTeam = awayTeam;
|
|
22
|
+
this.scheduledDate = scheduledDate;
|
|
23
|
+
this.sets = sets;
|
|
24
|
+
this.status = status;
|
|
25
|
+
this.homeScore = homeScore;
|
|
26
|
+
this.awayScore = awayScore;
|
|
27
|
+
this.winner = winner;
|
|
28
|
+
}
|
|
29
|
+
addSet(set) {
|
|
30
|
+
if (this.sets.length >= Match.BEST_OF)
|
|
31
|
+
throw new Error('SET_AMOUNT_EXCEEDED');
|
|
32
|
+
this.sets.push(set);
|
|
33
|
+
}
|
|
34
|
+
getTeamSets(team) {
|
|
35
|
+
return this.sets.reduce((sets, set) => sets + (!set.isOver() ? 0 : set.getWinner() === team ? 1 : 0), 0);
|
|
36
|
+
}
|
|
37
|
+
getScore() {
|
|
38
|
+
return `${this.getTeamSets(match_team_1.MatchTeam.HOME)}-${this.getTeamSets(match_team_1.MatchTeam.AWAY)}`;
|
|
39
|
+
}
|
|
40
|
+
isOver() {
|
|
41
|
+
const gamesRequired = Math.ceil(Match.BEST_OF / 2);
|
|
42
|
+
const lastSet = this.sets.at(-1);
|
|
43
|
+
if (lastSet == null || !lastSet.isOver() || this.sets.length < gamesRequired)
|
|
44
|
+
return false;
|
|
45
|
+
const homeSets = this.getTeamSets(match_team_1.MatchTeam.HOME);
|
|
46
|
+
const awaySets = this.getTeamSets(match_team_1.MatchTeam.AWAY);
|
|
47
|
+
// Check if any of the teams has enough sets to win.
|
|
48
|
+
return !(homeSets < gamesRequired && awaySets < gamesRequired);
|
|
49
|
+
}
|
|
50
|
+
getWinner() {
|
|
51
|
+
if (!this.isOver())
|
|
52
|
+
throw new Error('UNFINISHED_MATCH');
|
|
53
|
+
const homeSets = this.getTeamSets(match_team_1.MatchTeam.HOME);
|
|
54
|
+
const awaySets = this.getTeamSets(match_team_1.MatchTeam.AWAY);
|
|
55
|
+
return homeSets > awaySets ? this.homeTeam : this.awayTeam;
|
|
56
|
+
}
|
|
57
|
+
isWinner(team) {
|
|
58
|
+
if (team === match_team_1.MatchTeam.HOME && this.getWinner() === this.homeTeam)
|
|
59
|
+
return true;
|
|
60
|
+
else
|
|
61
|
+
return team === match_team_1.MatchTeam.AWAY && this.getWinner() === this.awayTeam;
|
|
62
|
+
}
|
|
63
|
+
isSimulated() {
|
|
64
|
+
return this.status === data_1.StatusEnum.COMPLETE;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.Match = Match;
|
|
68
|
+
Match.BEST_OF = 5;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Team } from '../team';
|
|
2
|
+
import { CourtPosition } from './court-position';
|
|
3
|
+
import { RallyEvent } from '../event';
|
|
4
|
+
interface RallyParams {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly order: number;
|
|
7
|
+
readonly servingTeam: Team;
|
|
8
|
+
readonly events: RallyEvent[];
|
|
9
|
+
}
|
|
10
|
+
export interface PlayerPosition {
|
|
11
|
+
position: CourtPosition;
|
|
12
|
+
playerId: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class Rally {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly servingTeam: Team;
|
|
17
|
+
readonly events: RallyEvent[];
|
|
18
|
+
readonly order: number;
|
|
19
|
+
constructor({ id, order, servingTeam, events }: RallyParams);
|
|
20
|
+
addEvent(event: RallyEvent): void;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Rally = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
class Rally {
|
|
6
|
+
constructor({ id, order, servingTeam, events }) {
|
|
7
|
+
(0, utils_1.validateUUID)(id);
|
|
8
|
+
this.id = id;
|
|
9
|
+
this.order = order;
|
|
10
|
+
this.servingTeam = servingTeam;
|
|
11
|
+
this.events = events;
|
|
12
|
+
}
|
|
13
|
+
addEvent(event) {
|
|
14
|
+
this.events.push(event);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.Rally = Rally;
|