Frontend: Full 5-phase interactive wizard for uncapped hit decisions (lead advance, defensive throw, trail advance, throw target, safe/out) with mobile-first design, offense/defense role switching, and auto- clearing on workflow completion. Backend fixes: - Remove nested asyncio.Lock acquisition causing deadlocks in all submit_uncapped_* methods and initiate_uncapped_hit (non-re-entrant) - Preserve pending_manual_roll during interactive workflows - Add league_id to all dice_system.roll_d20() calls - Extract D20Roll.roll int for state serialization - Fix batter-runner not advancing when non-targeted in throw - Fix rollback_plays not recalculating scores from remaining plays Files: 10 modified, 1 new (UncappedHitWizard.vue) Tests: 2481/2481 passing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
147 lines
3.0 KiB
TypeScript
147 lines
3.0 KiB
TypeScript
/**
|
|
* Type Definitions Index
|
|
*
|
|
* Central export point for all TypeScript types.
|
|
* Import types from this file throughout the application.
|
|
*
|
|
* @example
|
|
* import type { GameState, SbaPlayer, TypedSocket } from '~/types'
|
|
*/
|
|
|
|
// Game types
|
|
export type {
|
|
GameStatus,
|
|
InningHalf,
|
|
GameMode,
|
|
GameVisibility,
|
|
LeagueId,
|
|
DecisionPhase,
|
|
LineupPlayerState,
|
|
GameState,
|
|
DefensiveDecision,
|
|
OffensiveDecision,
|
|
RollData,
|
|
PlayOutcome,
|
|
RunnerAdvancement,
|
|
PlayResult,
|
|
XCheckResult,
|
|
DecisionPrompt,
|
|
ManualOutcomeSubmission,
|
|
GameListItem,
|
|
CreateGameRequest,
|
|
CreateGameResponse,
|
|
// X-Check workflow types
|
|
XCheckData,
|
|
DecideAdvanceData,
|
|
DecideThrowData,
|
|
DecideSpeedCheckData,
|
|
PendingXCheck,
|
|
// Uncapped hit workflow types
|
|
PendingUncappedHit,
|
|
UncappedLeadAdvanceData,
|
|
UncappedDefensiveThrowData,
|
|
UncappedTrailAdvanceData,
|
|
UncappedThrowTargetData,
|
|
UncappedSafeOutData,
|
|
UncappedHitData,
|
|
} from './game'
|
|
|
|
// Player types
|
|
export type {
|
|
SbaPlayer,
|
|
Lineup,
|
|
TeamLineup,
|
|
BenchPlayer,
|
|
LineupDataResponse,
|
|
SubstitutionType,
|
|
SubstitutionRequest,
|
|
SubstitutionResult,
|
|
SubstitutionErrorCode,
|
|
SubstitutionError,
|
|
} from './player'
|
|
|
|
// WebSocket types
|
|
export type {
|
|
SocketAuth,
|
|
ClientToServerEvents,
|
|
ServerToClientEvents,
|
|
TypedSocket,
|
|
// Request types
|
|
JoinGameRequest,
|
|
LeaveGameRequest,
|
|
DefensiveDecisionRequest,
|
|
OffensiveDecisionRequest,
|
|
RollDiceRequest,
|
|
SubmitManualOutcomeRequest,
|
|
PinchHitterRequest,
|
|
DefensiveReplacementRequest,
|
|
PitchingChangeRequest,
|
|
GetLineupRequest,
|
|
GetBoxScoreRequest,
|
|
RequestGameStateRequest,
|
|
// X-Check workflow request types
|
|
SubmitXCheckResultRequest,
|
|
SubmitDecideAdvanceRequest,
|
|
SubmitDecideThrowRequest,
|
|
SubmitDecideResultRequest,
|
|
// Uncapped hit workflow request types
|
|
SubmitUncappedLeadAdvanceRequest,
|
|
SubmitUncappedDefensiveThrowRequest,
|
|
SubmitUncappedTrailAdvanceRequest,
|
|
SubmitUncappedThrowTargetRequest,
|
|
SubmitUncappedSafeOutRequest,
|
|
// Event types
|
|
ConnectedEvent,
|
|
GameJoinedEvent,
|
|
UserConnectedEvent,
|
|
UserDisconnectedEvent,
|
|
DefensiveDecisionSubmittedEvent,
|
|
OffensiveDecisionSubmittedEvent,
|
|
DiceRolledEvent,
|
|
OutcomeAcceptedEvent,
|
|
InningChangeEvent,
|
|
GameEndedEvent,
|
|
SubstitutionConfirmedEvent,
|
|
BoxScoreDataEvent,
|
|
BattingStatLine,
|
|
PitchingStatLine,
|
|
GameStateSyncEvent,
|
|
ErrorEvent,
|
|
OutcomeRejectedEvent,
|
|
InvalidActionEvent,
|
|
ConnectionErrorEvent,
|
|
} from './websocket'
|
|
|
|
// API types
|
|
export type {
|
|
ApiError,
|
|
PaginatedResponse,
|
|
GameFilters,
|
|
DiscordAuthResponse,
|
|
DiscordUser,
|
|
JwtPayload,
|
|
Team,
|
|
UserTeamsResponse,
|
|
CreateGameRequestData,
|
|
CreateGameResponseData,
|
|
GetGameResponse,
|
|
GetActiveGamesResponse,
|
|
GetCompletedGamesResponse,
|
|
PlayHistoryItem,
|
|
GetPlayHistoryResponse,
|
|
DeleteGameResponse,
|
|
DiscordCallbackRequest,
|
|
DiscordCallbackResponse,
|
|
GetCurrentUserResponse,
|
|
RefreshTokenRequest,
|
|
RefreshTokenResponse,
|
|
} from './api'
|
|
|
|
// Schedule types
|
|
export type {
|
|
SbaCurrent,
|
|
SbaScheduledGame,
|
|
GetCurrentResponse,
|
|
GetScheduleGamesResponse,
|
|
} from './schedule'
|