@battle-racing/br-common-lib 4.6.1 → 4.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/dist/domains/game/Game.schema.d.ts +13 -0
- package/dist/domains/game/Game.schema.js +11 -1
- package/dist/domains/game/Game.types.d.ts +3 -1
- package/dist/domains/game/battle/Battle.schema.d.ts +17 -0
- package/dist/domains/game/battle/Battle.schema.js +15 -1
- package/dist/domains/game/battle/Battle.types.d.ts +3 -1
- package/dist/domains/game/race/Race.schema.d.ts +41 -0
- package/dist/domains/game/race/Race.schema.js +16 -1
- package/dist/domains/game/race/Race.types.d.ts +3 -1
- package/dist/domains/player/Player.schema.d.ts +5 -0
- package/dist/domains/player/Player.schema.js +6 -1
- package/dist/domains/player/Player.types.d.ts +2 -1
- package/dist/domains/session/Session.schema.d.ts +20 -0
- package/dist/domains/ticketing/Ticketing.const.d.ts +2 -0
- package/dist/domains/ticketing/Ticketing.const.js +2 -0
- package/dist/domains/ticketing/Ticketing.schema.d.ts +99 -0
- package/dist/domains/ticketing/Ticketing.schema.js +27 -1
- package/dist/domains/ticketing/Ticketing.types.d.ts +5 -1
- package/dist/mcp-server/index.d.ts +1 -0
- package/dist/mcp-server/index.js +174 -0
- package/package.json +6 -1
- package/src/domains/game/Game.schema.ts +12 -0
- package/src/domains/game/Game.types.ts +4 -0
- package/src/domains/game/battle/Battle.schema.ts +16 -0
- package/src/domains/game/battle/Battle.types.ts +4 -1
- package/src/domains/game/race/Race.schema.ts +17 -0
- package/src/domains/game/race/Race.types.ts +5 -0
- package/src/domains/player/Player.schema.ts +6 -0
- package/src/domains/player/Player.types.ts +2 -1
- package/src/domains/ticketing/Ticketing.const.ts +2 -0
- package/src/domains/ticketing/Ticketing.schema.ts +32 -1
- package/src/domains/ticketing/Ticketing.types.ts +8 -0
- package/src/mcp-server/index.ts +171 -0
- package/dist/constants/checkpoint-type.d.ts +0 -6
- package/dist/constants/checkpoint-type.js +0 -9
- package/dist/constants/hardware/base-hardware-status.d.ts +0 -6
- package/dist/constants/hardware/base-hardware-status.js +0 -9
- package/dist/constants/hardware/damage.d.ts +0 -10
- package/dist/constants/hardware/damage.js +0 -13
- package/dist/constants/hardware/flag-media-name.d.ts +0 -63
- package/dist/constants/hardware/flag-media-name.js +0 -71
- package/dist/constants/hardware/flag-status.d.ts +0 -10
- package/dist/constants/hardware/flag-status.js +0 -11
- package/dist/constants/hardware/index.d.ts +0 -9
- package/dist/constants/hardware/index.js +0 -25
- package/dist/constants/hardware/lights-effect.d.ts +0 -10
- package/dist/constants/hardware/lights-effect.js +0 -14
- package/dist/constants/hardware/rgb-status.d.ts +0 -8
- package/dist/constants/hardware/rgb-status.js +0 -11
- package/dist/constants/hardware/screen-status.d.ts +0 -7
- package/dist/constants/hardware/screen-status.js +0 -8
- package/dist/constants/hardware/screen-view.d.ts +0 -9
- package/dist/constants/hardware/screen-view.js +0 -12
- package/dist/constants/hardware/speed-status.d.ts +0 -9
- package/dist/constants/hardware/speed-status.js +0 -10
- package/dist/constants/index.d.ts +0 -9
- package/dist/constants/index.js +0 -25
- package/dist/constants/kart-status.d.ts +0 -12
- package/dist/constants/kart-status.js +0 -15
- package/dist/constants/module-name.d.ts +0 -12
- package/dist/constants/module-name.js +0 -15
- package/dist/constants/payment-provider.d.ts +0 -5
- package/dist/constants/payment-provider.js +0 -8
- package/dist/constants/payment-status.d.ts +0 -7
- package/dist/constants/payment-status.js +0 -10
- package/dist/constants/permission.d.ts +0 -12
- package/dist/constants/permission.js +0 -15
- package/dist/constants/racing-team-role.d.ts +0 -5
- package/dist/constants/racing-team-role.js +0 -8
- package/dist/constants/user-role.d.ts +0 -5
- package/dist/constants/user-role.js +0 -8
- package/dist/domains/powerUp/PowerUpCommand.schema.d.ts +0 -799
- package/dist/domains/powerUp/PowerUpCommand.schema.js +0 -120
- package/dist/domains/socket/Socket.types.d.ts +0 -35
- package/dist/domains/socket/Socket.types.js +0 -2
- package/dist/domains/socket/SocketHardware.schema.d.ts +0 -1021
- package/dist/domains/socket/SocketHardware.schema.js +0 -82
- package/dist/domains/socket/SocketHardware.types.d.ts +0 -66
- package/dist/domains/socket/SocketHardware.types.js +0 -2
- package/dist/domains/socket/SocketParamsToEvents.d.ts +0 -10
- package/dist/domains/socket/SocketParamsToEvents.js +0 -2
- package/dist/domains/socket/SocketPowerUp.schema.d.ts +0 -1224
- package/dist/domains/socket/SocketPowerUp.schema.js +0 -12
- package/dist/domains/socket/SocketPowerUp.types.d.ts +0 -17
- package/dist/domains/socket/SocketPowerUp.types.js +0 -2
- package/dist/domains/socket/clientToServer/SocketClientToServer.schema.d.ts +0 -399
- package/dist/domains/socket/clientToServer/SocketClientToServer.schema.js +0 -32
- package/dist/domains/socket/clientToServer/SocketClientToServer.types.d.ts +0 -52
- package/dist/domains/socket/clientToServer/SocketClientToServer.types.js +0 -2
- package/dist/domains/socket/inputs/SocketInput.schema.d.ts +0 -63
- package/dist/domains/socket/inputs/SocketInput.schema.js +0 -21
- package/dist/domains/socket/inputs/SocketInput.types.d.ts +0 -19
- package/dist/domains/socket/inputs/SocketInput.types.js +0 -2
- package/dist/domains/socket/serverToClient/SocketServerToClient.schema.d.ts +0 -3786
- package/dist/domains/socket/serverToClient/SocketServerToClient.schema.js +0 -105
- package/dist/domains/socket/serverToClient/SocketServerToClient.types.d.ts +0 -97
- package/dist/domains/socket/serverToClient/SocketServerToClient.types.js +0 -2
- package/dist/types/checkpoint/Checkpoint.d.ts +0 -10
- package/dist/types/checkpoint/Checkpoint.js +0 -2
- package/dist/types/checkpoint/CheckpointType.d.ts +0 -3
- package/dist/types/checkpoint/CheckpointType.js +0 -2
- package/dist/types/checkpoint/index.d.ts +0 -2
- package/dist/types/checkpoint/index.js +0 -18
- package/dist/types/color/ColorInfo.d.ts +0 -4
- package/dist/types/color/ColorInfo.js +0 -2
- package/dist/types/color/ColorName.d.ts +0 -1
- package/dist/types/color/ColorName.js +0 -2
- package/dist/types/color/index.d.ts +0 -2
- package/dist/types/color/index.js +0 -18
- package/dist/types/command/CommandConfig.d.ts +0 -159
- package/dist/types/command/CommandConfig.js +0 -2
- package/dist/types/command/index.d.ts +0 -1
- package/dist/types/command/index.js +0 -17
- package/dist/types/damage/Damage.d.ts +0 -13
- package/dist/types/damage/Damage.js +0 -2
- package/dist/types/damage/DamageName.d.ts +0 -3
- package/dist/types/damage/DamageName.js +0 -2
- package/dist/types/damage/DamageTarget.d.ts +0 -1
- package/dist/types/damage/DamageTarget.js +0 -2
- package/dist/types/damage/index.d.ts +0 -3
- package/dist/types/damage/index.js +0 -19
- package/dist/types/flow/Flow.d.ts +0 -7
- package/dist/types/flow/Flow.js +0 -2
- package/dist/types/flow/index.d.ts +0 -1
- package/dist/types/flow/index.js +0 -17
- package/dist/types/game/Game.d.ts +0 -38
- package/dist/types/game/Game.js +0 -14
- package/dist/types/game/GameStatus.d.ts +0 -9
- package/dist/types/game/GameStatus.js +0 -12
- package/dist/types/game/GameType.d.ts +0 -5
- package/dist/types/game/GameType.js +0 -8
- package/dist/types/game/GameWarningEvent.d.ts +0 -1
- package/dist/types/game/GameWarningEvent.js +0 -2
- package/dist/types/game/KartRankingItem.d.ts +0 -5
- package/dist/types/game/KartRankingItem.js +0 -2
- package/dist/types/game/battle/Battle.d.ts +0 -9
- package/dist/types/game/battle/Battle.js +0 -2
- package/dist/types/game/battle/index.d.ts +0 -1
- package/dist/types/game/battle/index.js +0 -17
- package/dist/types/game/index.d.ts +0 -7
- package/dist/types/game/index.js +0 -23
- package/dist/types/game/race/KartProgress.d.ts +0 -10
- package/dist/types/game/race/KartProgress.js +0 -2
- package/dist/types/game/race/LapTime.d.ts +0 -11
- package/dist/types/game/race/LapTime.js +0 -2
- package/dist/types/game/race/Race.d.ts +0 -25
- package/dist/types/game/race/Race.js +0 -2
- package/dist/types/game/race/index.d.ts +0 -3
- package/dist/types/game/race/index.js +0 -19
- package/dist/types/gameTrack/GameTrack.d.ts +0 -14
- package/dist/types/gameTrack/GameTrack.js +0 -2
- package/dist/types/gameTrack/GameTrackGameDefaultValues.d.ts +0 -4
- package/dist/types/gameTrack/GameTrackGameDefaultValues.js +0 -2
- package/dist/types/gameTrack/GameTrackKartConfig.d.ts +0 -9
- package/dist/types/gameTrack/GameTrackKartConfig.js +0 -2
- package/dist/types/gameTrack/GameTrackKartsConfig.d.ts +0 -23
- package/dist/types/gameTrack/GameTrackKartsConfig.js +0 -2
- package/dist/types/gameTrack/index.d.ts +0 -4
- package/dist/types/gameTrack/index.js +0 -20
- package/dist/types/hardware/KartEffect.d.ts +0 -1
- package/dist/types/hardware/KartEffect.js +0 -2
- package/dist/types/hardware/KartHardwareState.d.ts +0 -21
- package/dist/types/hardware/KartHardwareState.js +0 -2
- package/dist/types/hardware/ModuleName.d.ts +0 -3
- package/dist/types/hardware/ModuleName.js +0 -2
- package/dist/types/hardware/ModuleStatus.d.ts +0 -9
- package/dist/types/hardware/ModuleStatus.js +0 -2
- package/dist/types/hardware/ballSensor/BallSensorCommand.d.ts +0 -1
- package/dist/types/hardware/ballSensor/BallSensorCommand.js +0 -2
- package/dist/types/hardware/ballSensor/BallSensorDiskThrowerModuleStatus.d.ts +0 -4
- package/dist/types/hardware/ballSensor/BallSensorDiskThrowerModuleStatus.js +0 -2
- package/dist/types/hardware/ballSensor/BallSensorStatus.d.ts +0 -1
- package/dist/types/hardware/ballSensor/BallSensorStatus.js +0 -2
- package/dist/types/hardware/ballSensor/ConfigureBallSensorDiskThrowerModuleOptions.d.ts +0 -4
- package/dist/types/hardware/ballSensor/ConfigureBallSensorDiskThrowerModuleOptions.js +0 -2
- package/dist/types/hardware/ballSensor/index.d.ts +0 -4
- package/dist/types/hardware/ballSensor/index.js +0 -20
- package/dist/types/hardware/ballShooter/BallShooterCommand.d.ts +0 -1
- package/dist/types/hardware/ballShooter/BallShooterCommand.js +0 -2
- package/dist/types/hardware/ballShooter/BallShooterStatus.d.ts +0 -1
- package/dist/types/hardware/ballShooter/BallShooterStatus.js +0 -2
- package/dist/types/hardware/ballShooter/index.d.ts +0 -2
- package/dist/types/hardware/ballShooter/index.js +0 -18
- package/dist/types/hardware/diskSensor/ConfigDiskSensorBallShooterModuleOptions.d.ts +0 -8
- package/dist/types/hardware/diskSensor/ConfigDiskSensorBallShooterModuleOptions.js +0 -2
- package/dist/types/hardware/diskSensor/DiskSensorBallShooterModuleStatus.d.ts +0 -4
- package/dist/types/hardware/diskSensor/DiskSensorBallShooterModuleStatus.js +0 -2
- package/dist/types/hardware/diskSensor/DiskSensorCommand.d.ts +0 -1
- package/dist/types/hardware/diskSensor/DiskSensorCommand.js +0 -2
- package/dist/types/hardware/diskSensor/DiskSensorStatus.d.ts +0 -1
- package/dist/types/hardware/diskSensor/DiskSensorStatus.js +0 -2
- package/dist/types/hardware/diskSensor/index.d.ts +0 -4
- package/dist/types/hardware/diskSensor/index.js +0 -20
- package/dist/types/hardware/diskThrower/DiskThrowerCommand.d.ts +0 -1
- package/dist/types/hardware/diskThrower/DiskThrowerCommand.js +0 -2
- package/dist/types/hardware/diskThrower/DiskThrowerStatus.d.ts +0 -1
- package/dist/types/hardware/diskThrower/DiskThrowerStatus.js +0 -2
- package/dist/types/hardware/diskThrower/index.d.ts +0 -2
- package/dist/types/hardware/diskThrower/index.js +0 -18
- package/dist/types/hardware/emergency/EmergencyActionCommand.d.ts +0 -1
- package/dist/types/hardware/emergency/EmergencyActionCommand.js +0 -2
- package/dist/types/hardware/emergency/EmergencyModuleStatus.d.ts +0 -4
- package/dist/types/hardware/emergency/EmergencyModuleStatus.js +0 -2
- package/dist/types/hardware/emergency/EmergencyStatus.d.ts +0 -1
- package/dist/types/hardware/emergency/EmergencyStatus.js +0 -2
- package/dist/types/hardware/emergency/index.d.ts +0 -3
- package/dist/types/hardware/emergency/index.js +0 -19
- package/dist/types/hardware/flag/FlagActionCommand.d.ts +0 -1
- package/dist/types/hardware/flag/FlagActionCommand.js +0 -2
- package/dist/types/hardware/flag/FlagConfigurationOptions.d.ts +0 -10
- package/dist/types/hardware/flag/FlagConfigurationOptions.js +0 -2
- package/dist/types/hardware/flag/FlagMediaName.d.ts +0 -3
- package/dist/types/hardware/flag/FlagMediaName.js +0 -2
- package/dist/types/hardware/flag/FlagModuleStatus.d.ts +0 -7
- package/dist/types/hardware/flag/FlagModuleStatus.js +0 -2
- package/dist/types/hardware/flag/FlagShowMediaOptions.d.ts +0 -14
- package/dist/types/hardware/flag/FlagShowMediaOptions.js +0 -2
- package/dist/types/hardware/flag/FlagStatus.d.ts +0 -3
- package/dist/types/hardware/flag/FlagStatus.js +0 -2
- package/dist/types/hardware/flag/index.d.ts +0 -6
- package/dist/types/hardware/flag/index.js +0 -22
- package/dist/types/hardware/index.d.ts +0 -17
- package/dist/types/hardware/index.js +0 -33
- package/dist/types/hardware/lights/LightsEffect.d.ts +0 -3
- package/dist/types/hardware/lights/LightsEffect.js +0 -2
- package/dist/types/hardware/lights/ShowLightsColorParams.d.ts +0 -7
- package/dist/types/hardware/lights/ShowLightsColorParams.js +0 -2
- package/dist/types/hardware/lights/ShowLightsEffectParams.d.ts +0 -8
- package/dist/types/hardware/lights/ShowLightsEffectParams.js +0 -2
- package/dist/types/hardware/lights/index.d.ts +0 -3
- package/dist/types/hardware/lights/index.js +0 -19
- package/dist/types/hardware/rgb/RGBActionCommand.d.ts +0 -1
- package/dist/types/hardware/rgb/RGBActionCommand.js +0 -2
- package/dist/types/hardware/rgb/RGBConfigurationOptions.d.ts +0 -8
- package/dist/types/hardware/rgb/RGBConfigurationOptions.js +0 -2
- package/dist/types/hardware/rgb/RGBModuleStatus.d.ts +0 -6
- package/dist/types/hardware/rgb/RGBModuleStatus.js +0 -2
- package/dist/types/hardware/rgb/RGBShowEffectOptions.d.ts +0 -4
- package/dist/types/hardware/rgb/RGBShowEffectOptions.js +0 -2
- package/dist/types/hardware/rgb/RGBStatus.d.ts +0 -3
- package/dist/types/hardware/rgb/RGBStatus.js +0 -2
- package/dist/types/hardware/rgb/index.d.ts +0 -5
- package/dist/types/hardware/rgb/index.js +0 -21
- package/dist/types/hardware/screen/ScreenBattleViewConfig.d.ts +0 -4
- package/dist/types/hardware/screen/ScreenBattleViewConfig.js +0 -2
- package/dist/types/hardware/screen/ScreenCountdownParams.d.ts +0 -11
- package/dist/types/hardware/screen/ScreenCountdownParams.js +0 -2
- package/dist/types/hardware/screen/ScreenDebugViewInput.d.ts +0 -4
- package/dist/types/hardware/screen/ScreenDebugViewInput.js +0 -2
- package/dist/types/hardware/screen/ScreenFinishViewInput.d.ts +0 -10
- package/dist/types/hardware/screen/ScreenFinishViewInput.js +0 -2
- package/dist/types/hardware/screen/ScreenGameTimeLeft.d.ts +0 -4
- package/dist/types/hardware/screen/ScreenGameTimeLeft.js +0 -2
- package/dist/types/hardware/screen/ScreenHomeViewInput.d.ts +0 -3
- package/dist/types/hardware/screen/ScreenHomeViewInput.js +0 -2
- package/dist/types/hardware/screen/ScreenModuleStatus.d.ts +0 -6
- package/dist/types/hardware/screen/ScreenModuleStatus.js +0 -2
- package/dist/types/hardware/screen/ScreenRaceViewConfig.d.ts +0 -4
- package/dist/types/hardware/screen/ScreenRaceViewConfig.js +0 -2
- package/dist/types/hardware/screen/ScreenStatus.d.ts +0 -3
- package/dist/types/hardware/screen/ScreenStatus.js +0 -2
- package/dist/types/hardware/screen/ScreenUpdateGameViewInput.d.ts +0 -11
- package/dist/types/hardware/screen/ScreenUpdateGameViewInput.js +0 -2
- package/dist/types/hardware/screen/ScreenView.d.ts +0 -3
- package/dist/types/hardware/screen/ScreenView.js +0 -2
- package/dist/types/hardware/screen/ScreenViewBaseConfig.d.ts +0 -16
- package/dist/types/hardware/screen/ScreenViewBaseConfig.js +0 -2
- package/dist/types/hardware/screen/index.d.ts +0 -12
- package/dist/types/hardware/screen/index.js +0 -28
- package/dist/types/hardware/sound/PlaySoundOptions.d.ts +0 -11
- package/dist/types/hardware/sound/PlaySoundOptions.js +0 -2
- package/dist/types/hardware/sound/index.d.ts +0 -1
- package/dist/types/hardware/sound/index.js +0 -17
- package/dist/types/hardware/speed/SpeedActionCommand.d.ts +0 -1
- package/dist/types/hardware/speed/SpeedActionCommand.js +0 -2
- package/dist/types/hardware/speed/SpeedChangeOptions.d.ts +0 -6
- package/dist/types/hardware/speed/SpeedChangeOptions.js +0 -2
- package/dist/types/hardware/speed/SpeedConfiguration.d.ts +0 -6
- package/dist/types/hardware/speed/SpeedConfiguration.js +0 -2
- package/dist/types/hardware/speed/SpeedModuleStatus.d.ts +0 -12
- package/dist/types/hardware/speed/SpeedModuleStatus.js +0 -2
- package/dist/types/hardware/speed/SpeedStatus.d.ts +0 -3
- package/dist/types/hardware/speed/SpeedStatus.js +0 -2
- package/dist/types/hardware/speed/index.d.ts +0 -5
- package/dist/types/hardware/speed/index.js +0 -21
- package/dist/types/hardware/star-laser/StarLaserCommand.d.ts +0 -1
- package/dist/types/hardware/star-laser/StarLaserCommand.js +0 -2
- package/dist/types/hardware/star-laser/StarLaserConfigureModuleOptions.d.ts +0 -7
- package/dist/types/hardware/star-laser/StarLaserConfigureModuleOptions.js +0 -2
- package/dist/types/hardware/star-laser/StarLaserModuleStatus.d.ts +0 -7
- package/dist/types/hardware/star-laser/StarLaserModuleStatus.js +0 -2
- package/dist/types/hardware/star-laser/StarLaserSendActionsOptions.d.ts +0 -5
- package/dist/types/hardware/star-laser/StarLaserSendActionsOptions.js +0 -2
- package/dist/types/hardware/star-laser/StarLaserStatus.d.ts +0 -1
- package/dist/types/hardware/star-laser/StarLaserStatus.js +0 -2
- package/dist/types/hardware/star-laser/index.d.ts +0 -5
- package/dist/types/hardware/star-laser/index.js +0 -21
- package/dist/types/hardware/steering-wheel/SteeringWheelModuleStatus.d.ts +0 -4
- package/dist/types/hardware/steering-wheel/SteeringWheelModuleStatus.js +0 -2
- package/dist/types/hardware/steering-wheel/index.d.ts +0 -1
- package/dist/types/hardware/steering-wheel/index.js +0 -17
- package/dist/types/index.d.ts +0 -24
- package/dist/types/index.js +0 -40
- package/dist/types/kart/Kart.d.ts +0 -36
- package/dist/types/kart/Kart.js +0 -2
- package/dist/types/kart/KartShield.d.ts +0 -4
- package/dist/types/kart/KartShield.js +0 -2
- package/dist/types/kart/KartStatus.d.ts +0 -3
- package/dist/types/kart/KartStatus.js +0 -2
- package/dist/types/kart/index.d.ts +0 -2
- package/dist/types/kart/index.js +0 -18
- package/dist/types/kartTracking/CheckpointEvent.d.ts +0 -8
- package/dist/types/kartTracking/CheckpointEvent.js +0 -2
- package/dist/types/kartTracking/KartTracking.d.ts +0 -5
- package/dist/types/kartTracking/KartTracking.js +0 -2
- package/dist/types/kartTracking/index.d.ts +0 -2
- package/dist/types/kartTracking/index.js +0 -18
- package/dist/types/pagination/Pagination.d.ts +0 -3
- package/dist/types/pagination/Pagination.js +0 -2
- package/dist/types/pagination/index.d.ts +0 -2
- package/dist/types/pagination/index.js +0 -18
- package/dist/types/pagination/pagination.schema.d.ts +0 -14
- package/dist/types/pagination/pagination.schema.js +0 -16
- package/dist/types/powerUp/PowerUp.d.ts +0 -27
- package/dist/types/powerUp/PowerUp.js +0 -2
- package/dist/types/powerUp/PowerUpName.d.ts +0 -1
- package/dist/types/powerUp/PowerUpName.js +0 -2
- package/dist/types/powerUp/PowerUpShield.d.ts +0 -6
- package/dist/types/powerUp/PowerUpShield.js +0 -2
- package/dist/types/powerUp/PowerUpTarget.d.ts +0 -11
- package/dist/types/powerUp/PowerUpTarget.js +0 -10
- package/dist/types/powerUp/PowerUpType.d.ts +0 -8
- package/dist/types/powerUp/PowerUpType.js +0 -7
- package/dist/types/powerUp/index.d.ts +0 -5
- package/dist/types/powerUp/index.js +0 -21
- package/dist/types/racingTeam/RacingTeam.d.ts +0 -8
- package/dist/types/racingTeam/RacingTeam.js +0 -2
- package/dist/types/racingTeam/RacingTeam.schema.d.ts +0 -60
- package/dist/types/racingTeam/RacingTeam.schema.js +0 -34
- package/dist/types/racingTeam/RacingTeamMembership.d.ts +0 -6
- package/dist/types/racingTeam/RacingTeamMembership.js +0 -2
- package/dist/types/racingTeam/RacingTeamMembership.schema.d.ts +0 -31
- package/dist/types/racingTeam/RacingTeamMembership.schema.js +0 -28
- package/dist/types/racingTeam/index.d.ts +0 -4
- package/dist/types/racingTeam/index.js +0 -20
- package/dist/types/response/ErrorResponse.d.ts +0 -6
- package/dist/types/response/ErrorResponse.js +0 -2
- package/dist/types/response/Response.d.ts +0 -3
- package/dist/types/response/Response.js +0 -2
- package/dist/types/response/SuccessResponse.d.ts +0 -5
- package/dist/types/response/SuccessResponse.js +0 -2
- package/dist/types/response/index.d.ts +0 -3
- package/dist/types/response/index.js +0 -2
- package/dist/types/role/Permission.d.ts +0 -3
- package/dist/types/role/Permission.js +0 -2
- package/dist/types/role/RoleDefinition.d.ts +0 -7
- package/dist/types/role/RoleDefinition.js +0 -2
- package/dist/types/role/UserRole.d.ts +0 -3
- package/dist/types/role/UserRole.js +0 -2
- package/dist/types/role/index.d.ts +0 -3
- package/dist/types/role/index.js +0 -19
- package/dist/types/socket/SocketHardwareModulesEventsParams.d.ts +0 -65
- package/dist/types/socket/SocketHardwareModulesEventsParams.js +0 -2
- package/dist/types/socket/SocketHardwareOnDataEventsParams.d.ts +0 -17
- package/dist/types/socket/SocketHardwareOnDataEventsParams.js +0 -2
- package/dist/types/socket/SocketPowerUpEventsParams.d.ts +0 -21
- package/dist/types/socket/SocketPowerUpEventsParams.js +0 -2
- package/dist/types/socket/clientToServer/SocketGameTrackClientToServerEventsParams.d.ts +0 -13
- package/dist/types/socket/clientToServer/SocketGameTrackClientToServerEventsParams.js +0 -2
- package/dist/types/socket/clientToServer/SocketKartClientToServerEventsParams.d.ts +0 -21
- package/dist/types/socket/clientToServer/SocketKartClientToServerEventsParams.js +0 -2
- package/dist/types/socket/clientToServer/SocketWebAppClientToServerEventsParams.d.ts +0 -22
- package/dist/types/socket/clientToServer/SocketWebAppClientToServerEventsParams.js +0 -2
- package/dist/types/socket/clientToServer/index.d.ts +0 -3
- package/dist/types/socket/clientToServer/index.js +0 -19
- package/dist/types/socket/index.d.ts +0 -7
- package/dist/types/socket/index.js +0 -23
- package/dist/types/socket/inputs/MacAddressGameTrackConnection.d.ts +0 -7
- package/dist/types/socket/inputs/MacAddressGameTrackConnection.js +0 -2
- package/dist/types/socket/inputs/SocketInitRaspberryInput.d.ts +0 -4
- package/dist/types/socket/inputs/SocketInitRaspberryInput.js +0 -2
- package/dist/types/socket/inputs/SocketRegisterKartCheckpointInput.d.ts +0 -11
- package/dist/types/socket/inputs/SocketRegisterKartCheckpointInput.js +0 -2
- package/dist/types/socket/inputs/index.d.ts +0 -3
- package/dist/types/socket/inputs/index.js +0 -19
- package/dist/types/socket/serverToClient/SocketGameTrackServerToClientEventParams.d.ts +0 -14
- package/dist/types/socket/serverToClient/SocketGameTrackServerToClientEventParams.js +0 -2
- package/dist/types/socket/serverToClient/SocketKartServerToClientEventsParams.d.ts +0 -53
- package/dist/types/socket/serverToClient/SocketKartServerToClientEventsParams.js +0 -2
- package/dist/types/socket/serverToClient/SocketWebAppServerToClientEventsParams.d.ts +0 -28
- package/dist/types/socket/serverToClient/SocketWebAppServerToClientEventsParams.js +0 -2
- package/dist/types/socket/serverToClient/index.d.ts +0 -3
- package/dist/types/socket/serverToClient/index.js +0 -19
- package/dist/types/socket/utils/SocketParamsToEvents.d.ts +0 -10
- package/dist/types/socket/utils/SocketParamsToEvents.js +0 -2
- package/dist/types/socket/utils/index.d.ts +0 -1
- package/dist/types/socket/utils/index.js +0 -17
- package/dist/types/sounds/SoundName.d.ts +0 -1
- package/dist/types/sounds/SoundName.js +0 -2
- package/dist/types/sounds/index.d.ts +0 -1
- package/dist/types/sounds/index.js +0 -17
- package/dist/types/ticketing/GameTurn.d.ts +0 -4
- package/dist/types/ticketing/GameTurn.js +0 -2
- package/dist/types/ticketing/GameTurn.schema.d.ts +0 -92
- package/dist/types/ticketing/GameTurn.schema.js +0 -46
- package/dist/types/ticketing/GameTurnTask.d.ts +0 -3
- package/dist/types/ticketing/GameTurnTask.js +0 -2
- package/dist/types/ticketing/GameTurnTask.schema.d.ts +0 -34
- package/dist/types/ticketing/GameTurnTask.schema.js +0 -30
- package/dist/types/ticketing/PaymentProvider.d.ts +0 -34
- package/dist/types/ticketing/PaymentProvider.js +0 -2
- package/dist/types/ticketing/Ticketing.d.ts +0 -10
- package/dist/types/ticketing/Ticketing.js +0 -2
- package/dist/types/ticketing/index.d.ts +0 -7
- package/dist/types/ticketing/index.js +0 -23
- package/dist/types/ticketing/ticketing.schemas.d.ts +0 -104
- package/dist/types/ticketing/ticketing.schemas.js +0 -65
- package/dist/types/user/User.d.ts +0 -4
- package/dist/types/user/User.js +0 -2
- package/dist/types/user/index.d.ts +0 -4
- package/dist/types/user/index.js +0 -22
- package/dist/types/user/user-type.schema.d.ts +0 -9
- package/dist/types/user/user-type.schema.js +0 -12
- package/dist/types/user/user.schema.d.ts +0 -39
- package/dist/types/user/user.schema.js +0 -19
- package/dist/types/utils/ArithmeticString.d.ts +0 -9
- package/dist/types/utils/ArithmeticString.js +0 -2
- package/dist/types/utils/ObjectValues.d.ts +0 -1
- package/dist/types/utils/ObjectValues.js +0 -2
- package/dist/types/utils/index.d.ts +0 -2
- package/dist/types/utils/index.js +0 -18
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
37
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
38
|
+
const zod_1 = require("zod");
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
/**
|
|
42
|
+
* MCP Server for Battle Racing Common Library
|
|
43
|
+
* This server allows other AI agents to query types, schemas and constants
|
|
44
|
+
* from the br-common-lib repository locally.
|
|
45
|
+
*/
|
|
46
|
+
const DOMAINS_DIR = path.resolve(__dirname, "../../src/domains");
|
|
47
|
+
const server = new mcp_js_1.McpServer({
|
|
48
|
+
name: "br-common-lib-mcp",
|
|
49
|
+
version: "1.1.1",
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* List all available domains in src/domains
|
|
53
|
+
*/
|
|
54
|
+
async function listDomains() {
|
|
55
|
+
if (!fs.existsSync(DOMAINS_DIR)) {
|
|
56
|
+
throw new Error(`Domains directory not found at ${DOMAINS_DIR}`);
|
|
57
|
+
}
|
|
58
|
+
const entries = fs.readdirSync(DOMAINS_DIR, { withFileTypes: true });
|
|
59
|
+
return entries
|
|
60
|
+
.filter((entry) => entry.isDirectory())
|
|
61
|
+
.map((entry) => entry.name);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get details for a specific domain (recursive)
|
|
65
|
+
*/
|
|
66
|
+
async function getDomainDetails(domain) {
|
|
67
|
+
const domainPath = path.join(DOMAINS_DIR, domain);
|
|
68
|
+
if (!fs.existsSync(domainPath)) {
|
|
69
|
+
throw new Error(`Domain "${domain}" not found at ${domainPath}`);
|
|
70
|
+
}
|
|
71
|
+
let output = `## Domain: ${domain}\n\n`;
|
|
72
|
+
function readDirRecursive(dir) {
|
|
73
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
74
|
+
for (const entry of entries) {
|
|
75
|
+
const fullPath = path.join(dir, entry.name);
|
|
76
|
+
if (entry.isDirectory()) {
|
|
77
|
+
readDirRecursive(fullPath);
|
|
78
|
+
}
|
|
79
|
+
else if (entry.name.endsWith(".types.ts") ||
|
|
80
|
+
entry.name.endsWith(".schema.ts") ||
|
|
81
|
+
entry.name.endsWith(".const.ts") ||
|
|
82
|
+
entry.name === "index.ts") {
|
|
83
|
+
const relativePath = path.relative(domainPath, fullPath);
|
|
84
|
+
const content = fs.readFileSync(fullPath, "utf-8");
|
|
85
|
+
output += `### File: ${relativePath}\n\`\`\`typescript\n${content}\n\`\`\`\n\n`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
readDirRecursive(domainPath);
|
|
90
|
+
return output;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Search for a symbol (type, constant, etc) across all domains
|
|
94
|
+
*/
|
|
95
|
+
async function searchSymbol(query) {
|
|
96
|
+
const domains = await listDomains();
|
|
97
|
+
let results = [];
|
|
98
|
+
for (const domain of domains) {
|
|
99
|
+
const domainPath = path.join(DOMAINS_DIR, domain);
|
|
100
|
+
function searchInDir(dir) {
|
|
101
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
102
|
+
for (const entry of entries) {
|
|
103
|
+
const fullPath = path.join(dir, entry.name);
|
|
104
|
+
if (entry.isDirectory()) {
|
|
105
|
+
searchInDir(fullPath);
|
|
106
|
+
}
|
|
107
|
+
else if (entry.isFile() && (entry.name.endsWith(".ts"))) {
|
|
108
|
+
const content = fs.readFileSync(fullPath, "utf-8");
|
|
109
|
+
if (content.includes(query)) {
|
|
110
|
+
const lines = content.split("\n");
|
|
111
|
+
const matchLine = lines.find(l => l.includes(query)) || "";
|
|
112
|
+
results.push({
|
|
113
|
+
domain,
|
|
114
|
+
file: path.relative(DOMAINS_DIR, fullPath),
|
|
115
|
+
match: matchLine.trim()
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
searchInDir(domainPath);
|
|
122
|
+
}
|
|
123
|
+
if (results.length === 0)
|
|
124
|
+
return `No results found for "${query}"`;
|
|
125
|
+
return results
|
|
126
|
+
.map(r => `- [${r.domain}] ${r.file}: \`${r.match}\``)
|
|
127
|
+
.join("\n");
|
|
128
|
+
}
|
|
129
|
+
// Register tools using the high-level McpServer API (registerTool)
|
|
130
|
+
server.registerTool("list_domains", {
|
|
131
|
+
description: "List all available domains in br-common-lib (e.g., kart, game, powerUp)",
|
|
132
|
+
}, async () => {
|
|
133
|
+
const domains = await listDomains();
|
|
134
|
+
return {
|
|
135
|
+
content: [
|
|
136
|
+
{
|
|
137
|
+
type: "text",
|
|
138
|
+
text: `Available domains: ${domains.join(", ")}`,
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
};
|
|
142
|
+
});
|
|
143
|
+
server.registerTool("get_domain_details", {
|
|
144
|
+
description: "Get all types, schemas, and constants for a specific domain (recursive)",
|
|
145
|
+
inputSchema: zod_1.z.object({
|
|
146
|
+
domain: zod_1.z.string().describe("The name of the domain (e.g., 'kart')"),
|
|
147
|
+
}),
|
|
148
|
+
}, async ({ domain }) => {
|
|
149
|
+
const details = await getDomainDetails(domain);
|
|
150
|
+
return {
|
|
151
|
+
content: [{ type: "text", text: details }],
|
|
152
|
+
};
|
|
153
|
+
});
|
|
154
|
+
server.registerTool("search_symbol", {
|
|
155
|
+
description: "Search for a specific type, constant or property across all domains",
|
|
156
|
+
inputSchema: zod_1.z.object({
|
|
157
|
+
query: zod_1.z.string().describe("The symbol or string to search for (e.g., 'hardwareState')"),
|
|
158
|
+
}),
|
|
159
|
+
}, async ({ query }) => {
|
|
160
|
+
const results = await searchSymbol(query);
|
|
161
|
+
return {
|
|
162
|
+
content: [{ type: "text", text: results }],
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
// Start the server
|
|
166
|
+
async function main() {
|
|
167
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
168
|
+
await server.connect(transport);
|
|
169
|
+
console.error("Battle Racing Common Lib MCP Server running on stdio");
|
|
170
|
+
}
|
|
171
|
+
main().catch((error) => {
|
|
172
|
+
console.error("Fatal error in main():", error);
|
|
173
|
+
process.exit(1);
|
|
174
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@battle-racing/br-common-lib",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.7.0",
|
|
4
4
|
"description": "Common library for all Battle Racing Repositorios",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -30,10 +30,15 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"private": false,
|
|
32
32
|
"devDependencies": {
|
|
33
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
34
|
+
"@types/node": "^25.6.0",
|
|
33
35
|
"typescript": "^5.8.3",
|
|
34
36
|
"zod": "^4.2.1"
|
|
35
37
|
},
|
|
36
38
|
"peerDependencies": {
|
|
37
39
|
"zod": "^4.2.1"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@battle-racing/br-common-lib": "^4.6.1"
|
|
38
43
|
}
|
|
39
44
|
}
|
|
@@ -21,8 +21,11 @@ export const kartRankingItemSchema = z.object({
|
|
|
21
21
|
|
|
22
22
|
export const gameSchema = z.object({
|
|
23
23
|
id: z.number(),
|
|
24
|
+
gameTurnId: z.string().optional(),
|
|
25
|
+
isOfficial: z.boolean().default(true),
|
|
24
26
|
status: gameStatusSchema,
|
|
25
27
|
kartsGuids: z.array(z.string()),
|
|
28
|
+
playerKartMap: z.record(z.string(), z.string()).default({}),
|
|
26
29
|
powerUpsIds: z.array(z.string()),
|
|
27
30
|
gameTrackId: z.string(),
|
|
28
31
|
type: gameTypeSchema,
|
|
@@ -36,3 +39,12 @@ export const gameSchema = z.object({
|
|
|
36
39
|
kartsState: z.record(z.string(), gameKartStateSchema),
|
|
37
40
|
gameRanking: z.array(kartRankingItemSchema),
|
|
38
41
|
});
|
|
42
|
+
|
|
43
|
+
export const assignKartSchema = z.object({
|
|
44
|
+
playerId: z.string(),
|
|
45
|
+
kartGuid: z.string(),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
export const resumeGameSchema = z.object({
|
|
49
|
+
fromEvent: gameWarningEventSchema,
|
|
50
|
+
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import {
|
|
3
|
+
assignKartSchema,
|
|
3
4
|
gameFinishedReasonSchema,
|
|
4
5
|
gameKartStateSchema,
|
|
5
6
|
gameSchema,
|
|
@@ -7,6 +8,7 @@ import {
|
|
|
7
8
|
gameTypeSchema,
|
|
8
9
|
gameWarningEventSchema,
|
|
9
10
|
kartRankingItemSchema,
|
|
11
|
+
resumeGameSchema,
|
|
10
12
|
} from './Game.schema';
|
|
11
13
|
|
|
12
14
|
export type GameType = z.infer<typeof gameTypeSchema>;
|
|
@@ -16,3 +18,5 @@ export type GameWarningEvent = z.infer<typeof gameWarningEventSchema>;
|
|
|
16
18
|
export type GameKartState = z.infer<typeof gameKartStateSchema>;
|
|
17
19
|
export type KartRankingItem = z.infer<typeof kartRankingItemSchema>;
|
|
18
20
|
export type Game = z.infer<typeof gameSchema>;
|
|
21
|
+
export type AssignKart = z.infer<typeof assignKartSchema>;
|
|
22
|
+
export type ResumeGame = z.infer<typeof resumeGameSchema>;
|
|
@@ -15,3 +15,19 @@ export const battleSchema = gameSchema.extend({
|
|
|
15
15
|
lives: z.number(),
|
|
16
16
|
kartsState: z.record(z.string(), battleKartStateSchema),
|
|
17
17
|
});
|
|
18
|
+
|
|
19
|
+
export const startBattleSchema = z.object({
|
|
20
|
+
lives: z.number().int(),
|
|
21
|
+
coins: z.number().int().min(0),
|
|
22
|
+
kartsGuids: z.array(z.string()).min(1),
|
|
23
|
+
powerUpsIds: z.array(z.string()).min(1),
|
|
24
|
+
time: z.number().int().min(30).max(508),
|
|
25
|
+
speedConfig: z.number().int().min(20).max(100),
|
|
26
|
+
playerKartMap: z.record(z.string(), z.string()).optional(),
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export const createBattleSchema = z.object({
|
|
30
|
+
gameTrackId: z.string(),
|
|
31
|
+
gameTurnId: z.string().optional(),
|
|
32
|
+
isOfficial: z.boolean().optional(),
|
|
33
|
+
});
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { battleKartStateSchema, battleSchema } from './Battle.schema';
|
|
2
|
+
import { battleKartStateSchema, battleSchema, createBattleSchema, startBattleSchema } from './Battle.schema';
|
|
3
3
|
|
|
4
4
|
export type BattleKartState = z.infer<typeof battleKartStateSchema>;
|
|
5
5
|
export type Battle = z.infer<typeof battleSchema>;
|
|
6
|
+
|
|
7
|
+
export type StartBattle = z.infer<typeof startBattleSchema>;
|
|
8
|
+
export type CreateBattle = z.infer<typeof createBattleSchema>;
|
|
@@ -30,6 +30,7 @@ export const raceKartStateSchema = gameKartStateSchema.extend({
|
|
|
30
30
|
export const raceRankingItemSchema = kartRankingItemSchema.extend({
|
|
31
31
|
progress: z.number(),
|
|
32
32
|
lapsCompleted: z.number(),
|
|
33
|
+
fastestLap: lapTimeSchema.nullable().optional(),
|
|
33
34
|
});
|
|
34
35
|
|
|
35
36
|
export const rankingWithKartsAndLapTimesSchema = raceRankingItemSchema.extend({
|
|
@@ -55,3 +56,19 @@ export const kartLapTimesSchema = z.object({
|
|
|
55
56
|
kartGuid: z.string(),
|
|
56
57
|
lapTimes: z.array(lapTimeSchema),
|
|
57
58
|
});
|
|
59
|
+
|
|
60
|
+
export const startRaceSchema = z.object({
|
|
61
|
+
laps: z.number().int(),
|
|
62
|
+
coins: z.number().int().min(0).max(254),
|
|
63
|
+
kartsGuids: z.array(z.string()).min(1),
|
|
64
|
+
powerUpsIds: z.array(z.string()).min(1),
|
|
65
|
+
time: z.number().int().min(30).max(1200),
|
|
66
|
+
speedConfig: z.number().int().min(20).max(100),
|
|
67
|
+
playerKartMap: z.record(z.string(), z.string()).optional(),
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
export const createRaceSchema = startRaceSchema.partial().extend({
|
|
71
|
+
gameTrackId: z.string(),
|
|
72
|
+
gameTurnId: z.string().optional(),
|
|
73
|
+
isOfficial: z.boolean().optional(),
|
|
74
|
+
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import {
|
|
3
|
+
createRaceSchema,
|
|
3
4
|
kartLapTimesSchema,
|
|
4
5
|
kartProgressSchema,
|
|
5
6
|
lapTimeSchema,
|
|
@@ -8,6 +9,7 @@ import {
|
|
|
8
9
|
raceSchema,
|
|
9
10
|
raceWithDetailedRankingSchema,
|
|
10
11
|
rankingWithKartsAndLapTimesSchema,
|
|
12
|
+
startRaceSchema,
|
|
11
13
|
} from './Race.schema';
|
|
12
14
|
|
|
13
15
|
export type KartProgress = z.infer<typeof kartProgressSchema>;
|
|
@@ -20,3 +22,6 @@ export type RankingWithKartsAndLapTimes = z.infer<typeof rankingWithKartsAndLapT
|
|
|
20
22
|
|
|
21
23
|
export type Race = z.infer<typeof raceSchema>;
|
|
22
24
|
export type RaceWithDetailedRanking = z.infer<typeof raceWithDetailedRankingSchema>;
|
|
25
|
+
|
|
26
|
+
export type StartRace = z.infer<typeof startRaceSchema>;
|
|
27
|
+
export type CreateRace = z.infer<typeof createRaceSchema>;
|
|
@@ -48,3 +48,9 @@ export const signWaiverSchema = z.object({
|
|
|
48
48
|
signature: z.string().optional(), // Base64 or simply a boolean acceptance. Let's make it flexible.
|
|
49
49
|
accepted: z.literal(true), // They must explicitly pass accepted: true
|
|
50
50
|
});
|
|
51
|
+
|
|
52
|
+
export const playerBasicInfoSchema = playerSchema.pick({
|
|
53
|
+
id: true,
|
|
54
|
+
nickname: true,
|
|
55
|
+
avatarUrl: true,
|
|
56
|
+
});
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { playerSchema, playerStatsSchema, playerTypeSchema, playerWaiverStatusSchema } from './Player.schema';
|
|
2
|
+
import { playerBasicInfoSchema, playerSchema, playerStatsSchema, playerTypeSchema, playerWaiverStatusSchema } from './Player.schema';
|
|
3
3
|
|
|
4
4
|
export type PlayerType = z.infer<typeof playerTypeSchema>;
|
|
5
5
|
export type PlayerStats = z.infer<typeof playerStatsSchema>;
|
|
6
6
|
export type PlayerWaiverStatus = z.infer<typeof playerWaiverStatusSchema>;
|
|
7
7
|
|
|
8
8
|
export type Player = z.infer<typeof playerSchema>;
|
|
9
|
+
export type PlayerBasicInfo = z.infer<typeof playerBasicInfoSchema>;
|
|
@@ -22,8 +22,10 @@ export const GAME_TURN_STATUS = {
|
|
|
22
22
|
CREATED: 'created',
|
|
23
23
|
IN_QUEUE: 'in_queue',
|
|
24
24
|
READY: 'ready',
|
|
25
|
+
BOARDING: 'boarding',
|
|
25
26
|
PLAYING: 'playing',
|
|
26
27
|
COMPLETED: 'completed',
|
|
28
|
+
CANCELLED: 'cancelled',
|
|
27
29
|
} as const;
|
|
28
30
|
|
|
29
31
|
export const GAME_TURN_CHECK = {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { trim, z } from 'zod';
|
|
2
|
+
import { paginatedResponseSchema } from '../pagination';
|
|
2
3
|
import {
|
|
3
4
|
GAME_TICKET_STATUS,
|
|
4
5
|
GAME_TURN_CHECK,
|
|
@@ -10,6 +11,7 @@ import {
|
|
|
10
11
|
TICKET_USER_TYPE,
|
|
11
12
|
} from './Ticketing.const';
|
|
12
13
|
import { gameTypeSchema } from '../game';
|
|
14
|
+
import { playerBasicInfoSchema } from '../player';
|
|
13
15
|
|
|
14
16
|
export const gameTicketStatusSchema = z.enum(GAME_TICKET_STATUS);
|
|
15
17
|
export const ticketUserTypeSchema = z.enum(TICKET_USER_TYPE);
|
|
@@ -59,6 +61,19 @@ export const purchaseSchema = z.object({
|
|
|
59
61
|
updatedAt: z.date(),
|
|
60
62
|
});
|
|
61
63
|
|
|
64
|
+
export const filterPurchaseSchema = z.object({
|
|
65
|
+
purchaseNumber: z.coerce.number().optional(),
|
|
66
|
+
buyerUserId: z.string().optional(),
|
|
67
|
+
status: purchaseStatusSchema.optional(),
|
|
68
|
+
guestName: z.string().optional(),
|
|
69
|
+
guestContact: z.string().optional(),
|
|
70
|
+
page: z.coerce.number().min(1).default(1),
|
|
71
|
+
limit: z.coerce.number().min(1).max(100).default(10),
|
|
72
|
+
cursor: z.string().optional(),
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export const paginatedPurchaseSchema = paginatedResponseSchema(purchaseSchema);
|
|
76
|
+
|
|
62
77
|
export const createPurchaseInputSchema = z.object({
|
|
63
78
|
buyerUserId: z.string().optional(),
|
|
64
79
|
guestName: z.string().optional(),
|
|
@@ -92,14 +107,30 @@ export const gameTurnSchema = z.object({
|
|
|
92
107
|
leaderPlayerId: z.string(),
|
|
93
108
|
gameTickets: z.array(z.string()),
|
|
94
109
|
playerIds: z.array(z.string()),
|
|
110
|
+
players: z.array(playerBasicInfoSchema).optional(),
|
|
111
|
+
gameIds: z.array(z.string()).default([]),
|
|
112
|
+
type: gameTypeSchema.optional(),
|
|
95
113
|
status: gameTurnStatusSchema,
|
|
114
|
+
ticketType: ticketTypeSchema.default(TICKET_TYPE.RACE),
|
|
96
115
|
tasks: z.array(gameTurnTaskSchema),
|
|
97
116
|
createdAt: z.date(),
|
|
98
117
|
updatedAt: z.date(),
|
|
99
118
|
startedAt: z.date().optional(),
|
|
100
119
|
completedAt: z.date().optional(),
|
|
120
|
+
cancelReason: z.string().optional(),
|
|
121
|
+
cancellAt: z.date().optional(),
|
|
122
|
+
cancelledByUserId: z.string().optional(),
|
|
101
123
|
});
|
|
102
124
|
|
|
103
125
|
export const gameTurnQueueItemSchema = gameTurnSchema.extend({
|
|
104
126
|
position: z.number(),
|
|
105
127
|
});
|
|
128
|
+
|
|
129
|
+
export const cancelGameTurnInputSchema = z.object({
|
|
130
|
+
cancelReason: z.string().trim().max(500).optional(),
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
export const postponeGameTurnInputSchema = z.object({
|
|
134
|
+
positions: z.coerce.number().int().min(1),
|
|
135
|
+
});
|
|
136
|
+
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import {
|
|
3
|
+
cancelGameTurnInputSchema,
|
|
3
4
|
createPurchaseInputSchema,
|
|
5
|
+
filterPurchaseSchema,
|
|
4
6
|
gameTicketSchema,
|
|
5
7
|
gameTicketStatusSchema,
|
|
6
8
|
gameTurnCheckSchema,
|
|
@@ -10,6 +12,8 @@ import {
|
|
|
10
12
|
gameTurnTaskSchema,
|
|
11
13
|
gameTurnTaskStatusSchema,
|
|
12
14
|
gameTurnTaskTypeSchema,
|
|
15
|
+
paginatedPurchaseSchema,
|
|
16
|
+
postponeGameTurnInputSchema,
|
|
13
17
|
purchaseSchema,
|
|
14
18
|
ticketSummarySchema,
|
|
15
19
|
ticketTypeSchema,
|
|
@@ -23,6 +27,8 @@ export type TicketSummary = z.infer<typeof ticketSummarySchema>;
|
|
|
23
27
|
|
|
24
28
|
export type Purchase = z.infer<typeof purchaseSchema>;
|
|
25
29
|
export type CreatePurchaseInput = z.infer<typeof createPurchaseInputSchema>;
|
|
30
|
+
export type FilterPurchase = z.infer<typeof filterPurchaseSchema>;
|
|
31
|
+
export type PaginatedPurchase = z.infer<typeof paginatedPurchaseSchema>;
|
|
26
32
|
|
|
27
33
|
export type GameTicket = z.infer<typeof gameTicketSchema>;
|
|
28
34
|
|
|
@@ -33,3 +39,5 @@ export type GameTurnTaskStatus = z.infer<typeof gameTurnTaskStatusSchema>;
|
|
|
33
39
|
export type GameTurnTask = z.infer<typeof gameTurnTaskSchema>;
|
|
34
40
|
export type GameTurn = z.infer<typeof gameTurnSchema>;
|
|
35
41
|
export type GameTurnQueueItem = z.infer<typeof gameTurnQueueItemSchema>;
|
|
42
|
+
export type PostponeGameTurnInput = z.infer<typeof postponeGameTurnInputSchema>;
|
|
43
|
+
export type CancelGameTurnInput = z.infer<typeof cancelGameTurnInputSchema>;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import * as fs from "fs";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* MCP Server for Battle Racing Common Library
|
|
9
|
+
* This server allows other AI agents to query types, schemas and constants
|
|
10
|
+
* from the br-common-lib repository locally.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const DOMAINS_DIR = path.resolve(__dirname, "../../src/domains");
|
|
14
|
+
|
|
15
|
+
const server = new McpServer({
|
|
16
|
+
name: "br-common-lib-mcp",
|
|
17
|
+
version: "1.1.1",
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* List all available domains in src/domains
|
|
22
|
+
*/
|
|
23
|
+
async function listDomains() {
|
|
24
|
+
if (!fs.existsSync(DOMAINS_DIR)) {
|
|
25
|
+
throw new Error(`Domains directory not found at ${DOMAINS_DIR}`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const entries = fs.readdirSync(DOMAINS_DIR, { withFileTypes: true });
|
|
29
|
+
return entries
|
|
30
|
+
.filter((entry: fs.Dirent) => entry.isDirectory())
|
|
31
|
+
.map((entry: fs.Dirent) => entry.name);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get details for a specific domain (recursive)
|
|
36
|
+
*/
|
|
37
|
+
async function getDomainDetails(domain: string) {
|
|
38
|
+
const domainPath = path.join(DOMAINS_DIR, domain);
|
|
39
|
+
|
|
40
|
+
if (!fs.existsSync(domainPath)) {
|
|
41
|
+
throw new Error(`Domain "${domain}" not found at ${domainPath}`);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
let output = `## Domain: ${domain}\n\n`;
|
|
45
|
+
|
|
46
|
+
function readDirRecursive(dir: string) {
|
|
47
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
48
|
+
|
|
49
|
+
for (const entry of entries) {
|
|
50
|
+
const fullPath = path.join(dir, entry.name);
|
|
51
|
+
if (entry.isDirectory()) {
|
|
52
|
+
readDirRecursive(fullPath);
|
|
53
|
+
} else if (
|
|
54
|
+
entry.name.endsWith(".types.ts") ||
|
|
55
|
+
entry.name.endsWith(".schema.ts") ||
|
|
56
|
+
entry.name.endsWith(".const.ts") ||
|
|
57
|
+
entry.name === "index.ts"
|
|
58
|
+
) {
|
|
59
|
+
const relativePath = path.relative(domainPath, fullPath);
|
|
60
|
+
const content = fs.readFileSync(fullPath, "utf-8");
|
|
61
|
+
output += `### File: ${relativePath}\n\`\`\`typescript\n${content}\n\`\`\`\n\n`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
readDirRecursive(domainPath);
|
|
67
|
+
return output;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Search for a symbol (type, constant, etc) across all domains
|
|
72
|
+
*/
|
|
73
|
+
async function searchSymbol(query: string) {
|
|
74
|
+
const domains = await listDomains();
|
|
75
|
+
let results: { domain: string; file: string; match: string }[] = [];
|
|
76
|
+
|
|
77
|
+
for (const domain of domains) {
|
|
78
|
+
const domainPath = path.join(DOMAINS_DIR, domain);
|
|
79
|
+
|
|
80
|
+
function searchInDir(dir: string) {
|
|
81
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
82
|
+
for (const entry of entries) {
|
|
83
|
+
const fullPath = path.join(dir, entry.name);
|
|
84
|
+
if (entry.isDirectory()) {
|
|
85
|
+
searchInDir(fullPath);
|
|
86
|
+
} else if (entry.isFile() && (entry.name.endsWith(".ts"))) {
|
|
87
|
+
const content = fs.readFileSync(fullPath, "utf-8");
|
|
88
|
+
if (content.includes(query)) {
|
|
89
|
+
const lines = content.split("\n");
|
|
90
|
+
const matchLine = lines.find(l => l.includes(query)) || "";
|
|
91
|
+
results.push({
|
|
92
|
+
domain,
|
|
93
|
+
file: path.relative(DOMAINS_DIR, fullPath),
|
|
94
|
+
match: matchLine.trim()
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
searchInDir(domainPath);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (results.length === 0) return `No results found for "${query}"`;
|
|
104
|
+
|
|
105
|
+
return results
|
|
106
|
+
.map(r => `- [${r.domain}] ${r.file}: \`${r.match}\``)
|
|
107
|
+
.join("\n");
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Register tools using the high-level McpServer API (registerTool)
|
|
111
|
+
server.registerTool(
|
|
112
|
+
"list_domains",
|
|
113
|
+
{
|
|
114
|
+
description: "List all available domains in br-common-lib (e.g., kart, game, powerUp)",
|
|
115
|
+
},
|
|
116
|
+
async () => {
|
|
117
|
+
const domains = await listDomains();
|
|
118
|
+
return {
|
|
119
|
+
content: [
|
|
120
|
+
{
|
|
121
|
+
type: "text",
|
|
122
|
+
text: `Available domains: ${domains.join(", ")}`,
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
server.registerTool(
|
|
130
|
+
"get_domain_details",
|
|
131
|
+
{
|
|
132
|
+
description: "Get all types, schemas, and constants for a specific domain (recursive)",
|
|
133
|
+
inputSchema: z.object({
|
|
134
|
+
domain: z.string().describe("The name of the domain (e.g., 'kart')"),
|
|
135
|
+
}),
|
|
136
|
+
},
|
|
137
|
+
async ({ domain }) => {
|
|
138
|
+
const details = await getDomainDetails(domain);
|
|
139
|
+
return {
|
|
140
|
+
content: [{ type: "text", text: details }],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
server.registerTool(
|
|
146
|
+
"search_symbol",
|
|
147
|
+
{
|
|
148
|
+
description: "Search for a specific type, constant or property across all domains",
|
|
149
|
+
inputSchema: z.object({
|
|
150
|
+
query: z.string().describe("The symbol or string to search for (e.g., 'hardwareState')"),
|
|
151
|
+
}),
|
|
152
|
+
},
|
|
153
|
+
async ({ query }) => {
|
|
154
|
+
const results = await searchSymbol(query);
|
|
155
|
+
return {
|
|
156
|
+
content: [{ type: "text", text: results }],
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
// Start the server
|
|
162
|
+
async function main() {
|
|
163
|
+
const transport = new StdioServerTransport();
|
|
164
|
+
await server.connect(transport);
|
|
165
|
+
console.error("Battle Racing Common Lib MCP Server running on stdio");
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
main().catch((error) => {
|
|
169
|
+
console.error("Fatal error in main():", error);
|
|
170
|
+
process.exit(1);
|
|
171
|
+
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const DAMAGE_EFFECT: {
|
|
2
|
-
readonly GENERIC: "Generic";
|
|
3
|
-
readonly TRAP_HIT: "Trap Hit";
|
|
4
|
-
readonly PULSE_HIT: "Pulse Hit";
|
|
5
|
-
readonly STAR_HIT_LEFT: "Star Hit Left";
|
|
6
|
-
readonly STAR_HIT_RIGHT: "Star Hit Right";
|
|
7
|
-
readonly SHOT_HIT: "Shot Hit";
|
|
8
|
-
readonly SHORTCUT: "Shortcut";
|
|
9
|
-
readonly BLUE_SHOT_HIT: "Blue Shot Hit";
|
|
10
|
-
};
|