iracing-api
Version:
Javascript client for iracing API
471 lines (470 loc) • 17.5 kB
TypeScript
import { API } from './api';
import type { GetHostedCombinedSessionsParams } from '../types';
/**
* Provides methods for interacting with hosted session endpoints.
*/
export declare class HostedAPI extends API {
/**
* Get a list of combined hosted sessions.
*
* Includes sessions that can be joined as a driver or spectator,
* and also includes non-league pending sessions for the user.
*
* @param {GetHostedCombinedSessionsParams} [params] - Optional parameters to filter the sessions.
* @param {number} [params.packageId] - If set, return only sessions using this car or track package ID.
*
* @returns A promise resolving to the combined hosted sessions data, or undefined on error.
*/
getHostedCombinedSessions: (params?: GetHostedCombinedSessionsParams) => Promise<{
success: boolean;
sequence: number;
subscribed: boolean;
sessions: {
track: {
trackId: number;
trackName: string;
configName?: string | null | undefined;
};
host: {
displayName: string;
custId: number;
helmet: {
pattern: number;
color1: string;
color2: string;
color3: string;
faceType: number;
helmetType: number;
};
};
status: number;
sessionFull: boolean;
sessionType: number;
carTypes: {
carType: string;
}[];
admins: {
displayName: string;
custId: number;
helmet: {
pattern: number;
color1: string;
color2: string;
color3: string;
faceType: number;
helmetType: number;
};
}[];
aiAvoidPlayers: boolean;
allowedClubs: any[];
allowedLeagues: any[];
allowedTeams: any[];
cars: {
carId: number;
carName: string;
packageId: number;
carClassId: number;
carClassName: string;
maxDryTireSets: number;
maxPctFuelFill: number;
powerAdjustPct: number;
weightPenaltyKg: number;
qualSetupFilename?: string | null | undefined;
qualSetupId?: number | null | undefined;
raceSetupFilename?: string | null | undefined;
raceSetupId?: number | null | undefined;
}[];
carsLeft: number;
category: "dirt_oval" | "dirt_road" | "formula_car" | "oval" | "sports_car";
categoryId: number;
consecCautionsSingleFile: boolean;
countByCarClassId: Record<string, number>;
countByCarId: Record<string, number>;
damageModel: number;
disallowVirtualMirror: boolean;
doNotCountCautionLaps: boolean;
doNotPaintCars: boolean;
driverChangeRule: number;
driverChanges: boolean;
elig: {
sessionFull: boolean;
canSpot: boolean;
canWatch: boolean;
canDrive: boolean;
hasSessPassword: boolean;
needsPurchase: boolean;
ownCar: boolean;
ownTrack: boolean;
purchaseSkus: number[];
registered: boolean;
};
enablePitlaneCollisions: boolean;
entryCount: number;
eventTypes: {
eventType: number;
}[];
farm: {
farmId: number;
displayName: string;
imagePath: string;
displayed: boolean;
};
fixedSetup: boolean;
fullCourseCautions: boolean;
greenWhiteCheckeredLimit: number;
hardcoreLevel: number;
incidentLimit: number;
incidentWarnMode: number;
incidentWarnParam1: number;
incidentWarnParam2: number;
launchAt: string;
leagueId: number;
leagueSeasonId: number;
licenseGroupTypes: {
licenseGroupType: number;
}[];
loneQualify: boolean;
luckyDog: boolean;
maxAiDrivers: number;
maxDrivers: number;
maxIr: number;
maxLicenseLevel: number;
maxTeamDrivers: number;
minIr: number;
minLicenseLevel: number;
minTeamDrivers: number;
multiclassType: number;
mustUseDiffTireTypesInRace: boolean;
noLapperWaveArounds: boolean;
numFastTows: number;
numOptLaps: number;
openRegExpires: string;
orderId: number;
paceCarClassId: number | null;
paceCarId: number | null;
passwordProtected: boolean;
pitsInUse: number;
practiceLength: number;
privateSessionId: number;
qualifierMustStartRace: boolean;
qualifyLaps: number;
qualifyLength: number;
raceLaps: number;
raceLength: number;
restarts: number;
restrictResults: boolean;
restrictViewing: boolean;
rollingStarts: boolean;
sessionId: number;
sessionName: string;
sessionTypes: {
sessionType: number;
}[];
shortParadeLap: boolean;
startOnQualTire: boolean;
startZone: boolean;
subsessionId: number;
teamEntryCount: number;
telemetryForceToDisk: number;
telemetryRestriction: number;
timeLimit: number;
trackState: {
leaveMarbles: boolean;
practiceGripCompound: number;
practiceRubber: number;
qualifyGripCompound: number;
qualifyRubber: number;
raceGripCompound: number;
raceRubber: number;
warmupGripCompound: number;
warmupRubber: number;
};
trackTypes: {
trackType: "dirt_oval" | "dirt_road" | "oval" | "road";
}[];
unsportConductRuleMode: number;
warmupLength: number;
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;
};
aiMaxSkill?: number | null | undefined;
aiMinSkill?: number | null | undefined;
aiRosterName?: string | null | undefined;
altAssetId?: number | null | undefined;
registeredTeams?: number[] | null | undefined;
sessionDesc?: string | null | undefined;
}[];
} | undefined>;
/**
* Get a list of hosted sessions that can be joined as a driver.
*
* Excludes spectator sessions and non-league pending sessions.
*
* @returns A promise resolving to the hosted sessions data, or undefined on error.
*/
getHostedSessions: () => Promise<{
success: boolean;
subscribed: boolean;
sessions: {
track: {
trackId: number;
trackName: string;
configName?: string | null | undefined;
};
host: {
displayName: string;
custId: number;
helmet: {
pattern: number;
color1: string;
color2: string;
color3: string;
faceType: number;
helmetType: number;
};
};
status: number;
sessionFull: boolean;
sessionType: number;
carTypes: {
carType: string;
}[];
admins: {
displayName: string;
custId: number;
helmet: {
pattern: number;
color1: string;
color2: string;
color3: string;
faceType: number;
helmetType: number;
};
}[];
aiAvoidPlayers: boolean;
allowedClubs: any[];
allowedLeagues: any[];
allowedTeams: any[];
cars: {
carId: number;
carName: string;
packageId: number;
carClassId: number;
carClassName: string;
maxDryTireSets: number;
maxPctFuelFill: number;
powerAdjustPct: number;
weightPenaltyKg: number;
qualSetupFilename?: string | null | undefined;
qualSetupId?: number | null | undefined;
raceSetupFilename?: string | null | undefined;
raceSetupId?: number | null | undefined;
}[];
carsLeft: number;
category: "dirt_oval" | "dirt_road" | "formula_car" | "oval" | "sports_car";
categoryId: number;
consecCautionsSingleFile: boolean;
countByCarClassId: Record<string, number>;
countByCarId: Record<string, number>;
damageModel: number;
disallowVirtualMirror: boolean;
doNotCountCautionLaps: boolean;
doNotPaintCars: boolean;
driverChangeRule: number;
driverChanges: boolean;
elig: {
sessionFull: boolean;
canSpot: boolean;
canWatch: boolean;
canDrive: boolean;
hasSessPassword: boolean;
needsPurchase: boolean;
ownCar: boolean;
ownTrack: boolean;
purchaseSkus: number[];
registered: boolean;
};
enablePitlaneCollisions: boolean;
entryCount: number;
eventTypes: {
eventType: number;
}[];
farm: {
farmId: number;
displayName: string;
imagePath: string;
displayed: boolean;
};
fixedSetup: boolean;
fullCourseCautions: boolean;
greenWhiteCheckeredLimit: number;
hardcoreLevel: number;
incidentLimit: number;
incidentWarnMode: number;
incidentWarnParam1: number;
incidentWarnParam2: number;
launchAt: string;
leagueId: number;
leagueSeasonId: number;
licenseGroupTypes: {
licenseGroupType: number;
}[];
loneQualify: boolean;
luckyDog: boolean;
maxAiDrivers: number;
maxDrivers: number;
maxIr: number;
maxLicenseLevel: number;
maxTeamDrivers: number;
minIr: number;
minLicenseLevel: number;
minTeamDrivers: number;
multiclassType: number;
mustUseDiffTireTypesInRace: boolean;
noLapperWaveArounds: boolean;
numFastTows: number;
numOptLaps: number;
openRegExpires: string;
orderId: number;
paceCarClassId: number | null;
paceCarId: number | null;
passwordProtected: boolean;
pitsInUse: number;
practiceLength: number;
privateSessionId: number;
qualifierMustStartRace: boolean;
qualifyLaps: number;
qualifyLength: number;
raceLaps: number;
raceLength: number;
restarts: number;
restrictResults: boolean;
restrictViewing: boolean;
rollingStarts: boolean;
sessionId: number;
sessionName: string;
sessionTypes: {
sessionType: number;
}[];
shortParadeLap: boolean;
startOnQualTire: boolean;
startZone: boolean;
subsessionId: number;
teamEntryCount: number;
telemetryForceToDisk: number;
telemetryRestriction: number;
timeLimit: number;
trackState: {
leaveMarbles: boolean;
practiceGripCompound: number;
practiceRubber: number;
qualifyGripCompound: number;
qualifyRubber: number;
raceGripCompound: number;
raceRubber: number;
warmupGripCompound: number;
warmupRubber: number;
};
trackTypes: {
trackType: "dirt_oval" | "dirt_road" | "oval" | "road";
}[];
unsportConductRuleMode: number;
warmupLength: number;
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;
};
aiMaxSkill?: number | null | undefined;
aiMinSkill?: number | null | undefined;
aiRosterName?: string | null | undefined;
altAssetId?: number | null | undefined;
registeredTeams?: number[] | null | undefined;
sessionDesc?: string | null | undefined;
}[];
} | undefined>;
}