UNPKG

iracing-api

Version:

Javascript client for iracing API

408 lines (407 loc) 15.2 kB
import { API } from './api'; import { GetSeriesPastSeasonsParams, GetSeriesSeasonsParams } from '../types'; /** * Provides methods for interacting with series-related endpoints. */ export declare class SeriesAPI extends API { /** * Get assets for all series (logos, images, copy). * * Note: Image paths are relative to `https://images-static.iracing.com/`. * * @returns A promise resolving to the series assets data, or undefined on error. */ getSeriesAssets: () => Promise<Record<string, { largeImage: null; logo: string; smallImage: null; seriesId: number; seriesCopy: string; }> | undefined>; /** * Get basic data for all series. * * @returns A promise resolving to an array of series data objects, or undefined on error. */ getSeriesData: () => Promise<{ category: "dirt_oval" | "dirt_road" | "formula_car" | "oval" | "sports_car"; categoryId: number; seriesId: number; seriesName: string; allowedLicenses: { groupName: "Class A" | "Class B" | "Class C" | "Class D" | "Pro" | "Pro/WC" | "Rookie"; maxLicenseLevel: number; minLicenseLevel: number; licenseGroup: number; parentId?: number | undefined; }[]; seriesShortName: string; eligible: boolean; maxStarters: number; minStarters: number; ovalCautionType: number; roadCautionType: number; forumUrl?: string | null | undefined; searchFilters?: string | null | undefined; }[] | undefined>; /** * Get all past seasons for a specific series. * * Note: Filter the response list by `official: true` for seasons with standings. * * @param {GetSeriesPastSeasonsParams} params - Parameters for the request. * @param {number} params.seriesId - The ID of the series. * * @returns A promise resolving to the past seasons data for the series, or undefined on error. */ getSeriesPastSeasons: (params: GetSeriesPastSeasonsParams) => Promise<{ success: boolean; seriesId: number; series: { active: boolean; logo: string | null; category: "dirt_oval" | "dirt_road" | "formula_car" | "oval" | "sports_car"; categoryId: number; fixedSetup: boolean; licenseGroupTypes: { licenseGroupType: number; }[]; licenseGroup: number; seriesId: number; seriesName: string; allowedLicenses: { groupName: "Class A" | "Class B" | "Class C" | "Class D" | "Pro" | "Pro/WC" | "Rookie"; maxLicenseLevel: number; minLicenseLevel: number; licenseGroup: number; parentId?: number | undefined; }[]; seriesShortName: string; official: boolean; seasons: { active: boolean; driverChanges: boolean; fixedSetup: boolean; licenseGroupTypes: { licenseGroupType: number; }[]; seasonId: number; licenseGroup: number; seasonYear: number; seasonQuarter: number; seriesId: number; carClasses: { name: string; carClassId: number; relativeSpeed: number; shortName: string; }[]; seasonName: string; seasonShortName: string; official: boolean; raceWeeks: { track: { trackId: number; trackName: string; configName?: string | null | undefined; categoryId?: number | null | undefined; category?: string | null | undefined; }; seasonId: number; raceWeekNum: number; }[]; hasSupersessions?: boolean | undefined; }[]; searchFilters?: string | null | undefined; }; } | undefined>; /** * Get the current seasons for all series. * * @param {GetSeriesSeasonsParams} [params] - Optional parameters. * @param {boolean} [params.includeSeries=false] - Include detailed series information within each season object. * * @returns A promise resolving to an array of current series season objects, or undefined on error. */ getSeriesSeasons: (params?: GetSeriesSeasonsParams) => Promise<{ active: boolean; complete: boolean; carTypes: { carType: string; }[]; driverChangeRule: number; driverChanges: boolean; enablePitlaneCollisions: boolean; fixedSetup: boolean; greenWhiteCheckeredLimit: number; hardcoreLevel: number; incidentLimit: number; incidentWarnMode: number; incidentWarnParam1: number; incidentWarnParam2: number; licenseGroupTypes: { licenseGroupType: number; }[]; luckyDog: boolean; maxTeamDrivers: number; minTeamDrivers: number; mustUseDiffTireTypesInRace: boolean; numOptLaps: number; qualifierMustStartRace: boolean; restrictViewing: boolean; shortParadeLap: boolean; startOnQualTire: boolean; startZone: boolean; trackTypes: { trackType: "dirt_oval" | "dirt_road" | "oval" | "road"; }[]; unsportConductRuleMode: number; isHeatRacing: boolean; seasonId: number; licenseGroup: number; seasonYear: number; seasonQuarter: number; seriesId: number; maxWeeks: number; seasonName: string; seasonShortName: string; official: boolean; startDate: string; allowedSeasonMembers: Record<string, { displayName: string; custId: number; carId: number; seasonId: number; carNum: string; }> | null; carClassIds: number[]; cautionLapsDoNotCount: boolean; crossLicense: boolean; drops: number; gridByClass: boolean; ignoreLicenseForPractice: boolean; multiclass: boolean; nextRaceSession: null; opDuration: number; openPracticeSessionTypeId: number; raceWeek: number; raceWeekToMakeDivisions: number; regUserCount: number; regionCompetition: boolean; restrictByMember: boolean; restrictToCar: boolean; scheduleDescription: string; schedules: { track: { trackId: number; trackName: string; configName?: string | null | undefined; categoryId?: number | null | undefined; category?: string | null | undefined; }; simulatedTimeMultiplier: number; category: "dirt_oval" | "dirt_road" | "formula_car" | "oval" | "sports_car"; categoryId: number; enablePitlaneCollisions: boolean; fullCourseCautions: boolean; shortParadeLap: boolean; startZone: boolean; trackState: { leaveMarbles: boolean; practiceRubber?: number | null | undefined; }; weather: { type: number; skies: number; windDir: number; tempUnits: number; windUnits: number; allowFog: boolean; fog: number; humidityUnits: number; precipOption: number; relHumidity: number; simulatedStartTime: string; simulatedStartUtcTime: string; simulatedTimeMultiplier: number; simulatedTimeOffsets: number[]; tempValue: number; timeOfDay: number; version: number; weatherVarInitial: number; weatherVarOngoing: number; windValue: number; forecastOptions?: { forecastType: number; precipitation: number; skies: number; stopPrecip: number; temperature: number; windDir: number; windSpeed: number; } | null | undefined; trackWater?: number | null | undefined; weatherSummary?: { maxPrecipRateDesc: "Heavy" | "Light" | "Moderate" | "None"; precipChance: number; maxPrecipRate?: number | null | undefined; skiesHigh?: number | null | undefined; skiesLow?: number | null | undefined; tempHigh?: number | null | undefined; tempLow?: number | null | undefined; tempUnits?: number | null | undefined; windHigh?: number | null | undefined; windLow?: number | null | undefined; windUnits?: number | null | undefined; } | null | undefined; weatherUrl?: string | null | undefined; }; seasonId: number; seriesId: number; seriesName: string; specialEventType: null; raceWeekNum: number; seasonName: string; startDate: string; carRestrictions: { carId: number; maxDryTireSets: number; maxPctFuelFill: number; powerAdjustPct: number; weightPenaltyKg: number; raceSetupId?: number | null | undefined; qualSetupId?: number | null | undefined; }[]; qualAttached: boolean; raceLapLimit: number | null; raceTimeDescriptors: { superSession: boolean; repeating: boolean; sessionMinutes: number; sessionTimes?: string[] | null | undefined; startDate?: string | null | undefined; dayOffset?: number[] | null | undefined; firstSessionTime?: string | null | undefined; repeatMinutes?: number | null | undefined; }[]; raceTimeLimit: number | null; restartType: string; scheduleName: string; startType: string; }[]; sendToOpenPractice: boolean; heatSesInfo?: ({ hidden: boolean; custId: number; consolationDeltaMaxFieldSize: number; consolationDeltaSessionLaps: number; consolationDeltaSessionLengthMinutes: number; consolationFirstMaxFieldSize: number; consolationFirstSessionLaps: number; consolationFirstSessionLengthMinutes: number; consolationNumPositionToInvert: number; consolationNumToConsolation: number; consolationNumToMain: number; consolationRunAlways: boolean; consolationScoresChampPoints: boolean; created: string; heatCautionType: number; heatInfoId: number; heatInfoName: string; heatLaps: number; heatLengthMinutes: number; heatMaxFieldSize: number; heatNumFromEachToMain: number; heatNumPositionToInvert: number; heatScoresChampPoints: boolean; heatSessionMinutesEstimate: number; mainLaps: number; mainLengthMinutes: number; mainMaxFieldSize: number; mainNumPositionToInvert: number; maxEntrants: number; openPractice: boolean; preMainPracticeLengthMinutes: number; preQualNumToMain: number; preQualPracticeLengthMinutes: number; qualCautionType: number; qualLaps: number; qualLengthMinutes: number; qualNumToMain: number; qualOpenDelaySeconds: number; qualScoresChampPoints: boolean; qualScoring: number; qualStyle: number; raceStyle: number; } & { description: string; }) | null | undefined; racePoints?: number | null | undefined; regOpenMinutes?: number | null | undefined; rookieSeason?: string | null | undefined; }[] | undefined>; /** * Get statistical data for all series, including associated seasons. * * Note: To get series and seasons for which standings should be available, filter the list by `official: true`. * * @returns A promise resolving to an array of series statistics objects, or undefined on error. */ getSeriesStats: () => Promise<{ active: boolean; logo: string | null; category: "dirt_oval" | "dirt_road" | "formula_car" | "oval" | "sports_car"; categoryId: number; fixedSetup: boolean; licenseGroupTypes: { licenseGroupType: number; }[]; licenseGroup: number; seriesId: number; seriesName: string; allowedLicenses: { groupName: "Class A" | "Class B" | "Class C" | "Class D" | "Pro" | "Pro/WC" | "Rookie"; maxLicenseLevel: number; minLicenseLevel: number; licenseGroup: number; parentId?: number | undefined; }[]; seriesShortName: string; official: boolean; seasons: { active: boolean; driverChanges: boolean; fixedSetup: boolean; licenseGroupTypes: { licenseGroupType: number; }[]; seasonId: number; licenseGroup: number; seasonYear: number; seasonQuarter: number; seriesId: number; carClasses: { name: string; carClassId: number; relativeSpeed: number; shortName: string; }[]; seasonName: string; seasonShortName: string; official: boolean; raceWeeks: { track: { trackId: number; trackName: string; configName?: string | null | undefined; categoryId?: number | null | undefined; category?: string | null | undefined; }; seasonId: number; raceWeekNum: number; }[]; hasSupersessions?: boolean | undefined; }[]; searchFilters?: string | null | undefined; }[] | undefined>; }