UNPKG

mrivals

Version:

Wrapper/Scrapper for Marvel Rival stats.

215 lines (211 loc) 5.02 kB
type TrackerPlatformInfo = { platformSlug: string; platformUserId: string; platformUserHandle: string; platformUserIdentifier: string; avatarUrl: string; }; type TrackerUserInfo = { userId: number; isPremium: boolean; isVerified: boolean; isInfluencer: boolean; isPartner: boolean; countryCode: string | null; customAvatarUrl: string | null; socialAccounts: any[]; pageviews: number; }; type TrackerMetadata = { lastUpdated: { value: string; displayValue: string; }; level: number; currentSeason: number; defaultSeason: number; gamemodes: Array<{ id: string; name: string; }>; seasons: Array<{ id: number; name: string; shortName: string; }>; }; type SegmentStat = { rank: number | null; displayName: string; category: string; value: number | string | SegmentStat[]; displayValue: string; displayType: string; metadata: { unit?: string; iconUrl?: string; tierName?: string; tierShortName?: string; color?: string; season?: number; seasonName?: string; seasonShortName?: string; }; }; type SegmentGameStats = { [key: string]: SegmentStat; }; type Segments = { type: 'overview' | 'hero' | 'hero-role' | 'ranked-peaks'; attributes: { season?: number; mode?: string; heroId?: number; roleId?: string; }; metadata?: { name?: string; imageUrl?: string; roleName?: string; color?: string; }; stats: SegmentGameStats; expiryDate: string; }; type TrackerResponse = { data: { platformInfo: TrackerPlatformInfo; userInfo: TrackerUserInfo; metadata: TrackerMetadata; segments: Segments[]; expiryDate: string; }; errors?: { message: string; }[]; }; type BaseOptions = { raw?: boolean; }; type FetchUserOptions = { flaresolverrUrl?: string; useCurl?: boolean; }; type RoleType = 'Strategist' | 'Duelist' | 'Vanguard'; type HeroStats = { timePlayed: number; timePlayedWon: number; matchesPlayed: number; matchesWon: number; matchesWinPct: number; kills: number; deaths: number; assists: number; kdRatio: number; kdaRatio: number; totalHeroDamage: number; totalHeroDamagePerMinute: number; totalHeroHeal: number; totalHeroHealPerMinute: number; totalDamageTaken: number; totalDamageTakenPerMinute: number; lastKills: number; headKills: number; soloKills: number; survivalKills: number; continueKills: number; continueKills3: number; continueKills4: number; continueKills5: number; continueKills6: number; mainAttacks: number; mainAttackHits: number; shieldHits: number; summonerHits: number; chaosHits: number; totalMvp: number; totalSvp: number; }; type OverviewStats = HeroStats & { featureNormalData1?: number; featureNormalData2?: number; featureNormalData3?: number; featureCriticalRate1CritHits?: number; featureCriticalRate1Hits?: number; featureHitRate1UseCount?: number; featureHitRate1HeroHits?: number; featureHitRate1EnemyHits?: number; featureHitRate1ShieldHits?: number; featureHitRate1SummonerHits?: number; }; type RoleStats = { [K in RoleType]: HeroStats; }; type HeroesStats = { [hero: string]: OverviewStats; }; type GameMode = { id: string; name: string; }; type Season = { id: number; name: string; shortName: string; }; type MetadataInfo = { lastUpdated: { value: string; displayValue: string; }; level: number; currentSeason: number; defaultSeason: number; gamemodes: GameMode[]; seasons: Season[]; }; type UserInfo = { platform: string; uuid: string; name: string; userid: string; avatar: string; pageViews: number; rank: string; peakRank: string; metadata?: MetadataInfo; }; declare class API { username: string; _raw: TrackerResponse; constructor(username: string); static fetchUser(username: string, options?: FetchUserOptions): Promise<API>; overview(options?: BaseOptions): OverviewStats; heroes(): HeroesStats; roles(): RoleStats; peakRank(): { peakTiers: { displayName: string; tierName: string; tierShortName: string; tierIcon: string; tierColor: string; season: string; seasonName: string; mmr: number; }[]; lifetimePeakRanked: { displayName: string; tierName: string; tierShortName: string; tierIcon: string; tierColor: string; season: string; seasonName: string; mmr: number; }; }; info(): UserInfo; raw(): TrackerResponse; } export { API };