@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.
Files changed (431) hide show
  1. package/dist/domains/game/Game.schema.d.ts +13 -0
  2. package/dist/domains/game/Game.schema.js +11 -1
  3. package/dist/domains/game/Game.types.d.ts +3 -1
  4. package/dist/domains/game/battle/Battle.schema.d.ts +17 -0
  5. package/dist/domains/game/battle/Battle.schema.js +15 -1
  6. package/dist/domains/game/battle/Battle.types.d.ts +3 -1
  7. package/dist/domains/game/race/Race.schema.d.ts +41 -0
  8. package/dist/domains/game/race/Race.schema.js +16 -1
  9. package/dist/domains/game/race/Race.types.d.ts +3 -1
  10. package/dist/domains/player/Player.schema.d.ts +5 -0
  11. package/dist/domains/player/Player.schema.js +6 -1
  12. package/dist/domains/player/Player.types.d.ts +2 -1
  13. package/dist/domains/session/Session.schema.d.ts +20 -0
  14. package/dist/domains/ticketing/Ticketing.const.d.ts +2 -0
  15. package/dist/domains/ticketing/Ticketing.const.js +2 -0
  16. package/dist/domains/ticketing/Ticketing.schema.d.ts +99 -0
  17. package/dist/domains/ticketing/Ticketing.schema.js +27 -1
  18. package/dist/domains/ticketing/Ticketing.types.d.ts +5 -1
  19. package/dist/mcp-server/index.d.ts +1 -0
  20. package/dist/mcp-server/index.js +174 -0
  21. package/package.json +6 -1
  22. package/src/domains/game/Game.schema.ts +12 -0
  23. package/src/domains/game/Game.types.ts +4 -0
  24. package/src/domains/game/battle/Battle.schema.ts +16 -0
  25. package/src/domains/game/battle/Battle.types.ts +4 -1
  26. package/src/domains/game/race/Race.schema.ts +17 -0
  27. package/src/domains/game/race/Race.types.ts +5 -0
  28. package/src/domains/player/Player.schema.ts +6 -0
  29. package/src/domains/player/Player.types.ts +2 -1
  30. package/src/domains/ticketing/Ticketing.const.ts +2 -0
  31. package/src/domains/ticketing/Ticketing.schema.ts +32 -1
  32. package/src/domains/ticketing/Ticketing.types.ts +8 -0
  33. package/src/mcp-server/index.ts +171 -0
  34. package/dist/constants/checkpoint-type.d.ts +0 -6
  35. package/dist/constants/checkpoint-type.js +0 -9
  36. package/dist/constants/hardware/base-hardware-status.d.ts +0 -6
  37. package/dist/constants/hardware/base-hardware-status.js +0 -9
  38. package/dist/constants/hardware/damage.d.ts +0 -10
  39. package/dist/constants/hardware/damage.js +0 -13
  40. package/dist/constants/hardware/flag-media-name.d.ts +0 -63
  41. package/dist/constants/hardware/flag-media-name.js +0 -71
  42. package/dist/constants/hardware/flag-status.d.ts +0 -10
  43. package/dist/constants/hardware/flag-status.js +0 -11
  44. package/dist/constants/hardware/index.d.ts +0 -9
  45. package/dist/constants/hardware/index.js +0 -25
  46. package/dist/constants/hardware/lights-effect.d.ts +0 -10
  47. package/dist/constants/hardware/lights-effect.js +0 -14
  48. package/dist/constants/hardware/rgb-status.d.ts +0 -8
  49. package/dist/constants/hardware/rgb-status.js +0 -11
  50. package/dist/constants/hardware/screen-status.d.ts +0 -7
  51. package/dist/constants/hardware/screen-status.js +0 -8
  52. package/dist/constants/hardware/screen-view.d.ts +0 -9
  53. package/dist/constants/hardware/screen-view.js +0 -12
  54. package/dist/constants/hardware/speed-status.d.ts +0 -9
  55. package/dist/constants/hardware/speed-status.js +0 -10
  56. package/dist/constants/index.d.ts +0 -9
  57. package/dist/constants/index.js +0 -25
  58. package/dist/constants/kart-status.d.ts +0 -12
  59. package/dist/constants/kart-status.js +0 -15
  60. package/dist/constants/module-name.d.ts +0 -12
  61. package/dist/constants/module-name.js +0 -15
  62. package/dist/constants/payment-provider.d.ts +0 -5
  63. package/dist/constants/payment-provider.js +0 -8
  64. package/dist/constants/payment-status.d.ts +0 -7
  65. package/dist/constants/payment-status.js +0 -10
  66. package/dist/constants/permission.d.ts +0 -12
  67. package/dist/constants/permission.js +0 -15
  68. package/dist/constants/racing-team-role.d.ts +0 -5
  69. package/dist/constants/racing-team-role.js +0 -8
  70. package/dist/constants/user-role.d.ts +0 -5
  71. package/dist/constants/user-role.js +0 -8
  72. package/dist/domains/powerUp/PowerUpCommand.schema.d.ts +0 -799
  73. package/dist/domains/powerUp/PowerUpCommand.schema.js +0 -120
  74. package/dist/domains/socket/Socket.types.d.ts +0 -35
  75. package/dist/domains/socket/Socket.types.js +0 -2
  76. package/dist/domains/socket/SocketHardware.schema.d.ts +0 -1021
  77. package/dist/domains/socket/SocketHardware.schema.js +0 -82
  78. package/dist/domains/socket/SocketHardware.types.d.ts +0 -66
  79. package/dist/domains/socket/SocketHardware.types.js +0 -2
  80. package/dist/domains/socket/SocketParamsToEvents.d.ts +0 -10
  81. package/dist/domains/socket/SocketParamsToEvents.js +0 -2
  82. package/dist/domains/socket/SocketPowerUp.schema.d.ts +0 -1224
  83. package/dist/domains/socket/SocketPowerUp.schema.js +0 -12
  84. package/dist/domains/socket/SocketPowerUp.types.d.ts +0 -17
  85. package/dist/domains/socket/SocketPowerUp.types.js +0 -2
  86. package/dist/domains/socket/clientToServer/SocketClientToServer.schema.d.ts +0 -399
  87. package/dist/domains/socket/clientToServer/SocketClientToServer.schema.js +0 -32
  88. package/dist/domains/socket/clientToServer/SocketClientToServer.types.d.ts +0 -52
  89. package/dist/domains/socket/clientToServer/SocketClientToServer.types.js +0 -2
  90. package/dist/domains/socket/inputs/SocketInput.schema.d.ts +0 -63
  91. package/dist/domains/socket/inputs/SocketInput.schema.js +0 -21
  92. package/dist/domains/socket/inputs/SocketInput.types.d.ts +0 -19
  93. package/dist/domains/socket/inputs/SocketInput.types.js +0 -2
  94. package/dist/domains/socket/serverToClient/SocketServerToClient.schema.d.ts +0 -3786
  95. package/dist/domains/socket/serverToClient/SocketServerToClient.schema.js +0 -105
  96. package/dist/domains/socket/serverToClient/SocketServerToClient.types.d.ts +0 -97
  97. package/dist/domains/socket/serverToClient/SocketServerToClient.types.js +0 -2
  98. package/dist/types/checkpoint/Checkpoint.d.ts +0 -10
  99. package/dist/types/checkpoint/Checkpoint.js +0 -2
  100. package/dist/types/checkpoint/CheckpointType.d.ts +0 -3
  101. package/dist/types/checkpoint/CheckpointType.js +0 -2
  102. package/dist/types/checkpoint/index.d.ts +0 -2
  103. package/dist/types/checkpoint/index.js +0 -18
  104. package/dist/types/color/ColorInfo.d.ts +0 -4
  105. package/dist/types/color/ColorInfo.js +0 -2
  106. package/dist/types/color/ColorName.d.ts +0 -1
  107. package/dist/types/color/ColorName.js +0 -2
  108. package/dist/types/color/index.d.ts +0 -2
  109. package/dist/types/color/index.js +0 -18
  110. package/dist/types/command/CommandConfig.d.ts +0 -159
  111. package/dist/types/command/CommandConfig.js +0 -2
  112. package/dist/types/command/index.d.ts +0 -1
  113. package/dist/types/command/index.js +0 -17
  114. package/dist/types/damage/Damage.d.ts +0 -13
  115. package/dist/types/damage/Damage.js +0 -2
  116. package/dist/types/damage/DamageName.d.ts +0 -3
  117. package/dist/types/damage/DamageName.js +0 -2
  118. package/dist/types/damage/DamageTarget.d.ts +0 -1
  119. package/dist/types/damage/DamageTarget.js +0 -2
  120. package/dist/types/damage/index.d.ts +0 -3
  121. package/dist/types/damage/index.js +0 -19
  122. package/dist/types/flow/Flow.d.ts +0 -7
  123. package/dist/types/flow/Flow.js +0 -2
  124. package/dist/types/flow/index.d.ts +0 -1
  125. package/dist/types/flow/index.js +0 -17
  126. package/dist/types/game/Game.d.ts +0 -38
  127. package/dist/types/game/Game.js +0 -14
  128. package/dist/types/game/GameStatus.d.ts +0 -9
  129. package/dist/types/game/GameStatus.js +0 -12
  130. package/dist/types/game/GameType.d.ts +0 -5
  131. package/dist/types/game/GameType.js +0 -8
  132. package/dist/types/game/GameWarningEvent.d.ts +0 -1
  133. package/dist/types/game/GameWarningEvent.js +0 -2
  134. package/dist/types/game/KartRankingItem.d.ts +0 -5
  135. package/dist/types/game/KartRankingItem.js +0 -2
  136. package/dist/types/game/battle/Battle.d.ts +0 -9
  137. package/dist/types/game/battle/Battle.js +0 -2
  138. package/dist/types/game/battle/index.d.ts +0 -1
  139. package/dist/types/game/battle/index.js +0 -17
  140. package/dist/types/game/index.d.ts +0 -7
  141. package/dist/types/game/index.js +0 -23
  142. package/dist/types/game/race/KartProgress.d.ts +0 -10
  143. package/dist/types/game/race/KartProgress.js +0 -2
  144. package/dist/types/game/race/LapTime.d.ts +0 -11
  145. package/dist/types/game/race/LapTime.js +0 -2
  146. package/dist/types/game/race/Race.d.ts +0 -25
  147. package/dist/types/game/race/Race.js +0 -2
  148. package/dist/types/game/race/index.d.ts +0 -3
  149. package/dist/types/game/race/index.js +0 -19
  150. package/dist/types/gameTrack/GameTrack.d.ts +0 -14
  151. package/dist/types/gameTrack/GameTrack.js +0 -2
  152. package/dist/types/gameTrack/GameTrackGameDefaultValues.d.ts +0 -4
  153. package/dist/types/gameTrack/GameTrackGameDefaultValues.js +0 -2
  154. package/dist/types/gameTrack/GameTrackKartConfig.d.ts +0 -9
  155. package/dist/types/gameTrack/GameTrackKartConfig.js +0 -2
  156. package/dist/types/gameTrack/GameTrackKartsConfig.d.ts +0 -23
  157. package/dist/types/gameTrack/GameTrackKartsConfig.js +0 -2
  158. package/dist/types/gameTrack/index.d.ts +0 -4
  159. package/dist/types/gameTrack/index.js +0 -20
  160. package/dist/types/hardware/KartEffect.d.ts +0 -1
  161. package/dist/types/hardware/KartEffect.js +0 -2
  162. package/dist/types/hardware/KartHardwareState.d.ts +0 -21
  163. package/dist/types/hardware/KartHardwareState.js +0 -2
  164. package/dist/types/hardware/ModuleName.d.ts +0 -3
  165. package/dist/types/hardware/ModuleName.js +0 -2
  166. package/dist/types/hardware/ModuleStatus.d.ts +0 -9
  167. package/dist/types/hardware/ModuleStatus.js +0 -2
  168. package/dist/types/hardware/ballSensor/BallSensorCommand.d.ts +0 -1
  169. package/dist/types/hardware/ballSensor/BallSensorCommand.js +0 -2
  170. package/dist/types/hardware/ballSensor/BallSensorDiskThrowerModuleStatus.d.ts +0 -4
  171. package/dist/types/hardware/ballSensor/BallSensorDiskThrowerModuleStatus.js +0 -2
  172. package/dist/types/hardware/ballSensor/BallSensorStatus.d.ts +0 -1
  173. package/dist/types/hardware/ballSensor/BallSensorStatus.js +0 -2
  174. package/dist/types/hardware/ballSensor/ConfigureBallSensorDiskThrowerModuleOptions.d.ts +0 -4
  175. package/dist/types/hardware/ballSensor/ConfigureBallSensorDiskThrowerModuleOptions.js +0 -2
  176. package/dist/types/hardware/ballSensor/index.d.ts +0 -4
  177. package/dist/types/hardware/ballSensor/index.js +0 -20
  178. package/dist/types/hardware/ballShooter/BallShooterCommand.d.ts +0 -1
  179. package/dist/types/hardware/ballShooter/BallShooterCommand.js +0 -2
  180. package/dist/types/hardware/ballShooter/BallShooterStatus.d.ts +0 -1
  181. package/dist/types/hardware/ballShooter/BallShooterStatus.js +0 -2
  182. package/dist/types/hardware/ballShooter/index.d.ts +0 -2
  183. package/dist/types/hardware/ballShooter/index.js +0 -18
  184. package/dist/types/hardware/diskSensor/ConfigDiskSensorBallShooterModuleOptions.d.ts +0 -8
  185. package/dist/types/hardware/diskSensor/ConfigDiskSensorBallShooterModuleOptions.js +0 -2
  186. package/dist/types/hardware/diskSensor/DiskSensorBallShooterModuleStatus.d.ts +0 -4
  187. package/dist/types/hardware/diskSensor/DiskSensorBallShooterModuleStatus.js +0 -2
  188. package/dist/types/hardware/diskSensor/DiskSensorCommand.d.ts +0 -1
  189. package/dist/types/hardware/diskSensor/DiskSensorCommand.js +0 -2
  190. package/dist/types/hardware/diskSensor/DiskSensorStatus.d.ts +0 -1
  191. package/dist/types/hardware/diskSensor/DiskSensorStatus.js +0 -2
  192. package/dist/types/hardware/diskSensor/index.d.ts +0 -4
  193. package/dist/types/hardware/diskSensor/index.js +0 -20
  194. package/dist/types/hardware/diskThrower/DiskThrowerCommand.d.ts +0 -1
  195. package/dist/types/hardware/diskThrower/DiskThrowerCommand.js +0 -2
  196. package/dist/types/hardware/diskThrower/DiskThrowerStatus.d.ts +0 -1
  197. package/dist/types/hardware/diskThrower/DiskThrowerStatus.js +0 -2
  198. package/dist/types/hardware/diskThrower/index.d.ts +0 -2
  199. package/dist/types/hardware/diskThrower/index.js +0 -18
  200. package/dist/types/hardware/emergency/EmergencyActionCommand.d.ts +0 -1
  201. package/dist/types/hardware/emergency/EmergencyActionCommand.js +0 -2
  202. package/dist/types/hardware/emergency/EmergencyModuleStatus.d.ts +0 -4
  203. package/dist/types/hardware/emergency/EmergencyModuleStatus.js +0 -2
  204. package/dist/types/hardware/emergency/EmergencyStatus.d.ts +0 -1
  205. package/dist/types/hardware/emergency/EmergencyStatus.js +0 -2
  206. package/dist/types/hardware/emergency/index.d.ts +0 -3
  207. package/dist/types/hardware/emergency/index.js +0 -19
  208. package/dist/types/hardware/flag/FlagActionCommand.d.ts +0 -1
  209. package/dist/types/hardware/flag/FlagActionCommand.js +0 -2
  210. package/dist/types/hardware/flag/FlagConfigurationOptions.d.ts +0 -10
  211. package/dist/types/hardware/flag/FlagConfigurationOptions.js +0 -2
  212. package/dist/types/hardware/flag/FlagMediaName.d.ts +0 -3
  213. package/dist/types/hardware/flag/FlagMediaName.js +0 -2
  214. package/dist/types/hardware/flag/FlagModuleStatus.d.ts +0 -7
  215. package/dist/types/hardware/flag/FlagModuleStatus.js +0 -2
  216. package/dist/types/hardware/flag/FlagShowMediaOptions.d.ts +0 -14
  217. package/dist/types/hardware/flag/FlagShowMediaOptions.js +0 -2
  218. package/dist/types/hardware/flag/FlagStatus.d.ts +0 -3
  219. package/dist/types/hardware/flag/FlagStatus.js +0 -2
  220. package/dist/types/hardware/flag/index.d.ts +0 -6
  221. package/dist/types/hardware/flag/index.js +0 -22
  222. package/dist/types/hardware/index.d.ts +0 -17
  223. package/dist/types/hardware/index.js +0 -33
  224. package/dist/types/hardware/lights/LightsEffect.d.ts +0 -3
  225. package/dist/types/hardware/lights/LightsEffect.js +0 -2
  226. package/dist/types/hardware/lights/ShowLightsColorParams.d.ts +0 -7
  227. package/dist/types/hardware/lights/ShowLightsColorParams.js +0 -2
  228. package/dist/types/hardware/lights/ShowLightsEffectParams.d.ts +0 -8
  229. package/dist/types/hardware/lights/ShowLightsEffectParams.js +0 -2
  230. package/dist/types/hardware/lights/index.d.ts +0 -3
  231. package/dist/types/hardware/lights/index.js +0 -19
  232. package/dist/types/hardware/rgb/RGBActionCommand.d.ts +0 -1
  233. package/dist/types/hardware/rgb/RGBActionCommand.js +0 -2
  234. package/dist/types/hardware/rgb/RGBConfigurationOptions.d.ts +0 -8
  235. package/dist/types/hardware/rgb/RGBConfigurationOptions.js +0 -2
  236. package/dist/types/hardware/rgb/RGBModuleStatus.d.ts +0 -6
  237. package/dist/types/hardware/rgb/RGBModuleStatus.js +0 -2
  238. package/dist/types/hardware/rgb/RGBShowEffectOptions.d.ts +0 -4
  239. package/dist/types/hardware/rgb/RGBShowEffectOptions.js +0 -2
  240. package/dist/types/hardware/rgb/RGBStatus.d.ts +0 -3
  241. package/dist/types/hardware/rgb/RGBStatus.js +0 -2
  242. package/dist/types/hardware/rgb/index.d.ts +0 -5
  243. package/dist/types/hardware/rgb/index.js +0 -21
  244. package/dist/types/hardware/screen/ScreenBattleViewConfig.d.ts +0 -4
  245. package/dist/types/hardware/screen/ScreenBattleViewConfig.js +0 -2
  246. package/dist/types/hardware/screen/ScreenCountdownParams.d.ts +0 -11
  247. package/dist/types/hardware/screen/ScreenCountdownParams.js +0 -2
  248. package/dist/types/hardware/screen/ScreenDebugViewInput.d.ts +0 -4
  249. package/dist/types/hardware/screen/ScreenDebugViewInput.js +0 -2
  250. package/dist/types/hardware/screen/ScreenFinishViewInput.d.ts +0 -10
  251. package/dist/types/hardware/screen/ScreenFinishViewInput.js +0 -2
  252. package/dist/types/hardware/screen/ScreenGameTimeLeft.d.ts +0 -4
  253. package/dist/types/hardware/screen/ScreenGameTimeLeft.js +0 -2
  254. package/dist/types/hardware/screen/ScreenHomeViewInput.d.ts +0 -3
  255. package/dist/types/hardware/screen/ScreenHomeViewInput.js +0 -2
  256. package/dist/types/hardware/screen/ScreenModuleStatus.d.ts +0 -6
  257. package/dist/types/hardware/screen/ScreenModuleStatus.js +0 -2
  258. package/dist/types/hardware/screen/ScreenRaceViewConfig.d.ts +0 -4
  259. package/dist/types/hardware/screen/ScreenRaceViewConfig.js +0 -2
  260. package/dist/types/hardware/screen/ScreenStatus.d.ts +0 -3
  261. package/dist/types/hardware/screen/ScreenStatus.js +0 -2
  262. package/dist/types/hardware/screen/ScreenUpdateGameViewInput.d.ts +0 -11
  263. package/dist/types/hardware/screen/ScreenUpdateGameViewInput.js +0 -2
  264. package/dist/types/hardware/screen/ScreenView.d.ts +0 -3
  265. package/dist/types/hardware/screen/ScreenView.js +0 -2
  266. package/dist/types/hardware/screen/ScreenViewBaseConfig.d.ts +0 -16
  267. package/dist/types/hardware/screen/ScreenViewBaseConfig.js +0 -2
  268. package/dist/types/hardware/screen/index.d.ts +0 -12
  269. package/dist/types/hardware/screen/index.js +0 -28
  270. package/dist/types/hardware/sound/PlaySoundOptions.d.ts +0 -11
  271. package/dist/types/hardware/sound/PlaySoundOptions.js +0 -2
  272. package/dist/types/hardware/sound/index.d.ts +0 -1
  273. package/dist/types/hardware/sound/index.js +0 -17
  274. package/dist/types/hardware/speed/SpeedActionCommand.d.ts +0 -1
  275. package/dist/types/hardware/speed/SpeedActionCommand.js +0 -2
  276. package/dist/types/hardware/speed/SpeedChangeOptions.d.ts +0 -6
  277. package/dist/types/hardware/speed/SpeedChangeOptions.js +0 -2
  278. package/dist/types/hardware/speed/SpeedConfiguration.d.ts +0 -6
  279. package/dist/types/hardware/speed/SpeedConfiguration.js +0 -2
  280. package/dist/types/hardware/speed/SpeedModuleStatus.d.ts +0 -12
  281. package/dist/types/hardware/speed/SpeedModuleStatus.js +0 -2
  282. package/dist/types/hardware/speed/SpeedStatus.d.ts +0 -3
  283. package/dist/types/hardware/speed/SpeedStatus.js +0 -2
  284. package/dist/types/hardware/speed/index.d.ts +0 -5
  285. package/dist/types/hardware/speed/index.js +0 -21
  286. package/dist/types/hardware/star-laser/StarLaserCommand.d.ts +0 -1
  287. package/dist/types/hardware/star-laser/StarLaserCommand.js +0 -2
  288. package/dist/types/hardware/star-laser/StarLaserConfigureModuleOptions.d.ts +0 -7
  289. package/dist/types/hardware/star-laser/StarLaserConfigureModuleOptions.js +0 -2
  290. package/dist/types/hardware/star-laser/StarLaserModuleStatus.d.ts +0 -7
  291. package/dist/types/hardware/star-laser/StarLaserModuleStatus.js +0 -2
  292. package/dist/types/hardware/star-laser/StarLaserSendActionsOptions.d.ts +0 -5
  293. package/dist/types/hardware/star-laser/StarLaserSendActionsOptions.js +0 -2
  294. package/dist/types/hardware/star-laser/StarLaserStatus.d.ts +0 -1
  295. package/dist/types/hardware/star-laser/StarLaserStatus.js +0 -2
  296. package/dist/types/hardware/star-laser/index.d.ts +0 -5
  297. package/dist/types/hardware/star-laser/index.js +0 -21
  298. package/dist/types/hardware/steering-wheel/SteeringWheelModuleStatus.d.ts +0 -4
  299. package/dist/types/hardware/steering-wheel/SteeringWheelModuleStatus.js +0 -2
  300. package/dist/types/hardware/steering-wheel/index.d.ts +0 -1
  301. package/dist/types/hardware/steering-wheel/index.js +0 -17
  302. package/dist/types/index.d.ts +0 -24
  303. package/dist/types/index.js +0 -40
  304. package/dist/types/kart/Kart.d.ts +0 -36
  305. package/dist/types/kart/Kart.js +0 -2
  306. package/dist/types/kart/KartShield.d.ts +0 -4
  307. package/dist/types/kart/KartShield.js +0 -2
  308. package/dist/types/kart/KartStatus.d.ts +0 -3
  309. package/dist/types/kart/KartStatus.js +0 -2
  310. package/dist/types/kart/index.d.ts +0 -2
  311. package/dist/types/kart/index.js +0 -18
  312. package/dist/types/kartTracking/CheckpointEvent.d.ts +0 -8
  313. package/dist/types/kartTracking/CheckpointEvent.js +0 -2
  314. package/dist/types/kartTracking/KartTracking.d.ts +0 -5
  315. package/dist/types/kartTracking/KartTracking.js +0 -2
  316. package/dist/types/kartTracking/index.d.ts +0 -2
  317. package/dist/types/kartTracking/index.js +0 -18
  318. package/dist/types/pagination/Pagination.d.ts +0 -3
  319. package/dist/types/pagination/Pagination.js +0 -2
  320. package/dist/types/pagination/index.d.ts +0 -2
  321. package/dist/types/pagination/index.js +0 -18
  322. package/dist/types/pagination/pagination.schema.d.ts +0 -14
  323. package/dist/types/pagination/pagination.schema.js +0 -16
  324. package/dist/types/powerUp/PowerUp.d.ts +0 -27
  325. package/dist/types/powerUp/PowerUp.js +0 -2
  326. package/dist/types/powerUp/PowerUpName.d.ts +0 -1
  327. package/dist/types/powerUp/PowerUpName.js +0 -2
  328. package/dist/types/powerUp/PowerUpShield.d.ts +0 -6
  329. package/dist/types/powerUp/PowerUpShield.js +0 -2
  330. package/dist/types/powerUp/PowerUpTarget.d.ts +0 -11
  331. package/dist/types/powerUp/PowerUpTarget.js +0 -10
  332. package/dist/types/powerUp/PowerUpType.d.ts +0 -8
  333. package/dist/types/powerUp/PowerUpType.js +0 -7
  334. package/dist/types/powerUp/index.d.ts +0 -5
  335. package/dist/types/powerUp/index.js +0 -21
  336. package/dist/types/racingTeam/RacingTeam.d.ts +0 -8
  337. package/dist/types/racingTeam/RacingTeam.js +0 -2
  338. package/dist/types/racingTeam/RacingTeam.schema.d.ts +0 -60
  339. package/dist/types/racingTeam/RacingTeam.schema.js +0 -34
  340. package/dist/types/racingTeam/RacingTeamMembership.d.ts +0 -6
  341. package/dist/types/racingTeam/RacingTeamMembership.js +0 -2
  342. package/dist/types/racingTeam/RacingTeamMembership.schema.d.ts +0 -31
  343. package/dist/types/racingTeam/RacingTeamMembership.schema.js +0 -28
  344. package/dist/types/racingTeam/index.d.ts +0 -4
  345. package/dist/types/racingTeam/index.js +0 -20
  346. package/dist/types/response/ErrorResponse.d.ts +0 -6
  347. package/dist/types/response/ErrorResponse.js +0 -2
  348. package/dist/types/response/Response.d.ts +0 -3
  349. package/dist/types/response/Response.js +0 -2
  350. package/dist/types/response/SuccessResponse.d.ts +0 -5
  351. package/dist/types/response/SuccessResponse.js +0 -2
  352. package/dist/types/response/index.d.ts +0 -3
  353. package/dist/types/response/index.js +0 -2
  354. package/dist/types/role/Permission.d.ts +0 -3
  355. package/dist/types/role/Permission.js +0 -2
  356. package/dist/types/role/RoleDefinition.d.ts +0 -7
  357. package/dist/types/role/RoleDefinition.js +0 -2
  358. package/dist/types/role/UserRole.d.ts +0 -3
  359. package/dist/types/role/UserRole.js +0 -2
  360. package/dist/types/role/index.d.ts +0 -3
  361. package/dist/types/role/index.js +0 -19
  362. package/dist/types/socket/SocketHardwareModulesEventsParams.d.ts +0 -65
  363. package/dist/types/socket/SocketHardwareModulesEventsParams.js +0 -2
  364. package/dist/types/socket/SocketHardwareOnDataEventsParams.d.ts +0 -17
  365. package/dist/types/socket/SocketHardwareOnDataEventsParams.js +0 -2
  366. package/dist/types/socket/SocketPowerUpEventsParams.d.ts +0 -21
  367. package/dist/types/socket/SocketPowerUpEventsParams.js +0 -2
  368. package/dist/types/socket/clientToServer/SocketGameTrackClientToServerEventsParams.d.ts +0 -13
  369. package/dist/types/socket/clientToServer/SocketGameTrackClientToServerEventsParams.js +0 -2
  370. package/dist/types/socket/clientToServer/SocketKartClientToServerEventsParams.d.ts +0 -21
  371. package/dist/types/socket/clientToServer/SocketKartClientToServerEventsParams.js +0 -2
  372. package/dist/types/socket/clientToServer/SocketWebAppClientToServerEventsParams.d.ts +0 -22
  373. package/dist/types/socket/clientToServer/SocketWebAppClientToServerEventsParams.js +0 -2
  374. package/dist/types/socket/clientToServer/index.d.ts +0 -3
  375. package/dist/types/socket/clientToServer/index.js +0 -19
  376. package/dist/types/socket/index.d.ts +0 -7
  377. package/dist/types/socket/index.js +0 -23
  378. package/dist/types/socket/inputs/MacAddressGameTrackConnection.d.ts +0 -7
  379. package/dist/types/socket/inputs/MacAddressGameTrackConnection.js +0 -2
  380. package/dist/types/socket/inputs/SocketInitRaspberryInput.d.ts +0 -4
  381. package/dist/types/socket/inputs/SocketInitRaspberryInput.js +0 -2
  382. package/dist/types/socket/inputs/SocketRegisterKartCheckpointInput.d.ts +0 -11
  383. package/dist/types/socket/inputs/SocketRegisterKartCheckpointInput.js +0 -2
  384. package/dist/types/socket/inputs/index.d.ts +0 -3
  385. package/dist/types/socket/inputs/index.js +0 -19
  386. package/dist/types/socket/serverToClient/SocketGameTrackServerToClientEventParams.d.ts +0 -14
  387. package/dist/types/socket/serverToClient/SocketGameTrackServerToClientEventParams.js +0 -2
  388. package/dist/types/socket/serverToClient/SocketKartServerToClientEventsParams.d.ts +0 -53
  389. package/dist/types/socket/serverToClient/SocketKartServerToClientEventsParams.js +0 -2
  390. package/dist/types/socket/serverToClient/SocketWebAppServerToClientEventsParams.d.ts +0 -28
  391. package/dist/types/socket/serverToClient/SocketWebAppServerToClientEventsParams.js +0 -2
  392. package/dist/types/socket/serverToClient/index.d.ts +0 -3
  393. package/dist/types/socket/serverToClient/index.js +0 -19
  394. package/dist/types/socket/utils/SocketParamsToEvents.d.ts +0 -10
  395. package/dist/types/socket/utils/SocketParamsToEvents.js +0 -2
  396. package/dist/types/socket/utils/index.d.ts +0 -1
  397. package/dist/types/socket/utils/index.js +0 -17
  398. package/dist/types/sounds/SoundName.d.ts +0 -1
  399. package/dist/types/sounds/SoundName.js +0 -2
  400. package/dist/types/sounds/index.d.ts +0 -1
  401. package/dist/types/sounds/index.js +0 -17
  402. package/dist/types/ticketing/GameTurn.d.ts +0 -4
  403. package/dist/types/ticketing/GameTurn.js +0 -2
  404. package/dist/types/ticketing/GameTurn.schema.d.ts +0 -92
  405. package/dist/types/ticketing/GameTurn.schema.js +0 -46
  406. package/dist/types/ticketing/GameTurnTask.d.ts +0 -3
  407. package/dist/types/ticketing/GameTurnTask.js +0 -2
  408. package/dist/types/ticketing/GameTurnTask.schema.d.ts +0 -34
  409. package/dist/types/ticketing/GameTurnTask.schema.js +0 -30
  410. package/dist/types/ticketing/PaymentProvider.d.ts +0 -34
  411. package/dist/types/ticketing/PaymentProvider.js +0 -2
  412. package/dist/types/ticketing/Ticketing.d.ts +0 -10
  413. package/dist/types/ticketing/Ticketing.js +0 -2
  414. package/dist/types/ticketing/index.d.ts +0 -7
  415. package/dist/types/ticketing/index.js +0 -23
  416. package/dist/types/ticketing/ticketing.schemas.d.ts +0 -104
  417. package/dist/types/ticketing/ticketing.schemas.js +0 -65
  418. package/dist/types/user/User.d.ts +0 -4
  419. package/dist/types/user/User.js +0 -2
  420. package/dist/types/user/index.d.ts +0 -4
  421. package/dist/types/user/index.js +0 -22
  422. package/dist/types/user/user-type.schema.d.ts +0 -9
  423. package/dist/types/user/user-type.schema.js +0 -12
  424. package/dist/types/user/user.schema.d.ts +0 -39
  425. package/dist/types/user/user.schema.js +0 -19
  426. package/dist/types/utils/ArithmeticString.d.ts +0 -9
  427. package/dist/types/utils/ArithmeticString.js +0 -2
  428. package/dist/types/utils/ObjectValues.d.ts +0 -1
  429. package/dist/types/utils/ObjectValues.js +0 -2
  430. package/dist/types/utils/index.d.ts +0 -2
  431. 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.6.1",
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,6 +0,0 @@
1
- export declare const CHECKPOINT_TYPE: {
2
- readonly TRACK: "Track";
3
- readonly POWER_UP: "PowerUp";
4
- readonly SHORTCUT: "Shortcut";
5
- readonly UNKNOWN: "Unknown";
6
- };
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CHECKPOINT_TYPE = void 0;
4
- exports.CHECKPOINT_TYPE = {
5
- TRACK: 'Track',
6
- POWER_UP: 'PowerUp',
7
- SHORTCUT: 'Shortcut',
8
- UNKNOWN: 'Unknown',
9
- };
@@ -1,6 +0,0 @@
1
- export declare const BASE_HARDWARE_STATUS: {
2
- readonly ACTIVATED: "Activated";
3
- readonly DEACTIVATED: "Deactivated";
4
- readonly UNKNOWN: "Unknown";
5
- readonly ERROR: "Error";
6
- };
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BASE_HARDWARE_STATUS = void 0;
4
- exports.BASE_HARDWARE_STATUS = {
5
- ACTIVATED: 'Activated',
6
- DEACTIVATED: 'Deactivated',
7
- UNKNOWN: 'Unknown',
8
- ERROR: 'Error',
9
- };
@@ -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
- };