nhl-api-ts 0.2.1 → 0.3.0
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 +72 -5
- package/dist/api/draft.d.mts +61 -0
- package/dist/api/draft.mjs +68 -0
- package/dist/api/edge.d.mts +198 -1
- package/dist/api/edge.mjs +207 -4
- package/dist/api/game-center.d.mts +49 -1
- package/dist/api/game-center.mjs +47 -0
- package/dist/api/misc.d.mts +115 -1
- package/dist/api/misc.mjs +147 -2
- package/dist/api/players.d.mts +55 -3
- package/dist/api/players.mjs +80 -3
- package/dist/api/query/cayenne.d.mts +4 -0
- package/dist/api/query/cayenne.mjs +13 -0
- package/dist/api/query/sorting/sorting-options.d.mts +8 -0
- package/dist/api/query/sorting/sorting-options.mjs +30 -0
- package/dist/api/schedule.d.mts +19 -6
- package/dist/api/schedule.mjs +17 -5
- package/dist/api/stats.d.mts +95 -6
- package/dist/api/stats.mjs +130 -30
- package/dist/api/teams.d.mts +43 -3
- package/dist/api/teams.mjs +51 -3
- package/dist/cli/commands.mjs +487 -22
- package/dist/http-client.d.mts +2 -1
- package/dist/http-client.mjs +8 -1
- package/dist/index.d.mts +8 -2
- package/dist/index.mjs +3 -0
- package/dist/nhl-client.d.mts +69 -14
- package/dist/nhl-client.mjs +33 -12
- package/dist/types/draft.d.mts +97 -0
- package/dist/types/draft.mjs +1 -0
- package/dist/types/edge.d.mts +299 -3
- package/dist/types/game-center.d.mts +223 -8
- package/dist/types/index.d.mts +1 -0
- package/dist/types/misc.d.mts +101 -0
- package/dist/types/misc.mjs +0 -1
- package/dist/types/players.d.mts +22 -0
- package/dist/types/schedule.d.mts +16 -0
- package/dist/types/stats.d.mts +207 -1
- package/dist/types/teams.d.mts +29 -1
- package/package.json +1 -1
package/dist/types/stats.d.mts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { GameType, LocalizedString, PositionCode, ShootsCatches } from '#src/types/common.mjs';
|
|
1
|
+
import type { GameType, LocalizedString, OpenUnion, PositionCode, ShootsCatches } from '#src/types/common.mjs';
|
|
2
|
+
import type { StatsPlayer } from '#src/types/players.mjs';
|
|
3
|
+
import type { StatsTeamLogo } from '#src/types/teams.mjs';
|
|
2
4
|
export interface AwardSeason {
|
|
3
5
|
/** Goalies only */
|
|
4
6
|
gaa?: number;
|
|
@@ -59,6 +61,60 @@ export interface CareerTotalsRegularSeason {
|
|
|
59
61
|
avgToi?: string;
|
|
60
62
|
faceoffWinningPctg?: number;
|
|
61
63
|
}
|
|
64
|
+
export interface ClubStats {
|
|
65
|
+
/** Season in YYYYYYYY format, as a string */
|
|
66
|
+
season: string;
|
|
67
|
+
gameType: GameType;
|
|
68
|
+
/** Empty when the team has no games of this type (e.g. missed the playoffs) */
|
|
69
|
+
skaters: ClubStatsSkater[];
|
|
70
|
+
goalies: ClubStatsGoalie[];
|
|
71
|
+
}
|
|
72
|
+
export interface ClubStatsSkater {
|
|
73
|
+
playerId: number;
|
|
74
|
+
headshot: string;
|
|
75
|
+
firstName: LocalizedString;
|
|
76
|
+
lastName: LocalizedString;
|
|
77
|
+
positionCode: PositionCode;
|
|
78
|
+
gamesPlayed: number;
|
|
79
|
+
goals: number;
|
|
80
|
+
assists: number;
|
|
81
|
+
points: number;
|
|
82
|
+
plusMinus: number;
|
|
83
|
+
penaltyMinutes: number;
|
|
84
|
+
powerPlayGoals: number;
|
|
85
|
+
shorthandedGoals: number;
|
|
86
|
+
gameWinningGoals: number;
|
|
87
|
+
overtimeGoals: number;
|
|
88
|
+
shots: number;
|
|
89
|
+
shootingPctg: number;
|
|
90
|
+
avgTimeOnIcePerGame: number;
|
|
91
|
+
avgShiftsPerGame: number;
|
|
92
|
+
faceoffWinPctg: number;
|
|
93
|
+
}
|
|
94
|
+
export interface ClubStatsGoalie {
|
|
95
|
+
playerId: number;
|
|
96
|
+
headshot: string;
|
|
97
|
+
firstName: LocalizedString;
|
|
98
|
+
lastName: LocalizedString;
|
|
99
|
+
gamesPlayed: number;
|
|
100
|
+
gamesStarted: number;
|
|
101
|
+
wins: number;
|
|
102
|
+
losses: number;
|
|
103
|
+
/** Only in seasons that had ties (before 2005-06) */
|
|
104
|
+
ties?: number;
|
|
105
|
+
goalsAgainstAverage: number;
|
|
106
|
+
savePercentage: number;
|
|
107
|
+
shotsAgainst: number;
|
|
108
|
+
saves: number;
|
|
109
|
+
goalsAgainst: number;
|
|
110
|
+
shutouts: number;
|
|
111
|
+
goals: number;
|
|
112
|
+
assists: number;
|
|
113
|
+
points: number;
|
|
114
|
+
penaltyMinutes?: number;
|
|
115
|
+
timeOnIce: number;
|
|
116
|
+
overtimeLosses?: number;
|
|
117
|
+
}
|
|
62
118
|
export interface ClubStatsSeason {
|
|
63
119
|
season: number;
|
|
64
120
|
gameTypes: GameType[];
|
|
@@ -102,6 +158,44 @@ export interface GameLogEntry {
|
|
|
102
158
|
shorthandedGoals?: number;
|
|
103
159
|
shorthandedPoints?: number;
|
|
104
160
|
}
|
|
161
|
+
/** `categories` values accepted by `stats.skaterStatsLeaders`. */
|
|
162
|
+
export type SkaterLeaderCategory = 'goals' | 'assists' | 'points' | 'plusMinus' | 'penaltyMins' | 'goalsPp' | 'goalsSh' | 'faceoffLeaders' | 'toi';
|
|
163
|
+
/** `categories` values accepted by `stats.goalieStatsLeaders`. */
|
|
164
|
+
export type GoalieLeaderCategory = 'wins' | 'shutouts' | 'savePctg' | 'goalsAgainstAverage';
|
|
165
|
+
/** One row of a web stats-leaders category. */
|
|
166
|
+
export interface StatsLeader {
|
|
167
|
+
id: number;
|
|
168
|
+
firstName: LocalizedString;
|
|
169
|
+
lastName: LocalizedString;
|
|
170
|
+
/** Absent for some players without a current number */
|
|
171
|
+
sweaterNumber?: number;
|
|
172
|
+
headshot: string;
|
|
173
|
+
teamAbbrev: string;
|
|
174
|
+
teamName: LocalizedString;
|
|
175
|
+
teamLogo: string;
|
|
176
|
+
position: PositionCode;
|
|
177
|
+
value: number;
|
|
178
|
+
}
|
|
179
|
+
/** Skater leaders keyed by category. A category is absent when `categories` leaves it out. */
|
|
180
|
+
export interface SkaterStatsLeaders {
|
|
181
|
+
goals?: StatsLeader[];
|
|
182
|
+
assists?: StatsLeader[];
|
|
183
|
+
points?: StatsLeader[];
|
|
184
|
+
plusMinus?: StatsLeader[];
|
|
185
|
+
penaltyMins?: StatsLeader[];
|
|
186
|
+
goalsPp?: StatsLeader[];
|
|
187
|
+
goalsSh?: StatsLeader[];
|
|
188
|
+
faceoffLeaders?: StatsLeader[];
|
|
189
|
+
/** `value` is average time on ice per game, in seconds */
|
|
190
|
+
toi?: StatsLeader[];
|
|
191
|
+
}
|
|
192
|
+
/** Goalie leaders keyed by category. A category is absent when `categories` leaves it out. */
|
|
193
|
+
export interface GoalieStatsLeaders {
|
|
194
|
+
wins?: StatsLeader[];
|
|
195
|
+
shutouts?: StatsLeader[];
|
|
196
|
+
savePctg?: StatsLeader[];
|
|
197
|
+
goalsAgainstAverage?: StatsLeader[];
|
|
198
|
+
}
|
|
105
199
|
export interface GoalieAdvancedRow {
|
|
106
200
|
completeGamePct: number;
|
|
107
201
|
completeGames: number;
|
|
@@ -1080,3 +1174,115 @@ export interface GoalieReportRows {
|
|
|
1080
1174
|
shootout: GoalieShootoutRow;
|
|
1081
1175
|
startedVsRelieved: GoalieStartedVsRelievedRow;
|
|
1082
1176
|
}
|
|
1177
|
+
/** Team of a stats API leaders row: the `en/team` row plus its logo history. */
|
|
1178
|
+
export interface StatsLeaderTeam {
|
|
1179
|
+
id: number;
|
|
1180
|
+
franchiseId: number;
|
|
1181
|
+
fullName: string;
|
|
1182
|
+
leagueId: number;
|
|
1183
|
+
logos: StatsTeamLogo[];
|
|
1184
|
+
rawTricode: string;
|
|
1185
|
+
triCode: string;
|
|
1186
|
+
}
|
|
1187
|
+
export interface SkaterPointsLeaderRow {
|
|
1188
|
+
player: StatsPlayer;
|
|
1189
|
+
team: StatsLeaderTeam;
|
|
1190
|
+
points: number;
|
|
1191
|
+
}
|
|
1192
|
+
export interface SkaterGoalsLeaderRow {
|
|
1193
|
+
player: StatsPlayer;
|
|
1194
|
+
team: StatsLeaderTeam;
|
|
1195
|
+
goals: number;
|
|
1196
|
+
}
|
|
1197
|
+
export interface SkaterAssistsLeaderRow {
|
|
1198
|
+
player: StatsPlayer;
|
|
1199
|
+
team: StatsLeaderTeam;
|
|
1200
|
+
assists: number;
|
|
1201
|
+
}
|
|
1202
|
+
export interface SkaterGamesPlayedLeaderRow {
|
|
1203
|
+
player: StatsPlayer;
|
|
1204
|
+
team: StatsLeaderTeam;
|
|
1205
|
+
gamesPlayed: number;
|
|
1206
|
+
}
|
|
1207
|
+
export interface GoalieGaaLeaderRow {
|
|
1208
|
+
player: StatsPlayer;
|
|
1209
|
+
team: StatsLeaderTeam;
|
|
1210
|
+
/** `null` in every all-time row (no minimum games), set when filtered to a season */
|
|
1211
|
+
gaa: number | null;
|
|
1212
|
+
}
|
|
1213
|
+
export interface GoalieSavePctgLeaderRow {
|
|
1214
|
+
player: StatsPlayer;
|
|
1215
|
+
team: StatsLeaderTeam;
|
|
1216
|
+
savePctg: number;
|
|
1217
|
+
}
|
|
1218
|
+
export interface GoalieShutoutsLeaderRow {
|
|
1219
|
+
player: StatsPlayer;
|
|
1220
|
+
team: StatsLeaderTeam;
|
|
1221
|
+
shutouts: number;
|
|
1222
|
+
}
|
|
1223
|
+
export interface GoalieTimeOnIceLeaderRow {
|
|
1224
|
+
player: StatsPlayer;
|
|
1225
|
+
team: StatsLeaderTeam;
|
|
1226
|
+
/** Seconds */
|
|
1227
|
+
timeOnIce: number;
|
|
1228
|
+
}
|
|
1229
|
+
export interface GoalieGamesPlayedLeaderRow {
|
|
1230
|
+
player: StatsPlayer;
|
|
1231
|
+
team: StatsLeaderTeam;
|
|
1232
|
+
gamesPlayed: number;
|
|
1233
|
+
}
|
|
1234
|
+
/** Row type of `stats.skaterLeaders` for each `attribute`. */
|
|
1235
|
+
export interface SkaterLeaderRows {
|
|
1236
|
+
points: SkaterPointsLeaderRow;
|
|
1237
|
+
goals: SkaterGoalsLeaderRow;
|
|
1238
|
+
assists: SkaterAssistsLeaderRow;
|
|
1239
|
+
gamesPlayed: SkaterGamesPlayedLeaderRow;
|
|
1240
|
+
}
|
|
1241
|
+
/** Row type of `stats.goalieLeaders` for each `attribute`. */
|
|
1242
|
+
export interface GoalieLeaderRows {
|
|
1243
|
+
gaa: GoalieGaaLeaderRow;
|
|
1244
|
+
savePctg: GoalieSavePctgLeaderRow;
|
|
1245
|
+
shutouts: GoalieShutoutsLeaderRow;
|
|
1246
|
+
timeOnIce: GoalieTimeOnIceLeaderRow;
|
|
1247
|
+
gamesPlayed: GoalieGamesPlayedLeaderRow;
|
|
1248
|
+
}
|
|
1249
|
+
/** A career milestone an active skater is approaching. */
|
|
1250
|
+
export interface SkaterMilestone {
|
|
1251
|
+
id: number;
|
|
1252
|
+
assists: number;
|
|
1253
|
+
currentTeamId: number;
|
|
1254
|
+
firstName: string;
|
|
1255
|
+
gameTypeId: GameType;
|
|
1256
|
+
gamesPlayed: number;
|
|
1257
|
+
goals: number;
|
|
1258
|
+
lastName: string;
|
|
1259
|
+
milestone: OpenUnion<'Assists' | 'Games Played' | 'Goals' | 'Points'>;
|
|
1260
|
+
milestoneAmount: number;
|
|
1261
|
+
playerFullName: string;
|
|
1262
|
+
playerId: number;
|
|
1263
|
+
points: number;
|
|
1264
|
+
teamAbbrev: string;
|
|
1265
|
+
teamCommonName: string;
|
|
1266
|
+
teamFullName: string;
|
|
1267
|
+
teamPlaceName: string;
|
|
1268
|
+
}
|
|
1269
|
+
/** A career milestone an active goalie is approaching. */
|
|
1270
|
+
export interface GoalieMilestone {
|
|
1271
|
+
id: number;
|
|
1272
|
+
currentTeamId: number;
|
|
1273
|
+
firstName: string;
|
|
1274
|
+
gameTypeId: GameType;
|
|
1275
|
+
gamesPlayed: number;
|
|
1276
|
+
lastName: string;
|
|
1277
|
+
milestone: OpenUnion<'Games Played' | 'Minutes Played' | 'Shutouts' | 'Wins'>;
|
|
1278
|
+
milestoneAmount: number;
|
|
1279
|
+
playerFullName: string;
|
|
1280
|
+
playerId: number;
|
|
1281
|
+
so: number;
|
|
1282
|
+
teamAbbrev: string;
|
|
1283
|
+
teamCommonName: string;
|
|
1284
|
+
teamFullName: string;
|
|
1285
|
+
teamPlaceName: string;
|
|
1286
|
+
toiMinutes: number;
|
|
1287
|
+
wins: number;
|
|
1288
|
+
}
|
package/dist/types/teams.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { LocalizedString, PositionCode, ShootsCatches } from '#src/types/common.mjs';
|
|
1
|
+
import type { LocalizedString, OpenUnion, PositionCode, ShootsCatches } from '#src/types/common.mjs';
|
|
2
|
+
import type { ScoreboardDate } from '#src/types/game-center.mjs';
|
|
2
3
|
export interface Franchise {
|
|
3
4
|
id: number;
|
|
4
5
|
fullName: string;
|
|
@@ -27,3 +28,30 @@ export interface RosterPlayer {
|
|
|
27
28
|
birthCountry: string;
|
|
28
29
|
birthStateProvince?: LocalizedString;
|
|
29
30
|
}
|
|
31
|
+
/** One team of the stats API (`en/team`), past or present. */
|
|
32
|
+
export interface StatsTeam {
|
|
33
|
+
id: number;
|
|
34
|
+
/** `null` for the placeholder teams (TBD, NHL) */
|
|
35
|
+
franchiseId: number | null;
|
|
36
|
+
fullName: string;
|
|
37
|
+
leagueId: number;
|
|
38
|
+
rawTricode: string;
|
|
39
|
+
triCode: string;
|
|
40
|
+
}
|
|
41
|
+
export interface StatsTeamLogo {
|
|
42
|
+
id: number;
|
|
43
|
+
background: OpenUnion<'light' | 'dark' | 'alt' | 'black'>;
|
|
44
|
+
endSeason: number;
|
|
45
|
+
secureUrl: string;
|
|
46
|
+
startSeason: number;
|
|
47
|
+
teamId: number;
|
|
48
|
+
url: string;
|
|
49
|
+
}
|
|
50
|
+
export interface TeamScoreboard {
|
|
51
|
+
focusedDate: string;
|
|
52
|
+
focusedDateCount: number;
|
|
53
|
+
clubTimeZone: string;
|
|
54
|
+
clubUTCOffset: string;
|
|
55
|
+
clubScheduleLink: string;
|
|
56
|
+
gamesByDate: ScoreboardDate[];
|
|
57
|
+
}
|