nhl-api-ts 0.1.0 → 0.2.1
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/README.md +31 -6
- package/dist/api/edge.d.mts +25 -24
- package/dist/api/edge.mjs +69 -23
- package/dist/api/game-center.d.mts +16 -15
- package/dist/api/game-center.mjs +20 -8
- package/dist/api/helpers.d.mts +8 -7
- package/dist/api/helpers.mjs +6 -6
- package/dist/api/misc.d.mts +6 -6
- package/dist/api/misc.mjs +15 -5
- package/dist/api/players.d.mts +6 -5
- package/dist/api/players.mjs +6 -2
- package/dist/api/query/builder.d.mts +2 -0
- package/dist/api/query/builder.mjs +3 -1
- package/dist/api/query/index.d.mts +2 -2
- package/dist/api/query/index.mjs +1 -1
- package/dist/api/query/sorting/goalie-sorts.d.mts +55 -0
- package/dist/api/query/sorting/goalie-sorts.mjs +43 -48
- package/dist/api/query/sorting/sorting-options.d.mts +125 -0
- package/dist/api/query/sorting/sorting-options.mjs +3 -2
- package/dist/api/schedule.d.mts +22 -21
- package/dist/api/schedule.mjs +26 -14
- package/dist/api/standings.d.mts +5 -4
- package/dist/api/standings.mjs +4 -4
- package/dist/api/stats.d.mts +22 -17
- package/dist/api/stats.mjs +38 -16
- package/dist/api/teams.d.mts +9 -8
- package/dist/api/teams.mjs +10 -6
- package/dist/cli/colors.d.mts +2 -2
- package/dist/cli/colors.mjs +6 -2
- package/dist/cli/commands.mjs +36 -26
- package/dist/cli/run.mjs +7 -5
- package/dist/http-client.mjs +2 -2
- package/dist/index.d.mts +2 -1
- package/dist/nhl-client.d.mts +14 -10
- package/dist/nhl-client.mjs +9 -7
- package/dist/types/common.d.mts +80 -0
- package/dist/types/common.mjs +2 -0
- package/dist/types/edge.d.mts +1024 -0
- package/dist/types/edge.mjs +1 -0
- package/dist/types/game-center.d.mts +1137 -0
- package/dist/types/game-center.mjs +1 -0
- package/dist/types/helpers.d.mts +17 -0
- package/dist/types/helpers.mjs +1 -0
- package/dist/types/index.d.mts +10 -0
- package/dist/types/index.mjs +1 -0
- package/dist/types/misc.d.mts +68 -0
- package/dist/types/misc.mjs +2 -0
- package/dist/types/players.d.mts +41 -0
- package/dist/types/players.mjs +1 -0
- package/dist/types/schedule.d.mts +428 -0
- package/dist/types/schedule.mjs +1 -0
- package/dist/types/standings.d.mts +103 -0
- package/dist/types/standings.mjs +1 -0
- package/dist/types/stats.d.mts +1082 -0
- package/dist/types/stats.mjs +1 -0
- package/dist/types/teams.d.mts +29 -0
- package/dist/types/teams.mjs +1 -0
- package/dist/utils.d.mts +1 -2
- package/dist/utils.mjs +3 -1
- package/package.json +7 -20
- package/dist/api/query/errors.d.mts +0 -3
- package/dist/api/query/errors.mjs +0 -6
- package/dist/api/query/filters/base.d.mts +0 -4
- package/dist/api/query/filters/base.mjs +0 -2
- package/dist/api/query/filters/decision.d.mts +0 -13
- package/dist/api/query/filters/decision.mjs +0 -26
- package/dist/api/query/filters/draft.d.mts +0 -15
- package/dist/api/query/filters/draft.mjs +0 -27
- package/dist/api/query/filters/experience.d.mts +0 -9
- package/dist/api/query/filters/experience.mjs +0 -17
- package/dist/api/query/filters/franchise.d.mts +0 -9
- package/dist/api/query/filters/franchise.mjs +0 -15
- package/dist/api/query/filters/game-type.d.mts +0 -10
- package/dist/api/query/filters/game-type.mjs +0 -16
- package/dist/api/query/filters/goalie-sorts.d.mts +0 -3
- package/dist/api/query/filters/goalie-sorts.mjs +0 -55
- package/dist/api/query/filters/home-road.d.mts +0 -9
- package/dist/api/query/filters/home-road.mjs +0 -16
- package/dist/api/query/filters/index.d.mts +0 -14
- package/dist/api/query/filters/index.mjs +0 -14
- package/dist/api/query/filters/nationality.d.mts +0 -12
- package/dist/api/query/filters/nationality.mjs +0 -19
- package/dist/api/query/filters/opponent.d.mts +0 -10
- package/dist/api/query/filters/opponent.mjs +0 -16
- package/dist/api/query/filters/position.d.mts +0 -16
- package/dist/api/query/filters/position.mjs +0 -28
- package/dist/api/query/filters/season.d.mts +0 -14
- package/dist/api/query/filters/season.mjs +0 -24
- package/dist/api/query/filters/shoot-catch.d.mts +0 -9
- package/dist/api/query/filters/shoot-catch.mjs +0 -16
- package/dist/api/query/filters/status.d.mts +0 -20
- package/dist/api/query/filters/status.mjs +0 -28
- package/dist/logging.d.mts +0 -14
- package/dist/logging.mjs +0 -13
|
@@ -0,0 +1,1137 @@
|
|
|
1
|
+
import type { GameOutcome, GameScheduleState, GameState, GameType, LocalizedString, OddsPartner, OpenUnion, PeriodDescriptor, PositionCode, SeriesStatus, ShotType, TeamLogo, TeamOdd, TvBroadcast, ZoneCode } from '#src/types/common.mjs';
|
|
2
|
+
export interface BoxscoreGoalie {
|
|
3
|
+
playerId: number;
|
|
4
|
+
sweaterNumber: number;
|
|
5
|
+
name: LocalizedString;
|
|
6
|
+
position: string;
|
|
7
|
+
/** Absent for preseason games */
|
|
8
|
+
starter?: boolean;
|
|
9
|
+
evenStrengthShotsAgainst?: string;
|
|
10
|
+
powerPlayShotsAgainst?: string;
|
|
11
|
+
shorthandedShotsAgainst?: string;
|
|
12
|
+
saveShotsAgainst?: string;
|
|
13
|
+
savePctg?: number;
|
|
14
|
+
evenStrengthGoalsAgainst?: number;
|
|
15
|
+
powerPlayGoalsAgainst?: number;
|
|
16
|
+
shorthandedGoalsAgainst?: number;
|
|
17
|
+
/** Absent for preseason games */
|
|
18
|
+
pim?: number;
|
|
19
|
+
goalsAgainst?: number;
|
|
20
|
+
toi?: string;
|
|
21
|
+
decision?: string;
|
|
22
|
+
shotsAgainst?: number;
|
|
23
|
+
saves?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface PastGameResult {
|
|
26
|
+
opponentAbbrev: string;
|
|
27
|
+
gameResult: string;
|
|
28
|
+
}
|
|
29
|
+
export interface Scratch {
|
|
30
|
+
id: number;
|
|
31
|
+
firstName: LocalizedString;
|
|
32
|
+
lastName: LocalizedString;
|
|
33
|
+
}
|
|
34
|
+
export interface BlockedShotDetails {
|
|
35
|
+
xCoord: number;
|
|
36
|
+
yCoord: number;
|
|
37
|
+
zoneCode: ZoneCode;
|
|
38
|
+
blockingPlayerId: number;
|
|
39
|
+
shootingPlayerId: number;
|
|
40
|
+
eventOwnerTeamId: number;
|
|
41
|
+
reason: OpenUnion<'blocked' | 'teammate-blocked'>;
|
|
42
|
+
}
|
|
43
|
+
export interface BlockedShotPlay {
|
|
44
|
+
eventId: number;
|
|
45
|
+
periodDescriptor: PeriodDescriptor;
|
|
46
|
+
timeInPeriod: string;
|
|
47
|
+
timeRemaining: string;
|
|
48
|
+
situationCode: OpenUnion<'1551' | '1441' | '1451' | '1541' | '0651'>;
|
|
49
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
50
|
+
typeCode: number;
|
|
51
|
+
typeDescKey: 'blocked-shot';
|
|
52
|
+
sortOrder: number;
|
|
53
|
+
details: BlockedShotDetails;
|
|
54
|
+
}
|
|
55
|
+
export interface Boxscore {
|
|
56
|
+
id: number;
|
|
57
|
+
season: number;
|
|
58
|
+
gameType: GameType;
|
|
59
|
+
limitedScoring: boolean;
|
|
60
|
+
gameDate: string;
|
|
61
|
+
venue: LocalizedString;
|
|
62
|
+
venueLocation: LocalizedString;
|
|
63
|
+
startTimeUTC: string;
|
|
64
|
+
easternUTCOffset: string;
|
|
65
|
+
venueUTCOffset: string;
|
|
66
|
+
tvBroadcasts: TvBroadcast[];
|
|
67
|
+
gameState: GameState;
|
|
68
|
+
gameScheduleState: GameScheduleState;
|
|
69
|
+
regPeriods: number;
|
|
70
|
+
awayTeam: BoxscoreTeam;
|
|
71
|
+
homeTeam: BoxscoreTeam;
|
|
72
|
+
periodDescriptor?: PeriodDescriptor;
|
|
73
|
+
clock?: GameClock;
|
|
74
|
+
playerByGameStats?: BoxscorePlayerByGameStats;
|
|
75
|
+
gameOutcome?: GameOutcome;
|
|
76
|
+
}
|
|
77
|
+
export interface BoxscorePlayerByGameStats {
|
|
78
|
+
awayTeam: BoxscoreTeamPlayers;
|
|
79
|
+
homeTeam: BoxscoreTeamPlayers;
|
|
80
|
+
}
|
|
81
|
+
export interface BoxscoreSkater {
|
|
82
|
+
playerId: number;
|
|
83
|
+
sweaterNumber: number;
|
|
84
|
+
name: LocalizedString;
|
|
85
|
+
position: string;
|
|
86
|
+
goals: number;
|
|
87
|
+
assists: number;
|
|
88
|
+
points: number;
|
|
89
|
+
plusMinus: number;
|
|
90
|
+
pim: number;
|
|
91
|
+
hits: number;
|
|
92
|
+
powerPlayGoals: number;
|
|
93
|
+
sog: number;
|
|
94
|
+
faceoffWinningPctg?: number;
|
|
95
|
+
toi: string;
|
|
96
|
+
blockedShots: number;
|
|
97
|
+
shifts: number;
|
|
98
|
+
giveaways: number;
|
|
99
|
+
takeaways: number;
|
|
100
|
+
}
|
|
101
|
+
export interface BoxscoreTeam {
|
|
102
|
+
id: number;
|
|
103
|
+
commonName: LocalizedString;
|
|
104
|
+
abbrev: string;
|
|
105
|
+
logo: string;
|
|
106
|
+
darkLogo: string;
|
|
107
|
+
placeName: LocalizedString;
|
|
108
|
+
placeNameWithPreposition: LocalizedString;
|
|
109
|
+
score?: number;
|
|
110
|
+
sog?: number;
|
|
111
|
+
}
|
|
112
|
+
export interface DailyScores {
|
|
113
|
+
prevDate: string;
|
|
114
|
+
currentDate: string;
|
|
115
|
+
nextDate: string;
|
|
116
|
+
gameWeek: DailyScoresGameWeek[];
|
|
117
|
+
oddsPartners: OddsPartner[];
|
|
118
|
+
games: DailyScoresGame[];
|
|
119
|
+
}
|
|
120
|
+
export interface DailyScoresGame {
|
|
121
|
+
id: number;
|
|
122
|
+
season: number;
|
|
123
|
+
gameType: GameType;
|
|
124
|
+
gameDate: string;
|
|
125
|
+
venue: LocalizedString;
|
|
126
|
+
startTimeUTC: string;
|
|
127
|
+
easternUTCOffset: string;
|
|
128
|
+
venueUTCOffset: string;
|
|
129
|
+
tvBroadcasts: DailyScoresTvBroadcast[];
|
|
130
|
+
gameState: GameState;
|
|
131
|
+
gameScheduleState: GameScheduleState;
|
|
132
|
+
awayTeam: DailyScoresTeam;
|
|
133
|
+
homeTeam: DailyScoresTeam;
|
|
134
|
+
gameCenterLink: string;
|
|
135
|
+
/** Absent before the game is played */
|
|
136
|
+
threeMinRecap?: string;
|
|
137
|
+
/** Absent before the game is played */
|
|
138
|
+
threeMinRecapFr?: string;
|
|
139
|
+
/** Absent before the game is played */
|
|
140
|
+
condensedGame?: string;
|
|
141
|
+
/** Absent before the game is played */
|
|
142
|
+
clock?: GameClock;
|
|
143
|
+
neutralSite: boolean;
|
|
144
|
+
venueTimezone: string;
|
|
145
|
+
/** Absent before the game is played */
|
|
146
|
+
period?: number;
|
|
147
|
+
/** Absent before the game is played */
|
|
148
|
+
periodDescriptor?: PeriodDescriptor;
|
|
149
|
+
/** Absent before the game is played */
|
|
150
|
+
gameOutcome?: GameOutcome;
|
|
151
|
+
/** Absent before the game is played */
|
|
152
|
+
goals?: GameGoal[];
|
|
153
|
+
/** Only present before the game starts */
|
|
154
|
+
ticketsLink?: string;
|
|
155
|
+
/** Only present before the game starts */
|
|
156
|
+
ticketsLinkFr?: string;
|
|
157
|
+
/** Only present before the game starts */
|
|
158
|
+
teamLeaders?: GameTeamLeader[];
|
|
159
|
+
/** Playoff games only */
|
|
160
|
+
seriesStatus?: SeriesStatus;
|
|
161
|
+
/** Playoff games only */
|
|
162
|
+
seriesUrl?: string;
|
|
163
|
+
condensedGameFr?: string;
|
|
164
|
+
}
|
|
165
|
+
export interface DailyScoresGameWeek {
|
|
166
|
+
date: string;
|
|
167
|
+
dayAbbrev: string;
|
|
168
|
+
numberOfGames: number;
|
|
169
|
+
}
|
|
170
|
+
export interface DailyScoresGoalAssist {
|
|
171
|
+
playerId: number;
|
|
172
|
+
name: LocalizedString;
|
|
173
|
+
assistsToDate: number;
|
|
174
|
+
}
|
|
175
|
+
export interface DailyScoresTvBroadcast {
|
|
176
|
+
id: number;
|
|
177
|
+
market: string;
|
|
178
|
+
countryCode: string;
|
|
179
|
+
network: string;
|
|
180
|
+
sequenceNumber: number;
|
|
181
|
+
logoUrls?: TeamLogo;
|
|
182
|
+
parentId?: number;
|
|
183
|
+
languageCode?: string;
|
|
184
|
+
}
|
|
185
|
+
export interface DelayedPenaltyDetails {
|
|
186
|
+
eventOwnerTeamId: number;
|
|
187
|
+
}
|
|
188
|
+
export interface DelayedPenaltyPlay {
|
|
189
|
+
eventId: number;
|
|
190
|
+
periodDescriptor: PeriodDescriptor;
|
|
191
|
+
timeInPeriod: string;
|
|
192
|
+
timeRemaining: string;
|
|
193
|
+
situationCode: OpenUnion<'1551' | '1451' | '1541'>;
|
|
194
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
195
|
+
typeCode: number;
|
|
196
|
+
typeDescKey: 'delayed-penalty';
|
|
197
|
+
sortOrder: number;
|
|
198
|
+
details: DelayedPenaltyDetails;
|
|
199
|
+
}
|
|
200
|
+
export interface FaceoffDetails {
|
|
201
|
+
eventOwnerTeamId: number;
|
|
202
|
+
losingPlayerId: number;
|
|
203
|
+
winningPlayerId: number;
|
|
204
|
+
xCoord: number;
|
|
205
|
+
yCoord: number;
|
|
206
|
+
zoneCode: ZoneCode;
|
|
207
|
+
}
|
|
208
|
+
export interface FaceoffPlay {
|
|
209
|
+
eventId: number;
|
|
210
|
+
periodDescriptor: PeriodDescriptor;
|
|
211
|
+
timeInPeriod: string;
|
|
212
|
+
timeRemaining: string;
|
|
213
|
+
situationCode: OpenUnion<'1551' | '1451' | '1441' | '1541' | '0651' | '1331'>;
|
|
214
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
215
|
+
typeCode: number;
|
|
216
|
+
typeDescKey: 'faceoff';
|
|
217
|
+
sortOrder: number;
|
|
218
|
+
details: FaceoffDetails;
|
|
219
|
+
}
|
|
220
|
+
export interface DailyScoresTeam {
|
|
221
|
+
id: number;
|
|
222
|
+
name: LocalizedString;
|
|
223
|
+
abbrev: string;
|
|
224
|
+
/** Absent before the game is played */
|
|
225
|
+
score?: number;
|
|
226
|
+
/** Absent before the game is played */
|
|
227
|
+
sog?: number;
|
|
228
|
+
logo: string;
|
|
229
|
+
/** Only present before the game starts */
|
|
230
|
+
record?: string;
|
|
231
|
+
/** Only present before the game starts */
|
|
232
|
+
odds?: TeamOdd[];
|
|
233
|
+
}
|
|
234
|
+
export interface GameClock {
|
|
235
|
+
timeRemaining: string;
|
|
236
|
+
secondsRemaining: number;
|
|
237
|
+
running: boolean;
|
|
238
|
+
inIntermission: boolean;
|
|
239
|
+
}
|
|
240
|
+
export interface GameEndPlay {
|
|
241
|
+
eventId: number;
|
|
242
|
+
periodDescriptor: PeriodDescriptor;
|
|
243
|
+
timeInPeriod: string;
|
|
244
|
+
timeRemaining: string;
|
|
245
|
+
situationCode?: OpenUnion<'0440' | '1551'>;
|
|
246
|
+
homeTeamDefendingSide: OpenUnion<'right' | 'left'>;
|
|
247
|
+
typeCode: number;
|
|
248
|
+
typeDescKey: 'game-end';
|
|
249
|
+
sortOrder: number;
|
|
250
|
+
}
|
|
251
|
+
export interface GameGoal {
|
|
252
|
+
period: number;
|
|
253
|
+
periodDescriptor: PeriodDescriptor;
|
|
254
|
+
timeInPeriod: string;
|
|
255
|
+
playerId: number;
|
|
256
|
+
name: LocalizedString;
|
|
257
|
+
firstName: LocalizedString;
|
|
258
|
+
lastName: LocalizedString;
|
|
259
|
+
goalModifier: string;
|
|
260
|
+
assists: DailyScoresGoalAssist[];
|
|
261
|
+
mugshot: string;
|
|
262
|
+
teamAbbrev: string;
|
|
263
|
+
goalsToDate?: number;
|
|
264
|
+
awayScore: number;
|
|
265
|
+
homeScore: number;
|
|
266
|
+
strength: string;
|
|
267
|
+
highlightClipSharingUrl?: string;
|
|
268
|
+
highlightClipSharingUrlFr?: string;
|
|
269
|
+
highlightClip?: number;
|
|
270
|
+
highlightClipFr?: number;
|
|
271
|
+
discreteClip?: number;
|
|
272
|
+
discreteClipFr?: number;
|
|
273
|
+
goalInGame?: number;
|
|
274
|
+
}
|
|
275
|
+
export interface GameInfoTeam {
|
|
276
|
+
headCoach: LocalizedString;
|
|
277
|
+
scratches: Scratch[];
|
|
278
|
+
}
|
|
279
|
+
export interface GameOfficial {
|
|
280
|
+
fullName: LocalizedString;
|
|
281
|
+
sweaterNumber?: number;
|
|
282
|
+
}
|
|
283
|
+
export interface GameLanding {
|
|
284
|
+
id: number;
|
|
285
|
+
season: number;
|
|
286
|
+
gameType: GameType;
|
|
287
|
+
limitedScoring: boolean;
|
|
288
|
+
gameDate: string;
|
|
289
|
+
venue: LocalizedString;
|
|
290
|
+
venueLocation: LocalizedString;
|
|
291
|
+
startTimeUTC: string;
|
|
292
|
+
easternUTCOffset: string;
|
|
293
|
+
venueUTCOffset: string;
|
|
294
|
+
venueTimezone: string;
|
|
295
|
+
tvBroadcasts: TvBroadcast[];
|
|
296
|
+
gameState: GameState;
|
|
297
|
+
gameScheduleState: GameScheduleState;
|
|
298
|
+
awayTeam: GameLandingAwayTeam;
|
|
299
|
+
homeTeam: GameLandingAwayTeam;
|
|
300
|
+
shootoutInUse: boolean;
|
|
301
|
+
/** Absent for playoff games */
|
|
302
|
+
maxPeriods?: number;
|
|
303
|
+
regPeriods: number;
|
|
304
|
+
otInUse: boolean;
|
|
305
|
+
tiesInUse: boolean;
|
|
306
|
+
/** Only present before the game starts */
|
|
307
|
+
ticketsLink?: string;
|
|
308
|
+
/** Only present before the game starts */
|
|
309
|
+
ticketsLinkFr?: string;
|
|
310
|
+
/** Only present before the game starts */
|
|
311
|
+
matchup?: GameLandingMatchup;
|
|
312
|
+
periodDescriptor?: PeriodDescriptor;
|
|
313
|
+
summary?: GameLandingSummary;
|
|
314
|
+
clock?: GameClock;
|
|
315
|
+
}
|
|
316
|
+
export interface GameLandingAwayTeam {
|
|
317
|
+
id: number;
|
|
318
|
+
commonName: LocalizedString;
|
|
319
|
+
abbrev: string;
|
|
320
|
+
placeName: LocalizedString;
|
|
321
|
+
placeNameWithPreposition: LocalizedString;
|
|
322
|
+
logo: string;
|
|
323
|
+
darkLogo: string;
|
|
324
|
+
/** Only present before the game starts */
|
|
325
|
+
record?: string;
|
|
326
|
+
score?: number;
|
|
327
|
+
sog?: number;
|
|
328
|
+
}
|
|
329
|
+
export interface GameLandingMatchup {
|
|
330
|
+
season: number;
|
|
331
|
+
gameType: GameType;
|
|
332
|
+
skaterComparison: MatchupSkaterComparison;
|
|
333
|
+
goalieComparison: MatchupGoalieComparison;
|
|
334
|
+
skaterSeasonStats: MatchupSkaterSeasonStats;
|
|
335
|
+
goalieSeasonStats: MatchupGoalieSeasonStats;
|
|
336
|
+
}
|
|
337
|
+
export interface GameLandingScoringGoal {
|
|
338
|
+
eventId: number;
|
|
339
|
+
strength: string;
|
|
340
|
+
playerId: number;
|
|
341
|
+
firstName: LocalizedString;
|
|
342
|
+
lastName: LocalizedString;
|
|
343
|
+
name: LocalizedString;
|
|
344
|
+
teamAbbrev: LocalizedString;
|
|
345
|
+
headshot: string;
|
|
346
|
+
goalsToDate?: number;
|
|
347
|
+
awayScore: number;
|
|
348
|
+
homeScore: number;
|
|
349
|
+
leadingTeamAbbrev?: LocalizedString;
|
|
350
|
+
timeInPeriod: string;
|
|
351
|
+
shotType: ShotType;
|
|
352
|
+
goalModifier: string;
|
|
353
|
+
assists: GoalAssist[];
|
|
354
|
+
isHome: boolean;
|
|
355
|
+
situationCode?: OpenUnion<'1551' | '0651' | '1331' | '0101' | '1451'>;
|
|
356
|
+
/** Absent for preseason games and older seasons */
|
|
357
|
+
highlightClipSharingUrl?: string;
|
|
358
|
+
/** Absent for preseason games and older seasons */
|
|
359
|
+
highlightClip?: number;
|
|
360
|
+
/** Absent for preseason games and older seasons */
|
|
361
|
+
pptReplayUrl?: string;
|
|
362
|
+
homeTeamDefendingSide?: OpenUnion<'left' | 'right'>;
|
|
363
|
+
goalInGame?: number;
|
|
364
|
+
discreteClip?: number;
|
|
365
|
+
discreteClipFr?: number;
|
|
366
|
+
highlightClipSharingUrlFr?: string;
|
|
367
|
+
highlightClipFr?: number;
|
|
368
|
+
}
|
|
369
|
+
export interface GameLandingSummary {
|
|
370
|
+
scoring: GameLandingSummaryScoring[];
|
|
371
|
+
threeStars: GameLandingSummaryThreeStar[];
|
|
372
|
+
penalties: SummaryPenalty[];
|
|
373
|
+
/** Only for games decided by a shootout */
|
|
374
|
+
shootout?: SummaryShootout;
|
|
375
|
+
}
|
|
376
|
+
export interface GameLandingSummaryScoring {
|
|
377
|
+
periodDescriptor: PeriodDescriptor;
|
|
378
|
+
goals: GameLandingScoringGoal[];
|
|
379
|
+
}
|
|
380
|
+
export interface GameLandingSummaryThreeStar {
|
|
381
|
+
star: number;
|
|
382
|
+
playerId: number;
|
|
383
|
+
teamAbbrev: string;
|
|
384
|
+
headshot: string;
|
|
385
|
+
name: LocalizedString;
|
|
386
|
+
sweaterNo: number;
|
|
387
|
+
position: string;
|
|
388
|
+
goals?: number;
|
|
389
|
+
assists?: number;
|
|
390
|
+
points?: number;
|
|
391
|
+
/** Goalies only */
|
|
392
|
+
goalsAgainstAverage?: number;
|
|
393
|
+
/** Goalies only */
|
|
394
|
+
savePctg?: number;
|
|
395
|
+
}
|
|
396
|
+
export interface GameStory {
|
|
397
|
+
id: number;
|
|
398
|
+
season: number;
|
|
399
|
+
gameType: GameType;
|
|
400
|
+
limitedScoring: boolean;
|
|
401
|
+
gameDate: string;
|
|
402
|
+
venue: LocalizedString;
|
|
403
|
+
venueLocation: LocalizedString;
|
|
404
|
+
startTimeUTC: string;
|
|
405
|
+
easternUTCOffset: string;
|
|
406
|
+
venueUTCOffset: string;
|
|
407
|
+
venueTimezone: string;
|
|
408
|
+
tvBroadcasts: GameStoryTvBroadcast[];
|
|
409
|
+
gameState: GameState;
|
|
410
|
+
gameScheduleState: GameScheduleState;
|
|
411
|
+
awayTeam: GameStoryAwayTeam;
|
|
412
|
+
homeTeam: GameStoryAwayTeam;
|
|
413
|
+
shootoutInUse: boolean;
|
|
414
|
+
/** Absent for playoff games */
|
|
415
|
+
maxPeriods?: number;
|
|
416
|
+
regPeriods: number;
|
|
417
|
+
otInUse: boolean;
|
|
418
|
+
tiesInUse: boolean;
|
|
419
|
+
/** Only present before the game starts */
|
|
420
|
+
preGameMatchup?: PreGameMatchup;
|
|
421
|
+
summary?: GameStorySummary;
|
|
422
|
+
periodDescriptor?: PeriodDescriptor;
|
|
423
|
+
clock?: GameClock;
|
|
424
|
+
}
|
|
425
|
+
export interface GameStoryAwayTeam {
|
|
426
|
+
id: number;
|
|
427
|
+
name: LocalizedString;
|
|
428
|
+
abbrev: string;
|
|
429
|
+
placeName: LocalizedString;
|
|
430
|
+
logo: string;
|
|
431
|
+
/** Only present before the game starts */
|
|
432
|
+
record?: string;
|
|
433
|
+
score?: number;
|
|
434
|
+
sog?: number;
|
|
435
|
+
}
|
|
436
|
+
export interface PreGameMatchup {
|
|
437
|
+
skatingLeaders: PreGameMatchupSkatingLeaders;
|
|
438
|
+
goalieComparison: PreGameMatchupGoalieComparison;
|
|
439
|
+
teamSeasonStats: PreGameMatchupTeamSeasonStats;
|
|
440
|
+
}
|
|
441
|
+
export interface GameStorySummary {
|
|
442
|
+
scoring: SummaryScoring[];
|
|
443
|
+
shootout: ShootoutEvent[];
|
|
444
|
+
threeStars: SummaryThreeStar[];
|
|
445
|
+
teamGameStats: SummaryTeamGameStat[];
|
|
446
|
+
}
|
|
447
|
+
export interface GameStoryTvBroadcast {
|
|
448
|
+
id: number;
|
|
449
|
+
market: string;
|
|
450
|
+
countryCode: string;
|
|
451
|
+
network: string;
|
|
452
|
+
sequenceNumber: number;
|
|
453
|
+
logoUrls?: TeamLogo;
|
|
454
|
+
}
|
|
455
|
+
export interface GameTeamLeader {
|
|
456
|
+
id: number;
|
|
457
|
+
firstName: LocalizedString;
|
|
458
|
+
lastName: LocalizedString;
|
|
459
|
+
headshot: string;
|
|
460
|
+
teamAbbrev: string;
|
|
461
|
+
sweaterNumber: number;
|
|
462
|
+
position: string;
|
|
463
|
+
category: string;
|
|
464
|
+
value: number;
|
|
465
|
+
}
|
|
466
|
+
export interface GiveawayDetails {
|
|
467
|
+
xCoord: number;
|
|
468
|
+
yCoord: number;
|
|
469
|
+
zoneCode: ZoneCode;
|
|
470
|
+
eventOwnerTeamId: number;
|
|
471
|
+
playerId: number;
|
|
472
|
+
}
|
|
473
|
+
export interface GiveawayPlay {
|
|
474
|
+
eventId: number;
|
|
475
|
+
periodDescriptor: PeriodDescriptor;
|
|
476
|
+
timeInPeriod: string;
|
|
477
|
+
timeRemaining: string;
|
|
478
|
+
situationCode: OpenUnion<'1551' | '1541' | '1451' | '1331'>;
|
|
479
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
480
|
+
typeCode: number;
|
|
481
|
+
typeDescKey: 'giveaway';
|
|
482
|
+
sortOrder: number;
|
|
483
|
+
details: GiveawayDetails;
|
|
484
|
+
}
|
|
485
|
+
export interface GoalAssist {
|
|
486
|
+
playerId: number;
|
|
487
|
+
firstName: LocalizedString;
|
|
488
|
+
lastName: LocalizedString;
|
|
489
|
+
name: LocalizedString;
|
|
490
|
+
assistsToDate: number;
|
|
491
|
+
sweaterNumber: number;
|
|
492
|
+
}
|
|
493
|
+
export interface GoalDetails {
|
|
494
|
+
shotType: ShotType;
|
|
495
|
+
scoringPlayerId: number;
|
|
496
|
+
scoringPlayerTotal?: number;
|
|
497
|
+
/** Absent for unassisted goals */
|
|
498
|
+
assist1PlayerId?: number;
|
|
499
|
+
/** Absent for unassisted goals */
|
|
500
|
+
assist1PlayerTotal?: number;
|
|
501
|
+
/** Absent unless the goal had two assists */
|
|
502
|
+
assist2PlayerId?: number;
|
|
503
|
+
/** Absent unless the goal had two assists */
|
|
504
|
+
assist2PlayerTotal?: number;
|
|
505
|
+
eventOwnerTeamId: number;
|
|
506
|
+
/** Absent when the net was empty */
|
|
507
|
+
goalieInNetId?: number;
|
|
508
|
+
awayScore: number;
|
|
509
|
+
homeScore: number;
|
|
510
|
+
xCoord?: number;
|
|
511
|
+
yCoord?: number;
|
|
512
|
+
zoneCode?: ZoneCode;
|
|
513
|
+
/** Absent for preseason games and older seasons */
|
|
514
|
+
highlightClipSharingUrl?: string;
|
|
515
|
+
/** Absent for preseason games and older seasons */
|
|
516
|
+
highlightClip?: number;
|
|
517
|
+
goalInGame?: number;
|
|
518
|
+
discreteClip?: number;
|
|
519
|
+
discreteClipFr?: number;
|
|
520
|
+
highlightClipSharingUrlFr?: string;
|
|
521
|
+
highlightClipFr?: number;
|
|
522
|
+
}
|
|
523
|
+
export interface GoalieComparisonTeam {
|
|
524
|
+
teamTotals: GoalieTeamTotals;
|
|
525
|
+
leaders: GoalieLeader[];
|
|
526
|
+
}
|
|
527
|
+
export interface SeasonStatsGoalie {
|
|
528
|
+
playerId: number;
|
|
529
|
+
teamId: number;
|
|
530
|
+
sweaterNumber: number;
|
|
531
|
+
name: LocalizedString;
|
|
532
|
+
gamesPlayed?: number;
|
|
533
|
+
wins?: number;
|
|
534
|
+
losses?: number;
|
|
535
|
+
otLosses?: number;
|
|
536
|
+
shotsAgainst?: number;
|
|
537
|
+
goalsAgainst?: number;
|
|
538
|
+
goalsAgainstAvg?: number;
|
|
539
|
+
savePctg?: number;
|
|
540
|
+
shutouts?: number;
|
|
541
|
+
saves?: number;
|
|
542
|
+
toi?: string;
|
|
543
|
+
}
|
|
544
|
+
export interface GoalPlay {
|
|
545
|
+
eventId: number;
|
|
546
|
+
periodDescriptor: PeriodDescriptor;
|
|
547
|
+
timeInPeriod: string;
|
|
548
|
+
timeRemaining: string;
|
|
549
|
+
typeCode: number;
|
|
550
|
+
typeDescKey: 'goal';
|
|
551
|
+
sortOrder: number;
|
|
552
|
+
details: GoalDetails;
|
|
553
|
+
situationCode?: OpenUnion<'1551' | '0651' | '1331' | '1010' | '0101' | '1451'>;
|
|
554
|
+
homeTeamDefendingSide?: OpenUnion<'left' | 'right'>;
|
|
555
|
+
/** Absent for preseason games and older seasons */
|
|
556
|
+
pptReplayUrl?: string;
|
|
557
|
+
}
|
|
558
|
+
export interface HitDetails {
|
|
559
|
+
xCoord: number;
|
|
560
|
+
yCoord: number;
|
|
561
|
+
zoneCode: ZoneCode;
|
|
562
|
+
eventOwnerTeamId: number;
|
|
563
|
+
hittingPlayerId: number;
|
|
564
|
+
hitteePlayerId: number;
|
|
565
|
+
}
|
|
566
|
+
export interface HitPlay {
|
|
567
|
+
eventId: number;
|
|
568
|
+
periodDescriptor: PeriodDescriptor;
|
|
569
|
+
timeInPeriod: string;
|
|
570
|
+
timeRemaining: string;
|
|
571
|
+
situationCode: OpenUnion<'1551' | '1451' | '1541' | '1331' | '1441'>;
|
|
572
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
573
|
+
typeCode: number;
|
|
574
|
+
typeDescKey: 'hit';
|
|
575
|
+
sortOrder: number;
|
|
576
|
+
details: HitDetails;
|
|
577
|
+
}
|
|
578
|
+
export interface GoalieLeader {
|
|
579
|
+
playerId: number;
|
|
580
|
+
name: LocalizedString;
|
|
581
|
+
firstName: LocalizedString;
|
|
582
|
+
lastName: LocalizedString;
|
|
583
|
+
sweaterNumber: number;
|
|
584
|
+
headshot: string;
|
|
585
|
+
positionCode: PositionCode;
|
|
586
|
+
gamesPlayed?: number;
|
|
587
|
+
seasonPoints?: number;
|
|
588
|
+
record?: string;
|
|
589
|
+
gaa?: number;
|
|
590
|
+
savePctg?: number;
|
|
591
|
+
shutouts?: number;
|
|
592
|
+
}
|
|
593
|
+
export interface GoalieTeamTotals {
|
|
594
|
+
record: string;
|
|
595
|
+
gaa: number;
|
|
596
|
+
savePctg: number;
|
|
597
|
+
shutouts: number;
|
|
598
|
+
gamesPlayed: number;
|
|
599
|
+
}
|
|
600
|
+
export interface Last10TeamRecord {
|
|
601
|
+
record: string;
|
|
602
|
+
streakType: string;
|
|
603
|
+
streak: number;
|
|
604
|
+
pastGameResults: PastGameResult[];
|
|
605
|
+
}
|
|
606
|
+
export interface SkatingLeader {
|
|
607
|
+
playerId: number;
|
|
608
|
+
name: LocalizedString;
|
|
609
|
+
firstName: LocalizedString;
|
|
610
|
+
lastName: LocalizedString;
|
|
611
|
+
sweaterNumber: number;
|
|
612
|
+
positionCode: PositionCode;
|
|
613
|
+
headshot: string;
|
|
614
|
+
value: number;
|
|
615
|
+
}
|
|
616
|
+
export interface LinescoreByPeriod {
|
|
617
|
+
periodDescriptor: PeriodDescriptor;
|
|
618
|
+
away: number;
|
|
619
|
+
home: number;
|
|
620
|
+
}
|
|
621
|
+
export interface LinescoreShootout {
|
|
622
|
+
awayDecidingGoal: number;
|
|
623
|
+
awayConversions: number;
|
|
624
|
+
awayAttempts: number;
|
|
625
|
+
homeDecidingGoal: number;
|
|
626
|
+
homeConversions: number;
|
|
627
|
+
homeAttempts: number;
|
|
628
|
+
}
|
|
629
|
+
export interface LinescoreTotals {
|
|
630
|
+
away: number;
|
|
631
|
+
home: number;
|
|
632
|
+
}
|
|
633
|
+
export interface MatchupGoalieComparison {
|
|
634
|
+
contextLabel: string;
|
|
635
|
+
contextSeason: number;
|
|
636
|
+
homeTeam: GoalieComparisonTeam;
|
|
637
|
+
awayTeam: GoalieComparisonTeam;
|
|
638
|
+
}
|
|
639
|
+
export interface MatchupGoalieSeasonStats {
|
|
640
|
+
contextLabel: string;
|
|
641
|
+
contextSeason: number;
|
|
642
|
+
goalies: SeasonStatsGoalie[];
|
|
643
|
+
}
|
|
644
|
+
export interface MatchupSkaterComparison {
|
|
645
|
+
contextLabel: string;
|
|
646
|
+
contextSeason: number;
|
|
647
|
+
leaders: SkatingLeadersLeader[];
|
|
648
|
+
}
|
|
649
|
+
export interface MatchupSkaterSeasonStats {
|
|
650
|
+
contextLabel: string;
|
|
651
|
+
contextSeason: number;
|
|
652
|
+
skaters: SeasonStatsSkater[];
|
|
653
|
+
}
|
|
654
|
+
export interface MissedShotDetails {
|
|
655
|
+
xCoord: number;
|
|
656
|
+
yCoord: number;
|
|
657
|
+
zoneCode: ZoneCode;
|
|
658
|
+
reason: OpenUnion<'hit-right-post' | 'wide-right' | 'high-and-wide-right' | 'wide-left' | 'above-crossbar' | 'short' | 'high-and-wide-left' | 'hit-crossbar' | 'hit-left-post'>;
|
|
659
|
+
shotType: ShotType;
|
|
660
|
+
shootingPlayerId: number;
|
|
661
|
+
goalieInNetId: number;
|
|
662
|
+
eventOwnerTeamId: number;
|
|
663
|
+
}
|
|
664
|
+
export interface MissedShotPlay {
|
|
665
|
+
eventId: number;
|
|
666
|
+
periodDescriptor: PeriodDescriptor;
|
|
667
|
+
timeInPeriod: string;
|
|
668
|
+
timeRemaining: string;
|
|
669
|
+
situationCode: OpenUnion<'1551' | '1451' | '1441' | '1541' | '0651' | '1331' | '1010'>;
|
|
670
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
671
|
+
typeCode: number;
|
|
672
|
+
typeDescKey: 'missed-shot';
|
|
673
|
+
sortOrder: number;
|
|
674
|
+
details: MissedShotDetails;
|
|
675
|
+
}
|
|
676
|
+
export interface PenaltyPlayer {
|
|
677
|
+
firstName: LocalizedString;
|
|
678
|
+
lastName: LocalizedString;
|
|
679
|
+
sweaterNumber: number;
|
|
680
|
+
}
|
|
681
|
+
export interface PenaltyDetails {
|
|
682
|
+
typeCode: string;
|
|
683
|
+
descKey: OpenUnion<'elbowing' | 'holding-obstruction' | 'high-sticking' | 'interference' | 'holding-the-stick' | 'slashing' | 'cross-checking' | 'roughing' | 'holding' | 'hooking' | 'fighting' | 'tripping'>;
|
|
684
|
+
duration: number;
|
|
685
|
+
committedByPlayerId: number;
|
|
686
|
+
drawnByPlayerId: number;
|
|
687
|
+
eventOwnerTeamId: number;
|
|
688
|
+
xCoord?: number;
|
|
689
|
+
yCoord?: number;
|
|
690
|
+
zoneCode?: ZoneCode;
|
|
691
|
+
}
|
|
692
|
+
export interface PenaltyEntry {
|
|
693
|
+
timeInPeriod: string;
|
|
694
|
+
type: string;
|
|
695
|
+
duration: number;
|
|
696
|
+
committedByPlayer: PenaltyPlayer;
|
|
697
|
+
teamAbbrev: LocalizedString;
|
|
698
|
+
drawnBy: PenaltyPlayer;
|
|
699
|
+
descKey: OpenUnion<'elbowing' | 'holding-obstruction' | 'high-sticking' | 'interference' | 'holding-the-stick' | 'slashing' | 'cross-checking' | 'roughing' | 'holding' | 'hooking' | 'fighting' | 'tripping'>;
|
|
700
|
+
}
|
|
701
|
+
export interface PenaltyPlay {
|
|
702
|
+
eventId: number;
|
|
703
|
+
periodDescriptor: PeriodDescriptor;
|
|
704
|
+
timeInPeriod: string;
|
|
705
|
+
timeRemaining: string;
|
|
706
|
+
typeCode: number;
|
|
707
|
+
typeDescKey: 'penalty';
|
|
708
|
+
sortOrder: number;
|
|
709
|
+
details: PenaltyDetails;
|
|
710
|
+
situationCode?: OpenUnion<'1551' | '1451' | '0641' | '1541' | '0651'>;
|
|
711
|
+
homeTeamDefendingSide?: OpenUnion<'left' | 'right'>;
|
|
712
|
+
}
|
|
713
|
+
export interface PeriodEndPlay {
|
|
714
|
+
eventId: number;
|
|
715
|
+
periodDescriptor: PeriodDescriptor;
|
|
716
|
+
timeInPeriod: string;
|
|
717
|
+
timeRemaining: string;
|
|
718
|
+
situationCode: OpenUnion<'1541' | '1551' | '1331' | '1451' | '0101'>;
|
|
719
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
720
|
+
typeCode: number;
|
|
721
|
+
typeDescKey: 'period-end';
|
|
722
|
+
sortOrder: number;
|
|
723
|
+
}
|
|
724
|
+
export interface PeriodStartPlay {
|
|
725
|
+
eventId: number;
|
|
726
|
+
periodDescriptor: PeriodDescriptor;
|
|
727
|
+
timeInPeriod: string;
|
|
728
|
+
timeRemaining: string;
|
|
729
|
+
situationCode: OpenUnion<'1551' | '1541' | '1331' | '1010'>;
|
|
730
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
731
|
+
typeCode: number;
|
|
732
|
+
typeDescKey: 'period-start';
|
|
733
|
+
sortOrder: number;
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Play-by-play events keyed by `typeDescKey`. Augment this interface to add
|
|
737
|
+
* an event type the SDK doesn't know about yet; `Play` picks it up.
|
|
738
|
+
*/
|
|
739
|
+
export interface PlayTypes {
|
|
740
|
+
'blocked-shot': BlockedShotPlay;
|
|
741
|
+
'delayed-penalty': DelayedPenaltyPlay;
|
|
742
|
+
faceoff: FaceoffPlay;
|
|
743
|
+
'game-end': GameEndPlay;
|
|
744
|
+
giveaway: GiveawayPlay;
|
|
745
|
+
goal: GoalPlay;
|
|
746
|
+
hit: HitPlay;
|
|
747
|
+
'missed-shot': MissedShotPlay;
|
|
748
|
+
penalty: PenaltyPlay;
|
|
749
|
+
'period-end': PeriodEndPlay;
|
|
750
|
+
'period-start': PeriodStartPlay;
|
|
751
|
+
'shootout-complete': ShootoutCompletePlay;
|
|
752
|
+
'shot-on-goal': ShotOnGoalPlay;
|
|
753
|
+
stoppage: StoppagePlay;
|
|
754
|
+
takeaway: TakeawayPlay;
|
|
755
|
+
}
|
|
756
|
+
export type Play = PlayTypes[keyof PlayTypes];
|
|
757
|
+
export interface PlayByPlay {
|
|
758
|
+
id: number;
|
|
759
|
+
season: number;
|
|
760
|
+
gameType: GameType;
|
|
761
|
+
limitedScoring: boolean;
|
|
762
|
+
gameDate: string;
|
|
763
|
+
venue: LocalizedString;
|
|
764
|
+
venueLocation: LocalizedString;
|
|
765
|
+
startTimeUTC: string;
|
|
766
|
+
easternUTCOffset: string;
|
|
767
|
+
venueUTCOffset: string;
|
|
768
|
+
tvBroadcasts: TvBroadcast[];
|
|
769
|
+
gameState: GameState;
|
|
770
|
+
gameScheduleState: GameScheduleState;
|
|
771
|
+
awayTeam: PlayByPlayTeam;
|
|
772
|
+
homeTeam: PlayByPlayTeam;
|
|
773
|
+
shootoutInUse: boolean;
|
|
774
|
+
otInUse: boolean;
|
|
775
|
+
clock: GameClock;
|
|
776
|
+
displayPeriod: number;
|
|
777
|
+
/** Absent for playoff games */
|
|
778
|
+
maxPeriods?: number;
|
|
779
|
+
plays: Play[];
|
|
780
|
+
rosterSpots: PlayByPlayRosterSpot[];
|
|
781
|
+
regPeriods: number;
|
|
782
|
+
periodDescriptor?: PeriodDescriptor;
|
|
783
|
+
gameOutcome?: GameOutcome;
|
|
784
|
+
/** Empty object in every sample seen. */
|
|
785
|
+
summary?: Record<string, never>;
|
|
786
|
+
}
|
|
787
|
+
export interface PlayByPlayTeam {
|
|
788
|
+
id: number;
|
|
789
|
+
commonName: LocalizedString;
|
|
790
|
+
abbrev: string;
|
|
791
|
+
score: number;
|
|
792
|
+
logo: string;
|
|
793
|
+
darkLogo: string;
|
|
794
|
+
placeName: LocalizedString;
|
|
795
|
+
placeNameWithPreposition: LocalizedString;
|
|
796
|
+
sog?: number;
|
|
797
|
+
}
|
|
798
|
+
export interface PlayByPlayRosterSpot {
|
|
799
|
+
teamId: number;
|
|
800
|
+
playerId: number;
|
|
801
|
+
firstName: LocalizedString;
|
|
802
|
+
lastName: LocalizedString;
|
|
803
|
+
sweaterNumber: number;
|
|
804
|
+
positionCode: PositionCode;
|
|
805
|
+
headshot: string;
|
|
806
|
+
}
|
|
807
|
+
export interface BoxscoreTeamPlayers {
|
|
808
|
+
forwards: BoxscoreSkater[];
|
|
809
|
+
defense: BoxscoreSkater[];
|
|
810
|
+
goalies: BoxscoreGoalie[];
|
|
811
|
+
}
|
|
812
|
+
export interface PreGameMatchupGoalieComparison {
|
|
813
|
+
season: number;
|
|
814
|
+
gameTypes: GameType[];
|
|
815
|
+
awayTeam: GoalieLeader[];
|
|
816
|
+
homeTeam: GoalieLeader[];
|
|
817
|
+
}
|
|
818
|
+
export interface PreGameMatchupSkatingLeaders {
|
|
819
|
+
season: number;
|
|
820
|
+
gameTypes: GameType[];
|
|
821
|
+
gameLimit: number;
|
|
822
|
+
leaders: SkatingLeadersLeader[];
|
|
823
|
+
}
|
|
824
|
+
export interface PreGameMatchupTeamSeasonStats {
|
|
825
|
+
awayTeam: TeamSeasonStats;
|
|
826
|
+
homeTeam: TeamSeasonStats;
|
|
827
|
+
}
|
|
828
|
+
export interface RightRail {
|
|
829
|
+
seasonSeries: RightRailSeasonSeries[];
|
|
830
|
+
seasonSeriesWins: RightRailSeasonSeriesWins;
|
|
831
|
+
gameInfo: RightRailGameInfo;
|
|
832
|
+
/** Only present before the game starts */
|
|
833
|
+
teamSeasonStats?: RightRailTeamSeasonStats;
|
|
834
|
+
/** Only present before the game starts */
|
|
835
|
+
last10Record?: RightRailLast10Record;
|
|
836
|
+
linescore?: RightRailLinescore;
|
|
837
|
+
shotsByPeriod?: LinescoreByPeriod[];
|
|
838
|
+
teamGameStats?: SummaryTeamGameStat[];
|
|
839
|
+
gameReports?: RightRailGameReports;
|
|
840
|
+
/** Playoff games only */
|
|
841
|
+
seasonSeriesFullCoverageUrl?: GameFullCoverageUrls;
|
|
842
|
+
gameVideo?: RightRailGameVideo;
|
|
843
|
+
}
|
|
844
|
+
export interface RightRailGameInfo {
|
|
845
|
+
referees: GameOfficial[];
|
|
846
|
+
linesmen: GameOfficial[];
|
|
847
|
+
awayTeam: GameInfoTeam;
|
|
848
|
+
homeTeam: GameInfoTeam;
|
|
849
|
+
}
|
|
850
|
+
export interface RightRailGameReports {
|
|
851
|
+
gameSummary: string;
|
|
852
|
+
eventSummary: string;
|
|
853
|
+
playByPlay: string;
|
|
854
|
+
faceoffSummary: string;
|
|
855
|
+
faceoffComparison: string;
|
|
856
|
+
rosters: string;
|
|
857
|
+
shotSummary: string;
|
|
858
|
+
/** Absent for preseason games */
|
|
859
|
+
shiftChart?: string;
|
|
860
|
+
toiAway: string;
|
|
861
|
+
toiHome: string;
|
|
862
|
+
/** Only for games decided by a shootout */
|
|
863
|
+
shootoutSummary?: string;
|
|
864
|
+
}
|
|
865
|
+
export interface RightRailGameVideo {
|
|
866
|
+
threeMinRecap: number;
|
|
867
|
+
condensedGame?: number;
|
|
868
|
+
}
|
|
869
|
+
export interface RightRailLast10Record {
|
|
870
|
+
contextLabel: string;
|
|
871
|
+
contextSeason: number;
|
|
872
|
+
awayTeam: Last10TeamRecord;
|
|
873
|
+
homeTeam: Last10TeamRecord;
|
|
874
|
+
}
|
|
875
|
+
export interface RightRailLinescore {
|
|
876
|
+
byPeriod: LinescoreByPeriod[];
|
|
877
|
+
totals: LinescoreTotals;
|
|
878
|
+
/** Only for games decided by a shootout */
|
|
879
|
+
shootout?: LinescoreShootout;
|
|
880
|
+
}
|
|
881
|
+
export interface RightRailSeasonSeries {
|
|
882
|
+
id: number;
|
|
883
|
+
season: number;
|
|
884
|
+
gameType: GameType;
|
|
885
|
+
gameDate: string;
|
|
886
|
+
startTimeUTC: string;
|
|
887
|
+
easternUTCOffset: string;
|
|
888
|
+
venueUTCOffset: string;
|
|
889
|
+
gameState: GameState;
|
|
890
|
+
gameScheduleState: GameScheduleState;
|
|
891
|
+
awayTeam: SeasonSeriesTeam;
|
|
892
|
+
homeTeam: SeasonSeriesTeam;
|
|
893
|
+
periodDescriptor?: PeriodDescriptor;
|
|
894
|
+
gameCenterLink: string;
|
|
895
|
+
gameOutcome: GameOutcome;
|
|
896
|
+
}
|
|
897
|
+
export interface GameFullCoverageUrls {
|
|
898
|
+
cs: string;
|
|
899
|
+
de: string;
|
|
900
|
+
fi: string;
|
|
901
|
+
sv: string;
|
|
902
|
+
sk: string;
|
|
903
|
+
en: string;
|
|
904
|
+
fr: string;
|
|
905
|
+
es: string;
|
|
906
|
+
}
|
|
907
|
+
export interface RightRailSeasonSeriesWins {
|
|
908
|
+
awayTeamWins: number;
|
|
909
|
+
homeTeamWins: number;
|
|
910
|
+
/** Playoff games only */
|
|
911
|
+
neededToWin?: number;
|
|
912
|
+
}
|
|
913
|
+
export interface RightRailTeamSeasonStats {
|
|
914
|
+
contextLabel: string;
|
|
915
|
+
contextSeason: number;
|
|
916
|
+
awayTeam: TeamSeasonStats;
|
|
917
|
+
homeTeam: TeamSeasonStats;
|
|
918
|
+
}
|
|
919
|
+
export interface ScoringGoal {
|
|
920
|
+
eventId: number;
|
|
921
|
+
strength: string;
|
|
922
|
+
playerId: number;
|
|
923
|
+
firstName: LocalizedString;
|
|
924
|
+
lastName: LocalizedString;
|
|
925
|
+
name: LocalizedString;
|
|
926
|
+
teamAbbrev: LocalizedString;
|
|
927
|
+
headshot: string;
|
|
928
|
+
goalsToDate?: number;
|
|
929
|
+
awayScore: number;
|
|
930
|
+
homeScore: number;
|
|
931
|
+
leadingTeamAbbrev?: LocalizedString;
|
|
932
|
+
timeInPeriod: string;
|
|
933
|
+
shotType: ShotType;
|
|
934
|
+
goalModifier: string;
|
|
935
|
+
assists: GoalAssist[];
|
|
936
|
+
isHome: boolean;
|
|
937
|
+
situationCode?: OpenUnion<'1551' | '0651' | '1331' | '0101' | '1451'>;
|
|
938
|
+
/** Absent for preseason games and older seasons */
|
|
939
|
+
highlightClipSharingUrl?: string;
|
|
940
|
+
/** Absent for preseason games and older seasons */
|
|
941
|
+
highlightClip?: number;
|
|
942
|
+
homeTeamDefendingSide?: OpenUnion<'left' | 'right'>;
|
|
943
|
+
goalInGame?: number;
|
|
944
|
+
discreteClip?: number;
|
|
945
|
+
discreteClipFr?: number;
|
|
946
|
+
highlightClipSharingUrlFr?: string;
|
|
947
|
+
highlightClipFr?: number;
|
|
948
|
+
}
|
|
949
|
+
export interface SeasonSeriesTeam {
|
|
950
|
+
id: number;
|
|
951
|
+
abbrev: string;
|
|
952
|
+
logo: string;
|
|
953
|
+
score?: number;
|
|
954
|
+
}
|
|
955
|
+
export interface ShiftChart {
|
|
956
|
+
data: ShiftEntry[];
|
|
957
|
+
total: number;
|
|
958
|
+
}
|
|
959
|
+
export interface ShiftEntry {
|
|
960
|
+
id: number;
|
|
961
|
+
detailCode: number;
|
|
962
|
+
duration: string | null;
|
|
963
|
+
endTime: string;
|
|
964
|
+
eventDescription: string | null;
|
|
965
|
+
eventNumber: number;
|
|
966
|
+
firstName: string;
|
|
967
|
+
gameId: number;
|
|
968
|
+
hexValue: string;
|
|
969
|
+
lastName: string;
|
|
970
|
+
period: number;
|
|
971
|
+
playerId: number;
|
|
972
|
+
shiftNumber: number;
|
|
973
|
+
startTime: string;
|
|
974
|
+
teamAbbrev: string;
|
|
975
|
+
teamId: number;
|
|
976
|
+
teamName: string;
|
|
977
|
+
typeCode: number;
|
|
978
|
+
eventDetails?: string | null;
|
|
979
|
+
}
|
|
980
|
+
export interface ShootoutCompletePlay {
|
|
981
|
+
eventId: number;
|
|
982
|
+
periodDescriptor: PeriodDescriptor;
|
|
983
|
+
timeInPeriod: string;
|
|
984
|
+
timeRemaining: string;
|
|
985
|
+
situationCode: OpenUnion<'0101'>;
|
|
986
|
+
homeTeamDefendingSide: OpenUnion<'right'>;
|
|
987
|
+
typeCode: number;
|
|
988
|
+
typeDescKey: 'shootout-complete';
|
|
989
|
+
sortOrder: number;
|
|
990
|
+
}
|
|
991
|
+
export interface ShootoutEvent {
|
|
992
|
+
sequence: number;
|
|
993
|
+
playerId: number;
|
|
994
|
+
teamAbbrev: LocalizedString;
|
|
995
|
+
firstName: LocalizedString;
|
|
996
|
+
lastName: LocalizedString;
|
|
997
|
+
shotType: ShotType;
|
|
998
|
+
result: string;
|
|
999
|
+
headshot: string;
|
|
1000
|
+
gameWinner: boolean;
|
|
1001
|
+
homeScore: number;
|
|
1002
|
+
awayScore: number;
|
|
1003
|
+
}
|
|
1004
|
+
export interface ShootoutLiveScore {
|
|
1005
|
+
home: number;
|
|
1006
|
+
away: number;
|
|
1007
|
+
}
|
|
1008
|
+
export interface ShotOnGoalDetails {
|
|
1009
|
+
shotType: ShotType;
|
|
1010
|
+
shootingPlayerId: number;
|
|
1011
|
+
goalieInNetId: number;
|
|
1012
|
+
eventOwnerTeamId: number;
|
|
1013
|
+
awaySOG: number;
|
|
1014
|
+
homeSOG: number;
|
|
1015
|
+
xCoord?: number;
|
|
1016
|
+
yCoord?: number;
|
|
1017
|
+
zoneCode?: ZoneCode;
|
|
1018
|
+
}
|
|
1019
|
+
export interface ShotOnGoalPlay {
|
|
1020
|
+
eventId: number;
|
|
1021
|
+
periodDescriptor: PeriodDescriptor;
|
|
1022
|
+
timeInPeriod: string;
|
|
1023
|
+
timeRemaining: string;
|
|
1024
|
+
typeCode: number;
|
|
1025
|
+
typeDescKey: 'shot-on-goal';
|
|
1026
|
+
sortOrder: number;
|
|
1027
|
+
details: ShotOnGoalDetails;
|
|
1028
|
+
situationCode?: OpenUnion<'1551' | '1441' | '1541' | '1451' | '0651' | '1331' | '1010' | '0101'>;
|
|
1029
|
+
homeTeamDefendingSide?: OpenUnion<'left' | 'right'>;
|
|
1030
|
+
}
|
|
1031
|
+
export interface SeasonStatsSkater {
|
|
1032
|
+
playerId: number;
|
|
1033
|
+
teamId: number;
|
|
1034
|
+
sweaterNumber: number;
|
|
1035
|
+
name: LocalizedString;
|
|
1036
|
+
position: string;
|
|
1037
|
+
gamesPlayed?: number;
|
|
1038
|
+
goals?: number;
|
|
1039
|
+
assists?: number;
|
|
1040
|
+
points?: number;
|
|
1041
|
+
plusMinus?: number;
|
|
1042
|
+
pim?: number;
|
|
1043
|
+
avgPoints?: number;
|
|
1044
|
+
avgTimeOnIce?: string;
|
|
1045
|
+
gameWinningGoals?: number;
|
|
1046
|
+
shots?: number;
|
|
1047
|
+
shootingPctg?: number;
|
|
1048
|
+
faceoffWinningPctg?: number;
|
|
1049
|
+
powerPlayGoals?: number;
|
|
1050
|
+
blockedShots?: number;
|
|
1051
|
+
hits?: number;
|
|
1052
|
+
}
|
|
1053
|
+
export interface SkatingLeadersLeader {
|
|
1054
|
+
category: string;
|
|
1055
|
+
awayLeader: SkatingLeader;
|
|
1056
|
+
homeLeader: SkatingLeader;
|
|
1057
|
+
}
|
|
1058
|
+
export interface StoppageDetails {
|
|
1059
|
+
reason: OpenUnion<'offside' | 'puck-frozen' | 'puck-in-netting' | 'goalie-stopped-after-sog' | 'puck-in-benches' | 'icing' | 'referee-or-linesman' | 'puck-in-crowd' | 'net-dislodged-offensive-skater' | 'tv-timeout' | 'hand-pass' | 'high-stick' | 'visitor-timeout' | 'objects-on-ice'>;
|
|
1060
|
+
secondaryReason?: OpenUnion<'tv-timeout' | 'visitor-timeout'>;
|
|
1061
|
+
}
|
|
1062
|
+
export interface StoppagePlay {
|
|
1063
|
+
eventId: number;
|
|
1064
|
+
periodDescriptor: PeriodDescriptor;
|
|
1065
|
+
timeInPeriod: string;
|
|
1066
|
+
timeRemaining: string;
|
|
1067
|
+
situationCode: OpenUnion<'1551' | '1451' | '1541' | '0651' | '1441'>;
|
|
1068
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
1069
|
+
typeCode: number;
|
|
1070
|
+
typeDescKey: 'stoppage';
|
|
1071
|
+
sortOrder: number;
|
|
1072
|
+
details: StoppageDetails;
|
|
1073
|
+
}
|
|
1074
|
+
export interface SummaryPenalty {
|
|
1075
|
+
periodDescriptor: PeriodDescriptor;
|
|
1076
|
+
penalties: PenaltyEntry[];
|
|
1077
|
+
}
|
|
1078
|
+
export interface SummaryScoring {
|
|
1079
|
+
periodDescriptor: PeriodDescriptor;
|
|
1080
|
+
goals: ScoringGoal[];
|
|
1081
|
+
}
|
|
1082
|
+
export interface SummaryShootout {
|
|
1083
|
+
liveScore: ShootoutLiveScore;
|
|
1084
|
+
events: ShootoutEvent[];
|
|
1085
|
+
}
|
|
1086
|
+
export interface SummaryTeamGameStat {
|
|
1087
|
+
category: string;
|
|
1088
|
+
awayValue: number | string;
|
|
1089
|
+
homeValue: number | string;
|
|
1090
|
+
}
|
|
1091
|
+
export interface SummaryThreeStar {
|
|
1092
|
+
star: number;
|
|
1093
|
+
playerId: number;
|
|
1094
|
+
teamAbbrev: string;
|
|
1095
|
+
headshot: string;
|
|
1096
|
+
name: string;
|
|
1097
|
+
sweaterNo: number;
|
|
1098
|
+
position: string;
|
|
1099
|
+
goals?: number;
|
|
1100
|
+
assists?: number;
|
|
1101
|
+
points?: number;
|
|
1102
|
+
/** Goalies only */
|
|
1103
|
+
goalsAgainstAverage?: number;
|
|
1104
|
+
/** Goalies only */
|
|
1105
|
+
savePctg?: number;
|
|
1106
|
+
}
|
|
1107
|
+
export interface TakeawayDetails {
|
|
1108
|
+
xCoord: number;
|
|
1109
|
+
yCoord: number;
|
|
1110
|
+
zoneCode: ZoneCode;
|
|
1111
|
+
playerId: number;
|
|
1112
|
+
eventOwnerTeamId: number;
|
|
1113
|
+
}
|
|
1114
|
+
export interface TakeawayPlay {
|
|
1115
|
+
eventId: number;
|
|
1116
|
+
periodDescriptor: PeriodDescriptor;
|
|
1117
|
+
timeInPeriod: string;
|
|
1118
|
+
timeRemaining: string;
|
|
1119
|
+
situationCode: OpenUnion<'1551' | '1451' | '1541' | '0651' | '1331'>;
|
|
1120
|
+
homeTeamDefendingSide: OpenUnion<'left' | 'right'>;
|
|
1121
|
+
typeCode: number;
|
|
1122
|
+
typeDescKey: 'takeaway';
|
|
1123
|
+
sortOrder: number;
|
|
1124
|
+
details: TakeawayDetails;
|
|
1125
|
+
}
|
|
1126
|
+
export interface TeamSeasonStats {
|
|
1127
|
+
ppPctg: number;
|
|
1128
|
+
pkPctg: number;
|
|
1129
|
+
faceoffWinningPctg: number;
|
|
1130
|
+
goalsForPerGamePlayed: number;
|
|
1131
|
+
goalsAgainstPerGamePlayed: number;
|
|
1132
|
+
ppPctgRank: number;
|
|
1133
|
+
pkPctgRank: number;
|
|
1134
|
+
faceoffWinningPctgRank: number;
|
|
1135
|
+
goalsForPerGamePlayedRank: number;
|
|
1136
|
+
goalsAgainstPerGamePlayedRank: number;
|
|
1137
|
+
}
|