nhle-api 0.6.0 → 0.7.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/CHANGELOG.md CHANGED
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [Unreleased]
9
+
10
+ ## [0.7.0] - 2026-10-19
11
+
12
+ ### Added
13
+
14
+ - `EdgeByTheNumbers.highDangerSavesGoalie`, the goalie with the most high-danger saves, newly returned by `adv.byTheNumbers`
15
+ - Live-game fields on `Scoreboard` games: `clock`, `situation` and each team's `sog`
16
+ - `DraftPositionCode` (`C`, `LW`, `RW`, `D`, `G`, `F`, `C/LW`, `C/RW`, `LW/RW`), used by the `draft.picks`, `draft.rankings` and `draft.tracker` response types
17
+ - The drift check flags position codes a response's types don't declare, and `--update` won't accept them
18
+
19
+ ### Changed
20
+
21
+ - `savePctgLast10` and `savePctg5v5Last10` on `adv.goalies.compare` and `adv.goalies.savePercentage5v5` are typed as `EdgeGoalieGame[]` and `EdgeGoalieGameDecision[]` instead of `unknown[]`, now that the API fills them
22
+ - **Breaking:** `PositionCode` is now `'C' | 'L' | 'R' | 'D' | 'G'`. Outside the draft endpoints the API sends `L`/`R` for wingers, never `LW`/`RW`
23
+
8
24
  ## [0.6.0] - 2026-10-03
9
25
 
10
26
  ### Added
package/lib/index.d.cts CHANGED
@@ -219,8 +219,14 @@ type PenaltyTypeCode = 'MIN' | 'BEN' | 'MAJ' | (string & {});
219
219
  type Market = 'H' | 'A' | 'N' | 'S';
220
220
  /** The country code for this broadcast. (CA = Canada, US = United States) */
221
221
  type CountryCode$2 = 'CA' | 'US';
222
- /** The position code for a player. (C = Center, L[W] = Left Wing, R[W] = Right Wing, D = Defenseman, G = Goalie) */
223
- type PositionCode = 'C' | 'LW' | 'L' | 'RW' | 'R' | 'D' | 'G';
222
+ /** The position code for a player. (C = Center, L = Left Wing, R = Right Wing, D = Defenseman, G = Goalie) */
223
+ type PositionCode = 'C' | 'L' | 'R' | 'D' | 'G';
224
+ /**
225
+ * The position code for a draft prospect. The draft endpoints spell
226
+ * wingers `LW`/`RW` and may list a generic forward (`F`) or two
227
+ * positions (`C/LW`).
228
+ */
229
+ type DraftPositionCode = 'C' | 'LW' | 'RW' | 'D' | 'G' | 'F' | 'C/LW' | 'C/RW' | 'LW/RW';
224
230
  /** Player's shooting/catching handedness. (L = Left, R = Right) */
225
231
  type ShootsCatches = 'L' | 'R';
226
232
  type HexColorCode = `#${string}`;
@@ -460,6 +466,15 @@ interface EdgeByTheNumbers {
460
466
  shots: number;
461
467
  }[];
462
468
  };
469
+ /** Goalie with the most high-danger saves; added to the API in October 2026. */
470
+ highDangerSavesGoalie?: {
471
+ player: EdgePlayer;
472
+ saves: number;
473
+ shotLocationDetails: {
474
+ area: string;
475
+ saves: number;
476
+ }[];
477
+ };
463
478
  }
464
479
  /** Response of `adv.skaters.detail` */
465
480
  interface EdgeSkaterDetail {
@@ -966,14 +981,14 @@ interface EdgeGoalieComparison {
966
981
  saves: number;
967
982
  savePctg: number;
968
983
  }[];
969
- savePctg5v5Last10: unknown[];
984
+ savePctg5v5Last10: EdgeGoalieGame[];
970
985
  savePctg5v5Details: {
971
986
  savePctg: number;
972
987
  savePctgClose: number;
973
988
  shots: number;
974
989
  shotsPer60: number;
975
990
  };
976
- savePctgLast10: unknown[];
991
+ savePctgLast10: EdgeGoalieGame[];
977
992
  savePctgDetails: {
978
993
  gamesAbove900: number;
979
994
  pctgGamesAbove900: number;
@@ -1020,17 +1035,22 @@ interface EdgeGoalieLanding {
1020
1035
  };
1021
1036
  minimumMinutesPlayed?: number;
1022
1037
  }
1038
+ /** A goalie's save percentage in one of their last 10 games */
1039
+ interface EdgeGoalieGame {
1040
+ gameCenterLink: string;
1041
+ savePctg: number;
1042
+ gameDate: string;
1043
+ playerOnHomeTeam: boolean;
1044
+ homeTeam: EdgeTeam;
1045
+ awayTeam: EdgeTeam;
1046
+ }
1047
+ /** `EdgeGoalieGame` with the goalie's decision (`W`, `L` or `O`) */
1048
+ interface EdgeGoalieGameDecision extends EdgeGoalieGame {
1049
+ decision: string;
1050
+ }
1023
1051
  /** Response of `adv.goalies.savePercentage` */
1024
1052
  interface EdgeGoalieSavePercentage {
1025
- savePctgLast10: {
1026
- gameCenterLink: string;
1027
- savePctg: number;
1028
- gameDate: string;
1029
- decision: string;
1030
- playerOnHomeTeam: boolean;
1031
- homeTeam: EdgeTeam;
1032
- awayTeam: EdgeTeam;
1033
- }[];
1053
+ savePctgLast10: EdgeGoalieGameDecision[];
1034
1054
  savePctgDetails: {
1035
1055
  gamesAbove900: {
1036
1056
  value: number;
@@ -1046,7 +1066,7 @@ interface EdgeGoalieSavePercentage {
1046
1066
  }
1047
1067
  /** Response of `adv.goalies.savePercentage5v5` */
1048
1068
  interface EdgeGoalieSavePercentage5v5 {
1049
- savePctg5v5Last10: unknown[];
1069
+ savePctg5v5Last10: EdgeGoalieGameDecision[];
1050
1070
  savePctg5v5Details: {
1051
1071
  savePctg: {
1052
1072
  value: number;
@@ -1702,7 +1722,7 @@ declare const GameNumber$1: arktype_internal_variants_object_ts.ObjectType<(In:
1702
1722
  declare const DraftRound$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => Out<string>, {}>;
1703
1723
  declare const EventId$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
1704
1724
  declare const GameId$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
1705
- declare const SeriesLetter$2: arktype_internal_variants_string_ts.StringType<"H" | "A" | "N" | "C" | "L" | "D" | "G" | "O" | "B" | "E" | "F" | "I" | "J" | "K" | "M", {}>;
1725
+ declare const SeriesLetter$2: arktype_internal_variants_string_ts.StringType<"H" | "A" | "N" | "C" | "L" | "D" | "G" | "F" | "O" | "B" | "E" | "I" | "J" | "K" | "M", {}>;
1706
1726
  declare const GameState$1: arktype_internal_variants_string_ts.StringType<"FUT" | "LIV" | "FIN", {}>;
1707
1727
  declare const CountryCode$1: arktype_internal_variants_object_ts.ObjectType<(In: string) => Out<string>, {}>;
1708
1728
  declare const PostalCode$1: arktype_internal_variants_object_ts.ObjectType<(In: string) => Out<string>, {}>;
@@ -3094,11 +3114,11 @@ interface GamecenterBoxscore {
3094
3114
  regPeriods: number;
3095
3115
  awayTeam: Team$a;
3096
3116
  homeTeam: Team$a;
3097
- clock: Clock$4;
3117
+ clock: Clock$5;
3098
3118
  playerByGameStats?: PlayerByGameStats;
3099
3119
  summary?: Summary$3;
3100
3120
  gameOutcome?: GameOutcome$5;
3101
- situation?: Situation$2;
3121
+ situation?: Situation$3;
3102
3122
  }
3103
3123
  interface Team$a {
3104
3124
  id: number;
@@ -3112,7 +3132,7 @@ interface Team$a {
3112
3132
  placeNameWithPreposition: LocalizedText;
3113
3133
  radioLink?: string;
3114
3134
  }
3115
- interface Clock$4 {
3135
+ interface Clock$5 {
3116
3136
  timeRemaining: string;
3117
3137
  secondsRemaining: number;
3118
3138
  running: boolean;
@@ -3184,14 +3204,14 @@ interface Goalie$4 extends BasePlayer {
3184
3204
  saves: number;
3185
3205
  }
3186
3206
  type Decision$1 = 'W' | 'L' | 'O';
3187
- interface Situation$2 {
3188
- homeTeam: SituationDetails;
3189
- awayTeam: SituationDetails;
3207
+ interface Situation$3 {
3208
+ homeTeam: SituationDetails$1;
3209
+ awayTeam: SituationDetails$1;
3190
3210
  situationCode: string;
3191
3211
  timeRemaining: string;
3192
3212
  secondsRemaining: number;
3193
3213
  }
3194
- interface SituationDetails {
3214
+ interface SituationDetails$1 {
3195
3215
  abbrev: string;
3196
3216
  situationDescriptions?: string[];
3197
3217
  strength: number;
@@ -3221,7 +3241,7 @@ interface Pick$1 {
3221
3241
  teamPickHistory: string;
3222
3242
  firstName: LocalizedText;
3223
3243
  lastName: LocalizedText;
3224
- positionCode: PositionCode;
3244
+ positionCode: DraftPositionCode;
3225
3245
  countryCode: string;
3226
3246
  height: number;
3227
3247
  weight: number;
@@ -3247,7 +3267,7 @@ type Name = 'North American Skater' | 'International Skater' | 'North American G
3247
3267
  interface Ranking {
3248
3268
  lastName: string;
3249
3269
  firstName: string;
3250
- positionCode: PositionCode;
3270
+ positionCode: DraftPositionCode;
3251
3271
  shootsCatches: ShootsCatches;
3252
3272
  heightInInches: number;
3253
3273
  weightInPounds: number;
@@ -3285,7 +3305,7 @@ interface Pick {
3285
3305
  state: string;
3286
3306
  lastName: LocalizedText;
3287
3307
  firstName: LocalizedText;
3288
- positionCode: PositionCode;
3308
+ positionCode: DraftPositionCode;
3289
3309
  }
3290
3310
 
3291
3311
  interface GamecenterLanding {
@@ -3312,11 +3332,11 @@ interface GamecenterLanding {
3312
3332
  otInUse: boolean;
3313
3333
  tiesInUse: boolean;
3314
3334
  summary?: Summary$2;
3315
- clock?: Clock$3;
3335
+ clock?: Clock$4;
3316
3336
  ticketsLink?: string;
3317
3337
  ticketsLinkFr?: string;
3318
3338
  matchup?: Matchup;
3319
- situation?: Situation$1;
3339
+ situation?: Situation$2;
3320
3340
  }
3321
3341
  interface LandingTeam {
3322
3342
  id: number;
@@ -3331,7 +3351,7 @@ interface LandingTeam {
3331
3351
  record?: string;
3332
3352
  radioLink?: string;
3333
3353
  }
3334
- interface Clock$3 {
3354
+ interface Clock$4 {
3335
3355
  timeRemaining: string;
3336
3356
  secondsRemaining: number;
3337
3357
  running: boolean;
@@ -3452,7 +3472,7 @@ interface PeriodDescriptor$8 {
3452
3472
  periodType: PeriodType;
3453
3473
  maxRegulationPeriods: number;
3454
3474
  }
3455
- interface Situation$1 {
3475
+ interface Situation$2 {
3456
3476
  homeTeam: SituationTeam;
3457
3477
  awayTeam: SituationTeam;
3458
3478
  situationCode: string;
@@ -3678,7 +3698,7 @@ interface GamecenterPlayByPlay {
3678
3698
  homeTeam: Team$7;
3679
3699
  shootoutInUse: boolean;
3680
3700
  otInUse: boolean;
3681
- clock: Clock$2;
3701
+ clock: Clock$3;
3682
3702
  displayPeriod: number;
3683
3703
  maxPeriods: number;
3684
3704
  gameOutcome?: GameOutcome$4;
@@ -3686,9 +3706,9 @@ interface GamecenterPlayByPlay {
3686
3706
  rosterSpots: RosterSpot[];
3687
3707
  regPeriods: number;
3688
3708
  summary?: Summary$1;
3689
- situation?: Situation;
3709
+ situation?: Situation$1;
3690
3710
  }
3691
- interface Clock$2 {
3711
+ interface Clock$3 {
3692
3712
  timeRemaining: string;
3693
3713
  secondsRemaining: number;
3694
3714
  running: boolean;
@@ -3764,7 +3784,7 @@ interface RosterSpot {
3764
3784
  positionCode: PositionCode;
3765
3785
  headshot: string;
3766
3786
  }
3767
- interface Situation {
3787
+ interface Situation$1 {
3768
3788
  homeTeam: Team$7;
3769
3789
  awayTeam: Team$7;
3770
3790
  situationCode: string;
@@ -4427,7 +4447,7 @@ interface SeasonSeriesGame {
4427
4447
  periodDescriptor?: PeriodDescriptor$4;
4428
4448
  gameCenterLink: string;
4429
4449
  gameOutcome: GameOutcome$2;
4430
- clock?: Clock$1;
4450
+ clock?: Clock$2;
4431
4451
  }
4432
4452
  interface TeamDetail {
4433
4453
  id: number;
@@ -4435,7 +4455,7 @@ interface TeamDetail {
4435
4455
  logo: string;
4436
4456
  score?: number;
4437
4457
  }
4438
- interface Clock$1 {
4458
+ interface Clock$2 {
4439
4459
  timeRemaining: string;
4440
4460
  secondsRemaining: number;
4441
4461
  running: boolean;
@@ -4677,6 +4697,8 @@ interface Game$1 {
4677
4697
  ticketsLinkFr: string;
4678
4698
  period?: number;
4679
4699
  periodDescriptor?: PeriodDescriptor$2;
4700
+ clock?: Clock$1;
4701
+ situation?: Situation;
4680
4702
  threeMinRecap?: string;
4681
4703
  threeMinRecapFr?: string;
4682
4704
  }
@@ -4687,6 +4709,7 @@ interface Team$2 {
4687
4709
  placeNameWithPreposition: LocalizedText;
4688
4710
  abbrev: TeamAbbrev;
4689
4711
  score?: number;
4712
+ sog?: number;
4690
4713
  logo: string;
4691
4714
  record?: string;
4692
4715
  }
@@ -4695,6 +4718,24 @@ interface PeriodDescriptor$2 {
4695
4718
  periodType: PeriodType;
4696
4719
  maxRegulationPeriods: number;
4697
4720
  }
4721
+ interface Clock$1 {
4722
+ timeRemaining: string;
4723
+ secondsRemaining: number;
4724
+ running: boolean;
4725
+ inIntermission: boolean;
4726
+ }
4727
+ interface Situation {
4728
+ homeTeam: SituationDetails;
4729
+ awayTeam: SituationDetails;
4730
+ situationCode: string;
4731
+ timeRemaining: string;
4732
+ secondsRemaining: number;
4733
+ }
4734
+ interface SituationDetails {
4735
+ abbrev: string;
4736
+ situationDescriptions?: string[];
4737
+ strength: number;
4738
+ }
4698
4739
 
4699
4740
  interface NHLStandings {
4700
4741
  wildCardIndicator: boolean;
@@ -6164,4 +6205,4 @@ declare const logger: {
6164
6205
  debug: (message: string, context?: LogContext) => void;
6165
6206
  };
6166
6207
 
6167
- export { APIError, type APIResult, BASE_URLS, CayenneQueryBuilder, ClientError, type CountryCode, type DraftPicks, type DraftRankings, type DraftRound, type DraftTracker, EDGE, type EdgeByTheNumbers, type EdgeGoalieComparison, type EdgeGoalieDetail, type EdgeGoalieLanding, type EdgeGoalieSavePercentage, type EdgeGoalieSavePercentage5v5, type EdgeGoalieSavePercentage5v5Top10, type EdgeGoalieSavePercentage5v5Top10Entry, type EdgeGoalieSavePercentageTop10, type EdgeGoalieSavePercentageTop10Entry, type EdgeGoalieShotLocation, type EdgeGoalieShotLocationTop10, type EdgeGoalieShotLocationTop10Entry, type EdgeMeasurement, type EdgeOverlay, type EdgePeriodDescriptor, type EdgePlayer, type EdgeSeason, type EdgeSkaterComparison, type EdgeSkaterDetail, type EdgeSkaterDistanceTop10, type EdgeSkaterDistanceTop10Entry, type EdgeSkaterLanding, type EdgeSkaterShotLocation, type EdgeSkaterShotLocationTop10, type EdgeSkaterShotLocationTop10Entry, type EdgeSkaterShotSpeed, type EdgeSkaterShotSpeedTop10, type EdgeSkaterShotSpeedTop10Entry, type EdgeSkaterSkatingDistance, type EdgeSkaterSkatingSpeed, type EdgeSkaterSpeedTop10, type EdgeSkaterSpeedTop10Entry, type EdgeSkaterZoneTime, type EdgeSkaterZoneTimeTop10, type EdgeSkaterZoneTimeTop10Entry, type EdgeTeam, type EdgeTeamComparison, type EdgeTeamDetail, type EdgeTeamLanding, type EdgeTeamLogos, type EdgeTeamShotLocation, type EdgeTeamShotLocationTop10, type EdgeTeamShotLocationTop10Entry, type EdgeTeamShotSpeed, type EdgeTeamShotSpeedTop10, type EdgeTeamShotSpeedTop10Entry, type EdgeTeamSkatingDistance, type EdgeTeamSkatingDistanceTop10, type EdgeTeamSkatingDistanceTop10Entry, type EdgeTeamSkatingSpeed, type EdgeTeamSkatingSpeedTop10, type EdgeTeamSkatingSpeedTop10Entry, type EdgeTeamZoneTime, type EdgeTeamZoneTimeTop10, type EdgeTeamZoneTimeTop10Entry, ErrorCategory, type ErrorConfig, type ErrorContext, ErrorHandler, LogLevel$1 as ErrorLogLevel, type EventId, type GameId, type GameMeta, type GameNumber, type GameState, type GameType, type GamecenterBoxscore, type GamecenterLanding, type GamecenterPlayByPlay, type GamecenterReports, type GoalieStatsLeaders, type LeagueSchedule, type LocalizedText, type LocationInfo, type LogContext, type LogLevel, NHLClient, type NHLClientConfig, type NHLClientWithErrorConfig, type NHLConfig, type NHLDate, NHLError, type NHLMonth, type NHLSeasons, type NHLStandings, type NHLStandingsSeason, NetworkError, type NetworkTVSchedule, NotFoundError, type PPTReplayEvent, type PPTReplayGoal, ParseError, type PartnerGameInfo, type PlayerGameLog, type PlayerId, type PlayerLanding, type PlayerSearchResult, type PlayerSpotlight, type PlayoffBracket, type PlayoffRound, type PlayoffSeries, type PlayoffSeriesMeta, type PlayoffSeriesSchedule, type PositionFilter, type PostalCode, type PostalCodeInfo, RateLimitError, type SaveLocationCategory, type SaveLocationSort, type SavePercentage5v5Sort, type SavePercentageSort, type ScheduleCalendar, type Score, type Scoreboard, type Season$1 as Season, type SeriesLetter$1 as SeriesLetter, ServerError, type ShotLocationCategory, type ShotLocationSort, type ShotSpeedSort, type SkaterStatsLeaders, type SkatersStrength, type SkatingDistanceSort, type SkatingSpeedSort, type TeamAbbrev, type TeamId, type TeamProspects, type TeamRoster, type TeamRosterSeasons, type TeamScheduleMonth, type TeamScheduleSeason, type TeamScheduleWeek, type TeamStats, type TeamStatsSeason, ValidationError, type WSCGameStory, type WSCPlayByPlay, type WSCPlayByPlayEvent, type WhereToWatch, type Year, type ZoneTimeSort, index$2 as adv, config, createNHLClient, index as gc, logConfig, logger, index$1 as stats, video, writeLog };
6208
+ export { APIError, type APIResult, BASE_URLS, CayenneQueryBuilder, ClientError, type CountryCode, type DraftPicks, type DraftPositionCode, type DraftRankings, type DraftRound, type DraftTracker, EDGE, type EdgeByTheNumbers, type EdgeGoalieComparison, type EdgeGoalieDetail, type EdgeGoalieGame, type EdgeGoalieGameDecision, type EdgeGoalieLanding, type EdgeGoalieSavePercentage, type EdgeGoalieSavePercentage5v5, type EdgeGoalieSavePercentage5v5Top10, type EdgeGoalieSavePercentage5v5Top10Entry, type EdgeGoalieSavePercentageTop10, type EdgeGoalieSavePercentageTop10Entry, type EdgeGoalieShotLocation, type EdgeGoalieShotLocationTop10, type EdgeGoalieShotLocationTop10Entry, type EdgeMeasurement, type EdgeOverlay, type EdgePeriodDescriptor, type EdgePlayer, type EdgeSeason, type EdgeSkaterComparison, type EdgeSkaterDetail, type EdgeSkaterDistanceTop10, type EdgeSkaterDistanceTop10Entry, type EdgeSkaterLanding, type EdgeSkaterShotLocation, type EdgeSkaterShotLocationTop10, type EdgeSkaterShotLocationTop10Entry, type EdgeSkaterShotSpeed, type EdgeSkaterShotSpeedTop10, type EdgeSkaterShotSpeedTop10Entry, type EdgeSkaterSkatingDistance, type EdgeSkaterSkatingSpeed, type EdgeSkaterSpeedTop10, type EdgeSkaterSpeedTop10Entry, type EdgeSkaterZoneTime, type EdgeSkaterZoneTimeTop10, type EdgeSkaterZoneTimeTop10Entry, type EdgeTeam, type EdgeTeamComparison, type EdgeTeamDetail, type EdgeTeamLanding, type EdgeTeamLogos, type EdgeTeamShotLocation, type EdgeTeamShotLocationTop10, type EdgeTeamShotLocationTop10Entry, type EdgeTeamShotSpeed, type EdgeTeamShotSpeedTop10, type EdgeTeamShotSpeedTop10Entry, type EdgeTeamSkatingDistance, type EdgeTeamSkatingDistanceTop10, type EdgeTeamSkatingDistanceTop10Entry, type EdgeTeamSkatingSpeed, type EdgeTeamSkatingSpeedTop10, type EdgeTeamSkatingSpeedTop10Entry, type EdgeTeamZoneTime, type EdgeTeamZoneTimeTop10, type EdgeTeamZoneTimeTop10Entry, ErrorCategory, type ErrorConfig, type ErrorContext, ErrorHandler, LogLevel$1 as ErrorLogLevel, type EventId, type GameId, type GameMeta, type GameNumber, type GameState, type GameType, type GamecenterBoxscore, type GamecenterLanding, type GamecenterPlayByPlay, type GamecenterReports, type GoalieStatsLeaders, type LeagueSchedule, type LocalizedText, type LocationInfo, type LogContext, type LogLevel, NHLClient, type NHLClientConfig, type NHLClientWithErrorConfig, type NHLConfig, type NHLDate, NHLError, type NHLMonth, type NHLSeasons, type NHLStandings, type NHLStandingsSeason, NetworkError, type NetworkTVSchedule, NotFoundError, type PPTReplayEvent, type PPTReplayGoal, ParseError, type PartnerGameInfo, type PlayerGameLog, type PlayerId, type PlayerLanding, type PlayerSearchResult, type PlayerSpotlight, type PlayoffBracket, type PlayoffRound, type PlayoffSeries, type PlayoffSeriesMeta, type PlayoffSeriesSchedule, type PositionCode, type PositionFilter, type PostalCode, type PostalCodeInfo, RateLimitError, type SaveLocationCategory, type SaveLocationSort, type SavePercentage5v5Sort, type SavePercentageSort, type ScheduleCalendar, type Score, type Scoreboard, type Season$1 as Season, type SeriesLetter$1 as SeriesLetter, ServerError, type ShotLocationCategory, type ShotLocationSort, type ShotSpeedSort, type SkaterStatsLeaders, type SkatersStrength, type SkatingDistanceSort, type SkatingSpeedSort, type TeamAbbrev, type TeamId, type TeamProspects, type TeamRoster, type TeamRosterSeasons, type TeamScheduleMonth, type TeamScheduleSeason, type TeamScheduleWeek, type TeamStats, type TeamStatsSeason, ValidationError, type WSCGameStory, type WSCPlayByPlay, type WSCPlayByPlayEvent, type WhereToWatch, type Year, type ZoneTimeSort, index$2 as adv, config, createNHLClient, index as gc, logConfig, logger, index$1 as stats, video, writeLog };
package/lib/index.d.ts CHANGED
@@ -219,8 +219,14 @@ type PenaltyTypeCode = 'MIN' | 'BEN' | 'MAJ' | (string & {});
219
219
  type Market = 'H' | 'A' | 'N' | 'S';
220
220
  /** The country code for this broadcast. (CA = Canada, US = United States) */
221
221
  type CountryCode$2 = 'CA' | 'US';
222
- /** The position code for a player. (C = Center, L[W] = Left Wing, R[W] = Right Wing, D = Defenseman, G = Goalie) */
223
- type PositionCode = 'C' | 'LW' | 'L' | 'RW' | 'R' | 'D' | 'G';
222
+ /** The position code for a player. (C = Center, L = Left Wing, R = Right Wing, D = Defenseman, G = Goalie) */
223
+ type PositionCode = 'C' | 'L' | 'R' | 'D' | 'G';
224
+ /**
225
+ * The position code for a draft prospect. The draft endpoints spell
226
+ * wingers `LW`/`RW` and may list a generic forward (`F`) or two
227
+ * positions (`C/LW`).
228
+ */
229
+ type DraftPositionCode = 'C' | 'LW' | 'RW' | 'D' | 'G' | 'F' | 'C/LW' | 'C/RW' | 'LW/RW';
224
230
  /** Player's shooting/catching handedness. (L = Left, R = Right) */
225
231
  type ShootsCatches = 'L' | 'R';
226
232
  type HexColorCode = `#${string}`;
@@ -460,6 +466,15 @@ interface EdgeByTheNumbers {
460
466
  shots: number;
461
467
  }[];
462
468
  };
469
+ /** Goalie with the most high-danger saves; added to the API in October 2026. */
470
+ highDangerSavesGoalie?: {
471
+ player: EdgePlayer;
472
+ saves: number;
473
+ shotLocationDetails: {
474
+ area: string;
475
+ saves: number;
476
+ }[];
477
+ };
463
478
  }
464
479
  /** Response of `adv.skaters.detail` */
465
480
  interface EdgeSkaterDetail {
@@ -966,14 +981,14 @@ interface EdgeGoalieComparison {
966
981
  saves: number;
967
982
  savePctg: number;
968
983
  }[];
969
- savePctg5v5Last10: unknown[];
984
+ savePctg5v5Last10: EdgeGoalieGame[];
970
985
  savePctg5v5Details: {
971
986
  savePctg: number;
972
987
  savePctgClose: number;
973
988
  shots: number;
974
989
  shotsPer60: number;
975
990
  };
976
- savePctgLast10: unknown[];
991
+ savePctgLast10: EdgeGoalieGame[];
977
992
  savePctgDetails: {
978
993
  gamesAbove900: number;
979
994
  pctgGamesAbove900: number;
@@ -1020,17 +1035,22 @@ interface EdgeGoalieLanding {
1020
1035
  };
1021
1036
  minimumMinutesPlayed?: number;
1022
1037
  }
1038
+ /** A goalie's save percentage in one of their last 10 games */
1039
+ interface EdgeGoalieGame {
1040
+ gameCenterLink: string;
1041
+ savePctg: number;
1042
+ gameDate: string;
1043
+ playerOnHomeTeam: boolean;
1044
+ homeTeam: EdgeTeam;
1045
+ awayTeam: EdgeTeam;
1046
+ }
1047
+ /** `EdgeGoalieGame` with the goalie's decision (`W`, `L` or `O`) */
1048
+ interface EdgeGoalieGameDecision extends EdgeGoalieGame {
1049
+ decision: string;
1050
+ }
1023
1051
  /** Response of `adv.goalies.savePercentage` */
1024
1052
  interface EdgeGoalieSavePercentage {
1025
- savePctgLast10: {
1026
- gameCenterLink: string;
1027
- savePctg: number;
1028
- gameDate: string;
1029
- decision: string;
1030
- playerOnHomeTeam: boolean;
1031
- homeTeam: EdgeTeam;
1032
- awayTeam: EdgeTeam;
1033
- }[];
1053
+ savePctgLast10: EdgeGoalieGameDecision[];
1034
1054
  savePctgDetails: {
1035
1055
  gamesAbove900: {
1036
1056
  value: number;
@@ -1046,7 +1066,7 @@ interface EdgeGoalieSavePercentage {
1046
1066
  }
1047
1067
  /** Response of `adv.goalies.savePercentage5v5` */
1048
1068
  interface EdgeGoalieSavePercentage5v5 {
1049
- savePctg5v5Last10: unknown[];
1069
+ savePctg5v5Last10: EdgeGoalieGameDecision[];
1050
1070
  savePctg5v5Details: {
1051
1071
  savePctg: {
1052
1072
  value: number;
@@ -1702,7 +1722,7 @@ declare const GameNumber$1: arktype_internal_variants_object_ts.ObjectType<(In:
1702
1722
  declare const DraftRound$1: arktype_internal_variants_object_ts.ObjectType<(In: string | number) => Out<string>, {}>;
1703
1723
  declare const EventId$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
1704
1724
  declare const GameId$1: arktype.BaseType<number | ((In: string) => arktype_internal_attributes_ts.To<number>), {}>;
1705
- declare const SeriesLetter$2: arktype_internal_variants_string_ts.StringType<"H" | "A" | "N" | "C" | "L" | "D" | "G" | "O" | "B" | "E" | "F" | "I" | "J" | "K" | "M", {}>;
1725
+ declare const SeriesLetter$2: arktype_internal_variants_string_ts.StringType<"H" | "A" | "N" | "C" | "L" | "D" | "G" | "F" | "O" | "B" | "E" | "I" | "J" | "K" | "M", {}>;
1706
1726
  declare const GameState$1: arktype_internal_variants_string_ts.StringType<"FUT" | "LIV" | "FIN", {}>;
1707
1727
  declare const CountryCode$1: arktype_internal_variants_object_ts.ObjectType<(In: string) => Out<string>, {}>;
1708
1728
  declare const PostalCode$1: arktype_internal_variants_object_ts.ObjectType<(In: string) => Out<string>, {}>;
@@ -3094,11 +3114,11 @@ interface GamecenterBoxscore {
3094
3114
  regPeriods: number;
3095
3115
  awayTeam: Team$a;
3096
3116
  homeTeam: Team$a;
3097
- clock: Clock$4;
3117
+ clock: Clock$5;
3098
3118
  playerByGameStats?: PlayerByGameStats;
3099
3119
  summary?: Summary$3;
3100
3120
  gameOutcome?: GameOutcome$5;
3101
- situation?: Situation$2;
3121
+ situation?: Situation$3;
3102
3122
  }
3103
3123
  interface Team$a {
3104
3124
  id: number;
@@ -3112,7 +3132,7 @@ interface Team$a {
3112
3132
  placeNameWithPreposition: LocalizedText;
3113
3133
  radioLink?: string;
3114
3134
  }
3115
- interface Clock$4 {
3135
+ interface Clock$5 {
3116
3136
  timeRemaining: string;
3117
3137
  secondsRemaining: number;
3118
3138
  running: boolean;
@@ -3184,14 +3204,14 @@ interface Goalie$4 extends BasePlayer {
3184
3204
  saves: number;
3185
3205
  }
3186
3206
  type Decision$1 = 'W' | 'L' | 'O';
3187
- interface Situation$2 {
3188
- homeTeam: SituationDetails;
3189
- awayTeam: SituationDetails;
3207
+ interface Situation$3 {
3208
+ homeTeam: SituationDetails$1;
3209
+ awayTeam: SituationDetails$1;
3190
3210
  situationCode: string;
3191
3211
  timeRemaining: string;
3192
3212
  secondsRemaining: number;
3193
3213
  }
3194
- interface SituationDetails {
3214
+ interface SituationDetails$1 {
3195
3215
  abbrev: string;
3196
3216
  situationDescriptions?: string[];
3197
3217
  strength: number;
@@ -3221,7 +3241,7 @@ interface Pick$1 {
3221
3241
  teamPickHistory: string;
3222
3242
  firstName: LocalizedText;
3223
3243
  lastName: LocalizedText;
3224
- positionCode: PositionCode;
3244
+ positionCode: DraftPositionCode;
3225
3245
  countryCode: string;
3226
3246
  height: number;
3227
3247
  weight: number;
@@ -3247,7 +3267,7 @@ type Name = 'North American Skater' | 'International Skater' | 'North American G
3247
3267
  interface Ranking {
3248
3268
  lastName: string;
3249
3269
  firstName: string;
3250
- positionCode: PositionCode;
3270
+ positionCode: DraftPositionCode;
3251
3271
  shootsCatches: ShootsCatches;
3252
3272
  heightInInches: number;
3253
3273
  weightInPounds: number;
@@ -3285,7 +3305,7 @@ interface Pick {
3285
3305
  state: string;
3286
3306
  lastName: LocalizedText;
3287
3307
  firstName: LocalizedText;
3288
- positionCode: PositionCode;
3308
+ positionCode: DraftPositionCode;
3289
3309
  }
3290
3310
 
3291
3311
  interface GamecenterLanding {
@@ -3312,11 +3332,11 @@ interface GamecenterLanding {
3312
3332
  otInUse: boolean;
3313
3333
  tiesInUse: boolean;
3314
3334
  summary?: Summary$2;
3315
- clock?: Clock$3;
3335
+ clock?: Clock$4;
3316
3336
  ticketsLink?: string;
3317
3337
  ticketsLinkFr?: string;
3318
3338
  matchup?: Matchup;
3319
- situation?: Situation$1;
3339
+ situation?: Situation$2;
3320
3340
  }
3321
3341
  interface LandingTeam {
3322
3342
  id: number;
@@ -3331,7 +3351,7 @@ interface LandingTeam {
3331
3351
  record?: string;
3332
3352
  radioLink?: string;
3333
3353
  }
3334
- interface Clock$3 {
3354
+ interface Clock$4 {
3335
3355
  timeRemaining: string;
3336
3356
  secondsRemaining: number;
3337
3357
  running: boolean;
@@ -3452,7 +3472,7 @@ interface PeriodDescriptor$8 {
3452
3472
  periodType: PeriodType;
3453
3473
  maxRegulationPeriods: number;
3454
3474
  }
3455
- interface Situation$1 {
3475
+ interface Situation$2 {
3456
3476
  homeTeam: SituationTeam;
3457
3477
  awayTeam: SituationTeam;
3458
3478
  situationCode: string;
@@ -3678,7 +3698,7 @@ interface GamecenterPlayByPlay {
3678
3698
  homeTeam: Team$7;
3679
3699
  shootoutInUse: boolean;
3680
3700
  otInUse: boolean;
3681
- clock: Clock$2;
3701
+ clock: Clock$3;
3682
3702
  displayPeriod: number;
3683
3703
  maxPeriods: number;
3684
3704
  gameOutcome?: GameOutcome$4;
@@ -3686,9 +3706,9 @@ interface GamecenterPlayByPlay {
3686
3706
  rosterSpots: RosterSpot[];
3687
3707
  regPeriods: number;
3688
3708
  summary?: Summary$1;
3689
- situation?: Situation;
3709
+ situation?: Situation$1;
3690
3710
  }
3691
- interface Clock$2 {
3711
+ interface Clock$3 {
3692
3712
  timeRemaining: string;
3693
3713
  secondsRemaining: number;
3694
3714
  running: boolean;
@@ -3764,7 +3784,7 @@ interface RosterSpot {
3764
3784
  positionCode: PositionCode;
3765
3785
  headshot: string;
3766
3786
  }
3767
- interface Situation {
3787
+ interface Situation$1 {
3768
3788
  homeTeam: Team$7;
3769
3789
  awayTeam: Team$7;
3770
3790
  situationCode: string;
@@ -4427,7 +4447,7 @@ interface SeasonSeriesGame {
4427
4447
  periodDescriptor?: PeriodDescriptor$4;
4428
4448
  gameCenterLink: string;
4429
4449
  gameOutcome: GameOutcome$2;
4430
- clock?: Clock$1;
4450
+ clock?: Clock$2;
4431
4451
  }
4432
4452
  interface TeamDetail {
4433
4453
  id: number;
@@ -4435,7 +4455,7 @@ interface TeamDetail {
4435
4455
  logo: string;
4436
4456
  score?: number;
4437
4457
  }
4438
- interface Clock$1 {
4458
+ interface Clock$2 {
4439
4459
  timeRemaining: string;
4440
4460
  secondsRemaining: number;
4441
4461
  running: boolean;
@@ -4677,6 +4697,8 @@ interface Game$1 {
4677
4697
  ticketsLinkFr: string;
4678
4698
  period?: number;
4679
4699
  periodDescriptor?: PeriodDescriptor$2;
4700
+ clock?: Clock$1;
4701
+ situation?: Situation;
4680
4702
  threeMinRecap?: string;
4681
4703
  threeMinRecapFr?: string;
4682
4704
  }
@@ -4687,6 +4709,7 @@ interface Team$2 {
4687
4709
  placeNameWithPreposition: LocalizedText;
4688
4710
  abbrev: TeamAbbrev;
4689
4711
  score?: number;
4712
+ sog?: number;
4690
4713
  logo: string;
4691
4714
  record?: string;
4692
4715
  }
@@ -4695,6 +4718,24 @@ interface PeriodDescriptor$2 {
4695
4718
  periodType: PeriodType;
4696
4719
  maxRegulationPeriods: number;
4697
4720
  }
4721
+ interface Clock$1 {
4722
+ timeRemaining: string;
4723
+ secondsRemaining: number;
4724
+ running: boolean;
4725
+ inIntermission: boolean;
4726
+ }
4727
+ interface Situation {
4728
+ homeTeam: SituationDetails;
4729
+ awayTeam: SituationDetails;
4730
+ situationCode: string;
4731
+ timeRemaining: string;
4732
+ secondsRemaining: number;
4733
+ }
4734
+ interface SituationDetails {
4735
+ abbrev: string;
4736
+ situationDescriptions?: string[];
4737
+ strength: number;
4738
+ }
4698
4739
 
4699
4740
  interface NHLStandings {
4700
4741
  wildCardIndicator: boolean;
@@ -6164,4 +6205,4 @@ declare const logger: {
6164
6205
  debug: (message: string, context?: LogContext) => void;
6165
6206
  };
6166
6207
 
6167
- export { APIError, type APIResult, BASE_URLS, CayenneQueryBuilder, ClientError, type CountryCode, type DraftPicks, type DraftRankings, type DraftRound, type DraftTracker, EDGE, type EdgeByTheNumbers, type EdgeGoalieComparison, type EdgeGoalieDetail, type EdgeGoalieLanding, type EdgeGoalieSavePercentage, type EdgeGoalieSavePercentage5v5, type EdgeGoalieSavePercentage5v5Top10, type EdgeGoalieSavePercentage5v5Top10Entry, type EdgeGoalieSavePercentageTop10, type EdgeGoalieSavePercentageTop10Entry, type EdgeGoalieShotLocation, type EdgeGoalieShotLocationTop10, type EdgeGoalieShotLocationTop10Entry, type EdgeMeasurement, type EdgeOverlay, type EdgePeriodDescriptor, type EdgePlayer, type EdgeSeason, type EdgeSkaterComparison, type EdgeSkaterDetail, type EdgeSkaterDistanceTop10, type EdgeSkaterDistanceTop10Entry, type EdgeSkaterLanding, type EdgeSkaterShotLocation, type EdgeSkaterShotLocationTop10, type EdgeSkaterShotLocationTop10Entry, type EdgeSkaterShotSpeed, type EdgeSkaterShotSpeedTop10, type EdgeSkaterShotSpeedTop10Entry, type EdgeSkaterSkatingDistance, type EdgeSkaterSkatingSpeed, type EdgeSkaterSpeedTop10, type EdgeSkaterSpeedTop10Entry, type EdgeSkaterZoneTime, type EdgeSkaterZoneTimeTop10, type EdgeSkaterZoneTimeTop10Entry, type EdgeTeam, type EdgeTeamComparison, type EdgeTeamDetail, type EdgeTeamLanding, type EdgeTeamLogos, type EdgeTeamShotLocation, type EdgeTeamShotLocationTop10, type EdgeTeamShotLocationTop10Entry, type EdgeTeamShotSpeed, type EdgeTeamShotSpeedTop10, type EdgeTeamShotSpeedTop10Entry, type EdgeTeamSkatingDistance, type EdgeTeamSkatingDistanceTop10, type EdgeTeamSkatingDistanceTop10Entry, type EdgeTeamSkatingSpeed, type EdgeTeamSkatingSpeedTop10, type EdgeTeamSkatingSpeedTop10Entry, type EdgeTeamZoneTime, type EdgeTeamZoneTimeTop10, type EdgeTeamZoneTimeTop10Entry, ErrorCategory, type ErrorConfig, type ErrorContext, ErrorHandler, LogLevel$1 as ErrorLogLevel, type EventId, type GameId, type GameMeta, type GameNumber, type GameState, type GameType, type GamecenterBoxscore, type GamecenterLanding, type GamecenterPlayByPlay, type GamecenterReports, type GoalieStatsLeaders, type LeagueSchedule, type LocalizedText, type LocationInfo, type LogContext, type LogLevel, NHLClient, type NHLClientConfig, type NHLClientWithErrorConfig, type NHLConfig, type NHLDate, NHLError, type NHLMonth, type NHLSeasons, type NHLStandings, type NHLStandingsSeason, NetworkError, type NetworkTVSchedule, NotFoundError, type PPTReplayEvent, type PPTReplayGoal, ParseError, type PartnerGameInfo, type PlayerGameLog, type PlayerId, type PlayerLanding, type PlayerSearchResult, type PlayerSpotlight, type PlayoffBracket, type PlayoffRound, type PlayoffSeries, type PlayoffSeriesMeta, type PlayoffSeriesSchedule, type PositionFilter, type PostalCode, type PostalCodeInfo, RateLimitError, type SaveLocationCategory, type SaveLocationSort, type SavePercentage5v5Sort, type SavePercentageSort, type ScheduleCalendar, type Score, type Scoreboard, type Season$1 as Season, type SeriesLetter$1 as SeriesLetter, ServerError, type ShotLocationCategory, type ShotLocationSort, type ShotSpeedSort, type SkaterStatsLeaders, type SkatersStrength, type SkatingDistanceSort, type SkatingSpeedSort, type TeamAbbrev, type TeamId, type TeamProspects, type TeamRoster, type TeamRosterSeasons, type TeamScheduleMonth, type TeamScheduleSeason, type TeamScheduleWeek, type TeamStats, type TeamStatsSeason, ValidationError, type WSCGameStory, type WSCPlayByPlay, type WSCPlayByPlayEvent, type WhereToWatch, type Year, type ZoneTimeSort, index$2 as adv, config, createNHLClient, index as gc, logConfig, logger, index$1 as stats, video, writeLog };
6208
+ export { APIError, type APIResult, BASE_URLS, CayenneQueryBuilder, ClientError, type CountryCode, type DraftPicks, type DraftPositionCode, type DraftRankings, type DraftRound, type DraftTracker, EDGE, type EdgeByTheNumbers, type EdgeGoalieComparison, type EdgeGoalieDetail, type EdgeGoalieGame, type EdgeGoalieGameDecision, type EdgeGoalieLanding, type EdgeGoalieSavePercentage, type EdgeGoalieSavePercentage5v5, type EdgeGoalieSavePercentage5v5Top10, type EdgeGoalieSavePercentage5v5Top10Entry, type EdgeGoalieSavePercentageTop10, type EdgeGoalieSavePercentageTop10Entry, type EdgeGoalieShotLocation, type EdgeGoalieShotLocationTop10, type EdgeGoalieShotLocationTop10Entry, type EdgeMeasurement, type EdgeOverlay, type EdgePeriodDescriptor, type EdgePlayer, type EdgeSeason, type EdgeSkaterComparison, type EdgeSkaterDetail, type EdgeSkaterDistanceTop10, type EdgeSkaterDistanceTop10Entry, type EdgeSkaterLanding, type EdgeSkaterShotLocation, type EdgeSkaterShotLocationTop10, type EdgeSkaterShotLocationTop10Entry, type EdgeSkaterShotSpeed, type EdgeSkaterShotSpeedTop10, type EdgeSkaterShotSpeedTop10Entry, type EdgeSkaterSkatingDistance, type EdgeSkaterSkatingSpeed, type EdgeSkaterSpeedTop10, type EdgeSkaterSpeedTop10Entry, type EdgeSkaterZoneTime, type EdgeSkaterZoneTimeTop10, type EdgeSkaterZoneTimeTop10Entry, type EdgeTeam, type EdgeTeamComparison, type EdgeTeamDetail, type EdgeTeamLanding, type EdgeTeamLogos, type EdgeTeamShotLocation, type EdgeTeamShotLocationTop10, type EdgeTeamShotLocationTop10Entry, type EdgeTeamShotSpeed, type EdgeTeamShotSpeedTop10, type EdgeTeamShotSpeedTop10Entry, type EdgeTeamSkatingDistance, type EdgeTeamSkatingDistanceTop10, type EdgeTeamSkatingDistanceTop10Entry, type EdgeTeamSkatingSpeed, type EdgeTeamSkatingSpeedTop10, type EdgeTeamSkatingSpeedTop10Entry, type EdgeTeamZoneTime, type EdgeTeamZoneTimeTop10, type EdgeTeamZoneTimeTop10Entry, ErrorCategory, type ErrorConfig, type ErrorContext, ErrorHandler, LogLevel$1 as ErrorLogLevel, type EventId, type GameId, type GameMeta, type GameNumber, type GameState, type GameType, type GamecenterBoxscore, type GamecenterLanding, type GamecenterPlayByPlay, type GamecenterReports, type GoalieStatsLeaders, type LeagueSchedule, type LocalizedText, type LocationInfo, type LogContext, type LogLevel, NHLClient, type NHLClientConfig, type NHLClientWithErrorConfig, type NHLConfig, type NHLDate, NHLError, type NHLMonth, type NHLSeasons, type NHLStandings, type NHLStandingsSeason, NetworkError, type NetworkTVSchedule, NotFoundError, type PPTReplayEvent, type PPTReplayGoal, ParseError, type PartnerGameInfo, type PlayerGameLog, type PlayerId, type PlayerLanding, type PlayerSearchResult, type PlayerSpotlight, type PlayoffBracket, type PlayoffRound, type PlayoffSeries, type PlayoffSeriesMeta, type PlayoffSeriesSchedule, type PositionCode, type PositionFilter, type PostalCode, type PostalCodeInfo, RateLimitError, type SaveLocationCategory, type SaveLocationSort, type SavePercentage5v5Sort, type SavePercentageSort, type ScheduleCalendar, type Score, type Scoreboard, type Season$1 as Season, type SeriesLetter$1 as SeriesLetter, ServerError, type ShotLocationCategory, type ShotLocationSort, type ShotSpeedSort, type SkaterStatsLeaders, type SkatersStrength, type SkatingDistanceSort, type SkatingSpeedSort, type TeamAbbrev, type TeamId, type TeamProspects, type TeamRoster, type TeamRosterSeasons, type TeamScheduleMonth, type TeamScheduleSeason, type TeamScheduleWeek, type TeamStats, type TeamStatsSeason, ValidationError, type WSCGameStory, type WSCPlayByPlay, type WSCPlayByPlayEvent, type WhereToWatch, type Year, type ZoneTimeSort, index$2 as adv, config, createNHLClient, index as gc, logConfig, logger, index$1 as stats, video, writeLog };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nhle-api",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "A modern NHLe API wrapper written in TypeScript.",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "lib/index.js",