@battle-racing/br-common-lib 3.4.0 → 3.8.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/REFACTOR_README.md +185 -0
- package/br-common-lib.code-workspace +19 -0
- package/dist/constants/hardware/damage.d.ts +1 -0
- package/dist/constants/hardware/damage.js +1 -0
- package/dist/constants/index.d.ts +2 -0
- package/dist/constants/index.js +2 -0
- package/dist/constants/payment-provider.d.ts +5 -0
- package/dist/constants/payment-provider.js +8 -0
- package/dist/constants/payment-status.d.ts +7 -0
- package/dist/constants/payment-status.js +10 -0
- package/dist/constants/user-role.d.ts +1 -0
- package/dist/constants/user-role.js +1 -0
- package/dist/data/all-damages.d.ts +2 -0
- package/dist/data/all-damages.js +54 -0
- package/dist/data/all-power-ups.d.ts +3 -0
- package/dist/data/all-power-ups.js +521 -0
- package/dist/data/index.d.ts +3 -1
- package/dist/data/index.js +3 -1
- package/dist/schemas/team.schema.d.ts +7 -0
- package/dist/schemas/team.schema.js +9 -0
- package/dist/types/damage/Damage.d.ts +1 -3
- package/dist/types/gameTrack/GameTrackKartConfig.d.ts +9 -0
- package/dist/types/gameTrack/index.d.ts +1 -0
- package/dist/types/gameTrack/index.js +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +3 -0
- package/dist/types/pagination/Pagination.d.ts +3 -0
- package/dist/types/pagination/index.d.ts +2 -0
- package/dist/types/pagination/index.js +18 -0
- package/dist/types/pagination/pagination.schema.d.ts +14 -0
- package/dist/types/pagination/pagination.schema.js +16 -0
- package/dist/types/powerUp/PowerUp.d.ts +1 -1
- package/dist/types/powerUp/PowerUpName.d.ts +1 -1
- package/dist/types/racingTeam/RacingTeam.d.ts +6 -0
- package/dist/types/racingTeam/RacingTeam.schema.d.ts +44 -0
- package/dist/types/racingTeam/RacingTeam.schema.js +27 -0
- package/dist/types/racingTeam/RacingTeamMembership.d.ts +6 -0
- package/dist/types/racingTeam/RacingTeamMembership.schema.d.ts +31 -0
- package/dist/types/racingTeam/RacingTeamMembership.schema.js +27 -0
- package/dist/types/racingTeam/index.d.ts +4 -0
- package/dist/types/racingTeam/index.js +20 -0
- package/dist/types/socket/serverToClient/SocketKartServerToClientEventsParams.d.ts +3 -5
- package/dist/types/ticketing/GameTicket.d.ts +3 -0
- package/dist/types/ticketing/GameTicket.js +2 -0
- package/dist/types/ticketing/GameTurn.d.ts +4 -0
- package/dist/types/ticketing/GameTurn.js +2 -0
- package/dist/types/ticketing/GameTurn.schema.d.ts +92 -0
- package/dist/types/ticketing/GameTurn.schema.js +46 -0
- package/dist/types/ticketing/GameTurnTask.d.ts +3 -0
- package/dist/types/ticketing/GameTurnTask.js +2 -0
- package/dist/types/ticketing/GameTurnTask.schema.d.ts +34 -0
- package/dist/types/ticketing/GameTurnTask.schema.js +30 -0
- package/dist/types/ticketing/PaymentProvider.d.ts +34 -0
- package/dist/types/ticketing/PaymentProvider.js +2 -0
- package/dist/types/ticketing/PlayerTurn.d.ts +3 -0
- package/dist/types/ticketing/PlayerTurn.js +2 -0
- package/dist/types/ticketing/Purchase.d.ts +3 -0
- package/dist/types/ticketing/Purchase.js +2 -0
- package/dist/types/ticketing/index.d.ts +9 -0
- package/dist/types/ticketing/index.js +25 -0
- package/dist/types/ticketing/ticketing.schemas.d.ts +58 -0
- package/dist/types/ticketing/ticketing.schemas.js +41 -0
- package/dist/types/user/User.d.ts +4 -9
- package/dist/types/user/index.d.ts +3 -1
- package/dist/types/user/index.js +5 -1
- package/dist/types/user/user-type.schema.d.ts +9 -0
- package/dist/types/user/user-type.schema.js +12 -0
- package/dist/types/user/user.schema.d.ts +39 -0
- package/dist/types/user/user.schema.js +19 -0
- package/package.json +6 -2
- package/src/constants/hardware/damage.ts +1 -0
- package/src/constants/index.ts +2 -1
- package/src/constants/payment-provider.ts +5 -0
- package/src/constants/payment-status.ts +7 -0
- package/src/constants/user-role.ts +1 -0
- package/src/data/all-damages.ts +53 -0
- package/src/data/all-power-ups.ts +526 -0
- package/src/data/index.ts +4 -1
- package/src/schemas/team.schema.ts +9 -0
- package/src/types/damage/Damage.ts +2 -4
- package/src/types/gameTrack/GameTrackKartConfig.ts +10 -0
- package/src/types/gameTrack/index.ts +1 -0
- package/src/types/index.ts +3 -1
- package/src/types/pagination/Pagination.ts +4 -0
- package/src/types/pagination/index.ts +2 -0
- package/src/types/pagination/pagination.schema.ts +14 -0
- package/src/types/powerUp/PowerUp.ts +1 -1
- package/src/types/powerUp/PowerUpName.ts +2 -1
- package/src/types/racingTeam/RacingTeam.schema.ts +29 -0
- package/src/types/racingTeam/RacingTeam.ts +12 -0
- package/src/types/racingTeam/RacingTeamMembership.schema.ts +29 -0
- package/src/types/racingTeam/RacingTeamMembership.ts +12 -0
- package/src/types/racingTeam/index.ts +4 -0
- package/src/types/socket/serverToClient/SocketKartServerToClientEventsParams.ts +3 -4
- package/src/types/ticketing/GameTicket.ts +4 -0
- package/src/types/ticketing/GameTurn.schema.ts +49 -0
- package/src/types/ticketing/GameTurn.ts +6 -0
- package/src/types/ticketing/GameTurnTask.schema.ts +32 -0
- package/src/types/ticketing/GameTurnTask.ts +4 -0
- package/src/types/ticketing/PaymentProvider.ts +40 -0
- package/src/types/ticketing/Purchase.ts +4 -0
- package/src/types/ticketing/index.ts +9 -0
- package/src/types/ticketing/ticketing.schemas.ts +43 -0
- package/src/types/user/User.ts +4 -9
- package/src/types/user/index.ts +4 -1
- package/src/types/user/user-type.schema.ts +8 -0
- package/src/types/user/user.schema.ts +19 -0
- package/README.md +0 -3
- package/dist/types/hardware/screen/ScreenKartPosition.d.ts +0 -4
- package/dist/types/hardware/screen/ScreenRaceLaps.d.ts +0 -4
- package/dist/types/response/SuccesResponse.d.ts +0 -5
- package/dist/types/user/UserOrigin.d.ts +0 -1
- package/src/types/user/UserOrigin.ts +0 -1
- /package/dist/data/{RoleDefinitions.d.ts → role-definitions.d.ts} +0 -0
- /package/dist/data/{RoleDefinitions.js → role-definitions.js} +0 -0
- /package/dist/types/{hardware/screen/ScreenKartPosition.js → gameTrack/GameTrackKartConfig.js} +0 -0
- /package/dist/types/{hardware/screen/ScreenRaceLaps.js → pagination/Pagination.js} +0 -0
- /package/dist/types/{response/SuccesResponse.js → racingTeam/RacingTeam.js} +0 -0
- /package/dist/types/{user/UserOrigin.js → racingTeam/RacingTeamMembership.js} +0 -0
- /package/src/data/{RoleDefinitions.ts → role-definitions.ts} +0 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Battle Racing Common Library
|
|
2
|
+
|
|
3
|
+
## Descripción General
|
|
4
|
+
|
|
5
|
+
Battle Racing Common Library es una librería TypeScript compartida que proporciona tipos, constantes, datos y utilidades comunes para todos los repositorios del ecosistema Battle Racing. Esta librería actúa como el núcleo central de tipos y definiciones que garantizan la consistencia y interoperatividad entre los diferentes componentes del sistema.
|
|
6
|
+
|
|
7
|
+
## Arquitectura del Sistema Battle Racing
|
|
8
|
+
|
|
9
|
+
El ecosistema Battle Racing está compuesto por **3 proyectos principales** que comparten esta librería común:
|
|
10
|
+
|
|
11
|
+
### 1. **Web App** (Frontend)
|
|
12
|
+
|
|
13
|
+
- Interfaz de usuario para controladores y espectadores
|
|
14
|
+
- Gestión de juegos, karts y usuarios
|
|
15
|
+
- Comunicación en tiempo real vía WebSockets
|
|
16
|
+
|
|
17
|
+
### 2. **Backend** (API Server)
|
|
18
|
+
|
|
19
|
+
- Servidor central que maneja la lógica de negocio
|
|
20
|
+
- Gestión de bases de datos y estado de juegos
|
|
21
|
+
- Coordinación entre todos los componentes del sistema
|
|
22
|
+
|
|
23
|
+
### 3. **Kart Manager** (Software de Kart)
|
|
24
|
+
|
|
25
|
+
- **Software instalado en cada kart** (Raspberry Pi)
|
|
26
|
+
- Gestiona módulos de hardware conectados al kart físico
|
|
27
|
+
- Procesa eventos locales y reporta cambios de estado
|
|
28
|
+
- Se comunica con el backend como representante del kart físico
|
|
29
|
+
- **Actúa como la fuente de verdad del estado del kart**
|
|
30
|
+
|
|
31
|
+
## Estructura de la Librería
|
|
32
|
+
|
|
33
|
+
### 📁 `src/types/`
|
|
34
|
+
|
|
35
|
+
Contiene todas las definiciones de tipos TypeScript compartidas:
|
|
36
|
+
|
|
37
|
+
- **`game/`**: Tipos relacionados con juegos (Race, Battle), estados, rankings
|
|
38
|
+
- **`kart/`**: Definiciones de karts, estados de hardware, escudos
|
|
39
|
+
- **`hardware/`**: Módulos de hardware (speed, screen, RGB, flag, sensors, etc.)
|
|
40
|
+
- **`powerUp/`**: Sistema de power-ups y daños
|
|
41
|
+
- **`socket/`**: Eventos y parámetros de comunicación WebSocket
|
|
42
|
+
- **`gameTrack/`**: Configuración de pistas y checkpoints
|
|
43
|
+
- **`user/`**: Usuarios, roles y permisos
|
|
44
|
+
- **`checkpoint/`**: Sistema de checkpoints para carreras
|
|
45
|
+
|
|
46
|
+
### 📁 `src/constants/`
|
|
47
|
+
|
|
48
|
+
Constantes compartidas del sistema:
|
|
49
|
+
|
|
50
|
+
- Estados de karts y juegos
|
|
51
|
+
- Nombres de módulos de hardware
|
|
52
|
+
- Roles de usuario y permisos
|
|
53
|
+
- Medios y efectos de flags
|
|
54
|
+
|
|
55
|
+
### 📁 `src/data/`
|
|
56
|
+
|
|
57
|
+
Datos estáticos del juego:
|
|
58
|
+
|
|
59
|
+
- **`all-power-ups.ts`**: Definición completa de todos los power-ups disponibles
|
|
60
|
+
- **`all-damages.ts`**: Efectos de daño y sus impactos
|
|
61
|
+
- **`role-definitions.ts`**: Definiciones de roles y permisos
|
|
62
|
+
|
|
63
|
+
### 📁 `src/utils/`
|
|
64
|
+
|
|
65
|
+
Utilidades compartidas:
|
|
66
|
+
|
|
67
|
+
- **`roles.utils.ts`**: Funciones helper para gestión de roles
|
|
68
|
+
|
|
69
|
+
## Sistema de Juegos
|
|
70
|
+
|
|
71
|
+
### Tipos de Juego
|
|
72
|
+
|
|
73
|
+
- **Race**: Carrera tradicional con checkpoints y vueltas
|
|
74
|
+
- **Battle**: Modo batalla con power-ups y daños
|
|
75
|
+
|
|
76
|
+
### Power-ups Disponibles
|
|
77
|
+
|
|
78
|
+
La librería incluye un sistema completo de power-ups con diferentes niveles:
|
|
79
|
+
|
|
80
|
+
1. **Battle Nitro** (Nivel 1): Duplica velocidad temporalmente
|
|
81
|
+
2. **Battle Trap** (Nivel 2): Lanza trampa que ralentiza oponentes
|
|
82
|
+
3. **Battle Shot** (Nivel 3): Dispara proyectil a oponente específico
|
|
83
|
+
4. **Battle Blue Shot** (Nivel 4): Daño al primer lugar
|
|
84
|
+
5. **Battle Shield** (Nivel 4): Escudo protector contra daños
|
|
85
|
+
6. **Battle Pulse** (Nivel 5): Ralentiza a todos los oponentes
|
|
86
|
+
7. **Battle God** (Nivel 5): Poder máximo con velocidad, escudo y ataques
|
|
87
|
+
|
|
88
|
+
## Sistema de Hardware
|
|
89
|
+
|
|
90
|
+
### Módulos de Hardware por Kart
|
|
91
|
+
|
|
92
|
+
Cada kart está equipado con múltiples módulos controlados independientemente:
|
|
93
|
+
|
|
94
|
+
- **Speed Module**: Control de velocidad del motor
|
|
95
|
+
- **Screen Module**: Pantalla LCD para información del juego
|
|
96
|
+
- **RGB Module**: Iluminación LED RGB
|
|
97
|
+
- **Flag Module**: Banderas y señales visuales
|
|
98
|
+
- **Sound Module**: Sistema de audio
|
|
99
|
+
- **Ball Sensor/Disk Thrower**: Sistema de lanzamiento de discos
|
|
100
|
+
- **Disk Sensor/Ball Shooter**: Sistema de disparo de bolas
|
|
101
|
+
- **Star Laser**: Láseres frontales y traseros
|
|
102
|
+
- **Steering Wheel**: Volante con LED
|
|
103
|
+
- **Emergency Module**: Sistema de parada de emergencia
|
|
104
|
+
|
|
105
|
+
### Estados de Hardware
|
|
106
|
+
|
|
107
|
+
Cada módulo tiene estados detallados para monitoreo y control en tiempo real.
|
|
108
|
+
|
|
109
|
+
## Comunicación WebSocket
|
|
110
|
+
|
|
111
|
+
La librería define eventos WebSocket para comunicación entre componentes:
|
|
112
|
+
|
|
113
|
+
### Eventos Hardware
|
|
114
|
+
|
|
115
|
+
- Control de módulos individuales
|
|
116
|
+
- Suscripción a datos de hardware
|
|
117
|
+
- Configuración de módulos
|
|
118
|
+
|
|
119
|
+
### Eventos Power-up
|
|
120
|
+
|
|
121
|
+
- Asignación y activación de power-ups
|
|
122
|
+
- Aplicación de daños
|
|
123
|
+
- Sincronización de estados
|
|
124
|
+
|
|
125
|
+
### Eventos de Juego
|
|
126
|
+
|
|
127
|
+
- Actualizaciones de estado de juego
|
|
128
|
+
- Rankings y posiciones
|
|
129
|
+
- Eventos de checkpoints
|
|
130
|
+
|
|
131
|
+
## Sistema de Roles y Permisos
|
|
132
|
+
|
|
133
|
+
Implementa un sistema de control de acceso con roles jerárquicos:
|
|
134
|
+
|
|
135
|
+
- **Super Admin**: Control total del sistema
|
|
136
|
+
- **Admin**: Gestión de juegos y usuarios
|
|
137
|
+
- **Controller**: Control de juegos en ejecución
|
|
138
|
+
- **Viewer**: Solo visualización
|
|
139
|
+
|
|
140
|
+
## Instalación y Uso
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npm install @battle-racing/br-common-lib
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Importación de Tipos
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
import { Game, Kart, PowerUp, GameTrack, SocketHardwareModulesEventsParams } from '@battle-racing/br-common-lib';
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Uso de Constantes
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
import { gameStatus, FLAG_MEDIA_NAME } from '@battle-racing/br-common-lib';
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Acceso a Datos
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
import { allPowerUps, allDamages } from '@battle-racing/br-common-lib';
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Desarrollo y Contribución
|
|
165
|
+
|
|
166
|
+
### Compilación
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
npm run build
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Publicación
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
npm run release:patch # Para cambios menores
|
|
176
|
+
npm run release:minor # Para nuevas funcionalidades
|
|
177
|
+
npm run release:major # Para cambios breaking
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Estructura de Desarrollo
|
|
181
|
+
|
|
182
|
+
- **TypeScript**: Lenguaje principal
|
|
183
|
+
- **ESM**: Módulos ES modernos
|
|
184
|
+
- **Strict typing**: Tipado estricto en toda la librería
|
|
185
|
+
- **Barrel exports**: Re-exports centralizados para fácil importación
|
package/dist/constants/index.js
CHANGED
|
@@ -18,5 +18,7 @@ __exportStar(require("./checkpoint-type"), exports);
|
|
|
18
18
|
__exportStar(require("./hardware"), exports);
|
|
19
19
|
__exportStar(require("./kart-status"), exports);
|
|
20
20
|
__exportStar(require("./module-name"), exports);
|
|
21
|
+
__exportStar(require("./payment-provider"), exports);
|
|
22
|
+
__exportStar(require("./payment-status"), exports);
|
|
21
23
|
__exportStar(require("./permission"), exports);
|
|
22
24
|
__exportStar(require("./user-role"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PAYMENT_STATUSES = void 0;
|
|
4
|
+
exports.PAYMENT_STATUSES = {
|
|
5
|
+
PENDING: 'pending',
|
|
6
|
+
COMPLETED: 'completed',
|
|
7
|
+
FAILED: 'failed',
|
|
8
|
+
REFUNDED: 'refunded',
|
|
9
|
+
CANCELLED: 'cancelled',
|
|
10
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allDamages = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
exports.allDamages = [
|
|
6
|
+
{
|
|
7
|
+
name: 'Pulse Hit',
|
|
8
|
+
target: 'All',
|
|
9
|
+
sound: 'battle_pulse_damage.mp3',
|
|
10
|
+
rgbEffect: 'Ray Hit Effect',
|
|
11
|
+
amount: 1,
|
|
12
|
+
flagMediaName: constants_1.FLAG_MEDIA_NAME.ELECTROCUTED,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'Trap Hit',
|
|
16
|
+
target: 'Any',
|
|
17
|
+
sound: 'battle_trap_damage.mp3',
|
|
18
|
+
rgbEffect: 'Ray Hit Effect',
|
|
19
|
+
amount: 1,
|
|
20
|
+
flagMediaName: constants_1.FLAG_MEDIA_NAME.OIL_DROP_COLORS,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Star Hit Left',
|
|
24
|
+
target: 'Any',
|
|
25
|
+
sound: 'battle_star_damage.mp3',
|
|
26
|
+
rgbEffect: 'Ray Hit Effect',
|
|
27
|
+
amount: 1,
|
|
28
|
+
flagMediaName: constants_1.FLAG_MEDIA_NAME.HIT_EFFECT,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'Star Hit Right',
|
|
32
|
+
target: 'Any',
|
|
33
|
+
sound: 'battle_star_damage.mp3',
|
|
34
|
+
rgbEffect: 'Ray Hit Effect',
|
|
35
|
+
amount: 1,
|
|
36
|
+
flagMediaName: constants_1.FLAG_MEDIA_NAME.HIT_EFFECT,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Shot Hit',
|
|
40
|
+
target: 'Any',
|
|
41
|
+
sound: 'battle_shot_damage.mp3',
|
|
42
|
+
rgbEffect: 'Ray Hit Effect',
|
|
43
|
+
amount: 1,
|
|
44
|
+
flagMediaName: constants_1.FLAG_MEDIA_NAME.HIT_EFFECT,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Blue Shot Hit',
|
|
48
|
+
target: 'First',
|
|
49
|
+
sound: 'battle_shot_damage.mp3',
|
|
50
|
+
rgbEffect: 'Ray Hit Effect',
|
|
51
|
+
amount: 1,
|
|
52
|
+
flagMediaName: constants_1.FLAG_MEDIA_NAME.HIT_EFFECT,
|
|
53
|
+
},
|
|
54
|
+
];
|