nhl-api-ts 0.2.0 → 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.
Files changed (51) hide show
  1. package/README.md +81 -9
  2. package/dist/api/draft.d.mts +61 -0
  3. package/dist/api/draft.mjs +68 -0
  4. package/dist/api/edge.d.mts +221 -24
  5. package/dist/api/edge.mjs +276 -27
  6. package/dist/api/game-center.d.mts +63 -15
  7. package/dist/api/game-center.mjs +67 -8
  8. package/dist/api/helpers.d.mts +6 -6
  9. package/dist/api/helpers.mjs +6 -6
  10. package/dist/api/misc.d.mts +120 -6
  11. package/dist/api/misc.mjs +162 -7
  12. package/dist/api/players.d.mts +59 -7
  13. package/dist/api/players.mjs +85 -4
  14. package/dist/api/query/cayenne.d.mts +4 -0
  15. package/dist/api/query/cayenne.mjs +13 -0
  16. package/dist/api/query/sorting/sorting-options.d.mts +8 -0
  17. package/dist/api/query/sorting/sorting-options.mjs +30 -0
  18. package/dist/api/schedule.d.mts +36 -23
  19. package/dist/api/schedule.mjs +40 -16
  20. package/dist/api/standings.d.mts +3 -3
  21. package/dist/api/standings.mjs +4 -4
  22. package/dist/api/stats.d.mts +105 -16
  23. package/dist/api/stats.mjs +145 -41
  24. package/dist/api/teams.d.mts +48 -8
  25. package/dist/api/teams.mjs +59 -7
  26. package/dist/cli/colors.d.mts +2 -2
  27. package/dist/cli/colors.mjs +6 -2
  28. package/dist/cli/commands.mjs +521 -46
  29. package/dist/cli/run.mjs +7 -5
  30. package/dist/http-client.d.mts +2 -1
  31. package/dist/http-client.mjs +10 -3
  32. package/dist/index.d.mts +8 -2
  33. package/dist/index.mjs +3 -0
  34. package/dist/nhl-client.d.mts +70 -15
  35. package/dist/nhl-client.mjs +40 -17
  36. package/dist/types/common.d.mts +0 -1
  37. package/dist/types/draft.d.mts +97 -0
  38. package/dist/types/draft.mjs +1 -0
  39. package/dist/types/edge.d.mts +301 -5
  40. package/dist/types/game-center.d.mts +277 -119
  41. package/dist/types/index.d.mts +1 -0
  42. package/dist/types/misc.d.mts +101 -0
  43. package/dist/types/misc.mjs +0 -1
  44. package/dist/types/players.d.mts +23 -2
  45. package/dist/types/schedule.d.mts +50 -62
  46. package/dist/types/standings.d.mts +1 -2
  47. package/dist/types/stats.d.mts +313 -111
  48. package/dist/types/teams.d.mts +29 -1
  49. package/dist/utils.d.mts +1 -1
  50. package/dist/utils.mjs +3 -1
  51. package/package.json +7 -28
@@ -76,9 +76,18 @@ export interface EdgeRankedMeasurement {
76
76
  leagueAvg: EdgeMeasurement;
77
77
  }
78
78
  export interface Goalie5v5Detail {
79
- savePctg5v5Last10: unknown[];
79
+ savePctg5v5Last10: Goalie5v5Last10Game[];
80
80
  savePctg5v5Details: Goalie5v5Details;
81
81
  }
82
+ export interface Goalie5v5Last10Game {
83
+ gameCenterLink: string;
84
+ savePctg: number;
85
+ gameDate: string;
86
+ decision: string;
87
+ playerOnHomeTeam: boolean;
88
+ homeTeam: EdgeGameTeam;
89
+ awayTeam: EdgeGameTeam;
90
+ }
82
91
  export interface Goalie5v5Details {
83
92
  savePctg: Goalie5v5Stat;
84
93
  savePctgClose: Goalie5v5Stat;
@@ -90,11 +99,19 @@ export interface GoalieComparison {
90
99
  seasonsWithEdgeStats: EdgeSeasonAvailability[];
91
100
  shotLocationSummary: GoalieComparisonLocationSummary[];
92
101
  shotLocationDetails: GoalieComparisonLocationArea[];
93
- savePctg5v5Last10: unknown[];
102
+ savePctg5v5Last10: GoalieComparisonLast10Game[];
94
103
  savePctg5v5Details: GoalieComparison5v5Details;
95
- savePctgLast10: unknown[];
104
+ savePctgLast10: GoalieComparisonLast10Game[];
96
105
  savePctgDetails: GoalieComparisonSaveDetails;
97
106
  }
107
+ export interface GoalieComparisonLast10Game {
108
+ gameCenterLink: string;
109
+ savePctg: number;
110
+ gameDate: string;
111
+ playerOnHomeTeam: boolean;
112
+ homeTeam: EdgeTeamRef;
113
+ awayTeam: EdgeTeamRef;
114
+ }
98
115
  export interface GoalieComparison5v5Details {
99
116
  savePctg: number;
100
117
  savePctgClose: number;
@@ -174,10 +191,10 @@ export interface GoalieDetailStats {
174
191
  }
175
192
  export interface GoalieLanding {
176
193
  seasonsWithEdgeStats: EdgeSeasonAvailability[];
177
- /** Absent when variant=playoffs. Low sample count */
194
+ /** Regular season only */
178
195
  minimumGamesPlayed?: number;
179
196
  leaders: GoalieLandingLeaders;
180
- /** Absent when variant=regular. Low sample count */
197
+ /** Playoffs only */
181
198
  minimumMinutesPlayed?: number;
182
199
  }
183
200
  export interface GoalieLandingLeaders {
@@ -1022,3 +1039,282 @@ export interface ShotSpeedOverlay {
1022
1039
  timeInPeriod: string;
1023
1040
  gameType: GameType;
1024
1041
  }
1042
+ /** Player of an EDGE top-10 row. `goalieShotLocationTop10` rows use `EdgeLeaderPlayer`. */
1043
+ export interface EdgeTop10Player {
1044
+ firstName: LocalizedString;
1045
+ lastName: LocalizedString;
1046
+ slug: string;
1047
+ headshot: string;
1048
+ position: string;
1049
+ sweaterNumber: number;
1050
+ team: EdgeGameTeam;
1051
+ }
1052
+ /** Team of the team skating speed and shot location top-10 rows. The others use `EdgeGameTeam` (no `id`). */
1053
+ export interface EdgeTop10Team {
1054
+ id: number;
1055
+ commonName: LocalizedString;
1056
+ placeNameWithPreposition: LocalizedString;
1057
+ abbrev: string;
1058
+ teamLogo: TeamLogo;
1059
+ slug: string;
1060
+ }
1061
+ export interface EdgeTeamDistanceMax {
1062
+ imperial: number;
1063
+ metric: number;
1064
+ overlay: TeamDistanceOverlay;
1065
+ }
1066
+ export interface SkaterDistanceTop10Row {
1067
+ player: EdgeTop10Player;
1068
+ distanceTotal: EdgeMeasurement;
1069
+ distancePer60: EdgeMeasurement;
1070
+ distanceMaxPerGame: SkaterComparisonDistanceMaxGame;
1071
+ distanceMaxPerPeriod: SkaterComparisonDistanceMaxGame;
1072
+ }
1073
+ export interface SkaterSpeedTop10Row {
1074
+ player: EdgeTop10Player;
1075
+ maxSpeed: SkaterComparisonMaxSpeed;
1076
+ burstsOver22: number;
1077
+ bursts20To22: number;
1078
+ bursts18To20: number;
1079
+ }
1080
+ export interface SkaterZoneTimeTop10Row {
1081
+ player: EdgeTop10Player;
1082
+ /** Share of time on ice, e.g. 0.4957. */
1083
+ offensiveZoneTime: number;
1084
+ neutralZoneTime: number;
1085
+ defensiveZoneTime: number;
1086
+ }
1087
+ export interface SkaterShotSpeedTop10Row {
1088
+ player: EdgeTop10Player;
1089
+ hardestShot: SkaterComparisonTopShot;
1090
+ shotAttemptsOver100: number;
1091
+ shotAttempts90To100: number;
1092
+ shotAttempts80To90: number;
1093
+ shotAttempts70To80: number;
1094
+ }
1095
+ export interface SkaterShotLocationTop10Row {
1096
+ player: EdgeTop10Player;
1097
+ all: number;
1098
+ highDanger: number;
1099
+ midRange: number;
1100
+ longRange: number;
1101
+ }
1102
+ export interface Goalie5v5Top10Row {
1103
+ player: EdgeTop10Player;
1104
+ savePctg: number;
1105
+ savePctgClose: number;
1106
+ shots: number;
1107
+ shotsPer60: number;
1108
+ }
1109
+ export interface GoalieShotLocationTop10Row {
1110
+ player: EdgeLeaderPlayer;
1111
+ all: number;
1112
+ highDanger: number;
1113
+ midRange: number;
1114
+ longRange: number;
1115
+ }
1116
+ export interface GoalieSavePercentageTop10Row {
1117
+ player: EdgeTop10Player;
1118
+ gamesOver900: number;
1119
+ pctgGamesOver900: number;
1120
+ }
1121
+ export interface TeamSkatingDistanceTop10Row {
1122
+ team: EdgeGameTeam;
1123
+ distanceTotal: EdgeMeasurement;
1124
+ distancePer60: EdgeMeasurement;
1125
+ distanceMaxPerGame: EdgeTeamDistanceMax;
1126
+ distanceMaxPerPeriod: EdgeTeamDistanceMax;
1127
+ }
1128
+ export interface TeamSkatingSpeedTop10Row {
1129
+ team: EdgeTop10Team;
1130
+ /** `maxSpeed` on the skater leaderboard. */
1131
+ maxSkatingSpeed: SkaterComparisonMaxSpeed;
1132
+ burstsOver22: number;
1133
+ bursts20To22: number;
1134
+ bursts18To20: number;
1135
+ }
1136
+ export interface TeamZoneTimeTop10Row {
1137
+ team: EdgeGameTeam;
1138
+ /** Share of time on ice, e.g. 0.4957. */
1139
+ offensiveZoneTime: number;
1140
+ neutralZoneTime: number;
1141
+ defensiveZoneTime: number;
1142
+ }
1143
+ export interface TeamShotSpeedTop10Row {
1144
+ team: EdgeGameTeam;
1145
+ hardestShot: SkaterComparisonTopShot;
1146
+ shotAttemptsOver100: number;
1147
+ shotAttempts90To100: number;
1148
+ shotAttempts80To90: number;
1149
+ shotAttempts70To80: number;
1150
+ }
1151
+ export interface TeamShotLocationTop10Row {
1152
+ team: EdgeTop10Team;
1153
+ all: number;
1154
+ highDanger: number;
1155
+ midRange: number;
1156
+ longRange: number;
1157
+ }
1158
+ export interface TeamComparisonTeam {
1159
+ id: number;
1160
+ commonName: LocalizedString;
1161
+ placeNameWithPreposition: LocalizedString;
1162
+ abbrev: string;
1163
+ teamLogo: TeamLogo;
1164
+ slug: string;
1165
+ conference: string;
1166
+ division: string;
1167
+ wins: number;
1168
+ losses: number;
1169
+ otLosses: number;
1170
+ gamesPlayed: number;
1171
+ points: number;
1172
+ }
1173
+ export interface TeamComparisonDistanceGame {
1174
+ gameCenterLink: string;
1175
+ gameDate: string;
1176
+ isHomeTeam: boolean;
1177
+ distanceSkated: EdgeMeasurement;
1178
+ homeTeam: EdgeGameTeam;
1179
+ awayTeam: EdgeGameTeam;
1180
+ }
1181
+ export interface TeamComparisonDistance {
1182
+ distanceTotal: EdgeMeasurement;
1183
+ distancePer60: EdgeMeasurement;
1184
+ distanceMaxGame: EdgeTeamDistanceMax;
1185
+ distanceMaxPeriod: EdgeTeamDistanceMax;
1186
+ }
1187
+ export interface TeamComparisonShotDifferential {
1188
+ shotAttemptDifferential: number;
1189
+ sogDifferential: number;
1190
+ }
1191
+ export interface TeamComparison {
1192
+ team: TeamComparisonTeam;
1193
+ seasonsWithEdgeStats: EdgeSeasonAvailability[];
1194
+ shotSpeedDetails: SkaterComparisonShotSpeed;
1195
+ skatingSpeedDetails: SkaterComparisonSpeed;
1196
+ skatingDistanceLast10: TeamComparisonDistanceGame[];
1197
+ skatingDistanceDetails: TeamComparisonDistance;
1198
+ shotLocationDetails: SkaterComparisonLocationArea[];
1199
+ shotLocationTotals: SkaterComparisonLocationTotal[];
1200
+ zoneTimeDetails: SkaterComparisonZoneTime;
1201
+ shotDifferential: TeamComparisonShotDifferential;
1202
+ }
1203
+ export interface ByTheNumbersPlayer {
1204
+ birthDate: string;
1205
+ id: number;
1206
+ firstName: LocalizedString;
1207
+ lastName: LocalizedString;
1208
+ sweaterNumber: number;
1209
+ position: string;
1210
+ slug: string;
1211
+ headshot: string;
1212
+ shootsCatches: ShootsCatches;
1213
+ team: EdgeTeamRef;
1214
+ }
1215
+ export interface ByTheNumbersTeam {
1216
+ id: number;
1217
+ commonName: LocalizedString;
1218
+ placeNameWithPreposition: LocalizedString;
1219
+ abbrev: string;
1220
+ slug: string;
1221
+ teamLogo: TeamLogo;
1222
+ conference: string;
1223
+ division: string;
1224
+ }
1225
+ export interface ByTheNumbersHardestShot {
1226
+ player: ByTheNumbersPlayer;
1227
+ overlay: ShotSpeedOverlay;
1228
+ shotSpeed: EdgeMeasurement;
1229
+ }
1230
+ export interface ByTheNumbersMaxSkatingSpeed {
1231
+ player: ByTheNumbersPlayer;
1232
+ overlay: SkatingSpeedOverlay;
1233
+ skatingSpeed: EdgeMeasurement;
1234
+ }
1235
+ export interface ByTheNumbersDistanceSkater {
1236
+ player: ByTheNumbersPlayer;
1237
+ distanceSkated: SkaterComparisonDistanceMaxGame;
1238
+ }
1239
+ export interface ByTheNumbersDistanceGame {
1240
+ gameCenterLink: string;
1241
+ gameDate: string;
1242
+ isHomeTeam: boolean;
1243
+ homeTeam: ByTheNumbersTeam;
1244
+ awayTeam: ByTheNumbersTeam;
1245
+ distanceSkated: EdgeMeasurement;
1246
+ }
1247
+ export interface ByTheNumbersTopSkaterName {
1248
+ name: LocalizedString;
1249
+ }
1250
+ export interface ByTheNumbersTopSkater {
1251
+ gameCenterLink: string;
1252
+ gameDate: string;
1253
+ playerOnHomeTeam: boolean;
1254
+ distanceSkated: EdgeMeasurement;
1255
+ toi: number;
1256
+ homeTeam: ByTheNumbersTeam;
1257
+ awayTeam: ByTheNumbersTeam;
1258
+ player: ByTheNumbersTopSkaterName;
1259
+ }
1260
+ export interface ByTheNumbersDistanceTeam {
1261
+ team: ByTheNumbersTeam;
1262
+ game: ByTheNumbersDistanceGame;
1263
+ topFiveSkaters: ByTheNumbersTopSkater[];
1264
+ }
1265
+ export interface ByTheNumbersDistanceLeague {
1266
+ distanceSkated: EdgeMeasurement;
1267
+ topFiveSkaters: ByTheNumbersTopSkater[];
1268
+ }
1269
+ export interface ByTheNumbersTeamOverlay {
1270
+ team: ByTheNumbersTeam;
1271
+ gameDate: string;
1272
+ awayTeam: OverlayTeam;
1273
+ homeTeam: OverlayTeam;
1274
+ gameOutcome: GameOutcome;
1275
+ periodDescriptor: OverlayPeriod;
1276
+ gameType: GameType;
1277
+ }
1278
+ export interface ByTheNumbersSogArea {
1279
+ area: string;
1280
+ shots: number;
1281
+ }
1282
+ export interface ByTheNumbersSogTeam {
1283
+ overlay: ByTheNumbersTeamOverlay;
1284
+ team: ByTheNumbersTeam;
1285
+ shots: number;
1286
+ sogDetails: ByTheNumbersSogArea[];
1287
+ }
1288
+ export interface ByTheNumbersSavesArea {
1289
+ area: string;
1290
+ saves: number;
1291
+ }
1292
+ export interface ByTheNumbersHighDangerSaves {
1293
+ overlay: SkatingDistanceOverlay;
1294
+ player: ByTheNumbersPlayer;
1295
+ saves: number;
1296
+ shotLocationDetails: ByTheNumbersSavesArea[];
1297
+ }
1298
+ export interface ByTheNumbersDistanceMaxGame {
1299
+ player: ByTheNumbersPlayer;
1300
+ overlay: SkatingDistanceOverlay;
1301
+ distanceSkated: EdgeMeasurement;
1302
+ }
1303
+ /**
1304
+ * League-wide EDGE highlights. The `/now` form describes the latest game
1305
+ * night (`games`, `gameDate` and the nightly leaders); an explicit season
1306
+ * returns the season bests (`hardestShotSkater`, `maxSkatingSpeedSkater`,
1307
+ * `distanceMaxGame`).
1308
+ */
1309
+ export interface ByTheNumbers {
1310
+ games?: number;
1311
+ gameDate?: string;
1312
+ hardestShotSkater: ByTheNumbersHardestShot;
1313
+ maxSkatingSpeedSkater: ByTheNumbersMaxSkatingSpeed;
1314
+ totalDistanceSkatedSkater?: ByTheNumbersDistanceSkater;
1315
+ totalDistanceSkatedTeam?: ByTheNumbersDistanceTeam;
1316
+ totalDistanceSkatedLeague?: ByTheNumbersDistanceLeague;
1317
+ sogTeam?: ByTheNumbersSogTeam;
1318
+ highDangerSavesGoalie?: ByTheNumbersHighDangerSaves;
1319
+ distanceMaxGame?: ByTheNumbersDistanceMaxGame;
1320
+ }