tbarequest 0.0.2 → 0.1.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 (35) hide show
  1. package/README.md +0 -4
  2. package/dist/index.d.ts +1 -2
  3. package/dist/index.js +5 -4
  4. package/dist/types/endpoints/districts.d.ts +137 -149
  5. package/dist/types/endpoints/districts.js +23 -23
  6. package/dist/types/endpoints/events.d.ts +1435 -13300
  7. package/dist/types/endpoints/events.js +86 -82
  8. package/dist/types/endpoints/index.d.ts +10 -11
  9. package/dist/types/endpoints/index.js +11 -11
  10. package/dist/types/endpoints/insights.d.ts +23 -28
  11. package/dist/types/endpoints/insights.js +5 -5
  12. package/dist/types/endpoints/matches.d.ts +1079 -12936
  13. package/dist/types/endpoints/matches.js +3 -3
  14. package/dist/types/endpoints/regionalAdvancements.d.ts +27 -31
  15. package/dist/types/endpoints/regionalAdvancements.js +6 -5
  16. package/dist/types/endpoints/status.d.ts +14 -29
  17. package/dist/types/endpoints/status.js +7 -7
  18. package/dist/types/endpoints/teams.d.ts +2614 -26376
  19. package/dist/types/endpoints/teams.js +67 -65
  20. package/dist/types/index.d.ts +4 -3
  21. package/dist/types/schemas/districts.d.ts +22 -23
  22. package/dist/types/schemas/districts.js +23 -23
  23. package/dist/types/schemas/events.d.ts +176 -223
  24. package/dist/types/schemas/events.js +93 -93
  25. package/dist/types/schemas/insights.d.ts +19 -24
  26. package/dist/types/schemas/insights.js +20 -20
  27. package/dist/types/schemas/matches.d.ts +2602 -14850
  28. package/dist/types/schemas/matches.js +483 -526
  29. package/dist/types/schemas/regionalAdvancements.d.ts +20 -27
  30. package/dist/types/schemas/regionalAdvancements.js +21 -21
  31. package/dist/types/schemas/status.d.ts +3 -4
  32. package/dist/types/schemas/status.js +4 -4
  33. package/dist/types/schemas/teams.d.ts +46 -45
  34. package/dist/types/schemas/teams.js +35 -35
  35. package/package.json +10 -5
@@ -1,573 +1,530 @@
1
- import { z } from "zod";
1
+ import { type } from "arktype";
2
+ const reef = type({
3
+ botRow: {
4
+ nodeA: "boolean",
5
+ nodeB: "boolean",
6
+ nodeC: "boolean",
7
+ nodeD: "boolean",
8
+ nodeE: "boolean",
9
+ nodeF: "boolean",
10
+ nodeG: "boolean",
11
+ nodeH: "boolean",
12
+ nodeI: "boolean",
13
+ nodeJ: "boolean",
14
+ nodeK: "boolean",
15
+ nodeL: "boolean",
16
+ },
17
+ midRow: {
18
+ nodeA: "boolean",
19
+ nodeB: "boolean",
20
+ nodeC: "boolean",
21
+ nodeD: "boolean",
22
+ nodeE: "boolean",
23
+ nodeF: "boolean",
24
+ nodeG: "boolean",
25
+ nodeH: "boolean",
26
+ nodeI: "boolean",
27
+ nodeJ: "boolean",
28
+ nodeK: "boolean",
29
+ nodeL: "boolean",
30
+ },
31
+ topRow: {
32
+ nodeA: "boolean",
33
+ nodeB: "boolean",
34
+ nodeC: "boolean",
35
+ nodeD: "boolean",
36
+ nodeE: "boolean",
37
+ nodeF: "boolean",
38
+ nodeG: "boolean",
39
+ nodeH: "boolean",
40
+ nodeI: "boolean",
41
+ nodeJ: "boolean",
42
+ nodeK: "boolean",
43
+ nodeL: "boolean",
44
+ },
45
+ trough: "number",
46
+ tba_botRowCount: "number",
47
+ tba_midRowCount: "number",
48
+ tba_topRowCount: "number",
49
+ });
2
50
  export const matchScoreBreakdownYearsAlliances = {
3
- "2015": z.object({
4
- adjust_points: z.number(),
5
- auto_points: z.number(),
6
- container_count_level1: z.number(),
7
- container_count_level2: z.number(),
8
- container_count_level3: z.number(),
9
- container_count_level4: z.number(),
10
- container_count_level5: z.number(),
11
- container_count_level6: z.number(),
12
- container_points: z.number(),
13
- container_set: z.boolean(),
14
- foul_count: z.number(),
15
- foul_points: z.number(),
16
- litter_count_container: z.number(),
17
- litter_count_landfill: z.number(),
18
- litter_count_unprocessed: z.number(),
19
- litter_points: z.number(),
20
- robot_set: z.boolean(),
21
- teleop_points: z.number(),
22
- total_points: z.number(),
23
- tote_count_far: z.number(),
24
- tote_count_near: z.number(),
25
- tote_points: z.number(),
26
- tote_set: z.boolean(),
27
- tote_stack: z.boolean(),
51
+ "2015": type({
52
+ adjust_points: "number",
53
+ auto_points: "number",
54
+ container_count_level1: "number",
55
+ container_count_level2: "number",
56
+ container_count_level3: "number",
57
+ container_count_level4: "number",
58
+ container_count_level5: "number",
59
+ container_count_level6: "number",
60
+ container_points: "number",
61
+ container_set: "boolean",
62
+ foul_count: "number",
63
+ foul_points: "number",
64
+ litter_count_container: "number",
65
+ litter_count_landfill: "number",
66
+ litter_count_unprocessed: "number",
67
+ litter_points: "number",
68
+ robot_set: "boolean",
69
+ teleop_points: "number",
70
+ total_points: "number",
71
+ tote_count_far: "number",
72
+ tote_count_near: "number",
73
+ tote_points: "number",
74
+ tote_set: "boolean",
75
+ tote_stack: "boolean",
28
76
  }).partial(),
29
- "2016": z.object({
30
- adjustPoints: z.number(),
31
- autoBoulderPoints: z.number(),
32
- autoBouldersHigh: z.number(),
33
- autoBouldersLow: z.number(),
34
- autoCrossingPoints: z.number(),
35
- autoPoints: z.number(),
36
- autoReachPoints: z.number(),
37
- breachPoints: z.number(),
38
- capturePoints: z.number(),
39
- foulCount: z.number(),
40
- foulPoints: z.number(),
41
- position1crossings: z.number(),
42
- position2: z.string(),
43
- position2crossings: z.number(),
44
- position3: z.string(),
45
- position3crossings: z.number(),
46
- position4: z.string(),
47
- position4crossings: z.number(),
48
- position5: z.string(),
49
- position5crossings: z.number(),
50
- robot1Auto: z.enum(["Crossed, Reached, None"]),
51
- robot2Auto: z.string(),
52
- robot3Auto: z.string(),
53
- tba_rpEarned: z.number(),
54
- techFoulCount: z.number(),
55
- teleopBoulderPoints: z.number(),
56
- teleopBouldersHigh: z.number(),
57
- teleopBouldersLow: z.number(),
58
- teleopChallengePoints: z.number(),
59
- teleopCrossingPoints: z.number(),
60
- teleopDefensesBreached: z.boolean(),
61
- teleopPoints: z.number(),
62
- teleopScalePoints: z.number(),
63
- teleopTowerCaptured: z.boolean(),
64
- totalPoints: z.number(),
65
- towerEndStrength: z.number(),
66
- towerFaceA: z.string(),
67
- towerFaceB: z.string(),
68
- towerFaceC: z.string(),
77
+ "2016": type({
78
+ adjustPoints: "number",
79
+ autoBoulderPoints: "number",
80
+ autoBouldersHigh: "number",
81
+ autoBouldersLow: "number",
82
+ autoCrossingPoints: "number",
83
+ autoPoints: "number",
84
+ autoReachPoints: "number",
85
+ breachPoints: "number",
86
+ capturePoints: "number",
87
+ foulCount: "number",
88
+ foulPoints: "number",
89
+ position1crossings: "number",
90
+ position2: "string",
91
+ position2crossings: "number",
92
+ position3: "string",
93
+ position3crossings: "number",
94
+ position4: "string",
95
+ position4crossings: "number",
96
+ position5: "string",
97
+ position5crossings: "number",
98
+ robot1Auto: "'Crossed' | 'Reached' | 'None'",
99
+ robot2Auto: "string",
100
+ robot3Auto: "string",
101
+ tba_rpEarned: "number",
102
+ techFoulCount: "number",
103
+ teleopBoulderPoints: "number",
104
+ teleopBouldersHigh: "number",
105
+ teleopBouldersLow: "number",
106
+ teleopChallengePoints: "number",
107
+ teleopCrossingPoints: "number",
108
+ teleopDefensesBreached: "boolean",
109
+ teleopPoints: "number",
110
+ teleopScalePoints: "number",
111
+ teleopTowerCaptured: "boolean",
112
+ totalPoints: "number",
113
+ towerEndStrength: "number",
114
+ towerFaceA: "string",
115
+ towerFaceB: "string",
116
+ towerFaceC: "string",
69
117
  }).partial(),
70
- "2017": z.object({
71
- adjustPoints: z.number(),
72
- autoFuelHigh: z.number(),
73
- autoFuelLow: z.number(),
74
- autoFuelPoints: z.number(),
75
- autoMobilityPoints: z.number(),
76
- autoPoints: z.number(),
77
- autoRotorPoints: z.number(),
78
- foulCount: z.number(),
79
- foulPoints: z.number(),
80
- kPaBonusPoints: z.number(),
81
- kPaRankingPointAchieved: z.boolean(),
82
- robot1Auto: z.enum(["Unknown", "Mobility", "None"]),
83
- robot2Auto: z.enum(["Unknown", "Mobility", "None"]),
84
- robot3Auto: z.enum(["Unknown", "Mobility", "None"]),
85
- rotor1Auto: z.boolean(),
86
- rotor1Engaged: z.boolean(),
87
- rotor2Auto: z.boolean(),
88
- rotor2Engaged: z.boolean(),
89
- rotor3Engaged: z.boolean(),
90
- rotor4Engaged: z.boolean(),
91
- rotorBonusPoints: z.number(),
92
- rotorRankingPointAchieved: z.boolean(),
93
- tba_rpEarned: z.number(),
94
- techFoulCount: z.number(),
95
- teleopFuelHigh: z.number(),
96
- teleopFuelLow: z.number(),
97
- teleopFuelPoints: z.number(),
98
- teleopPoints: z.number(),
99
- teleopRotorPoints: z.number(),
100
- teleopTakeoffPoints: z.number(),
101
- totalPoints: z.number(),
102
- touchpadFar: z.string(),
103
- touchpadMiddle: z.string(),
104
- touchpadNear: z.string(),
118
+ "2017": type({
119
+ adjustPoints: "number",
120
+ autoFuelHigh: "number",
121
+ autoFuelLow: "number",
122
+ autoFuelPoints: "number",
123
+ autoMobilityPoints: "number",
124
+ autoPoints: "number",
125
+ autoRotorPoints: "number",
126
+ foulCount: "number",
127
+ foulPoints: "number",
128
+ kPaBonusPoints: "number",
129
+ kPaRankingPointAchieved: "boolean",
130
+ robot1Auto: "'Unknown' | 'Mobility' | 'None'",
131
+ robot2Auto: "'Unknown' | 'Mobility' | 'None'",
132
+ robot3Auto: "'Unknown' | 'Mobility' | 'None'",
133
+ rotor1Auto: "boolean",
134
+ rotor1Engaged: "boolean",
135
+ rotor2Auto: "boolean",
136
+ rotor2Engaged: "boolean",
137
+ rotor3Engaged: "boolean",
138
+ rotor4Engaged: "boolean",
139
+ rotorBonusPoints: "number",
140
+ rotorRankingPointAchieved: "boolean",
141
+ tba_rpEarned: "number",
142
+ techFoulCount: "number",
143
+ teleopFuelHigh: "number",
144
+ teleopFuelLow: "number",
145
+ teleopFuelPoints: "number",
146
+ teleopPoints: "number",
147
+ teleopRotorPoints: "number",
148
+ teleopTakeoffPoints: "number",
149
+ totalPoints: "number",
150
+ touchpadFar: "string",
151
+ touchpadMiddle: "string",
152
+ touchpadNear: "string",
105
153
  }).partial(),
106
- "2018": z.object({
107
- adjustPoints: z.number(),
108
- autoOwnershipPoints: z.number(),
109
- autoPoints: z.number(),
110
- autoQuestRankingPoint: z.boolean(),
111
- autoRobot1: z.string(),
112
- autoRobot2: z.string(),
113
- autoRobot3: z.string(),
114
- autoRunPoints: z.number(),
115
- autoScaleOwnershipSec: z.number(),
116
- autoSwitchAtZero: z.boolean(),
117
- autoSwitchOwnershipSec: z.number(),
118
- endgamePoints: z.number(),
119
- endgameRobot1: z.string(),
120
- endgameRobot2: z.string(),
121
- endgameRobot3: z.string(),
122
- faceTheBossRankingPoint: z.boolean(),
123
- foulCount: z.number(),
124
- foulPoints: z.number(),
125
- rp: z.number(),
126
- tba_gameData: z.string(),
127
- techFoulCount: z.number(),
128
- teleopOwnershipPoints: z.number(),
129
- teleopPoints: z.number(),
130
- teleopScaleBoostSec: z.number(),
131
- teleopScaleForceSec: z.number(),
132
- teleopScaleOwnershipSec: z.number(),
133
- teleopSwitchBoostSec: z.number(),
134
- teleopSwitchForceSec: z.number(),
135
- teleopSwitchOwnershipSec: z.number(),
136
- totalPoints: z.number(),
137
- vaultBoostPlayed: z.number(),
138
- vaultBoostTotal: z.number(),
139
- vaultForcePlayed: z.number(),
140
- vaultForceTotal: z.number(),
141
- vaultLevitatePlayed: z.number(),
142
- vaultLevitateTotal: z.number(),
143
- vaultPoints: z.number(),
154
+ "2018": type({
155
+ adjustPoints: "number",
156
+ autoOwnershipPoints: "number",
157
+ autoPoints: "number",
158
+ autoQuestRankingPoint: "boolean",
159
+ autoRobot1: "string",
160
+ autoRobot2: "string",
161
+ autoRobot3: "string",
162
+ autoRunPoints: "number",
163
+ autoScaleOwnershipSec: "number",
164
+ autoSwitchAtZero: "boolean",
165
+ autoSwitchOwnershipSec: "number",
166
+ endgamePoints: "number",
167
+ endgameRobot1: "string",
168
+ endgameRobot2: "string",
169
+ endgameRobot3: "string",
170
+ faceTheBossRankingPoint: "boolean",
171
+ foulCount: "number",
172
+ foulPoints: "number",
173
+ rp: "number",
174
+ tba_gameData: "string",
175
+ techFoulCount: "number",
176
+ teleopOwnershipPoints: "number",
177
+ teleopPoints: "number",
178
+ teleopScaleBoostSec: "number",
179
+ teleopScaleForceSec: "number",
180
+ teleopScaleOwnershipSec: "number",
181
+ teleopSwitchBoostSec: "number",
182
+ teleopSwitchForceSec: "number",
183
+ teleopSwitchOwnershipSec: "number",
184
+ totalPoints: "number",
185
+ vaultBoostPlayed: "number",
186
+ vaultBoostTotal: "number",
187
+ vaultForcePlayed: "number",
188
+ vaultForceTotal: "number",
189
+ vaultLevitatePlayed: "number",
190
+ vaultLevitateTotal: "number",
191
+ vaultPoints: "number",
144
192
  }).partial(),
145
- "2019": z.object({
146
- adjustPoints: z.number(),
147
- autoPoints: z.number(),
148
- bay1: z.string(),
149
- bay2: z.string(),
150
- bay3: z.string(),
151
- bay4: z.string(),
152
- bay5: z.string(),
153
- bay6: z.string(),
154
- bay7: z.string(),
155
- bay8: z.string(),
156
- cargoPoints: z.number(),
157
- completeRocketRankingPoint: z.boolean(),
158
- completedRocketFar: z.boolean(),
159
- completedRocketNear: z.boolean(),
160
- endgameRobot1: z.string(),
161
- endgameRobot2: z.string(),
162
- endgameRobot3: z.string(),
163
- foulCount: z.number(),
164
- foulPoints: z.number(),
165
- habClimbPoints: z.number(),
166
- habDockingRankingPoint: z.boolean(),
167
- habLineRobot1: z.string(),
168
- habLineRobot2: z.string(),
169
- habLineRobot3: z.string(),
170
- hatchPanelPoints: z.number(),
171
- lowLeftRocketFar: z.string(),
172
- lowLeftRocketNear: z.string(),
173
- lowRightRocketFar: z.string(),
174
- lowRightRocketNear: z.string(),
175
- midLeftRocketFar: z.string(),
176
- midLeftRocketNear: z.string(),
177
- midRightRocketFar: z.string(),
178
- midRightRocketNear: z.string(),
179
- preMatchBay1: z.string(),
180
- preMatchBay2: z.string(),
181
- preMatchBay3: z.string(),
182
- preMatchBay6: z.string(),
183
- preMatchBay7: z.string(),
184
- preMatchBay8: z.string(),
185
- preMatchLevelRobot1: z.string(),
186
- preMatchLevelRobot2: z.string(),
187
- preMatchLevelRobot3: z.string(),
188
- rp: z.number(),
189
- sandStormBonusPoints: z.number(),
190
- techFoulCount: z.number(),
191
- teleopPoints: z.number(),
192
- topLeftRocketFar: z.string(),
193
- topLeftRocketNear: z.string(),
194
- topRightRocketFar: z.string(),
195
- topRightRocketNear: z.string(),
196
- totalPoints: z.number(),
193
+ "2019": type({
194
+ adjustPoints: "number",
195
+ autoPoints: "number",
196
+ bay1: "string",
197
+ bay2: "string",
198
+ bay3: "string",
199
+ bay4: "string",
200
+ bay5: "string",
201
+ bay6: "string",
202
+ bay7: "string",
203
+ bay8: "string",
204
+ cargoPoints: "number",
205
+ completeRocketRankingPoint: "boolean",
206
+ completedRocketFar: "boolean",
207
+ completedRocketNear: "boolean",
208
+ endgameRobot1: "string",
209
+ endgameRobot2: "string",
210
+ endgameRobot3: "string",
211
+ foulCount: "number",
212
+ foulPoints: "number",
213
+ habClimbPoints: "number",
214
+ habDockingRankingPoint: "boolean",
215
+ habLineRobot1: "string",
216
+ habLineRobot2: "string",
217
+ habLineRobot3: "string",
218
+ hatchPanelPoints: "number",
219
+ lowLeftRocketFar: "string",
220
+ lowLeftRocketNear: "string",
221
+ lowRightRocketFar: "string",
222
+ lowRightRocketNear: "string",
223
+ midLeftRocketFar: "string",
224
+ midLeftRocketNear: "string",
225
+ midRightRocketFar: "string",
226
+ midRightRocketNear: "string",
227
+ preMatchBay1: "string",
228
+ preMatchBay2: "string",
229
+ preMatchBay3: "string",
230
+ preMatchBay6: "string",
231
+ preMatchBay7: "string",
232
+ preMatchBay8: "string",
233
+ preMatchLevelRobot1: "string",
234
+ preMatchLevelRobot2: "string",
235
+ preMatchLevelRobot3: "string",
236
+ rp: "number",
237
+ sandStormBonusPoints: "number",
238
+ techFoulCount: "number",
239
+ teleopPoints: "number",
240
+ topLeftRocketFar: "string",
241
+ topLeftRocketNear: "string",
242
+ topRightRocketFar: "string",
243
+ topRightRocketNear: "string",
244
+ totalPoints: "number",
197
245
  }).partial(),
198
- "2020": z.object({
199
- adjustPoints: z.number(),
200
- autoCellPoints: z.number(),
201
- autoCellsBottom: z.number(),
202
- autoCellsInner: z.number(),
203
- autoCellsOuter: z.number(),
204
- autoInitLinePoints: z.number(),
205
- autoPoints: z.number(),
206
- controlPanelPoints: z.number(),
207
- endgamePoints: z.number(),
208
- endgameRobot1: z.string(),
209
- endgameRobot2: z.string(),
210
- endgameRobot3: z.string(),
211
- endgameRungIsLevel: z.string(),
212
- foulCount: z.number(),
213
- foulPoints: z.number(),
214
- initLineRobot1: z.string(),
215
- initLineRobot2: z.string(),
216
- initLineRobot3: z.string(),
217
- rp: z.number(),
218
- shieldEnergizedRankingPoint: z.boolean(),
219
- shieldOperationalRankingPoint: z.boolean(),
220
- stage1Activated: z.boolean(),
221
- stage2Activated: z.boolean(),
222
- stage3Activated: z.boolean(),
223
- stage3TargetColor: z.string(),
224
- tba_numRobotsHanging: z.number(),
225
- tba_shieldEnergizedRankingPointFromFoul: z.boolean(),
226
- techFoulCount: z.number(),
227
- teleopCellPoints: z.number(),
228
- teleopCellsBottom: z.number(),
229
- teleopCellsInner: z.number(),
230
- teleopCellsOuter: z.number(),
231
- teleopPoints: z.number(),
232
- totalPoints: z.number(),
246
+ "2020": type({
247
+ adjustPoints: "number",
248
+ autoCellPoints: "number",
249
+ autoCellsBottom: "number",
250
+ autoCellsInner: "number",
251
+ autoCellsOuter: "number",
252
+ autoInitLinePoints: "number",
253
+ autoPoints: "number",
254
+ controlPanelPoints: "number",
255
+ endgamePoints: "number",
256
+ endgameRobot1: "string",
257
+ endgameRobot2: "string",
258
+ endgameRobot3: "string",
259
+ endgameRungIsLevel: "string",
260
+ foulCount: "number",
261
+ foulPoints: "number",
262
+ initLineRobot1: "string",
263
+ initLineRobot2: "string",
264
+ initLineRobot3: "string",
265
+ rp: "number",
266
+ shieldEnergizedRankingPoint: "boolean",
267
+ shieldOperationalRankingPoint: "boolean",
268
+ stage1Activated: "boolean",
269
+ stage2Activated: "boolean",
270
+ stage3Activated: "boolean",
271
+ stage3TargetColor: "string",
272
+ tba_numRobotsHanging: "number",
273
+ tba_shieldEnergizedRankingPointFromFoul: "boolean",
274
+ techFoulCount: "number",
275
+ teleopCellPoints: "number",
276
+ teleopCellsBottom: "number",
277
+ teleopCellsInner: "number",
278
+ teleopCellsOuter: "number",
279
+ teleopPoints: "number",
280
+ totalPoints: "number",
233
281
  }).partial(),
234
- "2022": z.object({
235
- adjustPoints: z.number(),
236
- autoCargoLowerBlue: z.number(),
237
- autoCargoLowerFar: z.number(),
238
- autoCargoLowerNear: z.number(),
239
- autoCargoLowerRed: z.number(),
240
- autoCargoPoints: z.number(),
241
- autoCargoTotal: z.number(),
242
- autoCargoUpperBlue: z.number(),
243
- autoCargoUpperFar: z.number(),
244
- autoCargoUpperNear: z.number(),
245
- autoCargoUpperRed: z.number(),
246
- autoPoints: z.number(),
247
- autoTaxiPoints: z.number(),
248
- cargoBonusRankingPoint: z.boolean(),
249
- endgamePoints: z.number(),
250
- endgameRobot1: z.enum(["Transversal", "High", "Mid", "Low", "None"]),
251
- endgameRobot2: z.enum(["Transversal", "High", "Mid", "Low", "None"]),
252
- endgameRobot3: z.enum(["Transversal", "High", "Mid", "Low", "None"]),
253
- foulCount: z.number(),
254
- foulPoints: z.number(),
255
- hangarBonusRankingPoint: z.boolean(),
256
- matchCargoTotal: z.number(),
257
- quintetAchieved: z.boolean(),
258
- rp: z.number(),
259
- taxiRobot1: z.enum(["Yes", "No"]),
260
- taxiRobot2: z.enum(["Yes", "No"]),
261
- taxiRobot3: z.enum(["Yes", "No"]),
262
- techFoulCount: z.number(),
263
- teleopCargoLowerBlue: z.number(),
264
- teleopCargoLowerFar: z.number(),
265
- teleopCargoLowerNear: z.number(),
266
- teleopCargoLowerRed: z.number(),
267
- teleopCargoPoints: z.number(),
268
- teleopCargoTotal: z.number(),
269
- teleopCargoUpperBlue: z.number(),
270
- teleopCargoUpperFar: z.number(),
271
- teleopCargoUpperNear: z.number(),
272
- teleopCargoUpperRed: z.number(),
273
- teleopPoints: z.number(),
274
- totalPoints: z.number(),
282
+ "2022": type({
283
+ adjustPoints: "number",
284
+ autoCargoLowerBlue: "number",
285
+ autoCargoLowerFar: "number",
286
+ autoCargoLowerNear: "number",
287
+ autoCargoLowerRed: "number",
288
+ autoCargoPoints: "number",
289
+ autoCargoTotal: "number",
290
+ autoCargoUpperBlue: "number",
291
+ autoCargoUpperFar: "number",
292
+ autoCargoUpperNear: "number",
293
+ autoCargoUpperRed: "number",
294
+ autoPoints: "number",
295
+ autoTaxiPoints: "number",
296
+ cargoBonusRankingPoint: "boolean",
297
+ endgamePoints: "number",
298
+ endgameRobot1: "'Transversal' | 'High' | 'Mid' | 'Low' | 'None'",
299
+ endgameRobot2: "'Transversal' | 'High' | 'Mid' | 'Low' | 'None'",
300
+ endgameRobot3: "'Transversal' | 'High' | 'Mid' | 'Low' | 'None'",
301
+ foulCount: "number",
302
+ foulPoints: "number",
303
+ hangarBonusRankingPoint: "boolean",
304
+ matchCargoTotal: "number",
305
+ quintetAchieved: "boolean",
306
+ rp: "number",
307
+ taxiRobot1: "'Yes' | 'No'",
308
+ taxiRobot2: "'Yes' | 'No'",
309
+ taxiRobot3: "'Yes' | 'No'",
310
+ techFoulCount: "number",
311
+ teleopCargoLowerBlue: "number",
312
+ teleopCargoLowerFar: "number",
313
+ teleopCargoLowerNear: "number",
314
+ teleopCargoLowerRed: "number",
315
+ teleopCargoPoints: "number",
316
+ teleopCargoTotal: "number",
317
+ teleopCargoUpperBlue: "number",
318
+ teleopCargoUpperFar: "number",
319
+ teleopCargoUpperNear: "number",
320
+ teleopCargoUpperRed: "number",
321
+ teleopPoints: "number",
322
+ totalPoints: "number",
275
323
  }).partial(),
276
- "2023": z.object({
277
- activationBonusAchieved: z.boolean(),
278
- adjustPoints: z.number(),
279
- autoBridgeState: z.enum(["NotLevel", "Level"]),
280
- autoChargeStationPoints: z.number(),
281
- autoChargeStationRobot1: z.enum(["None", "Docked"]),
282
- autoChargeStationRobot2: z.enum(["None", "Docked"]),
283
- autoChargeStationRobot3: z.enum(["None", "Docked"]),
284
- autoCommunity: z.object({
285
- B: z.array(z.enum(["None", "Cone", "Cube"])),
286
- M: z.array(z.enum(["None", "Cone", "Cube"])),
287
- T: z.array(z.enum(["None", "Cone", "Cube"])),
288
- }),
289
- autoDocked: z.boolean(),
290
- autoGamePieceCount: z.number(),
291
- autoGamePiecePoints: z.number(),
292
- autoMobilityPoints: z.number(),
293
- autoPoints: z.number(),
294
- coopGamePieceCount: z.number(),
295
- coopertitionCriteriaMet: z.boolean(),
296
- endGameBridgeState: z.enum(["NotLevel", "Level"]),
297
- endGameChargeStationPoints: z.number(),
298
- endGameChargeStationRobot1: z.enum(["None", "Docked", "Parked"]),
299
- endGameChargeStationRobot2: z.enum(["None", "Docked", "Parked"]),
300
- endGameChargeStationRobot3: z.enum(["None", "Docked", "Parked"]),
301
- endGameParkPoints: z.number(),
302
- foulCount: z.number(),
303
- foulPoints: z.number(),
304
- linkPoints: z.number(),
305
- links: z.array(z.object({ nodes: z.array(z.number()), row: z.enum(["Bottom", "Mid", "Top"]) })),
306
- mobilityRobot1: z.enum(["Yes", "No"]),
307
- mobilityRobot2: z.enum(["Yes", "No"]),
308
- mobilityRobot3: z.enum(["Yes", "No"]),
309
- rp: z.number(),
310
- sustainabilityBonusAchieved: z.boolean(),
311
- techFoulCount: z.number(),
312
- teleopCommunity: z.object({
313
- B: z.array(z.enum(["None", "Cube", "Cone"])),
314
- M: z.array(z.enum(["None", "Cube", "Cone"])),
315
- T: z.array(z.enum(["None", "Cube", "Cone"])),
316
- }),
317
- teleopGamePieceCount: z.number(),
318
- teleopGamePiecePoints: z.number(),
319
- teleopPoints: z.number(),
320
- totalChargeStationPoints: z.number(),
321
- totalPoints: z.number(),
324
+ "2023": type({
325
+ activationBonusAchieved: "boolean",
326
+ adjustPoints: "number",
327
+ autoBridgeState: "'NotLevel' | 'Level'",
328
+ autoChargeStationPoints: "number",
329
+ autoChargeStationRobot1: "'None' | 'Docked'",
330
+ autoChargeStationRobot2: "'None' | 'Docked'",
331
+ autoChargeStationRobot3: "'None' | 'Docked'",
332
+ autoCommunity: {
333
+ B: "('None' | 'Cube' | 'Cone')[]",
334
+ M: "('None' | 'Cube' | 'Cone')[]",
335
+ T: "('None' | 'Cube' | 'Cone')[]",
336
+ },
337
+ autoDocked: "boolean",
338
+ autoGamePieceCount: "number",
339
+ autoGamePiecePoints: "number",
340
+ autoMobilityPoints: "number",
341
+ autoPoints: "number",
342
+ coopGamePieceCount: "number",
343
+ coopertitionCriteriaMet: "boolean",
344
+ endGameBridgeState: "'NotLevel' | 'Level'",
345
+ endGameChargeStationPoints: "number",
346
+ endGameChargeStationRobot1: "'None' | 'Docked' | 'Parked'",
347
+ endGameChargeStationRobot2: "'None' | 'Docked' | 'Parked'",
348
+ endGameChargeStationRobot3: "'None' | 'Docked' | 'Parked'",
349
+ endGameParkPoints: "number",
350
+ foulCount: "number",
351
+ foulPoints: "number",
352
+ linkPoints: "number",
353
+ links: type({
354
+ nodes: "number[]",
355
+ row: "'Bottom' | 'Mid' | 'Top'",
356
+ }).array(),
357
+ mobilityRobot1: "'Yes' | 'No'",
358
+ mobilityRobot2: "'Yes' | 'No'",
359
+ mobilityRobot3: "'Yes' | 'No'",
360
+ rp: "number",
361
+ sustainabilityBonusAchieved: "boolean",
362
+ techFoulCount: "number",
363
+ teleopCommunity: {
364
+ B: "('None' | 'Cube' | 'Cone')[]",
365
+ M: "('None' | 'Cube' | 'Cone')[]",
366
+ T: "('None' | 'Cube' | 'Cone')[]",
367
+ },
368
+ teleopGamePieceCount: "number",
369
+ teleopGamePiecePoints: "number",
370
+ teleopPoints: "number",
371
+ totalChargeStationPoints: "number",
372
+ totalPoints: "number",
322
373
  }).partial(),
323
- "2024": z.object({
324
- adjustPoints: z.number(),
325
- autoAmpNoteCount: z.number(),
326
- autoAmpNotePoints: z.number(),
327
- autoLeavePoints: z.number(),
328
- autoLineRobot1: z.string(),
329
- autoLineRobot2: z.string(),
330
- autoLineRobot3: z.string(),
331
- autoPoints: z.number(),
332
- autoSpeakerNoteCount: z.number(),
333
- autoSpeakerNotePoints: z.number(),
334
- autoTotalNotePoints: z.number(),
335
- coopNotePlayed: z.boolean(),
336
- coopertitionBonusAchieved: z.boolean(),
337
- coopertitionCriteriaMet: z.boolean(),
338
- endGameHarmonyPoints: z.number(),
339
- endGameNoteInTrapPoints: z.number(),
340
- endGameOnStagePoints: z.number(),
341
- endGameParkPoints: z.number(),
342
- endGameRobot1: z.string(),
343
- endGameRobot2: z.string(),
344
- endGameRobot3: z.string(),
345
- endGameSpotLightBonusPoints: z.number(),
346
- endGameTotalStagePoints: z.number(),
347
- ensembleBonusAchieved: z.boolean(),
348
- ensembleBonusOnStageRobotsThreshold: z.number(),
349
- ensembleBonusStagePointsThreshold: z.number(),
350
- foulCount: z.number(),
351
- foulPoints: z.number(),
352
- g206Penalty: z.boolean(),
353
- g408Penalty: z.boolean(),
354
- g424Penalty: z.boolean(),
355
- melodyBonusAchieved: z.boolean(),
356
- melodyBonusThreshold: z.number(),
357
- melodyBonusThresholdCoop: z.number(),
358
- melodyBonusThresholdNonCoop: z.number(),
359
- micCenterStage: z.boolean(),
360
- micStageLeft: z.boolean(),
361
- micStageRight: z.boolean(),
362
- rp: z.number(),
363
- techFoulCount: z.number(),
364
- teleopAmpNoteCount: z.number(),
365
- teleopAmpNotePoints: z.number(),
366
- teleopPoints: z.number(),
367
- teleopSpeakerNoteAmplifiedCount: z.number(),
368
- teleopSpeakerNoteAmplifiedPoints: z.number(),
369
- teleopSpeakerNoteCount: z.number(),
370
- teleopSpeakerNotePoints: z.number(),
371
- teleopTotalNotePoints: z.number(),
372
- totalPoints: z.number(),
373
- trapCenterStage: z.boolean(),
374
- trapStageLeft: z.boolean(),
375
- trapStageRight: z.boolean(),
374
+ "2024": type({
375
+ adjustPoints: "number",
376
+ autoAmpNoteCount: "number",
377
+ autoAmpNotePoints: "number",
378
+ autoLeavePoints: "number",
379
+ autoLineRobot1: "string",
380
+ autoLineRobot2: "string",
381
+ autoLineRobot3: "string",
382
+ autoPoints: "number",
383
+ autoSpeakerNoteCount: "number",
384
+ autoSpeakerNotePoints: "number",
385
+ autoTotalNotePoints: "number",
386
+ coopNotePlayed: "boolean",
387
+ coopertitionBonusAchieved: "boolean",
388
+ coopertitionCriteriaMet: "boolean",
389
+ endGameHarmonyPoints: "number",
390
+ endGameNoteInTrapPoints: "number",
391
+ endGameOnStagePoints: "number",
392
+ endGameParkPoints: "number",
393
+ endGameRobot1: "string",
394
+ endGameRobot2: "string",
395
+ endGameRobot3: "string",
396
+ endGameSpotLightBonusPoints: "number",
397
+ endGameTotalStagePoints: "number",
398
+ ensembleBonusAchieved: "boolean",
399
+ ensembleBonusOnStageRobotsThreshold: "number",
400
+ ensembleBonusStagePointsThreshold: "number",
401
+ foulCount: "number",
402
+ foulPoints: "number",
403
+ g206Penalty: "boolean",
404
+ g408Penalty: "boolean",
405
+ g424Penalty: "boolean",
406
+ melodyBonusAchieved: "boolean",
407
+ melodyBonusThreshold: "number",
408
+ melodyBonusThresholdCoop: "number",
409
+ melodyBonusThresholdNonCoop: "number",
410
+ micCenterStage: "boolean",
411
+ micStageLeft: "boolean",
412
+ micStageRight: "boolean",
413
+ rp: "number",
414
+ techFoulCount: "number",
415
+ teleopAmpNoteCount: "number",
416
+ teleopAmpNotePoints: "number",
417
+ teleopPoints: "number",
418
+ teleopSpeakerNoteAmplifiedCount: "number",
419
+ teleopSpeakerNoteAmplifiedPoints: "number",
420
+ teleopSpeakerNoteCount: "number",
421
+ teleopSpeakerNotePoints: "number",
422
+ teleopTotalNotePoints: "number",
423
+ totalPoints: "number",
424
+ trapCenterStage: "boolean",
425
+ trapStageLeft: "boolean",
426
+ trapStageRight: "boolean",
376
427
  }).partial(),
377
- "2025": z.object({
378
- adjustPoints: z.number(),
379
- algaePoints: z.number(),
380
- autoBonusAchieved: z.boolean(),
381
- autoCoralCount: z.number(),
382
- autoCoralPoints: z.number(),
383
- autoLineRobot1: z.enum(["No", "Yes"]),
384
- autoLineRobot2: z.enum(["No", "Yes"]),
385
- autoLineRobot3: z.enum(["No", "Yes"]),
386
- autoMobilityPoints: z.number(),
387
- autoPoints: z.number(),
388
- autoReef: z.object({
389
- botRow: z.object({
390
- nodeA: z.boolean(),
391
- nodeB: z.boolean(),
392
- nodeC: z.boolean(),
393
- nodeD: z.boolean(),
394
- nodeE: z.boolean(),
395
- nodeF: z.boolean(),
396
- nodeG: z.boolean(),
397
- nodeH: z.boolean(),
398
- nodeI: z.boolean(),
399
- nodeJ: z.boolean(),
400
- nodeK: z.boolean(),
401
- nodeL: z.boolean(),
402
- }),
403
- midRow: z.object({
404
- nodeA: z.boolean(),
405
- nodeB: z.boolean(),
406
- nodeC: z.boolean(),
407
- nodeD: z.boolean(),
408
- nodeE: z.boolean(),
409
- nodeF: z.boolean(),
410
- nodeG: z.boolean(),
411
- nodeH: z.boolean(),
412
- nodeI: z.boolean(),
413
- nodeJ: z.boolean(),
414
- nodeK: z.boolean(),
415
- nodeL: z.boolean(),
416
- }),
417
- tba_botRowCount: z.number(),
418
- tba_midRowCount: z.number(),
419
- tba_topRowCount: z.number(),
420
- topRow: z.object({
421
- nodeA: z.boolean(),
422
- nodeB: z.boolean(),
423
- nodeC: z.boolean(),
424
- nodeD: z.boolean(),
425
- nodeE: z.boolean(),
426
- nodeF: z.boolean(),
427
- nodeG: z.boolean(),
428
- nodeH: z.boolean(),
429
- nodeI: z.boolean(),
430
- nodeJ: z.boolean(),
431
- nodeK: z.boolean(),
432
- nodeL: z.boolean(),
433
- }),
434
- trough: z.number(),
435
- }),
436
- bargeBonusAchieved: z.boolean(),
437
- coopertitionCriteriaMet: z.boolean(),
438
- coralBonusAchieved: z.boolean(),
439
- endGameBargePoints: z.number(),
440
- endGameRobot1: z.enum(["None", "Parked", "ShallowCage", "DeepCage"]),
441
- endGameRobot2: z.enum(["None", "Parked", "ShallowCage", "DeepCage"]),
442
- endGameRobot3: z.enum(["None", "Parked", "ShallowCage", "DeepCage"]),
443
- foulCount: z.number(),
444
- foulPoints: z.number(),
445
- g206Penalty: z.boolean(),
446
- g410Penalty: z.boolean(),
447
- g418Penalty: z.boolean(),
448
- g428Penalty: z.boolean(),
449
- netAlgaeCount: z.number(),
450
- rp: z.number(),
451
- techFoulCount: z.number(),
452
- teleopCoralCount: z.number(),
453
- teleopCoralPoints: z.number(),
454
- teleopPoints: z.number(),
455
- teleopReef: z.object({
456
- botRow: z.object({
457
- nodeA: z.boolean(),
458
- nodeB: z.boolean(),
459
- nodeC: z.boolean(),
460
- nodeD: z.boolean(),
461
- nodeE: z.boolean(),
462
- nodeF: z.boolean(),
463
- nodeG: z.boolean(),
464
- nodeH: z.boolean(),
465
- nodeI: z.boolean(),
466
- nodeJ: z.boolean(),
467
- nodeK: z.boolean(),
468
- nodeL: z.boolean(),
469
- }),
470
- midRow: z.object({
471
- nodeA: z.boolean(),
472
- nodeB: z.boolean(),
473
- nodeC: z.boolean(),
474
- nodeD: z.boolean(),
475
- nodeE: z.boolean(),
476
- nodeF: z.boolean(),
477
- nodeG: z.boolean(),
478
- nodeH: z.boolean(),
479
- nodeI: z.boolean(),
480
- nodeJ: z.boolean(),
481
- nodeK: z.boolean(),
482
- nodeL: z.boolean(),
483
- }),
484
- tba_botRowCount: z.number(),
485
- tba_midRowCount: z.number(),
486
- tba_topRowCount: z.number(),
487
- topRow: z.object({
488
- nodeA: z.boolean(),
489
- nodeB: z.boolean(),
490
- nodeC: z.boolean(),
491
- nodeD: z.boolean(),
492
- nodeE: z.boolean(),
493
- nodeF: z.boolean(),
494
- nodeG: z.boolean(),
495
- nodeH: z.boolean(),
496
- nodeI: z.boolean(),
497
- nodeJ: z.boolean(),
498
- nodeK: z.boolean(),
499
- nodeL: z.boolean(),
500
- }),
501
- trough: z.number(),
502
- }),
503
- totalPoints: z.number(),
504
- wallAlgaeCount: z.number(),
428
+ "2025": type({
429
+ adjustPoints: "number",
430
+ algaePoints: "number",
431
+ autoBonusAchieved: "boolean",
432
+ autoCoralCount: "number",
433
+ autoCoralPoints: "number",
434
+ autoLineRobot1: "'Yes' | 'No'",
435
+ autoLineRobot2: "'Yes' | 'No'",
436
+ autoLineRobot3: "'Yes' | 'No'",
437
+ autoMobilityPoints: "number",
438
+ autoPoints: "number",
439
+ autoReef: reef,
440
+ bargeBonusAchieved: "boolean",
441
+ coopertitionCriteriaMet: "boolean",
442
+ coralBonusAchieved: "boolean",
443
+ endGameBargePoints: "number",
444
+ endGameRobot1: "'None' | 'Parked' | 'ShallowCage' | 'DeepCage'",
445
+ endGameRobot2: "'None' | 'Parked' | 'ShallowCage' | 'DeepCage'",
446
+ endGameRobot3: "'None' | 'Parked' | 'ShallowCage' | 'DeepCage'",
447
+ foulCount: "number",
448
+ foulPoints: "number",
449
+ g206Penalty: "boolean",
450
+ g410Penalty: "boolean",
451
+ g418Penalty: "boolean",
452
+ g428Penalty: "boolean",
453
+ netAlgaeCount: "number",
454
+ rp: "number",
455
+ techFoulCount: "number",
456
+ teleopCoralCount: "number",
457
+ teleopCoralPoints: "number",
458
+ teleopPoints: "number",
459
+ teleopReef: reef,
460
+ totalPoints: "number",
461
+ wallAlgaeCount: "number",
505
462
  }).partial(),
506
463
  };
507
464
  export const matchScoreBreakdownYearsMatches = {
508
- "2015": z.object({
465
+ "2015": type({
509
466
  red: matchScoreBreakdownYearsAlliances["2015"],
510
467
  blue: matchScoreBreakdownYearsAlliances["2015"],
511
- coopertition: z.enum(["None", "Unknown", "Stack"]),
512
- coopertition_points: z.number(),
468
+ coopertition: "'None' | 'Unknown' | 'Stack'",
469
+ coopertition_points: "number",
513
470
  }),
514
- "2016": z.object({
471
+ "2016": type({
515
472
  red: matchScoreBreakdownYearsAlliances["2016"],
516
473
  blue: matchScoreBreakdownYearsAlliances["2016"],
517
474
  }),
518
- "2017": z.object({
475
+ "2017": type({
519
476
  red: matchScoreBreakdownYearsAlliances["2017"],
520
477
  blue: matchScoreBreakdownYearsAlliances["2017"],
521
478
  }),
522
- "2018": z.object({
479
+ "2018": type({
523
480
  red: matchScoreBreakdownYearsAlliances["2018"],
524
481
  blue: matchScoreBreakdownYearsAlliances["2018"],
525
482
  }),
526
- "2019": z.object({
483
+ "2019": type({
527
484
  red: matchScoreBreakdownYearsAlliances["2019"],
528
485
  blue: matchScoreBreakdownYearsAlliances["2019"],
529
486
  }),
530
- "2020": z.object({
487
+ "2020": type({
531
488
  red: matchScoreBreakdownYearsAlliances["2020"],
532
489
  blue: matchScoreBreakdownYearsAlliances["2020"],
533
490
  }),
534
- "2022": z.object({
491
+ "2022": type({
535
492
  red: matchScoreBreakdownYearsAlliances["2022"],
536
493
  blue: matchScoreBreakdownYearsAlliances["2022"],
537
494
  }),
538
- "2023": z.object({
495
+ "2023": type({
539
496
  red: matchScoreBreakdownYearsAlliances["2023"],
540
497
  blue: matchScoreBreakdownYearsAlliances["2023"],
541
498
  }),
542
- "2024": z.object({
499
+ "2024": type({
543
500
  red: matchScoreBreakdownYearsAlliances["2024"],
544
501
  blue: matchScoreBreakdownYearsAlliances["2024"],
545
502
  }),
546
- "2025": z.object({
503
+ "2025": type({
547
504
  red: matchScoreBreakdownYearsAlliances["2025"],
548
505
  blue: matchScoreBreakdownYearsAlliances["2025"],
549
506
  }),
550
507
  };
551
- const p = Object.values(matchScoreBreakdownYearsAlliances);
552
- export const Match_alliance = z.object({
553
- score: z.number().transform(num => num !== -1 ? num : null).nullable(),
554
- team_keys: z.array(z.string()),
555
- surrogate_team_keys: z.array(z.string()),
556
- dq_team_keys: z.array(z.string()),
508
+ const msb = matchScoreBreakdownYearsMatches;
509
+ export const Match_alliance = type({
510
+ score: "number | null",
511
+ team_keys: "string[]",
512
+ surrogate_team_keys: "string[]",
513
+ dq_team_keys: "string[]",
557
514
  });
558
- export const Match_Simple = z.object({
559
- key: z.string(),
560
- comp_level: z.enum(["qm", "ef", "qf", "sf", "f"]),
561
- set_number: z.number(),
562
- match_number: z.number(),
563
- alliances: z.object({ red: Match_alliance, blue: Match_alliance }),
564
- winning_alliance: z.enum(["red", "blue", ""]),
565
- event_key: z.string(),
566
- time: z.number().nullable(),
567
- actual_time: z.number().nullable(),
568
- predicted_time: z.number().nullable(),
515
+ export const Match_Simple = type({
516
+ key: "string",
517
+ comp_level: "'qm' | 'ef' | 'qf' | 'sf' |'f'",
518
+ set_number: "number",
519
+ match_number: "number",
520
+ alliances: type({ red: Match_alliance, blue: Match_alliance }),
521
+ winning_alliance: "'red' | 'blue' | ''",
522
+ event_key: "string",
523
+ time: "number | null",
524
+ actual_time: "number | null",
525
+ predicted_time: "number | null",
569
526
  });
570
- export const Match = Match_Simple.extend({
571
- score_breakdown: z.union(p).nullable(),
572
- videos: z.array(z.object({ type: z.string(), key: z.string() })),
527
+ export const Match = Match_Simple.and({
528
+ videos: type({ type: "string", key: "string" }).array(),
529
+ score_breakdown: msb["2015"].or(msb["2016"]).or(msb["2017"]).or(msb["2018"]).or(msb["2019"]).or(msb["2020"]).or(msb["2022"]).or(msb["2023"]).or(msb["2024"]).or(msb["2025"]),
573
530
  });