@lichess-org/types 2.0.1 → 2.0.3

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 (3) hide show
  1. package/README.md +2 -2
  2. package/lichess-api.d.ts +588 -251
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -9,14 +9,14 @@ npm install @lichess-org/types
9
9
  ## Usage
10
10
 
11
11
  ```typescript
12
- import { components, operations } from "@lichess-org/types";
12
+ import { components } from "@lichess-org/types";
13
13
 
14
14
  type LichessGame = components["schemas"]["GameJson"];
15
15
  ```
16
16
 
17
17
  ## For Maintainers
18
18
 
19
- To re-generate:
19
+ To regenerate:
20
20
 
21
21
  ```bash
22
22
  pnpm gen
package/lichess-api.d.ts CHANGED
@@ -734,7 +734,6 @@ export interface paths {
734
734
  /**
735
735
  * Stream current TV game
736
736
  * @description Stream positions and moves of the current [TV game](https://lichess.org/tv) in [ndjson](#section/Introduction/Streaming-with-ND-JSON).
737
- * A summary of the game is sent as a first message, and when the featured game changes.
738
737
  * Try it with `curl https://lichess.org/api/tv/feed`.
739
738
  *
740
739
  */
@@ -756,8 +755,7 @@ export interface paths {
756
755
  };
757
756
  /**
758
757
  * Stream current TV game of a TV channel
759
- * @description Stream positions and moves of the current [TV game](https://lichess.org/tv) of a TV channel in [ndjson](#section/Introduction/Streaming-with-ND-JSON).
760
- * A summary of the game is sent as a first message, and when the featured game changes.
758
+ * @description Stream positions and moves of a current [TV channel's game](https://lichess.org/tv/rapid) in [ndjson](#section/Introduction/Streaming-with-ND-JSON).
761
759
  * Try it with `curl https://lichess.org/api/tv/rapid/feed`.
762
760
  *
763
761
  */
@@ -1455,7 +1453,29 @@ export interface paths {
1455
1453
  * Broadcasts are streamed as [ndjson](#section/Introduction/Streaming-with-ND-JSON).
1456
1454
  *
1457
1455
  */
1458
- get: operations["broadcastIndex"];
1456
+ get: operations["broadcastsOfficial"];
1457
+ put?: never;
1458
+ post?: never;
1459
+ delete?: never;
1460
+ options?: never;
1461
+ head?: never;
1462
+ patch?: never;
1463
+ trace?: never;
1464
+ };
1465
+ "/api/broadcast/by/{username}": {
1466
+ parameters: {
1467
+ query?: never;
1468
+ header?: never;
1469
+ path?: never;
1470
+ cookie?: never;
1471
+ };
1472
+ /**
1473
+ * Get broadcasts created by a user
1474
+ * @description Get all incoming, ongoing, and finished official broadcasts.
1475
+ * The broadcasts are sorted by created date, most recent first.
1476
+ *
1477
+ */
1478
+ get: operations["broadcastsByUser"];
1459
1479
  put?: never;
1460
1480
  post?: never;
1461
1481
  delete?: never;
@@ -3760,15 +3780,22 @@ export interface components {
3760
3780
  count?: components["schemas"]["Count"];
3761
3781
  /** @example false */
3762
3782
  streaming?: boolean;
3763
- /** @example {
3764
- * "twitch": {
3765
- * "channel": "https://www.twitch.tv/lichessdotorg"
3766
- * },
3767
- * "youTube": {
3768
- * "channel": "https://www.youtube.com/c/LichessDotOrg"
3769
- * }
3770
- * } */
3771
- streamer?: unknown;
3783
+ streamer?: {
3784
+ twitch?: {
3785
+ /**
3786
+ * Format: uri
3787
+ * @example https://www.twitch.tv/lichessdotorg
3788
+ */
3789
+ channel?: string;
3790
+ };
3791
+ youTube?: {
3792
+ /**
3793
+ * Format: uri
3794
+ * @example https://www.youtube.com/c/LichessDotOrg
3795
+ */
3796
+ channel?: string;
3797
+ };
3798
+ };
3772
3799
  /**
3773
3800
  * @description only appears if the request is [authenticated with OAuth2](#section/Introduction/Authentication)
3774
3801
  * @example true
@@ -4609,6 +4636,29 @@ export interface components {
4609
4636
  };
4610
4637
  team?: string;
4611
4638
  };
4639
+ GameMoveAnalysis: {
4640
+ /** @description Evaluation in centipawns */
4641
+ eval?: number;
4642
+ /** @description Number of moves until forced mate */
4643
+ mate?: number;
4644
+ /**
4645
+ * @description Best move in UCI notation (only if played move was inaccurate)
4646
+ * @example c2c3
4647
+ */
4648
+ best?: string;
4649
+ /**
4650
+ * @description Best variation in SAN notation (only if played move was inaccurate)
4651
+ * @example c3 Nc6 d4 Qb6 Be2 Nge7 Na3 cxd4 cxd4 Nf5
4652
+ */
4653
+ variation?: string;
4654
+ /** @description Judgment annotation (only if played move was inaccurate) */
4655
+ judgment?: {
4656
+ /** @enum {string} */
4657
+ name?: "Inaccuracy" | "Mistake" | "Blunder";
4658
+ /** @example Blunder. Nxg6 was best. */
4659
+ comment?: string;
4660
+ };
4661
+ };
4612
4662
  /** @example {
4613
4663
  * "id": "q7ZvsdUF",
4614
4664
  * "rated": true,
@@ -4662,8 +4712,8 @@ export interface components {
4662
4712
  lastMoveAt: number;
4663
4713
  status: components["schemas"]["GameStatus"];
4664
4714
  players: {
4665
- white?: components["schemas"]["GameUser"];
4666
- black?: components["schemas"]["GameUser"];
4715
+ white: components["schemas"]["GameUser"];
4716
+ black: components["schemas"]["GameUser"];
4667
4717
  };
4668
4718
  initialFen?: string;
4669
4719
  /** @enum {string} */
@@ -4676,36 +4726,15 @@ export interface components {
4676
4726
  moves?: string;
4677
4727
  pgn?: string;
4678
4728
  daysPerTurn?: number;
4679
- analysis?: {
4680
- /** @description Evaluation in centipawns */
4681
- eval?: number;
4682
- /** @description Number of moves until forced mate */
4683
- mate?: number;
4684
- /**
4685
- * @description Best move in UCI notation (only if played move was inaccurate)
4686
- * @example c2c3
4687
- */
4688
- best?: string;
4689
- /**
4690
- * @description Best variation in SAN notation (only if played move was inaccurate)
4691
- * @example c3 Nc6 d4 Qb6 Be2 Nge7 Na3 cxd4 cxd4 Nf5
4692
- */
4693
- variation?: string;
4694
- /** @description Judgment annotation (only if played move was inaccurate) */
4695
- judgment?: {
4696
- /** @enum {string} */
4697
- name?: "Inaccuracy" | "Mistake" | "Blunder";
4698
- /** @example Blunder. Nxg6 was best. */
4699
- comment?: string;
4700
- };
4701
- }[];
4729
+ analysis?: components["schemas"]["GameMoveAnalysis"][];
4702
4730
  tournament?: string;
4703
4731
  swiss?: string;
4704
4732
  clock?: {
4705
- initial?: number;
4706
- increment?: number;
4707
- totalTime?: number;
4733
+ initial: number;
4734
+ increment: number;
4735
+ totalTime: number;
4708
4736
  };
4737
+ clocks?: number[];
4709
4738
  division?: {
4710
4739
  /** @description Ply at which the middlegame begins */
4711
4740
  middle?: number;
@@ -4814,8 +4843,46 @@ export interface components {
4814
4843
  * ] */
4815
4844
  MoveStream: unknown;
4816
4845
  TvFeed: {
4817
- t?: string;
4818
- d?: Record<string, never>;
4846
+ /**
4847
+ * @description The type of message.
4848
+ * A summary of the game is sent as the first message and when the featured game changes.
4849
+ * Subsequent messages are just the FEN, last move, and clocks.
4850
+ *
4851
+ * @enum {string}
4852
+ */
4853
+ t: "featured" | "fen";
4854
+ /** @description The data of the message */
4855
+ d:
4856
+ | {
4857
+ /** @description The game ID */
4858
+ id: string;
4859
+ /** @enum {string} */
4860
+ orientation: "white" | "black";
4861
+ players: {
4862
+ /** @enum {string} */
4863
+ color: "white" | "black";
4864
+ user: {
4865
+ name: string;
4866
+ id: string;
4867
+ title?: string;
4868
+ };
4869
+ rating: number;
4870
+ /** @description The player's remaining time in seconds */
4871
+ seconds: number;
4872
+ }[];
4873
+ /** @description The FEN of the current position */
4874
+ fen: string;
4875
+ }
4876
+ | {
4877
+ /** @description The FEN of the current position */
4878
+ fen: string;
4879
+ /** @description The last move in UCI format */
4880
+ lm: string;
4881
+ /** @description White's clock in seconds */
4882
+ wc: number;
4883
+ /** @description Black's clock in seconds */
4884
+ bc: number;
4885
+ };
4819
4886
  };
4820
4887
  Clock: {
4821
4888
  limit?: number;
@@ -4865,63 +4932,77 @@ export interface components {
4865
4932
  /** @example rnbq1bnr/ppppkppp/8/4p3/4P3/8/PPPPKPPP/RNBQ1BNR w - - 2 3 */
4866
4933
  fen?: string;
4867
4934
  };
4935
+ /** @example {
4936
+ * "id": "XhfVxYPG",
4937
+ * "createdBy": "lichess",
4938
+ * "system": "arena",
4939
+ * "minutes": 27,
4940
+ * "clock": {
4941
+ * "limit": 60,
4942
+ * "increment": 0
4943
+ * },
4944
+ * "rated": true,
4945
+ * "fullName": "Hourly Bullet Arena",
4946
+ * "nbPlayers": 4,
4947
+ * "variant": {
4948
+ * "key": "standard",
4949
+ * "short": "Std",
4950
+ * "name": "Standard"
4951
+ * },
4952
+ * "startsAt": 1716930043067,
4953
+ * "finishesAt": 1716931663067,
4954
+ * "status": 10,
4955
+ * "perf": {
4956
+ * "key": "bullet",
4957
+ * "name": "Bullet",
4958
+ * "position": 0,
4959
+ * "icon": "T"
4960
+ * },
4961
+ * "secondsToStart": 871,
4962
+ * "minRatedGames": {
4963
+ * "nb": 20
4964
+ * },
4965
+ * "schedule": {
4966
+ * "freq": "hourly",
4967
+ * "speed": "bullet"
4968
+ * }
4969
+ * } */
4868
4970
  ArenaTournament: {
4869
- /** @example QITRjufu */
4870
4971
  id?: string;
4871
- /** @example lichess */
4872
4972
  createdBy?: string;
4873
4973
  /** @constant */
4874
4974
  system?: "arena";
4875
- /** @example 57 */
4876
4975
  minutes?: number;
4877
4976
  clock?: components["schemas"]["Clock"];
4878
- /** @example true */
4879
4977
  rated?: boolean;
4880
- /** @example U1700 SuperBlitz Arena */
4881
4978
  fullName?: string;
4882
- /** @example 154 */
4883
4979
  nbPlayers?: number;
4884
4980
  variant?: components["schemas"]["Variant"];
4885
- /** @example 1522803600000 */
4886
4981
  startsAt?: number;
4887
- /** @example 1522807200000 */
4888
4982
  finishesAt?: number;
4889
4983
  status?: components["schemas"]["ArenaStatus"];
4890
4984
  perf?: components["schemas"]["ArenaPerf"];
4891
- /** @example 576 */
4892
4985
  secondsToStart?: number;
4893
- /** @example true */
4894
4986
  hasMaxRating?: boolean;
4895
4987
  maxRating?: components["schemas"]["ArenaRatingObj"];
4896
4988
  minRating?: components["schemas"]["ArenaRatingObj"];
4897
4989
  minRatedGames?: {
4898
- /** @example 20 */
4899
4990
  nb?: number;
4900
- /** @example blitz */
4901
- perf?: components["schemas"]["PerfType"];
4902
4991
  };
4903
- /** @example false */
4904
4992
  onlyTitled?: boolean;
4905
- /** @example coders */
4906
4993
  teamMember?: string;
4907
- /** @example true */
4908
4994
  private?: boolean;
4909
4995
  position?: components["schemas"]["ArenaPosition"];
4910
4996
  schedule?: {
4911
- /** @example hourly */
4912
4997
  freq?: string;
4913
- /** @example superblitz */
4914
4998
  speed?: string;
4915
4999
  };
4916
5000
  teamBattle?: {
4917
5001
  teams?: string[];
4918
- /** @example 3 */
4919
5002
  nbLeaders?: number;
4920
5003
  };
4921
5004
  winner?: {
4922
- /** @example lichess */
4923
5005
  id?: string;
4924
- /** @example lichess */
4925
5006
  name?: string;
4926
5007
  title?: components["schemas"]["Title"];
4927
5008
  };
@@ -4936,134 +5017,320 @@ export interface components {
4936
5017
  * @default rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
4937
5018
  */
4938
5019
  FromPositionFEN: string;
5020
+ ArenaPlayerPerformance: {
5021
+ name?: string;
5022
+ rank?: number;
5023
+ title?: string;
5024
+ patron?: boolean;
5025
+ rating?: number;
5026
+ score?: number;
5027
+ sheet?: {
5028
+ scores?: string;
5029
+ fire?: boolean;
5030
+ };
5031
+ nb?: {
5032
+ game?: number;
5033
+ beserk?: number;
5034
+ win?: number;
5035
+ };
5036
+ performance?: number;
5037
+ };
4939
5038
  /** @example {
4940
- * "id": "QITRjufu",
4941
- * "fullName": "U1700 SuperBlitz Arena",
4942
- * "rated": true,
4943
- * "clock": {
4944
- * "increment": 0,
4945
- * "limit": 180
4946
- * },
4947
- * "minutes": 57,
5039
+ * "id": "may24lta",
4948
5040
  * "createdBy": "lichess",
5041
+ * "startsAt": "2024-05-25T18:00:00Z",
4949
5042
  * "system": "arena",
4950
- * "secondsToStart": 0,
4951
- * "secondsToFinish": 36000,
4952
- * "isFinished": true,
4953
- * "isRecentlyFinished": true,
4954
- * "pairingsClosed": true,
4955
- * "startsAt": 1522803600000,
4956
- * "nbPlayers": 154,
5043
+ * "fullName": "Titled Arena May 2024",
5044
+ * "minutes": 120,
4957
5045
  * "perf": {
4958
- * "icon": ")",
4959
- * "key": "blitz",
4960
- * "name": "Blitz",
4961
- * "position": 1
5046
+ * "key": "bullet",
5047
+ * "name": "Bullet",
5048
+ * "icon": "T"
4962
5049
  * },
4963
- * "schedule": {
4964
- * "freq": "hourly",
4965
- * "speed": "superblitz"
5050
+ * "clock": {
5051
+ * "limit": 60,
5052
+ * "increment": 0
4966
5053
  * },
4967
5054
  * "variant": "standard",
4968
- * "duels": [
4969
- * {
4970
- * "id": "0MM6q4tQ",
4971
- * "p": [
4972
- * {
4973
- * "n": "player1",
4974
- * "r": 1500,
4975
- * "k": 3
4976
- * },
4977
- * {
4978
- * "n": "player2",
4979
- * "r": 1500,
4980
- * "k": 3
4981
- * }
4982
- * ]
4983
- * }
4984
- * ],
4985
- * "standings": {
4986
- * "page": 1,
4987
- * "players": [
5055
+ * "rated": true,
5056
+ * "spotlight": {
5057
+ * "headline": "Titled only, $1,000 prize pool"
5058
+ * },
5059
+ * "berserkable": true,
5060
+ * "verdicts": {
5061
+ * "list": [
4988
5062
  * {
4989
- * "name": "player1",
4990
- * "rank": 1,
4991
- * "rating": 1500,
4992
- * "score": 3,
4993
- * "sheet": {
4994
- * "scores": [
4995
- * {
4996
- * "0": 2,
4997
- * "1": 2
4998
- * },
4999
- * {
5000
- * "0": 4,
5001
- * "1": 3
5002
- * },
5003
- * 0
5004
- * ],
5005
- * "total": 6,
5006
- * "fire": true
5007
- * }
5063
+ * "condition": "Only titled players",
5064
+ * "verdict": "ok"
5008
5065
  * }
5009
- * ]
5066
+ * ],
5067
+ * "accepted": true
5010
5068
  * },
5011
- * "featured": {
5012
- * "id": "khe72Fer",
5013
- * "fen": "rn1qkb1r/pQ3ppp/2b2n2/8/5P2/4P3/PP4PP/RNB1KBNR",
5014
- * "color": "black",
5015
- * "lastMove": "d7c6",
5016
- * "white": {
5017
- * "rank": 2,
5018
- * "name": "player1",
5019
- * "rating": 1360
5020
- * },
5021
- * "black": {
5022
- * "rank": 5,
5023
- * "name": "player2",
5024
- * "rating": 1431
5025
- * }
5069
+ * "schedule": {
5070
+ * "freq": "unique",
5071
+ * "speed": "bullet"
5026
5072
  * },
5073
+ * "description": "Prizes: $500/$250/$125/$75/$50\r\n\r\n[Warm-up event](https://lichess.org/tournament/may24wua)",
5074
+ * "onlyTitled": true,
5075
+ * "nbPlayers": 364,
5076
+ * "duels": [],
5077
+ * "isFinished": true,
5027
5078
  * "podium": [
5028
5079
  * {
5029
- * "name": "player1",
5080
+ * "name": "RebeccaHarris",
5081
+ * "title": "GM",
5082
+ * "patron": true,
5030
5083
  * "rank": 1,
5031
- * "rating": 1500,
5032
- * "score": 3,
5033
- * "sheet": {
5034
- * "scores": [
5035
- * {
5036
- * "0": 2,
5037
- * "1": 2
5038
- * },
5039
- * {
5040
- * "0": 4,
5041
- * "1": 3
5042
- * },
5043
- * 0
5044
- * ],
5045
- * "total": 6,
5046
- * "fire": true
5084
+ * "rating": 3257,
5085
+ * "score": 148,
5086
+ * "nb": {
5087
+ * "game": 69,
5088
+ * "berserk": 25,
5089
+ * "win": 46
5090
+ * },
5091
+ * "performance": 3308
5092
+ * },
5093
+ * {
5094
+ * "name": "Ediz_Gurel",
5095
+ * "title": "GM",
5096
+ * "flair": "smileys.alien",
5097
+ * "rank": 2,
5098
+ * "rating": 3230,
5099
+ * "score": 146,
5100
+ * "nb": {
5101
+ * "game": 64,
5102
+ * "berserk": 12,
5103
+ * "win": 44
5047
5104
  * },
5105
+ * "performance": 3269
5106
+ * },
5107
+ * {
5108
+ * "name": "msb2",
5109
+ * "title": "GM",
5110
+ * "patron": true,
5111
+ * "rank": 3,
5112
+ * "rating": 3218,
5113
+ * "score": 131,
5048
5114
  * "nb": {
5049
- * "game": 3,
5050
- * "beserk": 0,
5051
- * "win": 2
5115
+ * "game": 74,
5116
+ * "berserk": 9,
5117
+ * "win": 44
5052
5118
  * },
5053
- * "performance": 1787
5119
+ * "performance": 3215
5054
5120
  * }
5055
5121
  * ],
5122
+ * "pairingsClosed": true,
5056
5123
  * "stats": {
5057
- * "games": 454,
5058
- * "moves": 27542,
5059
- * "whiteWins": 236,
5060
- * "blackWins": 207,
5061
- * "draws": 11,
5062
- * "berserks": 0,
5063
- * "averageRating": 1320
5124
+ * "moves": 418545,
5125
+ * "averageRating": 2616,
5126
+ * "berserks": 729,
5127
+ * "blackWins": 2236,
5128
+ * "games": 5023,
5129
+ * "draws": 311,
5130
+ * "whiteWins": 2476
5131
+ * },
5132
+ * "standing": {
5133
+ * "page": 1,
5134
+ * "players": [
5135
+ * {
5136
+ * "name": "RebeccaHarris",
5137
+ * "title": "GM",
5138
+ * "patron": true,
5139
+ * "rank": 1,
5140
+ * "rating": 3257,
5141
+ * "score": 148,
5142
+ * "sheet": {
5143
+ * "scores": "030432005442204423030220045423044442201300204220300021033044444423033"
5144
+ * }
5145
+ * },
5146
+ * {
5147
+ * "name": "Ediz_Gurel",
5148
+ * "title": "GM",
5149
+ * "flair": "smileys.alien",
5150
+ * "rank": 2,
5151
+ * "rating": 3230,
5152
+ * "score": 146,
5153
+ * "sheet": {
5154
+ * "scores": "4454220224230200000044544432020002242204444220020320204445444422",
5155
+ * "fire": true
5156
+ * }
5157
+ * },
5158
+ * {
5159
+ * "name": "msb2",
5160
+ * "title": "GM",
5161
+ * "patron": true,
5162
+ * "rank": 3,
5163
+ * "rating": 3218,
5164
+ * "score": 131,
5165
+ * "sheet": {
5166
+ * "scores": "04221204220204220022244220200222423000022020044422044422124422010023303020"
5167
+ * }
5168
+ * },
5169
+ * {
5170
+ * "name": "nihalsarin2004",
5171
+ * "title": "GM",
5172
+ * "patron": true,
5173
+ * "rank": 4,
5174
+ * "rating": 3236,
5175
+ * "score": 124,
5176
+ * "sheet": {
5177
+ * "scores": "30302220030302044220220442204220210022244220202204444422223053200"
5178
+ * }
5179
+ * },
5180
+ * {
5181
+ * "name": "Arka50",
5182
+ * "title": "GM",
5183
+ * "patron": true,
5184
+ * "rank": 5,
5185
+ * "rating": 3215,
5186
+ * "score": 122,
5187
+ * "sheet": {
5188
+ * "scores": "303303002000200220444423002020210422110444444442200202002204444220"
5189
+ * }
5190
+ * },
5191
+ * {
5192
+ * "name": "chessbrahs",
5193
+ * "title": "GM",
5194
+ * "rank": 6,
5195
+ * "rating": 3115,
5196
+ * "score": 122,
5197
+ * "sheet": {
5198
+ * "scores": "220002002020442304542200020000204444422020445220200204220230545220",
5199
+ * "fire": true
5200
+ * }
5201
+ * },
5202
+ * {
5203
+ * "name": "neslraCsungaM77",
5204
+ * "title": "GM",
5205
+ * "rank": 7,
5206
+ * "rating": 3122,
5207
+ * "score": 121,
5208
+ * "sheet": {
5209
+ * "scores": "130030000042202422012442202044220204422020022221042213000201022020202044432"
5210
+ * }
5211
+ * },
5212
+ * {
5213
+ * "name": "ARM-777777",
5214
+ * "title": "GM",
5215
+ * "rank": 8,
5216
+ * "rating": 3154,
5217
+ * "score": 119,
5218
+ * "sheet": {
5219
+ * "scores": "044423030042301021044220220020000000100010200004220444422244444230220320"
5220
+ * }
5221
+ * },
5222
+ * {
5223
+ * "name": "Night-King96",
5224
+ * "title": "GM",
5225
+ * "patron": true,
5226
+ * "rank": 9,
5227
+ * "rating": 3131,
5228
+ * "score": 119,
5229
+ * "sheet": {
5230
+ * "scores": "0000300230302302044220030422044444220200000300003304230533023000305433"
5231
+ * }
5232
+ * },
5233
+ * {
5234
+ * "name": "tacticthunder",
5235
+ * "title": "IM",
5236
+ * "rank": 10,
5237
+ * "rating": 3051,
5238
+ * "score": 115,
5239
+ * "sheet": {
5240
+ * "scores": "20442202044444422100201200020200220044220044220222422022020220422010"
5241
+ * }
5242
+ * }
5243
+ * ]
5064
5244
  * }
5065
5245
  * } */
5066
- ArenaTournamentVariantIsKey: unknown;
5246
+ ArenaTournamentFull: {
5247
+ id: string;
5248
+ fullName: string;
5249
+ rated?: boolean;
5250
+ spotlight?: {
5251
+ headline?: string;
5252
+ };
5253
+ berserkable?: boolean;
5254
+ onlyTitled?: boolean;
5255
+ clock: {
5256
+ increment: number;
5257
+ limit: number;
5258
+ };
5259
+ minutes?: number;
5260
+ createdBy?: string;
5261
+ system?: string;
5262
+ secondsToStart?: number;
5263
+ secondsToFinish?: number;
5264
+ isFinished: boolean;
5265
+ isRecentlyFinished?: boolean;
5266
+ pairingsClosed?: boolean;
5267
+ startsAt?: string;
5268
+ nbPlayers: number;
5269
+ verdicts?: {
5270
+ accepted?: boolean;
5271
+ list?: {
5272
+ condition?: string;
5273
+ verdict?: string;
5274
+ }[];
5275
+ };
5276
+ perf?: {
5277
+ icon: string;
5278
+ key: string;
5279
+ name: string;
5280
+ };
5281
+ schedule?: {
5282
+ freq: string;
5283
+ speed: string;
5284
+ };
5285
+ variant?: string;
5286
+ duels?: {
5287
+ id?: string;
5288
+ p?: {
5289
+ n?: string;
5290
+ r?: number;
5291
+ k?: number;
5292
+ }[];
5293
+ }[];
5294
+ standing?: {
5295
+ page?: number;
5296
+ players?: components["schemas"]["ArenaPlayerPerformance"][];
5297
+ };
5298
+ featured?: {
5299
+ id?: string;
5300
+ fen?: string;
5301
+ orientation?: string;
5302
+ color?: string;
5303
+ lastMove?: string;
5304
+ white?: {
5305
+ name?: string;
5306
+ id?: string;
5307
+ rank?: number;
5308
+ rating?: number;
5309
+ };
5310
+ black?: {
5311
+ name?: string;
5312
+ id?: string;
5313
+ rank?: number;
5314
+ rating?: number;
5315
+ };
5316
+ c?: {
5317
+ /** @description white's clock in seconds */
5318
+ white?: number;
5319
+ /** @description black's clock in seconds */
5320
+ black?: number;
5321
+ };
5322
+ };
5323
+ podium?: components["schemas"]["ArenaPlayerPerformance"][];
5324
+ stats: {
5325
+ games: number;
5326
+ moves: number;
5327
+ whiteWins: number;
5328
+ blackWins: number;
5329
+ draws: number;
5330
+ berserks: number;
5331
+ averageRating: number;
5332
+ };
5333
+ };
5067
5334
  /** @example {
5068
5335
  * "error": "This request is invalid because [...]"
5069
5336
  * } */
@@ -5103,7 +5370,32 @@ export interface components {
5103
5370
  * "whiteWins": 42837
5104
5371
  * }
5105
5372
  * } */
5106
- SwissTournament: unknown;
5373
+ SwissTournament: {
5374
+ id: string;
5375
+ createdBy: string;
5376
+ startsAt: string;
5377
+ name: string;
5378
+ clock: {
5379
+ limit: number;
5380
+ increment: number;
5381
+ };
5382
+ variant: string;
5383
+ round: number;
5384
+ nbRounds: number;
5385
+ nbPlayers: number;
5386
+ nbOngoing: number;
5387
+ status: string;
5388
+ stats: {
5389
+ games: number;
5390
+ whiteWins: number;
5391
+ blackWins: number;
5392
+ draws: number;
5393
+ byes: number;
5394
+ absences: number;
5395
+ averageRating: number;
5396
+ };
5397
+ rated: boolean;
5398
+ };
5107
5399
  /** @example {
5108
5400
  * "error": "This user cannot edit this swiss"
5109
5401
  * } */
@@ -5140,37 +5432,43 @@ export interface components {
5140
5432
  * "updatedAt": 1469965025205
5141
5433
  * } */
5142
5434
  StudyMetadata: unknown;
5143
- /** @example {
5144
- * "tour": {
5145
- * "id": "QYiOYnl1",
5146
- * "name": "New in Chess Classic | Finals",
5147
- * "slug": "new-in-chess-classic--finals",
5148
- * "description": "Match for 1st 2nd and 3rd place.",
5149
- * "url": "https://lichess.org/broadcast/new-in-chess-classic--finals/phgcXuBl",
5150
- * "createdAt": 1525789431889
5151
- * },
5152
- * "rounds": [
5153
- * {
5154
- * "id": "yeGGfkfY",
5155
- * "name": "Finals Day 2",
5156
- * "slug": "finals-day-2",
5157
- * "url": "https://lichess.org/broadcast/new-in-chess-classic--finals/finals-day-2/yeGGfkfY",
5158
- * "createdAt": 1715858059529,
5159
- * "ongoing": true,
5160
- * "startsAt": 1716279000000
5161
- * },
5162
- * {
5163
- * "id": "BueO56UJ",
5164
- * "name": "Finals Day 1",
5165
- * "slug": "finals-day-1",
5166
- * "url": "https://lichess.org/broadcast/new-in-chess-classic--finals/finals-day-1/BueO56UJ",
5167
- * "createdAt": 1715858037525,
5168
- * "finished": true,
5169
- * "startsAt": 1716214200000
5170
- * }
5171
- * ]
5172
- * } */
5173
- BroadcastTour: unknown;
5435
+ BroadcastTour: {
5436
+ id: string;
5437
+ name: string;
5438
+ slug: string;
5439
+ description: string;
5440
+ createdAt: number;
5441
+ /** @description Used to designate featured tournaments on Lichess */
5442
+ tier?: number;
5443
+ image?: string;
5444
+ /** @description HTML markup of the tour description */
5445
+ markup?: string;
5446
+ leaderboard?: boolean;
5447
+ teamTable?: boolean;
5448
+ url: string;
5449
+ };
5450
+ BroadcastRoundInfo: {
5451
+ id: string;
5452
+ name: string;
5453
+ slug: string;
5454
+ /** Format: int64 */
5455
+ createdAt: number;
5456
+ ongoing?: boolean;
5457
+ /** Format: int64 */
5458
+ startsAt?: number;
5459
+ finished?: boolean;
5460
+ url: string;
5461
+ /** Format: int64 */
5462
+ delay?: number;
5463
+ };
5464
+ BroadcastWithRounds: {
5465
+ tour?: components["schemas"]["BroadcastTour"];
5466
+ rounds?: components["schemas"]["BroadcastRoundInfo"][];
5467
+ };
5468
+ BroadcastByUser: {
5469
+ tour: components["schemas"]["BroadcastTour"];
5470
+ lastRound: components["schemas"]["BroadcastRoundInfo"];
5471
+ };
5174
5472
  BroadcastForm: {
5175
5473
  /** @description Name of the broadcast tournament. Length must be between 3 and 80 characters.
5176
5474
  *
@@ -5183,7 +5481,7 @@ export interface components {
5183
5481
  * */
5184
5482
  description: string;
5185
5483
  /** @description Compute and display a simple leaderboard based on game results */
5186
- autoLeaderboard: boolean;
5484
+ autoLeaderboard?: boolean;
5187
5485
  /** @description Optional long description of the broadcast. Markdown is supported. Length must be less than 20,000 characters. */
5188
5486
  markdown?: string;
5189
5487
  /** @description Optional, for Lichess admins only, used to feature on /broadcast.
@@ -5233,35 +5531,35 @@ export interface components {
5233
5531
  /** @example CHI */
5234
5532
  fed?: string;
5235
5533
  };
5236
- BroadcastRoundInfo: {
5237
- id: string;
5238
- name: string;
5239
- slug: string;
5240
- /** Format: int64 */
5241
- createdAt: number;
5242
- ongoing?: boolean;
5243
- /** Format: int64 */
5244
- startsAt?: number;
5245
- finished?: boolean;
5246
- url: string;
5247
- /** Format: int64 */
5248
- delay?: number;
5249
- };
5250
- BroadcastRoundTournamentInfo: {
5251
- id: string;
5252
- name: string;
5253
- slug: string;
5254
- description: string;
5255
- /** Format: int64 */
5256
- createdAt: number;
5257
- tier?: number;
5258
- /** @description URL of the tournament image */
5259
- image?: string;
5260
- };
5261
5534
  BroadcastRoundStudyInfo: {
5262
5535
  /** @description Whether the currently authenticated user has permission to update the study */
5263
5536
  writeable?: boolean;
5264
5537
  };
5538
+ /** @example {
5539
+ * "round": {
5540
+ * "createdAt": 1717344905926,
5541
+ * "id": "n8JeQIeY",
5542
+ * "name": "round 1",
5543
+ * "slug": "round-1",
5544
+ * "url": "https://lichess.org/broadcast/new-name/round-1/n8JeQIeY"
5545
+ * },
5546
+ * "study": {
5547
+ * "writeable": true
5548
+ * },
5549
+ * "tour": {
5550
+ * "createdAt": 1717342164861,
5551
+ * "description": "test",
5552
+ * "id": "HdRP6fce",
5553
+ * "name": "New Name",
5554
+ * "slug": "new-name",
5555
+ * "url": "https://lichess.org/broadcast/new-name/HdRP6fce"
5556
+ * }
5557
+ * } */
5558
+ BroadcastRoundNew: {
5559
+ round: components["schemas"]["BroadcastRoundInfo"];
5560
+ tour: components["schemas"]["BroadcastTour"];
5561
+ study: components["schemas"]["BroadcastRoundStudyInfo"];
5562
+ };
5265
5563
  BroadcastRoundGame: {
5266
5564
  id: string;
5267
5565
  name: string;
@@ -5298,7 +5596,8 @@ export interface components {
5298
5596
  * "description": "May 18th - 19th | 4-player double round-robin | Rapid time control | Carlsen, Nakamura, Anand",
5299
5597
  * "createdAt": 1716014078747,
5300
5598
  * "tier": 5,
5301
- * "image": "https://image.lichess1.org/display?h=400&op=thumbnail&path=loepare:relay:ZuOkdeXK:iq0feQJe.jpg&w=800&sig=36e58a1a648af5b9fe6d3f5725c7a2f52d853153"
5599
+ * "image": "https://image.lichess1.org/display?h=400&op=thumbnail&path=loepare:relay:ZuOkdeXK:iq0feQJe.jpg&w=800&sig=36e58a1a648af5b9fe6d3f5725c7a2f52d853153",
5600
+ * "url": "https://lichess.org/broadcast/casablanca-chess-2024/ZuOkdeXK"
5302
5601
  * },
5303
5602
  * "study": {
5304
5603
  * "writeable": false
@@ -5354,7 +5653,7 @@ export interface components {
5354
5653
  * } */
5355
5654
  BroadcastRound: {
5356
5655
  round: components["schemas"]["BroadcastRoundInfo"];
5357
- tour: components["schemas"]["BroadcastRoundTournamentInfo"];
5656
+ tour: components["schemas"]["BroadcastTour"];
5358
5657
  study: components["schemas"]["BroadcastRoundStudyInfo"];
5359
5658
  games: components["schemas"]["BroadcastRoundGame"][];
5360
5659
  };
@@ -5402,20 +5701,19 @@ export interface components {
5402
5701
  };
5403
5702
  /** @example {
5404
5703
  * "round": {
5405
- * "id": "0gLwMpx8",
5406
- * "name": "Round 1",
5704
+ * "id": "n8JeQIeY",
5705
+ * "name": "round 1",
5407
5706
  * "slug": "round-1",
5408
- * "createdAt": 1716048406676,
5409
- * "startsAt": 1713456000000,
5410
- * "url": "https://lichess.org/broadcast/moonway-chess-festival/round-1/0gLwMpx8",
5411
- * "delay": 600
5707
+ * "createdAt": 1717344905926,
5708
+ * "url": "https://lichess.org/broadcast/new-name/round-1/n8JeQIeY"
5412
5709
  * },
5413
5710
  * "tour": {
5414
- * "id": "noRt7b8A",
5415
- * "name": "Moonway Chess Festival",
5416
- * "slug": "moonway-chess-festival",
5417
- * "description": "April 18th - 28th | 10-round Swiss | Classical time control",
5418
- * "createdAt": 1716048385395
5711
+ * "id": "HdRP6fce",
5712
+ * "name": "New Name",
5713
+ * "slug": "new-name",
5714
+ * "description": "test",
5715
+ * "createdAt": 1717342164861,
5716
+ * "url": "https://lichess.org/broadcast/new-name/HdRP6fce"
5419
5717
  * },
5420
5718
  * "study": {
5421
5719
  * "writeable": true
@@ -5423,7 +5721,7 @@ export interface components {
5423
5721
  * } */
5424
5722
  BroadcastMyRound: {
5425
5723
  round: components["schemas"]["BroadcastRoundInfo"];
5426
- tour: components["schemas"]["BroadcastRoundTournamentInfo"];
5724
+ tour: components["schemas"]["BroadcastTour"];
5427
5725
  study: components["schemas"]["BroadcastRoundStudyInfo"];
5428
5726
  };
5429
5727
  /** @example {
@@ -7891,7 +8189,7 @@ export interface operations {
7891
8189
  [name: string]: unknown;
7892
8190
  };
7893
8191
  content: {
7894
- "application/json": components["schemas"]["ArenaTournamentVariantIsKey"];
8192
+ "application/json": components["schemas"]["ArenaTournamentFull"];
7895
8193
  };
7896
8194
  };
7897
8195
  /** @description The creation of the Arena tournament failed. */
@@ -7927,7 +8225,7 @@ export interface operations {
7927
8225
  [name: string]: unknown;
7928
8226
  };
7929
8227
  content: {
7930
- "application/json": components["schemas"]["ArenaTournamentVariantIsKey"];
8228
+ "application/json": components["schemas"]["ArenaTournamentFull"];
7931
8229
  };
7932
8230
  };
7933
8231
  };
@@ -8141,7 +8439,7 @@ export interface operations {
8141
8439
  [name: string]: unknown;
8142
8440
  };
8143
8441
  content: {
8144
- "application/json": components["schemas"]["ArenaTournamentVariantIsKey"];
8442
+ "application/json": components["schemas"]["ArenaTournamentFull"];
8145
8443
  };
8146
8444
  };
8147
8445
  /** @description The update of the Arena tournament failed. */
@@ -8308,7 +8606,7 @@ export interface operations {
8308
8606
  [name: string]: unknown;
8309
8607
  };
8310
8608
  content: {
8311
- "application/json": components["schemas"]["ArenaTournamentVariantIsKey"];
8609
+ "application/json": components["schemas"]["ArenaTournamentFull"];
8312
8610
  };
8313
8611
  };
8314
8612
  /** @description The update of the team battle tournament failed. */
@@ -9452,7 +9750,7 @@ export interface operations {
9452
9750
  };
9453
9751
  };
9454
9752
  };
9455
- broadcastIndex: {
9753
+ broadcastsOfficial: {
9456
9754
  parameters: {
9457
9755
  query?: {
9458
9756
  /** @description Max number of broadcasts to fetch */
@@ -9471,7 +9769,46 @@ export interface operations {
9471
9769
  [name: string]: unknown;
9472
9770
  };
9473
9771
  content: {
9474
- "application/x-ndjson": components["schemas"]["BroadcastTour"][];
9772
+ "application/x-ndjson": components["schemas"]["BroadcastWithRounds"];
9773
+ };
9774
+ };
9775
+ };
9776
+ };
9777
+ broadcastsByUser: {
9778
+ parameters: {
9779
+ query?: {
9780
+ page?: number;
9781
+ };
9782
+ header?: never;
9783
+ path: {
9784
+ username: string;
9785
+ };
9786
+ cookie?: never;
9787
+ };
9788
+ requestBody?: never;
9789
+ responses: {
9790
+ /** @description A paginated list of the broadcasts created by a user. */
9791
+ 200: {
9792
+ headers: {
9793
+ "Access-Control-Allow-Origin"?: string;
9794
+ [name: string]: unknown;
9795
+ };
9796
+ content: {
9797
+ "application/json": {
9798
+ /** @example 4 */
9799
+ currentPage: number;
9800
+ /** @example 15 */
9801
+ maxPerPage: number;
9802
+ currentPageResults: components["schemas"]["BroadcastByUser"][];
9803
+ /** @example 205194 */
9804
+ nbResults: number;
9805
+ /** @example 3 */
9806
+ previousPage: number | null;
9807
+ /** @example 5 */
9808
+ nextPage: number | null;
9809
+ /** @example 13680 */
9810
+ nbPages: number;
9811
+ };
9475
9812
  };
9476
9813
  };
9477
9814
  };
@@ -9496,7 +9833,7 @@ export interface operations {
9496
9833
  [name: string]: unknown;
9497
9834
  };
9498
9835
  content: {
9499
- "application/json": components["schemas"]["BroadcastTour"];
9836
+ "application/json": components["schemas"]["BroadcastWithRounds"];
9500
9837
  };
9501
9838
  };
9502
9839
  /** @description The creation of the broadcast tournament failed. */
@@ -9528,7 +9865,7 @@ export interface operations {
9528
9865
  [name: string]: unknown;
9529
9866
  };
9530
9867
  content: {
9531
- "application/json": components["schemas"]["BroadcastTour"];
9868
+ "application/json": components["schemas"]["BroadcastWithRounds"];
9532
9869
  };
9533
9870
  };
9534
9871
  };
@@ -9646,7 +9983,7 @@ export interface operations {
9646
9983
  [name: string]: unknown;
9647
9984
  };
9648
9985
  content: {
9649
- "application/json": components["schemas"]["BroadcastRound"];
9986
+ "application/json": components["schemas"]["BroadcastRoundNew"];
9650
9987
  };
9651
9988
  };
9652
9989
  /** @description The creation of the broadcast failed. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lichess-org/types",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Lichess.org API types",
5
5
  "homepage": "https://github.com/lichess-org/api",
6
6
  "license": "AGPL-3.0-or-later",
@@ -10,7 +10,7 @@
10
10
  "gen": "openapi-typescript ../doc/specs/lichess-api.yaml -o lichess-api.d.ts"
11
11
  },
12
12
  "devDependencies": {
13
- "openapi-typescript": "7.0.0-rc.0",
14
- "prettier": "^3.2.5"
15
- }
13
+ "prettier": "^3.3.0"
14
+ },
15
+ "packageManager": "pnpm@9.1.4+sha512.9df9cf27c91715646c7d675d1c9c8e41f6fce88246f1318c1aa6a1ed1aeb3c4f032fcdf4ba63cc69c4fe6d634279176b5358727d8f2cc1e65b65f43ce2f8bfb0"
16
16
  }