UNPKG

@sports-sdk/rolling-insights

Version:

A package for interacting with the Rolling Insights DataFeeds API

716 lines (713 loc) 29.3 kB
import { nullish, SportsSdkClient, League } from '@sports-sdk/core'; import axios from 'axios'; import { z } from 'zod'; // src/client.ts var RollingInsightsClient = class extends SportsSdkClient { rscToken; leaguesMap = { [League.EPL]: "EPL", [League.MLB]: "MLB", [League.NBA]: "NBA", [League.NFL]: "NFL", [League.NCAAF]: "NCAAFB", [League.NHL]: "NHL", [League.NCAAM]: "NCAABB" }; /** * Creates a Rolling Insights client. * @param rscToken - The RSC token for authenticating API requests. If not provided, it will look for `DATA_FEEDS_RSC_TOKEN` in the environment variables. * @throws Will throw an error if the RSC token is not provided or found in the environment variables. */ constructor(rscToken) { const endpoint = "http://rest.datafeeds.rolling-insights.com/api/v1"; const session = axios.create({ baseURL: endpoint, headers: { "Content-Type": "application/json" }, validateStatus: function(status) { return status < 300 || status == 304; } }); super(endpoint, session); const token = rscToken || process.env.DATA_FEEDS_RSC_TOKEN; if (!token) { throw new Error("RSC token is required. Provide it as a parameter or set the environment variable DATA_FEEDS_RSC_TOKEN."); } this.rscToken = token; } /** * Sends a GET request to the specified URL with the provided parameters. * @param url - The URL to send the request to. * @param additionalParams - Additional query parameters for the request. * @param league - The league to extract from the response. * @returns The response data from the API or undefined if the API returns 304 * @throws Will throw an error if the request fails. */ async request(url, additionalParams = {}, league) { const { team_id, player_id } = additionalParams; if (team_id && player_id) { throw new Error("Both team_id and player_id cannot be provided simultaneously."); } const params = { RSC_token: this.rscToken, ...additionalParams }; const response = await this.session.get(`${url}?${Date.now()}`, { params }); if (response.status === 200) { return league ? response.data.data[this.leaguesMap[league]] : response.data.data; } if (response.status === 304) { return void 0; } throw new Error(`Failed to get a valid response: status code ${response.status}, response body ${response.data}`); } /** * Builds the API path with optional date and leagues parameters. * @param basePath - The base path of the API endpoint. * @param date - Optional date parameter. * @param leagues - Optional array of leagues or a single league. * @returns The constructed API path. */ buildApiPath(basePath, date, leagues) { let apiPath = basePath; if (date) apiPath += `/${date}`; if (leagues) { if (Array.isArray(leagues)) { apiPath += `/${leagues.map((league) => this.leaguesMap[league]).join("-")}`; } else { apiPath += `/${this.leaguesMap[leagues]}`; } } return apiPath; } /** * Builds additional parameters for API requests. * @param teamId - Optional team ID parameter. * @param gameId - Optional game ID parameter. * @param playerId - Optional player ID parameter. * @returns The constructed additional parameters. */ buildAdditionalParams(teamId, gameId, playerId) { const additionalParams = {}; if (teamId) additionalParams.team_id = teamId; if (gameId) additionalParams.game_id = gameId; if (playerId) additionalParams.player_id = playerId; return additionalParams; } /** * Fetches the season schedule data. * @param params - Object containing optional date, league, and teamId parameters. * @returns The season schedule data. */ async getSeasonSchedule({ date, league, teamId }) { const apiPath = this.buildApiPath("/schedule-season", date, league); const additionalParams = this.buildAdditionalParams(teamId); return await this.request(apiPath, additionalParams, league); } /** * Fetches the weekly schedule data. * @param params - Object containing optional date, league, and teamId parameters. * @returns The weekly schedule data. * @refreshable */ async getWeeklySchedule({ date = "now", league, teamId }) { const apiPath = this.buildApiPath("/schedule-week", date, league); const additionalParams = this.buildAdditionalParams(teamId); return await this.request(apiPath, additionalParams, league); } /** * Fetches the daily schedule data. * @param params - Object containing optional date, league, teamId, and gameId parameters. * @returns The daily schedule data. * @refreshable */ async getDailySchedule({ date = "now", league, teamId, gameId }) { const apiPath = this.buildApiPath("/schedule", date, league); const additionalParams = this.buildAdditionalParams(teamId, gameId); return await this.request(apiPath, additionalParams, league); } /** * Fetches live data. * @param params - Object containing optional date, league, teamId, and gameId parameters. * @returns The live data. */ async getLive({ date = "now", league, teamId, gameId }) { const apiPath = this.buildApiPath("/live", date, league); const additionalParams = this.buildAdditionalParams(teamId, gameId); return this.request(apiPath, additionalParams, league); } /** * Fetches team information. * @param params - Object containing optional league, teamId, and fromAssets parameters. * @returns The team information. * @refreshable */ async getTeamInfo({ league, teamId }) { const apiPath = this.buildApiPath("/team-info", void 0, league); const additionalParams = this.buildAdditionalParams(teamId); return this.request(apiPath, additionalParams, league); } /** * Fetches team season statistics. * @param params - Object containing optional date, league, and teamId parameters. * @returns The team season statistics. * @refreshable */ async getTeamStats({ date, league, teamId }) { const apiPath = this.buildApiPath("/team-stats", date, league); const additionalParams = this.buildAdditionalParams(teamId); return this.request(apiPath, additionalParams, league); } /** * Fetches player information. * @param params - Object containing optional league, teamId, and fromAssets parameters. * @returns The player information. * @refreshable */ async getPlayerInfo({ league, teamId }) { const apiPath = this.buildApiPath("/player-info", void 0, league); const additionalParams = this.buildAdditionalParams(teamId); return this.request(apiPath, additionalParams, league); } /** * Fetches player statistics. * @param params - Object containing optional date, league, teamId, and playerId parameters. * @returns The player statistics. * @refreshable */ async getPlayerStats({ date, league, teamId, playerId }) { const apiPath = this.buildApiPath("/player-stats", date, league); const additionalParams = this.buildAdditionalParams(teamId, void 0, playerId); return this.request(apiPath, additionalParams, league); } /** * Fetches player injuries. * @param params - Object containing optional league and teamId parameters. * @returns The player injuries. */ async getPlayerInjuries({ league, teamId }) { const apiPath = this.buildApiPath("/injuries", void 0, league); const additionalParams = this.buildAdditionalParams(teamId); return this.request(apiPath, additionalParams, league); } /** * Fetches the team depth chart. * @param params - Object containing optional league and teamId parameters. * @returns The team depth chart. */ async getTeamDepthChart({ league, teamId }) { const apiPath = this.buildApiPath("/depth-charts", void 0, league); const additionalParams = this.buildAdditionalParams(teamId); return this.request(apiPath, additionalParams, league); } }; var MlbScheduleSchema = z.object({ away_team: z.string(), home_team: z.string(), away_team_ID: z.number(), home_team_ID: z.number(), game_ID: z.string(), game_time: z.string(), season_type: z.string(), season: z.string(), away_pitcher: z.object({ player_id: z.number().nullable(), player: z.string() }), home_pitcher: z.object({ player_id: z.number().nullable(), player: z.string() }), status: z.string(), event_name: z.string().nullable(), round: z.string().nullable(), city: z.string().nullable(), state: z.string().nullable(), country: z.string().nullable(), postal_code: z.string().nullable(), dome: z.number().nullable(), field: z.string().nullable(), latitude: z.number().nullable(), longitude: z.number().nullable(), arena: z.string().nullable() }); var MlbPlayerInfoSchema = z.object({ player_id: z.number(), player: z.string(), team: z.string(), team_id: z.number(), number: z.number(), position: z.string(), position_category: z.string(), status: z.string(), height: z.string(), weight: z.number(), age: z.string(), bats: z.string(), throws: z.string(), college: z.string().nullable(), all_star: z.string().nullable() }); var MlbBattingStatsSchema = z.object({ H: z.number(), R: z.number(), "1B": z.number(), "2B": z.number(), "3B": z.number(), AB: z.number(), BB: z.number(), CS: z.number(), HR: z.number(), PO: z.number(), SB: z.number(), SO: z.number(), HBP: z.number(), IBB: z.number(), RBI: z.number(), Outs: z.number() }); var MlbPitchingStatsSchema = z.object({ H: z.number(), K: z.number(), L: z.number(), R: z.number(), S: z.number(), W: z.number(), "1B": z.number(), "2B": z.number(), "3B": z.number(), BB: z.number(), BK: z.number(), BS: z.number(), CS: z.number(), ER: z.number(), HR: z.number(), IP: z.string(), PO: z.number(), SB: z.number(), WP: z.number(), HBP: z.number(), HLD: z.number(), IBB: z.number(), ERA: z.string() }).optional(); var MlbPlayerSeasonStatsSchema = z.object({ E: z.number(), PO: z.number(), batting: MlbBattingStatsSchema, pitching: MlbPitchingStatsSchema, games_played: z.number() }); var MlbPlayerStatsSchema = z.object({ player_id: z.number(), player: z.string(), position: z.string(), position_category: z.string(), team: z.string(), team_id: z.number(), regular_season: MlbPlayerSeasonStatsSchema.nullable(), postseason: MlbPlayerSeasonStatsSchema.nullable() }); var MlbTeamSeasonStatsSchema = z.object({ E: z.number(), H: z.number(), R: z.number(), "2B": z.number(), "3B": z.number(), AB: z.number(), BB: z.number(), CS: z.number(), HR: z.number(), SB: z.number(), SO: z.number(), RBI: z.number(), wins: z.number(), losses: z.number(), games_played: z.number() }).optional(); var MlbTeamStatsSchema = z.object({ team_id: z.number(), team: z.string(), regular_season: MlbTeamSeasonStatsSchema.nullable(), postseason: MlbTeamSeasonStatsSchema.nullable() }); var MlbTeamInfoSchema = z.object({ team_id: z.number(), team: z.string(), conf: z.string(), abbrv: z.string().nullable(), mascot: z.string().nullable(), location: z.string().nullable(), city: z.string().nullable(), state: z.string().nullable(), arena: z.string().nullable(), country: z.string().nullable(), latitude: z.number().nullable(), longitude: z.number().nullable(), field: z.string().nullable(), postal_code: z.string().nullable(), dome: z.number().nullable() }); var NbaTeamSeasonStatsSchema = z.object({ wins: z.number(), fouls: z.number(), blocks: z.number(), losses: z.number(), points: z.number(), steals: z.number(), assists: z.number(), turnovers: z.number(), games_played: z.number(), total_rebounds: z.number(), two_points_made: z.number(), field_goals_made: z.number(), free_throws_made: z.number(), three_points_made: z.number(), defensive_rebounds: z.number(), offensive_rebounds: z.number(), two_point_percentage: z.number().optional(), two_points_attempted: z.number(), field_goals_attempted: z.number(), free_throws_attempted: z.number(), three_points_attempted: z.number() }); var NbaTeamStatsSchema = z.object({ team_id: z.number(), team: z.string(), regular_season: NbaTeamSeasonStatsSchema, postseason: NbaTeamSeasonStatsSchema.nullable() }); var NbaPlayerSeasonStatsSchema = z.object({ fouls: z.number(), blocks: z.number(), points: z.number(), steals: z.number(), assists: z.number(), minutes: z.number(), turnovers: z.number(), games_played: z.number(), total_rebounds: z.number(), two_points_made: z.number(), field_goals_made: z.number(), free_throws_made: z.number(), three_points_made: z.number(), defensive_rebounds: z.number(), offensive_rebounds: z.number(), two_point_percentage: z.number(), two_points_attempted: z.number(), field_goals_attempted: z.number(), free_throws_attempted: z.number(), three_points_attempted: z.number() }); var NbaPlayerStatsSchema = z.object({ player_id: z.number(), player: z.string(), team: z.string(), team_id: z.number(), regular_season: NbaPlayerSeasonStatsSchema, postseason: NbaPlayerSeasonStatsSchema.nullable() }); var NbaPlayerInfoSchema = z.object({ player_id: z.number(), player: z.string(), team_id: z.number(), team: z.string(), number: z.number(), status: z.string(), position: z.string(), position_category: z.string(), height: z.string(), weight: z.number(), age: z.string(), college: z.string() }); var NbaTeamInfoSchema = z.object({ team_id: z.number(), team: z.string(), abbrv: z.string(), arena: z.string(), mascot: z.string(), conf: z.string(), location: z.string() }); var NbaScheduleSchema = z.object({ away_team: z.string(), home_team: z.string(), away_team_ID: z.number(), home_team_ID: z.number(), game_ID: z.string(), game_time: z.string(), season_type: z.string(), event_name: z.string().nullable(), round: z.number().nullable(), season: z.string(), status: z.string(), broadcast: z.string() }); var NflPlayerInfoSchema = z.object({ player_id: z.number(), player: z.string(), team: z.string(), team_id: z.number(), number: z.number(), status: z.string(), position: z.string(), position_category: z.string(), height: z.string(), weight: z.number(), age: z.string(), college: z.string(), img: z.string().nullable(), all_star: z.any() }); var NflPlayerSeasonStatsSchema = nullish(z.object({ completions: z.number().describe("The number of times a player completes a Pass."), DK_fantasy_points: z.number().describe("Total fantasy points scored by a NFL player based on data from DraftKings"), DK_fantasy_points_per_game: z.number().describe("Average fantasy points per game for NFL players on DraftKings"), extra_points_attempted: z.number().describe("The number of extra points attempted. An extra point occurs immediately after a touchdown during which the scoring team is allowed to attempt to score one point by kicking the ball through the uprights in the manner of a field goal."), extra_points_made: z.number().describe("The number of extra points made. An extra point is awarded after a touchdown when the scoring team has the option to attempt to score an extra point by kicking the ball through the uprights."), field_goals_attempted: z.number().describe("The number of field goals that a team has attempted, including both 2-pointers and 3-pointers."), field_goals_long: z.number().describe("The longest field goal for the player."), field_goals_made: z.number().describe("The number of field goals made by a team. This includes both 2 pointers and 3 pointers."), fumbles: z.number().describe("The total number of fumbles by a player. A fumble is any act, other than a Pass - or kick, which results in a loss of player possession."), fumbles_lost: z.number().describe("The number of fumbles lost by a player."), fumbles_recoveries: z.number().describe("The number of times a team's defense has recovered a fumble. A fumble is when a player loses control of the ball."), games_played: z.number().describe("The total number of games played by a NFL football player."), inside_20: z.number().describe("Number of punts landed inside the opponents 20 yard line."), interceptions: z.number().describe("The number of times a player intercepts a Pass. An interception is when a player catches a Pass - from the opposing team\u2019s offense."), kick_return_long: z.number().describe("The longest kick return by a player. A return specialist or kick returner is a player on the special teams unit who specializes in returning kickoffs."), kick_return_touchdowns: z.number().describe("The number of touchdowns a player returns from a kickoff. Return specialists or kick returners are members of the special teams unit who specialize in returning kickoffs."), kick_return_yards: z.number().describe("The number of yards returned by a player from a kick. A return specialist or kick returner is a player on the special teams unit who specializes in returning kickoffs."), kick_returns: z.number().describe("The number of times a player returned a kick. A return specialist or kick returner is a player on the special teams unit who specializes in returning kickoffs."), passer_rating: z.number().describe("The passer rating for a player."), passing_attempts: z.number().describe("The total number of passing attempts completed by a player."), passing_interceptions: z.number().describe("The number of times a NFL player throws an interception. An interception is when a defensive player catches a forward Pass - thrown by the offense resulting in a change of possession."), passing_touchdowns: z.number().describe("The number of times a player throws the ball for a successful touchdown, worth six points."), passing_yards: z.number().describe("The number of yards gained by a NFL football player on completed passes."), punt_return_long: z.number().describe("The longest punt return by a player. A return specialist or kick returner is a player on the special teams unit who specializes in returning punts."), punt_return_touchdowns: z.number().describe("The number of punt returns that were returned for a touchdown."), punt_return_yards: z.number().describe("The total number of yards returned from punts by the player."), punt_returns: z.number().describe("The number of punt returns by a player. A punt is a kick performed by dropping the ball from the hands and then kicking the ball before it hits the ground"), punting_yards: z.number().describe("The total number of punting yards from a player."), punts: z.number().describe("The number of punts by a punter. A punt is a kick performed by dropping the ball from the hands and then kicking the ball before it hits the ground."), punts_long: z.number().describe("The longest punt for the player."), receiving_long: z.number().describe("The longest reception by a player."), receiving_touchdowns: z.number().describe("The number of receiving touchdowns caught by a player."), receiving_yards: z.number().describe("The total number of receiving yards by a player."), receptions: z.number().describe("The number of receptions made by a player."), rushing_attempts: z.number().describe("The number of rushing attempts by a player."), rushing_long: z.number().describe("The longest rushing play from the player."), rushing_touchdowns: z.number().describe("The number of rushing touchdowns from the player."), rushing_yards: z.number().describe("The total number of yards gained by a player from rushing."), sacks: z.number().describe("The number of sacks by a defensive player. A sack occurs when the quarterback (or another offensive player acting as a passer) is tackled behind the line of scrimmage before he can throw a forward pass, when the quarterback is tackled behind the line of scrimmage in the 'pocket' and his intent is unclear, or when a passer runs out of bounds behind the line of scrimmage due to defensive pressure."), tackles: z.number().describe("The number of tackles made by a player."), two_point_conversion_pass_attempts: z.number().describe("The number of times a player attempts to Pass - for a 2 point conversion. A two point conversion is an offensive play from the defense\u2019s two-yard line to try to earn two additional points after scoring a touchdown."), two_point_conversion_pass_completions: z.number().describe("The number of times a player completes a Pass - for a 2 point conversion. A two point conversion occurs after scoring a touchdown and is a play run from the defense\u2019s two-yard line to try to earn two additional points. The team earns the points if a runner carries the ball across the goal line or catches the ball within the end zone."), two_point_conversion_reception_succeeded: z.number().describe("The number of times a NFL Football player receives a Pass - for a two point conversion. A two point conversion occurs after scoring a touchdown. An offense can opt to run one play from the defense\u2019s two-yard line to try to earn two additional points. The team earns the points if a runner carries the ball across the goal line or catches the ball within the end zone, just like scoring a touchdown."), two_point_conversion_rush_attempts: z.number().describe("The number of times a player attempts to Rush - for 2 points. A two point conversion occurs after scoring a touchdown in American Football."), two_point_conversion_rush_succeeded: z.number().describe("The number of times a player succeeds in rushing for a 2 point conversion. A two point conversion occurs after scoring a touchdown and if a runner carries the ball across the goal line or catches the ball within the end zone, just like scoring a touchdown.") })); var NflPlayerStatsSchema = z.object({ player: z.string().describe("The full name of a NFL Football player"), player_id: z.string().describe("Unique identifier for each NFL Football Player"), postseason: NflPlayerSeasonStatsSchema.describe("Statistic representing a NFL player's performance in the postseason (playoff games)").nullable(), regular_season: NflPlayerSeasonStatsSchema.describe("This field represents the regular season stats of a NFL Football Player.").nullable(), team: z.string().describe("The team name of a NFL football player."), team_id: z.string().describe("Unique identifier for the team in the NFL Football Player Stats database.") }); var NflTeamSeasonStatsSchema = z.object({ ties: z.number().nullable(), wins: z.number().nullable(), sacks: z.number().nullable(), losses: z.number().nullable(), points: z.number().nullable(), safeties: z.number().nullable(), penalties: z.number().nullable(), turnovers: z.number().nullable(), first_downs: z.number().nullable(), total_plays: z.number().nullable(), total_yards: z.number().nullable(), games_played: z.number().nullable(), blocked_kicks: z.number().nullable(), blocked_punts: z.number().nullable(), kicks_blocked: z.number().nullable(), passing_yards: z.number().nullable(), penalty_yards: z.number().nullable(), punts_blocked: z.number().nullable(), rushing_yards: z.number().nullable(), DK_fantasy_points: z.number().nullable(), defense_touchdowns: z.number().nullable(), defense_interceptions: z.number().nullable(), kick_return_touchdowns: z.number().nullable(), punt_return_touchdowns: z.number().nullable(), blocked_kick_touchdowns: z.number().nullable(), blocked_punt_touchdowns: z.number().nullable(), interception_touchdowns: z.number().nullable(), fumble_return_touchdowns: z.number().nullable(), defense_fumble_recoveries: z.number().nullable(), field_goal_return_touchdowns: z.number().nullable(), two_point_conversion_returns: z.number().nullable(), two_point_conversion_attempts: z.number().nullable(), two_point_conversion_succeeded: z.number().nullable(), points_against_defense_special_teams: z.number().nullable(), DK_fantasy_points_per_game: z.number().nullable() }).partial(); var NflTeamStatsSchema = z.object({ bye: z.union([z.number(), z.string()]).describe("The week in the NFL schedule that a team does not play a game."), regular_season: NflTeamSeasonStatsSchema.describe("This field represents the regular season stats of a NFL Football Team."), postseason: NflTeamSeasonStatsSchema.describe("Statistic representing a NFL player's performance in the postseason (playoff games)").nullable(), team: z.string().describe("Team Name and Identifier for NFL Football Teams."), team_id: z.number().describe("The team ID is a numerical identifier for a NFL Football team.") }); var NflTeamInfoSchema = z.object({ team_id: z.number(), team: z.string(), abbrv: z.string(), mascot: z.string(), conf: z.string(), location: z.string(), img: z.string(), city: z.string(), state: z.string(), arena: z.string(), country: z.string(), latitude: z.number(), longitude: z.number(), field: z.string(), postal_code: z.string(), dome: z.number() }); var NflScheduleSchema = z.object({ away_team: z.string(), home_team: z.string(), away_team_ID: z.number(), home_team_ID: z.number(), game_ID: z.string(), game_time: z.string(), season_type: z.string(), event_name: z.string().nullable(), round: z.number().nullable(), season: z.string(), week: z.number(), status: z.string(), city: z.string(), state: z.string(), arena: z.string(), country: z.string(), latitude: z.number(), longitude: z.number(), field: z.string(), postal_code: z.string(), dome: z.number() }); var NhlScheduleSchema = z.object({ away_team: z.string(), home_team: z.string(), away_team_ID: z.number(), home_team_ID: z.number(), game_ID: z.string(), game_time: z.string(), season_type: z.string(), event_name: z.string().nullable(), round: z.number().nullable(), season: z.string(), status: z.string() }); var NhlPlayerInfoSchema = z.object({ player_id: z.number(), player: z.string(), team_id: z.number(), team: z.string(), number: z.number(), status: z.string(), position: z.string(), position_category: z.string(), height: z.string(), weight: z.number(), age: z.string() }); var NhlTeamInfoSchema = z.object({ team_id: z.number(), team: z.string(), abbrv: z.string(), arena: z.string(), mascot: z.string(), conf: z.string(), location: z.string() }); var NhlPlayerSeasonStatsSchema = z.object({ hits: z.number(), goals: z.number(), blocks: z.number(), assists: z.number(), giveaways: z.number(), takeaways: z.number(), plus_minus: z.number(), time_on_ice: z.number(), faceoffs_won: z.number(), games_played: z.number(), faceoffs_lost: z.number(), shots_on_goal: z.number(), shootout_goals: z.number(), penalty_minutes: z.number(), power_play_goals: z.number(), power_play_assists: z.number() }); var NhlPlayerStatsSchema = z.object({ player_id: z.number(), player: z.string(), team: z.string(), team_id: z.number(), regular_season: NhlPlayerSeasonStatsSchema, postseason: NhlPlayerSeasonStatsSchema.nullable() }); var NhlTeamSeasonStatsSchema = z.object({ hits: z.number(), wins: z.number(), goals: z.number(), saves: z.number(), blocks: z.number(), losses: z.number(), assists: z.number(), power_plays: z.number(), faceoffs_won: z.number(), games_played: z.number(), faceoffs_lost: z.number(), shots_on_goal: z.number(), overtime_losses: z.number(), penalty_minutes: z.number(), power_plays_converted: z.number(), short_handed_goals_scored: z.number(), short_handed_goals_allowed: z.number() }).partial(); var NhlTeamStatsSchema = z.object({ team_id: z.number(), team: z.string(), regular_season: NhlTeamSeasonStatsSchema, postseason: NhlTeamSeasonStatsSchema.nullable() }); var NcaafPlayerInfoSchema = z.object({ player_id: z.number(), player: z.string(), team: z.string(), team_id: z.number(), number: z.number(), status: z.string(), position: z.string(), position_category: z.string(), height: z.string(), weight: z.string(), class: z.string() }); var NcaafTeamInfoSchema = z.object({ team_id: z.number(), team: z.string(), abbrv: z.string().nullable(), mascot: z.string().nullable(), rank: z.null().nullable(), week: z.number().nullable(), conf_ID: z.number().nullable(), conf: z.string().nullable(), city: z.string().nullable(), state: z.string().nullable(), arena: z.string().nullable(), country: z.string().nullable(), latitude: z.number().nullable(), longitude: z.number().nullable(), field: z.string().nullable(), postal_code: z.string().nullable(), dome: z.number().nullable() }); export { MlbPlayerInfoSchema, MlbPlayerStatsSchema, MlbScheduleSchema, MlbTeamInfoSchema, MlbTeamStatsSchema, NbaPlayerInfoSchema, NbaPlayerStatsSchema, NbaScheduleSchema, NbaTeamInfoSchema, NbaTeamStatsSchema, NcaafPlayerInfoSchema, NcaafTeamInfoSchema, NflPlayerInfoSchema, NflPlayerStatsSchema, NflScheduleSchema, NflTeamInfoSchema, NflTeamStatsSchema, NhlPlayerInfoSchema, NhlPlayerStatsSchema, NhlScheduleSchema, NhlTeamInfoSchema, NhlTeamStatsSchema, RollingInsightsClient };