@open-core/framework 0.1.0-alpha.1 → 0.2.0-beta.1

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 (569) hide show
  1. package/README.md +217 -360
  2. package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
  3. package/dist/adapters/contracts/IEngineEvents.js +6 -0
  4. package/dist/adapters/contracts/IEntityServer.d.ts +88 -0
  5. package/dist/adapters/contracts/IEntityServer.js +13 -0
  6. package/dist/adapters/contracts/IExports.d.ts +4 -0
  7. package/dist/adapters/contracts/IExports.js +6 -0
  8. package/dist/adapters/contracts/IHasher.d.ts +15 -0
  9. package/dist/adapters/contracts/IHasher.js +12 -0
  10. package/dist/adapters/contracts/INetTransport.d.ts +8 -0
  11. package/dist/adapters/contracts/INetTransport.js +6 -0
  12. package/dist/adapters/contracts/IPedAppearanceClient.d.ts +206 -0
  13. package/dist/adapters/contracts/IPedAppearanceClient.js +16 -0
  14. package/dist/adapters/contracts/IPedAppearanceServer.d.ts +45 -0
  15. package/dist/adapters/contracts/IPedAppearanceServer.js +16 -0
  16. package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
  17. package/dist/adapters/contracts/IPlayerInfo.js +6 -0
  18. package/dist/adapters/contracts/IPlayerServer.d.ts +73 -0
  19. package/dist/adapters/contracts/IPlayerServer.js +13 -0
  20. package/dist/adapters/contracts/IResourceInfo.d.ts +3 -0
  21. package/dist/adapters/contracts/IResourceInfo.js +6 -0
  22. package/dist/adapters/contracts/ITick.d.ts +10 -0
  23. package/dist/adapters/contracts/ITick.js +9 -0
  24. package/dist/adapters/contracts/IVehicleServer.d.ts +55 -0
  25. package/dist/adapters/contracts/IVehicleServer.js +13 -0
  26. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.d.ts +2 -2
  27. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.js +2 -2
  28. package/dist/adapters/database/resource.adapter.d.ts +12 -0
  29. package/dist/adapters/database/resource.adapter.js +68 -0
  30. package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
  31. package/dist/adapters/fivem/fivem-engine-events.js +13 -0
  32. package/dist/adapters/fivem/fivem-entity-server.d.ts +22 -0
  33. package/dist/adapters/fivem/fivem-entity-server.js +80 -0
  34. package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
  35. package/dist/adapters/fivem/fivem-exports.js +14 -0
  36. package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
  37. package/dist/adapters/fivem/fivem-hasher.js +23 -0
  38. package/dist/adapters/fivem/fivem-net-transport.d.ts +5 -0
  39. package/dist/adapters/fivem/fivem-net-transport.js +24 -0
  40. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
  41. package/dist/adapters/fivem/fivem-ped-appearance-client.js +84 -0
  42. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
  43. package/dist/adapters/fivem/fivem-ped-appearance-server.js +26 -0
  44. package/dist/adapters/fivem/fivem-player-server.d.ts +15 -0
  45. package/dist/adapters/fivem/fivem-player-server.js +63 -0
  46. package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
  47. package/dist/adapters/fivem/fivem-playerinfo.js +14 -0
  48. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +4 -0
  49. package/dist/adapters/fivem/fivem-resourceinfo.js +16 -0
  50. package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
  51. package/dist/adapters/fivem/fivem-tick.js +22 -0
  52. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
  53. package/dist/adapters/fivem/fivem-vehicle-server.js +47 -0
  54. package/dist/adapters/index.d.ts +15 -0
  55. package/dist/adapters/index.js +40 -0
  56. package/dist/adapters/node/index.d.ts +8 -0
  57. package/dist/adapters/node/index.js +19 -0
  58. package/dist/adapters/node/node-engine-events.d.ts +20 -0
  59. package/dist/adapters/node/node-engine-events.js +42 -0
  60. package/dist/adapters/node/node-entity-server.d.ts +26 -0
  61. package/dist/adapters/node/node-entity-server.js +101 -0
  62. package/dist/adapters/node/node-exports.d.ts +26 -0
  63. package/dist/adapters/node/node-exports.js +63 -0
  64. package/dist/adapters/node/node-hasher.d.ts +12 -0
  65. package/dist/adapters/node/node-hasher.js +39 -0
  66. package/dist/adapters/node/node-net-transport.d.ts +18 -0
  67. package/dist/adapters/node/node-net-transport.js +57 -0
  68. package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
  69. package/dist/adapters/node/node-ped-appearance-client.js +59 -0
  70. package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
  71. package/dist/adapters/node/node-ped-appearance-server.js +18 -0
  72. package/dist/adapters/node/node-player-server.d.ts +27 -0
  73. package/dist/adapters/node/node-player-server.js +82 -0
  74. package/dist/adapters/node/node-playerinfo.d.ts +6 -0
  75. package/dist/adapters/node/node-playerinfo.js +12 -0
  76. package/dist/adapters/node/node-resourceinfo.d.ts +12 -0
  77. package/dist/adapters/node/node-resourceinfo.js +27 -0
  78. package/dist/adapters/node/node-tick.d.ts +10 -0
  79. package/dist/{server/system/processors/command.processor.js → adapters/node/node-tick.js} +27 -14
  80. package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
  81. package/dist/adapters/node/node-vehicle-server.js +93 -0
  82. package/dist/adapters/register-capabilities.d.ts +11 -0
  83. package/dist/adapters/register-capabilities.js +148 -0
  84. package/dist/adapters/register-client-capabilities.d.ts +8 -0
  85. package/dist/adapters/register-client-capabilities.js +56 -0
  86. package/dist/index.d.ts +5 -4
  87. package/dist/index.js +9 -5
  88. package/dist/kernel/di/index.d.ts +4 -0
  89. package/dist/kernel/di/index.js +20 -0
  90. package/dist/{system → kernel/di}/metadata.scanner.d.ts +1 -2
  91. package/dist/kernel/di/tokens.d.ts +30 -0
  92. package/dist/kernel/di/tokens.js +38 -0
  93. package/dist/kernel/index.d.ts +7 -0
  94. package/dist/kernel/index.js +30 -0
  95. package/dist/kernel/schema/index.d.ts +32 -0
  96. package/dist/kernel/schema/index.js +5 -0
  97. package/dist/kernel/shared/appearance/appearance.interface.d.ts +276 -0
  98. package/dist/kernel/shared/appearance/appearance.interface.js +77 -0
  99. package/dist/kernel/shared/appearance/index.d.ts +1 -0
  100. package/dist/kernel/shared/appearance/index.js +17 -0
  101. package/dist/kernel/shared/index.d.ts +2 -0
  102. package/dist/{shared → kernel/shared}/index.js +1 -0
  103. package/dist/{shared → kernel/shared}/logger/core-logger.d.ts +13 -0
  104. package/dist/{shared → kernel/shared}/logger/core-logger.js +38 -9
  105. package/dist/{shared → kernel/shared}/logger/index.d.ts +12 -9
  106. package/dist/{shared → kernel/shared}/logger/index.js +24 -15
  107. package/dist/{shared → kernel/shared}/logger/logger.config.d.ts +1 -1
  108. package/dist/kernel/shared/logger/logger.env.d.ts +28 -0
  109. package/dist/kernel/shared/logger/logger.env.js +51 -0
  110. package/dist/{shared → kernel/shared}/logger/logger.service.d.ts +2 -2
  111. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.d.ts +2 -2
  112. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.js +1 -1
  113. package/dist/{shared → kernel/shared}/logger/transports/console.transport.d.ts +2 -2
  114. package/dist/{shared → kernel/shared}/logger/transports/console.transport.js +1 -0
  115. package/dist/kernel/shared/logger/transports/dev-transport.factory.d.ts +75 -0
  116. package/dist/kernel/shared/logger/transports/dev-transport.factory.js +111 -0
  117. package/dist/kernel/shared/logger/transports/http.transport.d.ts +67 -0
  118. package/dist/kernel/shared/logger/transports/http.transport.js +170 -0
  119. package/dist/kernel/shared/logger/transports/index.d.ts +7 -0
  120. package/dist/kernel/shared/logger/transports/index.js +34 -0
  121. package/dist/kernel/shared/logger/transports/simple-console.transport.d.ts +38 -0
  122. package/dist/kernel/shared/logger/transports/simple-console.transport.js +93 -0
  123. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.d.ts +1 -1
  124. package/dist/kernel/shared/logger/transports/websocket.transport.d.ts +69 -0
  125. package/dist/kernel/shared/logger/transports/websocket.transport.js +169 -0
  126. package/dist/kernel/utils/error/app.error.d.ts +9 -0
  127. package/dist/{utils/errors.js → kernel/utils/error/app.error.js} +1 -9
  128. package/dist/kernel/utils/error/security.error.d.ts +6 -0
  129. package/dist/kernel/utils/error/security.error.js +12 -0
  130. package/dist/{utils → kernel/utils}/index.d.ts +3 -2
  131. package/dist/{utils → kernel/utils}/index.js +3 -2
  132. package/dist/{utils → kernel/utils}/result.d.ts +1 -1
  133. package/dist/runtime/client/client-bootstrap.d.ts +7 -0
  134. package/dist/runtime/client/client-bootstrap.js +180 -0
  135. package/dist/runtime/client/client-core.d.ts +19 -0
  136. package/dist/runtime/client/client-core.js +24 -0
  137. package/dist/runtime/client/client-runtime.d.ts +58 -0
  138. package/dist/runtime/client/client-runtime.js +32 -0
  139. package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
  140. package/dist/runtime/client/controllers/appearance.controller.js +50 -0
  141. package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
  142. package/dist/runtime/client/controllers/player-sync.controller.js +54 -0
  143. package/dist/{client → runtime/client}/controllers/spawner.controller.d.ts +1 -1
  144. package/dist/runtime/client/decorators/controller.d.ts +20 -0
  145. package/dist/runtime/client/decorators/controller.js +55 -0
  146. package/dist/runtime/client/decorators/export.d.ts +21 -0
  147. package/dist/runtime/client/decorators/export.js +29 -0
  148. package/dist/{client → runtime/client}/decorators/gameEvent.d.ts +2 -2
  149. package/dist/runtime/client/decorators/interval.d.ts +23 -0
  150. package/dist/runtime/client/decorators/interval.js +31 -0
  151. package/dist/runtime/client/decorators/key.d.ts +23 -0
  152. package/dist/runtime/client/decorators/key.js +31 -0
  153. package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
  154. package/dist/runtime/client/decorators/localEvent.js +29 -0
  155. package/dist/runtime/client/decorators/nui.d.ts +21 -0
  156. package/dist/runtime/client/decorators/nui.js +29 -0
  157. package/dist/runtime/client/decorators/onNet.d.ts +21 -0
  158. package/dist/runtime/client/decorators/onNet.js +29 -0
  159. package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
  160. package/dist/runtime/client/decorators/resourceLifecycle.js +53 -0
  161. package/dist/runtime/client/decorators/tick.d.ts +21 -0
  162. package/dist/runtime/client/decorators/tick.js +29 -0
  163. package/dist/{client → runtime/client}/index.d.ts +2 -2
  164. package/dist/{client → runtime/client}/index.js +4 -2
  165. package/dist/runtime/client/interfaces/appearance.interface.d.ts +25 -0
  166. package/dist/runtime/client/interfaces/appearance.interface.js +2 -0
  167. package/dist/{client → runtime/client}/player/player.d.ts +1 -1
  168. package/dist/{client → runtime/client}/player/player.js +5 -6
  169. package/dist/{client → runtime/client}/player/player.loader.js +2 -2
  170. package/dist/runtime/client/services/appearance.service.d.ts +132 -0
  171. package/dist/runtime/client/services/appearance.service.js +328 -0
  172. package/dist/{client → runtime/client}/services/blip.service.d.ts +1 -1
  173. package/dist/{client → runtime/client}/services/index.d.ts +6 -5
  174. package/dist/{client → runtime/client}/services/index.js +6 -5
  175. package/dist/{client → runtime/client}/services/marker.service.d.ts +1 -1
  176. package/dist/{client → runtime/client}/services/ped.service.d.ts +1 -1
  177. package/dist/{client → runtime/client}/services/ped.service.js +3 -2
  178. package/dist/{client → runtime/client}/services/spawn.service.d.ts +2 -2
  179. package/dist/{client → runtime/client}/services/spawn.service.js +4 -8
  180. package/dist/{client → runtime/client}/services/textui.service.d.ts +1 -1
  181. package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
  182. package/dist/runtime/client/services/vehicle-client.service.js +485 -0
  183. package/dist/{client → runtime/client}/services/vehicle.service.d.ts +2 -2
  184. package/dist/{client → runtime/client}/services/vehicle.service.js +1 -1
  185. package/dist/{client → runtime/client}/system/processors/export.processor.d.ts +1 -1
  186. package/dist/{client → runtime/client}/system/processors/export.processor.js +1 -1
  187. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.d.ts +1 -1
  188. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.js +2 -2
  189. package/dist/{client → runtime/client}/system/processors/interval.processor.d.ts +1 -1
  190. package/dist/{client → runtime/client}/system/processors/interval.processor.js +1 -1
  191. package/dist/{client → runtime/client}/system/processors/key.processor.d.ts +1 -1
  192. package/dist/{client → runtime/client}/system/processors/localEvent.processor.d.ts +1 -1
  193. package/dist/{client → runtime/client}/system/processors/localEvent.processor.js +1 -1
  194. package/dist/{client → runtime/client}/system/processors/netEvent.processor.d.ts +1 -1
  195. package/dist/{client → runtime/client}/system/processors/netEvent.processor.js +1 -1
  196. package/dist/{client → runtime/client}/system/processors/nui.processor.d.ts +1 -1
  197. package/dist/{client → runtime/client}/system/processors/nui.processor.js +1 -1
  198. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.d.ts +1 -1
  199. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.js +1 -1
  200. package/dist/{client → runtime/client}/system/processors/tick.processor.d.ts +1 -1
  201. package/dist/{client → runtime/client}/system/processors/tick.processor.js +1 -1
  202. package/dist/{client → runtime/client}/types/game-events.js +0 -8
  203. package/dist/{client → runtime/client}/ui-bridge.js +1 -1
  204. package/dist/runtime/index.d.ts +2 -0
  205. package/dist/runtime/index.js +39 -0
  206. package/dist/{server → runtime/server}/bootstrap.d.ts +2 -1
  207. package/dist/runtime/server/bootstrap.js +234 -0
  208. package/dist/runtime/server/bootstrap.validation.d.ts +12 -0
  209. package/dist/runtime/server/bootstrap.validation.js +102 -0
  210. package/dist/runtime/server/bus/core-event-bus.d.ts +6 -0
  211. package/dist/{server → runtime/server}/bus/core-event-bus.js +5 -5
  212. package/dist/{server → runtime/server}/configs/api.config.d.ts +1 -1
  213. package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.d.ts +2 -2
  214. package/dist/runtime/server/contracts/index.d.ts +7 -0
  215. package/dist/{server/templates → runtime/server/contracts}/index.js +8 -4
  216. package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.d.ts +1 -1
  217. package/dist/{server/templates → runtime/server/contracts}/repository/index.d.ts +2 -2
  218. package/dist/{server/templates → runtime/server/contracts}/repository/index.js +1 -1
  219. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.d.ts +2 -2
  220. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.js +0 -1
  221. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
  222. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +6 -0
  223. package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.d.ts +3 -3
  224. package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.d.ts +2 -2
  225. package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
  226. package/dist/{server → runtime/server}/controllers/chat.controller.js +23 -11
  227. package/dist/runtime/server/controllers/command-export.controller.d.ts +74 -0
  228. package/dist/runtime/server/controllers/command-export.controller.js +260 -0
  229. package/dist/runtime/server/controllers/command.controller.d.ts +15 -0
  230. package/dist/runtime/server/controllers/command.controller.js +100 -0
  231. package/dist/runtime/server/controllers/player-export.controller.d.ts +29 -0
  232. package/dist/runtime/server/controllers/player-export.controller.js +173 -0
  233. package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
  234. package/dist/runtime/server/controllers/principal-export.controller.js +296 -0
  235. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +43 -0
  236. package/dist/runtime/server/controllers/remote-command-execution.controller.js +104 -0
  237. package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
  238. package/dist/{server → runtime/server}/controllers/session.controller.js +15 -12
  239. package/dist/runtime/server/controllers/vehicle.controller.d.ts +55 -0
  240. package/dist/runtime/server/controllers/vehicle.controller.js +216 -0
  241. package/dist/runtime/server/core.d.ts +3 -0
  242. package/dist/runtime/server/core.js +11 -0
  243. package/dist/runtime/server/database/adapter.registry.d.ts +4 -0
  244. package/dist/runtime/server/database/adapter.registry.js +14 -0
  245. package/dist/{server → runtime/server}/database/database.contract.d.ts +1 -1
  246. package/dist/{server → runtime/server}/database/database.service.d.ts +3 -31
  247. package/dist/{server → runtime/server}/database/database.service.js +36 -50
  248. package/dist/runtime/server/database/index.d.ts +5 -0
  249. package/dist/runtime/server/database/index.js +25 -0
  250. package/dist/runtime/server/decorators/bind.d.ts +21 -0
  251. package/dist/runtime/server/decorators/bind.js +31 -0
  252. package/dist/runtime/server/decorators/command.d.ts +81 -0
  253. package/dist/runtime/server/decorators/command.js +32 -0
  254. package/dist/{server → runtime/server}/decorators/controller.d.ts +4 -3
  255. package/dist/runtime/server/decorators/controller.js +61 -0
  256. package/dist/runtime/server/decorators/export.d.ts +24 -0
  257. package/dist/runtime/server/decorators/export.js +32 -0
  258. package/dist/runtime/server/decorators/guard.d.ts +49 -0
  259. package/dist/{server → runtime/server}/decorators/guard.js +33 -32
  260. package/dist/{server → runtime/server}/decorators/index.d.ts +7 -4
  261. package/dist/{server → runtime/server}/decorators/index.js +8 -5
  262. package/dist/runtime/server/decorators/onFiveMEvent.d.ts +24 -0
  263. package/dist/runtime/server/decorators/onFiveMEvent.js +32 -0
  264. package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +22 -0
  265. package/dist/{server → runtime/server}/decorators/onFrameworkEvent.js +9 -9
  266. package/dist/runtime/server/decorators/onNet.d.ts +62 -0
  267. package/dist/runtime/server/decorators/onNet.js +15 -0
  268. package/dist/runtime/server/decorators/onTick.d.ts +21 -0
  269. package/dist/runtime/server/decorators/onTick.js +29 -0
  270. package/dist/runtime/server/decorators/public.d.ts +26 -0
  271. package/dist/{server → runtime/server}/decorators/public.js +15 -16
  272. package/dist/{server → runtime/server}/decorators/requiresState.d.ts +29 -22
  273. package/dist/runtime/server/decorators/requiresState.js +73 -0
  274. package/dist/runtime/server/decorators/throttle.d.ts +56 -0
  275. package/dist/{server → runtime/server}/decorators/throttle.js +31 -19
  276. package/dist/runtime/server/decorators/utils.d.ts +54 -0
  277. package/dist/runtime/server/decorators/utils.js +60 -0
  278. package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
  279. package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +12 -0
  280. package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
  281. package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +12 -0
  282. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
  283. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +11 -0
  284. package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
  285. package/dist/runtime/server/devmode/contracts/index.js +9 -0
  286. package/dist/runtime/server/devmode/dev-mode.service.d.ts +110 -0
  287. package/dist/runtime/server/devmode/dev-mode.service.js +324 -0
  288. package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
  289. package/dist/runtime/server/devmode/event-interceptor.service.js +232 -0
  290. package/dist/runtime/server/devmode/hot-reload.server.d.ts +74 -0
  291. package/dist/runtime/server/devmode/hot-reload.server.js +261 -0
  292. package/dist/runtime/server/devmode/index.d.ts +8 -0
  293. package/dist/runtime/server/devmode/index.js +32 -0
  294. package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
  295. package/dist/runtime/server/devmode/player-simulator.service.js +202 -0
  296. package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
  297. package/dist/runtime/server/devmode/state-inspector.service.js +183 -0
  298. package/dist/runtime/server/devmode/types.d.ts +161 -0
  299. package/dist/runtime/server/devmode/types.js +28 -0
  300. package/dist/runtime/server/entities/index.d.ts +2 -0
  301. package/dist/{server → runtime/server}/entities/index.js +1 -0
  302. package/dist/{server → runtime/server}/entities/player.d.ts +70 -3
  303. package/dist/{server → runtime/server}/entities/player.js +92 -14
  304. package/dist/runtime/server/entities/vehicle.d.ts +160 -0
  305. package/dist/runtime/server/entities/vehicle.js +261 -0
  306. package/dist/{server → runtime/server}/error-handler.d.ts +1 -1
  307. package/dist/{server → runtime/server}/error-handler.js +7 -8
  308. package/dist/runtime/server/helpers/command-validation.helper.d.ts +6 -0
  309. package/dist/runtime/server/helpers/command-validation.helper.js +72 -0
  310. package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
  311. package/dist/runtime/server/helpers/function-helper.js +15 -0
  312. package/dist/{server → runtime/server}/helpers/resolve-method.d.ts +1 -1
  313. package/dist/runtime/server/helpers/resolve-method.js +28 -0
  314. package/dist/{server → runtime/server}/index.d.ts +8 -6
  315. package/dist/{server → runtime/server}/index.js +14 -10
  316. package/dist/runtime/server/runtime.d.ts +408 -0
  317. package/dist/runtime/server/runtime.js +234 -0
  318. package/dist/runtime/server/services/access-control.service.d.ts +59 -0
  319. package/dist/runtime/server/services/access-control.service.js +127 -0
  320. package/dist/runtime/server/services/appearance.service.d.ts +99 -0
  321. package/dist/runtime/server/services/appearance.service.js +307 -0
  322. package/dist/runtime/server/services/chat.service.d.ts +33 -0
  323. package/dist/{server → runtime/server}/services/chat.service.js +26 -0
  324. package/dist/{server → runtime/server}/services/config.service.js +1 -1
  325. package/dist/runtime/server/services/core/command.service.d.ts +49 -0
  326. package/dist/runtime/server/services/core/command.service.js +112 -0
  327. package/dist/{server/services → runtime/server/services/core}/player.service.d.ts +48 -22
  328. package/dist/{server/services → runtime/server/services/core}/player.service.js +98 -14
  329. package/dist/runtime/server/services/core/principal.service.d.ts +28 -0
  330. package/dist/runtime/server/services/core/principal.service.js +126 -0
  331. package/dist/runtime/server/services/core/vehicle-modification.service.d.ts +104 -0
  332. package/dist/runtime/server/services/core/vehicle-modification.service.js +330 -0
  333. package/dist/runtime/server/services/core/vehicle.service.d.ts +128 -0
  334. package/dist/runtime/server/services/core/vehicle.service.js +391 -0
  335. package/dist/runtime/server/services/default/default-net-event-security-observer.d.ts +15 -0
  336. package/dist/runtime/server/services/default/default-net-event-security-observer.js +28 -0
  337. package/dist/runtime/server/services/default/default-security.handler.d.ts +19 -0
  338. package/dist/{server → runtime/server}/services/default/default-security.handler.js +15 -2
  339. package/dist/{server → runtime/server}/services/http/http.service.js +5 -5
  340. package/dist/runtime/server/services/index.d.ts +16 -0
  341. package/dist/runtime/server/services/index.js +39 -0
  342. package/dist/{server → runtime/server}/services/parallel/index.d.ts +2 -4
  343. package/dist/{server → runtime/server}/services/parallel/index.js +13 -15
  344. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.d.ts +1 -1
  345. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.js +2 -1
  346. package/dist/{server → runtime/server}/services/parallel/worker-pool.d.ts +1 -1
  347. package/dist/{server → runtime/server}/services/parallel/worker.d.ts +1 -1
  348. package/dist/{server → runtime/server}/services/persistence.service.d.ts +1 -1
  349. package/dist/{server → runtime/server}/services/persistence.service.js +13 -9
  350. package/dist/runtime/server/services/ports/command-execution.port.d.ts +41 -0
  351. package/dist/runtime/server/services/ports/command-execution.port.js +15 -0
  352. package/dist/runtime/server/services/ports/player-directory.port.d.ts +107 -0
  353. package/dist/runtime/server/services/ports/player-directory.port.js +23 -0
  354. package/dist/runtime/server/services/ports/player-session-lifecycle.port.d.ts +49 -0
  355. package/dist/runtime/server/services/ports/player-session-lifecycle.port.js +16 -0
  356. package/dist/runtime/server/services/ports/principal.port.d.ts +149 -0
  357. package/dist/runtime/server/services/ports/principal.port.js +32 -0
  358. package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
  359. package/dist/{server → runtime/server}/services/rate-limiter.service.js +18 -0
  360. package/dist/runtime/server/services/remote/remote-command.service.d.ts +63 -0
  361. package/dist/runtime/server/services/remote/remote-command.service.js +139 -0
  362. package/dist/runtime/server/services/remote/remote-player.service.d.ts +62 -0
  363. package/dist/runtime/server/services/remote/remote-player.service.js +191 -0
  364. package/dist/runtime/server/services/remote/remote-principal.provider.d.ts +55 -0
  365. package/dist/runtime/server/services/remote/remote-principal.provider.js +130 -0
  366. package/dist/runtime/server/services/remote/remote-principal.service.d.ts +33 -0
  367. package/dist/runtime/server/services/remote/remote-principal.service.js +99 -0
  368. package/dist/runtime/server/services/remote/server-bridge.d.ts +34 -0
  369. package/dist/runtime/server/services/remote/server-bridge.js +94 -0
  370. package/dist/runtime/server/services/services.register.d.ts +14 -0
  371. package/dist/runtime/server/services/services.register.js +98 -0
  372. package/dist/runtime/server/services/types/linked-id.d.ts +6 -0
  373. package/dist/runtime/server/services/types/player-session.object.d.ts +11 -0
  374. package/dist/runtime/server/services/vehicle-modification.service.d.ts +94 -0
  375. package/dist/runtime/server/services/vehicle-modification.service.js +310 -0
  376. package/dist/runtime/server/services/vehicle.service.d.ts +138 -0
  377. package/dist/runtime/server/services/vehicle.service.js +361 -0
  378. package/dist/runtime/server/setup.d.ts +10 -0
  379. package/dist/runtime/server/setup.js +33 -0
  380. package/dist/{server → runtime/server}/system/metadata-server.keys.d.ts +2 -0
  381. package/dist/{server → runtime/server}/system/metadata-server.keys.js +2 -0
  382. package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
  383. package/dist/runtime/server/system/processors/command.processor.js +54 -0
  384. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.d.ts +1 -1
  385. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.js +3 -3
  386. package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
  387. package/dist/{server → runtime/server}/system/processors/export.processor.js +15 -5
  388. package/dist/runtime/server/system/processors/fivemEvent.processor.d.ts +10 -0
  389. package/dist/{server → runtime/server}/system/processors/fivemEvent.processor.js +15 -5
  390. package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
  391. package/dist/runtime/server/system/processors/netEvent.processor.js +240 -0
  392. package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
  393. package/dist/{server → runtime/server}/system/processors/tick.processor.js +14 -4
  394. package/dist/runtime/server/system/processors.register.d.ts +2 -0
  395. package/dist/runtime/server/system/processors.register.js +37 -0
  396. package/dist/{server → runtime/server}/system/schema-generator.d.ts +1 -1
  397. package/dist/{server → runtime/server}/system/schema-generator.js +17 -8
  398. package/dist/{server/templates/admin → runtime/server/templates}/admin.controller-template.d.ts +1 -1
  399. package/dist/runtime/server/templates/index.d.ts +1 -0
  400. package/dist/runtime/server/templates/index.js +17 -0
  401. package/dist/runtime/server/types/core-exports.d.ts +285 -0
  402. package/dist/runtime/server/types/core-exports.js +2 -0
  403. package/dist/runtime/server/types/index.d.ts +4 -0
  404. package/dist/runtime/server/types/index.js +20 -0
  405. package/dist/runtime/server/types/security.types.js +2 -0
  406. package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
  407. package/dist/runtime/server/types/vehicle.types.js +2 -0
  408. package/package.json +30 -30
  409. package/dist/client/client-bootstrap.d.ts +0 -1
  410. package/dist/client/client-bootstrap.js +0 -50
  411. package/dist/client/client-core.d.ts +0 -1
  412. package/dist/client/client-core.js +0 -7
  413. package/dist/client/decorators/controller.d.ts +0 -3
  414. package/dist/client/decorators/controller.js +0 -14
  415. package/dist/client/decorators/export.d.ts +0 -7
  416. package/dist/client/decorators/export.js +0 -15
  417. package/dist/client/decorators/interval.d.ts +0 -7
  418. package/dist/client/decorators/interval.js +0 -15
  419. package/dist/client/decorators/key.d.ts +0 -2
  420. package/dist/client/decorators/key.js +0 -10
  421. package/dist/client/decorators/localEvent.d.ts +0 -7
  422. package/dist/client/decorators/localEvent.js +0 -15
  423. package/dist/client/decorators/nui.d.ts +0 -1
  424. package/dist/client/decorators/nui.js +0 -9
  425. package/dist/client/decorators/onNet.d.ts +0 -1
  426. package/dist/client/decorators/onNet.js +0 -9
  427. package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
  428. package/dist/client/decorators/resourceLifecycle.js +0 -24
  429. package/dist/client/decorators/tick.d.ts +0 -1
  430. package/dist/client/decorators/tick.js +0 -9
  431. package/dist/client/interfaces/appearance.interface.d.ts +0 -19
  432. package/dist/client/services/appearance.service.d.ts +0 -6
  433. package/dist/client/services/appearance.service.js +0 -89
  434. package/dist/server/bootstrap.js +0 -57
  435. package/dist/server/bus/core-event-bus.d.ts +0 -6
  436. package/dist/server/controllers/chat.controller.d.ts +0 -10
  437. package/dist/server/controllers/command.controller.d.ts +0 -7
  438. package/dist/server/controllers/command.controller.js +0 -47
  439. package/dist/server/controllers/session.controller.d.ts +0 -9
  440. package/dist/server/core.d.ts +0 -1
  441. package/dist/server/core.js +0 -7
  442. package/dist/server/database/index.d.ts +0 -53
  443. package/dist/server/database/index.js +0 -70
  444. package/dist/server/decorators/bind.d.ts +0 -2
  445. package/dist/server/decorators/bind.js +0 -15
  446. package/dist/server/decorators/command.d.ts +0 -49
  447. package/dist/server/decorators/command.js +0 -23
  448. package/dist/server/decorators/controller.js +0 -36
  449. package/dist/server/decorators/export.d.ts +0 -39
  450. package/dist/server/decorators/export.js +0 -47
  451. package/dist/server/decorators/guard.d.ts +0 -56
  452. package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
  453. package/dist/server/decorators/onFiveMEvent.js +0 -14
  454. package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
  455. package/dist/server/decorators/onNet.d.ts +0 -58
  456. package/dist/server/decorators/onNet.js +0 -57
  457. package/dist/server/decorators/onTick.d.ts +0 -32
  458. package/dist/server/decorators/onTick.js +0 -40
  459. package/dist/server/decorators/public.d.ts +0 -27
  460. package/dist/server/decorators/requiresState.js +0 -63
  461. package/dist/server/decorators/throttle.d.ts +0 -48
  462. package/dist/server/decorators/utils.d.ts +0 -57
  463. package/dist/server/decorators/utils.js +0 -63
  464. package/dist/server/entities/index.d.ts +0 -1
  465. package/dist/server/helpers/resolve-method.js +0 -18
  466. package/dist/server/loaders/exports.loader.d.ts +0 -0
  467. package/dist/server/loaders/exports.loader.js +0 -23
  468. package/dist/server/loaders/playerSession.loader.d.ts +0 -1
  469. package/dist/server/loaders/playerSession.loader.js +0 -51
  470. package/dist/server/services/access-control.service.d.ts +0 -56
  471. package/dist/server/services/access-control.service.js +0 -99
  472. package/dist/server/services/chat.service.d.ts +0 -7
  473. package/dist/server/services/command.service.d.ts +0 -15
  474. package/dist/server/services/command.service.js +0 -77
  475. package/dist/server/services/default/default-security.handler.d.ts +0 -6
  476. package/dist/server/services/index.d.ts +0 -10
  477. package/dist/server/services/index.js +0 -26
  478. package/dist/server/services/rate-limiter.service.d.ts +0 -5
  479. package/dist/server/services/registers.d.ts +0 -1
  480. package/dist/server/services/registers.js +0 -18
  481. package/dist/server/setup.d.ts +0 -9
  482. package/dist/server/setup.js +0 -28
  483. package/dist/server/system/processors/command.processor.d.ts +0 -9
  484. package/dist/server/system/processors/export.processor.d.ts +0 -7
  485. package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
  486. package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
  487. package/dist/server/system/processors/netEvent.processor.js +0 -103
  488. package/dist/server/system/processors/tick.processor.d.ts +0 -5
  489. package/dist/server/system/processors.register.d.ts +0 -1
  490. package/dist/server/system/processors.register.js +0 -23
  491. package/dist/server/templates/index.d.ts +0 -8
  492. package/dist/server/templates/persistence/index.d.ts +0 -30
  493. package/dist/server/templates/persistence/index.js +0 -34
  494. package/dist/shared/index.d.ts +0 -1
  495. package/dist/shared/logger/transports/index.d.ts +0 -3
  496. package/dist/shared/logger/transports/index.js +0 -19
  497. package/dist/utils/errors.d.ts +0 -14
  498. package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
  499. package/dist/{system → kernel/di}/class-constructor.js +0 -0
  500. package/dist/{server → kernel/di}/container.d.ts +0 -0
  501. package/dist/{server → kernel/di}/container.js +0 -0
  502. package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
  503. package/dist/{system → kernel/di}/decorator-processor.js +0 -0
  504. package/dist/{system → kernel/di}/metadata.scanner.js +0 -0
  505. package/dist/{shared → kernel/shared}/logger/logger.config.js +0 -0
  506. package/dist/{shared → kernel/shared}/logger/logger.service.js +0 -0
  507. package/dist/{shared → kernel/shared}/logger/logger.types.d.ts +0 -0
  508. package/dist/{shared → kernel/shared}/logger/logger.types.js +0 -0
  509. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.js +0 -0
  510. package/dist/{utils → kernel/utils}/result.js +0 -0
  511. package/dist/{utils → kernel/utils}/rgb.d.ts +0 -0
  512. package/dist/{utils → kernel/utils}/rgb.js +0 -0
  513. package/dist/{utils → kernel/utils}/vector3.d.ts +0 -0
  514. package/dist/{utils → kernel/utils}/vector3.js +0 -0
  515. package/dist/{client → runtime/client}/client-container.d.ts +0 -0
  516. package/dist/{client → runtime/client}/client-container.js +0 -0
  517. package/dist/{client → runtime/client}/controllers/spawner.controller.js +0 -0
  518. package/dist/{client → runtime/client}/decorators/gameEvent.js +0 -0
  519. package/dist/{client → runtime/client}/decorators/index.d.ts +5 -5
  520. package/dist/{client → runtime/client}/decorators/index.js +5 -5
  521. package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
  522. package/dist/{client → runtime/client}/services/blip.service.js +0 -0
  523. package/dist/{client → runtime/client}/services/marker.service.js +0 -0
  524. package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
  525. package/dist/{client → runtime/client}/services/notification.service.js +0 -0
  526. package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
  527. package/dist/{client → runtime/client}/services/progress.service.js +0 -0
  528. package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
  529. package/dist/{client → runtime/client}/services/streaming.service.js +0 -0
  530. package/dist/{client → runtime/client}/services/textui.service.js +0 -0
  531. package/dist/{client → runtime/client}/system/metadata-client.keys.d.ts +0 -0
  532. package/dist/{client → runtime/client}/system/metadata-client.keys.js +0 -0
  533. package/dist/{client → runtime/client}/system/processors/key.processor.js +0 -0
  534. package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
  535. package/dist/{client → runtime/client}/system/processors.register.js +6 -6
  536. /package/dist/{client → runtime/client}/types/game-events.d.ts +0 -0
  537. /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
  538. /package/dist/{client → runtime/client}/types/index.js +0 -0
  539. /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
  540. /package/dist/{server → runtime/server}/configs/api.config.js +0 -0
  541. /package/dist/{server → runtime/server}/configs/config.base.d.ts +0 -0
  542. /package/dist/{server → runtime/server}/configs/config.base.js +0 -0
  543. /package/dist/{server → runtime/server}/configs/index.d.ts +0 -0
  544. /package/dist/{server → runtime/server}/configs/index.js +0 -0
  545. /package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.js +0 -0
  546. /package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.js +0 -0
  547. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.d.ts +0 -0
  548. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.js +0 -0
  549. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.d.ts +0 -0
  550. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.js +0 -0
  551. /package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.js +0 -0
  552. /package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.js +0 -0
  553. /package/dist/{server → runtime/server}/database/database.contract.js +0 -0
  554. /package/dist/{server → runtime/server}/database/types.d.ts +0 -0
  555. /package/dist/{server → runtime/server}/database/types.js +0 -0
  556. /package/dist/{server → runtime/server}/database.d.ts +0 -0
  557. /package/dist/{server → runtime/server}/database.js +0 -0
  558. /package/dist/{server → runtime/server}/services/config.service.d.ts +0 -0
  559. /package/dist/{server → runtime/server}/services/http/http.service.d.ts +0 -0
  560. /package/dist/{server → runtime/server}/services/parallel/types.d.ts +0 -0
  561. /package/dist/{server → runtime/server}/services/parallel/types.js +0 -0
  562. /package/dist/{server → runtime/server}/services/parallel/worker-pool.js +0 -0
  563. /package/dist/{server → runtime/server}/services/parallel/worker.js +0 -0
  564. /package/dist/{client/interfaces/appearance.interface.js → runtime/server/services/types/linked-id.js} +0 -0
  565. /package/dist/{server/templates/admin/admin.controller-template.js → runtime/server/services/types/player-session.object.js} +0 -0
  566. /package/dist/{server/types/core-events.js → runtime/server/templates/admin.controller-template.js} +0 -0
  567. /package/dist/{server → runtime/server}/types/core-events.d.ts +0 -0
  568. /package/dist/{server/types/security.types.js → runtime/server/types/core-events.js} +0 -0
  569. /package/dist/{server → runtime/server}/types/security.types.d.ts +0 -0
@@ -17,10 +17,13 @@ class Player {
17
17
  * This is typically instantiated by the `PlayerService` upon connection.
18
18
  *
19
19
  * @param session - The internal session data structure holding ID and metadata.
20
+ * @param adapters - Platform adapters for player operations.
20
21
  */
21
- constructor(session) {
22
+ constructor(session, adapters) {
22
23
  this.session = session;
24
+ this.adapters = adapters;
23
25
  this.states = new Set();
26
+ this.position = adapters.playerInfo.getPlayerPosition(session.clientID);
24
27
  }
25
28
  /**
26
29
  * The numeric FiveM Server ID (Source) of the player.
@@ -48,7 +51,13 @@ class Player {
48
51
  * The display name of the player (Steam name or FiveM username).
49
52
  */
50
53
  get name() {
51
- return GetPlayerName(this.clientIDStr);
54
+ var _a;
55
+ return (_a = this.adapters.playerInfo.getPlayerName(this.clientID)) !== null && _a !== void 0 ? _a : `Player#${this.clientID}`;
56
+ }
57
+ getPosition() {
58
+ // re-set last position
59
+ this.position = this.adapters.playerInfo.getPlayerPosition(this.clientID);
60
+ return this.position;
52
61
  }
53
62
  /**
54
63
  * Retrieves all platform identifiers associated with the player (steam, license, discord, ip, etc.).
@@ -56,14 +65,7 @@ class Player {
56
65
  * @returns An array of identifier strings (e.g., `['steam:11000...', 'license:2332...']`).
57
66
  */
58
67
  getIdentifiers() {
59
- const ids = [];
60
- for (let i = 0;; i++) {
61
- const id = GetPlayerIdentifier(this.clientIDStr, i);
62
- if (!id)
63
- break;
64
- ids.push(id);
65
- }
66
- return ids;
68
+ return this.adapters.playerServer.getIdentifiers(this.clientIDStr);
67
69
  }
68
70
  /**
69
71
  * Sends a network event exclusively to this specific player (Client-side).
@@ -73,7 +75,11 @@ class Player {
73
75
  * @param args - Data to send to the client.
74
76
  */
75
77
  emit(eventName, ...args) {
76
- emitNet(eventName, this.clientID, ...args);
78
+ this.adapters.netTransport.emitNet(eventName, this.clientID, ...args);
79
+ }
80
+ /** used to send a private message to the player */
81
+ send(message, type = 'chat') {
82
+ this.adapters.netTransport.emitNet('core:chat:send', this.clientID, message, type);
77
83
  }
78
84
  /**
79
85
  * Teleports the player to a given position using Server-Side natives.
@@ -84,7 +90,8 @@ class Player {
84
90
  * @param vector - The target coordinates (x, y, z).
85
91
  */
86
92
  teleport(vector) {
87
- SetEntityCoords(GetPlayerPed(this.clientIDStr), vector.x, vector.y, vector.z, false, false, false, true);
93
+ const ped = this.adapters.playerServer.getPed(this.clientIDStr);
94
+ this.adapters.entityServer.setCoords(ped, vector.x, vector.y, vector.z, false, false, false, true);
88
95
  }
89
96
  /**
90
97
  * Requests the Client to teleport itself via the Core Spawner system.
@@ -97,13 +104,16 @@ class Player {
97
104
  teleportClient(vector) {
98
105
  this.emit('opencore:spawner:teleport', vector);
99
106
  }
107
+ spawn(vector, model = 'mp_m_freemode_01') {
108
+ this.emit('opencore:spawner:spawn', { position: vector, model });
109
+ }
100
110
  /**
101
111
  * Disconnects the player from the server.
102
112
  *
103
113
  * @param reason - The message displayed to the player upon disconnection.
104
114
  */
105
115
  kick(reason = 'Kicked from server') {
106
- DropPlayer(this.clientID.toString(), reason);
116
+ this.adapters.playerServer.drop(this.clientIDStr, reason);
107
117
  }
108
118
  /**
109
119
  * Sets the routing bucket (virtual world / dimension) for the player.
@@ -112,7 +122,7 @@ class Player {
112
122
  * @param bucket - The bucket ID (0 is the default shared world).
113
123
  */
114
124
  setRoutingBucket(bucket) {
115
- SetPlayerRoutingBucket(this.clientID.toString(), bucket);
125
+ this.adapters.playerServer.setRoutingBucket(this.clientIDStr, bucket);
116
126
  }
117
127
  /**
118
128
  * Stores arbitrary transient metadata for this player's session.
@@ -213,5 +223,73 @@ class Player {
213
223
  getStates() {
214
224
  return Array.from(this.states);
215
225
  }
226
+ /**
227
+ * Gets the current health of the player's ped.
228
+ *
229
+ * @returns Current health value (0-200, where 100 is dead).
230
+ */
231
+ getHealth() {
232
+ const ped = this.adapters.playerServer.getPed(this.clientIDStr);
233
+ return this.adapters.entityServer.getHealth(ped);
234
+ }
235
+ /**
236
+ * Sets the health of the player's ped.
237
+ *
238
+ * @param health - Health value to set (0-200).
239
+ */
240
+ setHealth(health) {
241
+ const ped = this.adapters.playerServer.getPed(this.clientIDStr);
242
+ this.adapters.entityServer.setHealth(ped, health);
243
+ }
244
+ /**
245
+ * Gets the current armor of the player's ped.
246
+ *
247
+ * @returns Current armor value (0-100).
248
+ */
249
+ getArmor() {
250
+ const ped = this.adapters.playerServer.getPed(this.clientIDStr);
251
+ return this.adapters.entityServer.getArmor(ped);
252
+ }
253
+ /**
254
+ * Sets the armor of the player's ped.
255
+ *
256
+ * @param armor - Armor value to set (0-100).
257
+ */
258
+ setArmor(armor) {
259
+ const ped = this.adapters.playerServer.getPed(this.clientIDStr);
260
+ this.adapters.entityServer.setArmor(ped, armor);
261
+ }
262
+ /**
263
+ * Kills the player by setting health to 0.
264
+ */
265
+ kill() {
266
+ this.setHealth(0);
267
+ }
268
+ /**
269
+ * Checks if the player is alive.
270
+ *
271
+ * @returns `true` if health is above 100 (dead threshold), `false` otherwise.
272
+ */
273
+ isAlive() {
274
+ return this.getHealth() > 100;
275
+ }
276
+ /**
277
+ * Serializes the player data for cross-resource transfer.
278
+ *
279
+ * @remarks
280
+ * Creates a plain object representation of the player session that can be
281
+ * safely transferred between resources via FiveM exports.
282
+ *
283
+ * @returns Serialized player data DTO
284
+ */
285
+ serialize() {
286
+ return {
287
+ clientID: this.clientID,
288
+ accountID: this.accountID,
289
+ identifiers: this.session.identifiers,
290
+ meta: Object.assign({}, this.session.meta),
291
+ states: this.getStates(),
292
+ };
293
+ }
216
294
  }
217
295
  exports.Player = Player;
@@ -0,0 +1,160 @@
1
+ import { IEntityServer } from '../../../adapters/contracts/IEntityServer';
2
+ import { IVehicleServer } from '../../../adapters/contracts/IVehicleServer';
3
+ import { Vector3 } from '../../../kernel/utils';
4
+ import { SerializedVehicleData, VehicleMetadata, VehicleMods, VehicleOwnership } from '../types/vehicle.types';
5
+ /**
6
+ * Adapter bundle for vehicle operations.
7
+ * Passed to Vehicle instances by VehicleService.
8
+ */
9
+ export interface VehicleAdapters {
10
+ entityServer: IEntityServer;
11
+ vehicleServer: IVehicleServer;
12
+ }
13
+ /**
14
+ * Server-side representation of a vehicle entity.
15
+ *
16
+ * This class wraps FiveM server-side vehicle natives and manages vehicle state.
17
+ * All vehicle creation and modification should go through this entity
18
+ * to ensure proper synchronization and security.
19
+ *
20
+ * ⚠️ **Design Note:** Vehicles are created server-side using CreateVehicleServerSetter
21
+ * to prevent client-side spawning abuse. Network IDs are used for cross-client references.
22
+ *
23
+ * ⚠️ **Important:** Visual modifications (mods, repairs, fuel) are stored in state bags
24
+ * and must be applied client-side. The server only stores the desired state.
25
+ */
26
+ export declare class Vehicle {
27
+ private readonly _networkId;
28
+ private readonly _handle;
29
+ private readonly _adapters;
30
+ private readonly _model;
31
+ private readonly _modelHash;
32
+ private _ownership;
33
+ private _mods;
34
+ private _metadata;
35
+ private _persistent;
36
+ private _routingBucket;
37
+ /**
38
+ * Creates a new Vehicle entity instance.
39
+ * This should only be instantiated by VehicleService after server-side creation.
40
+ *
41
+ * @param handle - The server-side entity handle
42
+ * @param networkId - The network ID for cross-client reference
43
+ * @param ownership - Ownership information
44
+ * @param adapters - Platform adapters for entity/vehicle operations
45
+ * @param persistent - Whether the vehicle should persist
46
+ * @param routingBucket - The routing bucket the vehicle belongs to
47
+ */
48
+ constructor(handle: number, networkId: number, ownership: VehicleOwnership, adapters: VehicleAdapters, persistent: boolean | undefined, routingBucket: number | undefined, model: string, modelHash: number);
49
+ get handle(): number;
50
+ get networkId(): number;
51
+ get ownership(): VehicleOwnership;
52
+ get mods(): VehicleMods;
53
+ get metadata(): VehicleMetadata;
54
+ get persistent(): boolean;
55
+ get routingBucket(): number;
56
+ get exists(): boolean;
57
+ get model(): string;
58
+ get modelHash(): number;
59
+ get position(): Vector3;
60
+ get heading(): number;
61
+ get plate(): string;
62
+ /**
63
+ * Updates the ownership of the vehicle.
64
+ *
65
+ * @param ownership - New ownership information
66
+ */
67
+ setOwnership(ownership: Partial<VehicleOwnership>): void;
68
+ /**
69
+ * Stores modifications in state bag for client-side application.
70
+ *
71
+ * @remarks
72
+ * Mods are stored server-side and synced via state bags.
73
+ * The client must read and apply these modifications locally.
74
+ *
75
+ * @param mods - Modifications to store
76
+ */
77
+ setMods(mods: Partial<VehicleMods>): void;
78
+ /**
79
+ * Sets custom metadata for the vehicle.
80
+ *
81
+ * @param key - Metadata key
82
+ * @param value - Metadata value
83
+ */
84
+ setMetadata(key: string, value: any): void;
85
+ /**
86
+ * Gets metadata value by key.
87
+ *
88
+ * @param key - Metadata key
89
+ * @returns The metadata value or undefined
90
+ */
91
+ getMetadata<T = any>(key: string): T | undefined;
92
+ /**
93
+ * Sets the routing bucket for the vehicle.
94
+ *
95
+ * @param bucket - Routing bucket ID
96
+ */
97
+ setRoutingBucket(bucket: number): void;
98
+ /**
99
+ * Sets the license plate text.
100
+ *
101
+ * @param plate - Plate text (max 8 characters)
102
+ */
103
+ setPlate(plate: string): void;
104
+ /**
105
+ * Sets the vehicle colors (server-side native).
106
+ *
107
+ * @param primaryColor - Primary color index
108
+ * @param secondaryColor - Secondary color index
109
+ */
110
+ setColors(primaryColor?: number, secondaryColor?: number): void;
111
+ /**
112
+ * Marks vehicle for repair (client applies the actual repair).
113
+ *
114
+ * @remarks
115
+ * Sets a state bag flag that clients should watch to apply repair locally.
116
+ */
117
+ markForRepair(): void;
118
+ /**
119
+ * Sets the fuel level (stored in metadata, applied client-side).
120
+ *
121
+ * @param level - Fuel level (0–100)
122
+ */
123
+ setFuel(level: number): void;
124
+ /**
125
+ * Gets the stored fuel level from metadata.
126
+ *
127
+ * @returns Fuel level (0-100) or 100 if not set
128
+ */
129
+ getFuel(): number;
130
+ /**
131
+ * Sets the vehicle doors locked state (server-side native).
132
+ *
133
+ * @param locked - Whether doors should be locked
134
+ */
135
+ setDoorsLocked(locked: boolean): void;
136
+ /**
137
+ * Teleports the vehicle to a position.
138
+ *
139
+ * @param position - Target position
140
+ * @param heading - Optional heading
141
+ */
142
+ teleport(position: Vector3, heading?: number): void;
143
+ /**
144
+ * Deletes the vehicle from the server.
145
+ */
146
+ delete(): void;
147
+ /**
148
+ * Syncs data to the vehicle's state bag for client access.
149
+ *
150
+ * @param key - State bag key
151
+ * @param value - Value to sync
152
+ */
153
+ private syncStateBag;
154
+ /**
155
+ * Serializes the vehicle data for network transfer.
156
+ *
157
+ * @returns Serialized vehicle data
158
+ */
159
+ serialize(): SerializedVehicleData;
160
+ }
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vehicle = void 0;
4
+ /**
5
+ * Server-side representation of a vehicle entity.
6
+ *
7
+ * This class wraps FiveM server-side vehicle natives and manages vehicle state.
8
+ * All vehicle creation and modification should go through this entity
9
+ * to ensure proper synchronization and security.
10
+ *
11
+ * ⚠️ **Design Note:** Vehicles are created server-side using CreateVehicleServerSetter
12
+ * to prevent client-side spawning abuse. Network IDs are used for cross-client references.
13
+ *
14
+ * ⚠️ **Important:** Visual modifications (mods, repairs, fuel) are stored in state bags
15
+ * and must be applied client-side. The server only stores the desired state.
16
+ */
17
+ class Vehicle {
18
+ /**
19
+ * Creates a new Vehicle entity instance.
20
+ * This should only be instantiated by VehicleService after server-side creation.
21
+ *
22
+ * @param handle - The server-side entity handle
23
+ * @param networkId - The network ID for cross-client reference
24
+ * @param ownership - Ownership information
25
+ * @param adapters - Platform adapters for entity/vehicle operations
26
+ * @param persistent - Whether the vehicle should persist
27
+ * @param routingBucket - The routing bucket the vehicle belongs to
28
+ */
29
+ constructor(handle, networkId, ownership, adapters, persistent = false, routingBucket = 0, model, modelHash) {
30
+ this._mods = {};
31
+ this._metadata = {};
32
+ this._handle = handle;
33
+ this._networkId = networkId;
34
+ this._ownership = ownership;
35
+ this._adapters = adapters;
36
+ this._persistent = persistent;
37
+ this._routingBucket = routingBucket;
38
+ this._model = model;
39
+ this._modelHash = modelHash;
40
+ if (persistent) {
41
+ this._adapters.entityServer.setOrphanMode(handle, 2);
42
+ }
43
+ this._metadata.createdAt = Date.now();
44
+ }
45
+ get handle() {
46
+ return this._handle;
47
+ }
48
+ get networkId() {
49
+ return this._networkId;
50
+ }
51
+ get ownership() {
52
+ return Object.assign({}, this._ownership);
53
+ }
54
+ get mods() {
55
+ return Object.assign({}, this._mods);
56
+ }
57
+ get metadata() {
58
+ return Object.assign({}, this._metadata);
59
+ }
60
+ get persistent() {
61
+ return this._persistent;
62
+ }
63
+ get routingBucket() {
64
+ return this._routingBucket;
65
+ }
66
+ get exists() {
67
+ return this._adapters.entityServer.doesExist(this._handle);
68
+ }
69
+ get model() {
70
+ return this._model;
71
+ }
72
+ get modelHash() {
73
+ return this._modelHash;
74
+ }
75
+ get position() {
76
+ return this._adapters.entityServer.getCoords(this._handle);
77
+ }
78
+ get heading() {
79
+ return this._adapters.entityServer.getHeading(this._handle);
80
+ }
81
+ get plate() {
82
+ return this._adapters.vehicleServer.getNumberPlateText(this._handle);
83
+ }
84
+ /**
85
+ * Updates the ownership of the vehicle.
86
+ *
87
+ * @param ownership - New ownership information
88
+ */
89
+ setOwnership(ownership) {
90
+ this._ownership = Object.assign(Object.assign({}, this._ownership), ownership);
91
+ this.syncStateBag('ownership', this._ownership);
92
+ }
93
+ /**
94
+ * Stores modifications in state bag for client-side application.
95
+ *
96
+ * @remarks
97
+ * Mods are stored server-side and synced via state bags.
98
+ * The client must read and apply these modifications locally.
99
+ *
100
+ * @param mods - Modifications to store
101
+ */
102
+ setMods(mods) {
103
+ if (!this.exists)
104
+ return;
105
+ this._mods = Object.assign(Object.assign({}, this._mods), mods);
106
+ this._metadata.modifiedAt = Date.now();
107
+ // Sync to state bag for client-side application
108
+ this.syncStateBag('mods', this._mods);
109
+ }
110
+ /**
111
+ * Sets custom metadata for the vehicle.
112
+ *
113
+ * @param key - Metadata key
114
+ * @param value - Metadata value
115
+ */
116
+ setMetadata(key, value) {
117
+ this._metadata[key] = value;
118
+ this.syncStateBag(`meta_${key}`, value);
119
+ }
120
+ /**
121
+ * Gets metadata value by key.
122
+ *
123
+ * @param key - Metadata key
124
+ * @returns The metadata value or undefined
125
+ */
126
+ getMetadata(key) {
127
+ return this._metadata[key];
128
+ }
129
+ /**
130
+ * Sets the routing bucket for the vehicle.
131
+ *
132
+ * @param bucket - Routing bucket ID
133
+ */
134
+ setRoutingBucket(bucket) {
135
+ if (!this.exists)
136
+ return;
137
+ this._adapters.entityServer.setRoutingBucket(this._handle, bucket);
138
+ this._routingBucket = bucket;
139
+ }
140
+ /**
141
+ * Sets the license plate text.
142
+ *
143
+ * @param plate - Plate text (max 8 characters)
144
+ */
145
+ setPlate(plate) {
146
+ if (!this.exists)
147
+ return;
148
+ this._adapters.vehicleServer.setNumberPlateText(this._handle, plate.substring(0, 8));
149
+ }
150
+ /**
151
+ * Sets the vehicle colors (server-side native).
152
+ *
153
+ * @param primaryColor - Primary color index
154
+ * @param secondaryColor - Secondary color index
155
+ */
156
+ setColors(primaryColor, secondaryColor) {
157
+ if (!this.exists)
158
+ return;
159
+ const [currentPrimary, currentSecondary] = this._adapters.vehicleServer.getColours(this._handle);
160
+ this._adapters.vehicleServer.setColours(this._handle, primaryColor !== null && primaryColor !== void 0 ? primaryColor : currentPrimary, secondaryColor !== null && secondaryColor !== void 0 ? secondaryColor : currentSecondary);
161
+ }
162
+ /**
163
+ * Marks vehicle for repair (client applies the actual repair).
164
+ *
165
+ * @remarks
166
+ * Sets a state bag flag that clients should watch to apply repair locally.
167
+ */
168
+ markForRepair() {
169
+ if (!this.exists)
170
+ return;
171
+ this._metadata.needsRepair = true;
172
+ this._metadata.repairRequestedAt = Date.now();
173
+ this.syncStateBag('needsRepair', true);
174
+ }
175
+ /**
176
+ * Sets the fuel level (stored in metadata, applied client-side).
177
+ *
178
+ * @param level - Fuel level (0–100)
179
+ */
180
+ setFuel(level) {
181
+ if (!this.exists)
182
+ return;
183
+ const clampedLevel = Math.max(0, Math.min(100, level));
184
+ this._metadata.fuel = clampedLevel;
185
+ this.syncStateBag('fuel', clampedLevel);
186
+ }
187
+ /**
188
+ * Gets the stored fuel level from metadata.
189
+ *
190
+ * @returns Fuel level (0-100) or 100 if not set
191
+ */
192
+ getFuel() {
193
+ var _a;
194
+ return (_a = this._metadata.fuel) !== null && _a !== void 0 ? _a : 100;
195
+ }
196
+ /**
197
+ * Sets the vehicle doors locked state (server-side native).
198
+ *
199
+ * @param locked - Whether doors should be locked
200
+ */
201
+ setDoorsLocked(locked) {
202
+ if (!this.exists)
203
+ return;
204
+ this._adapters.vehicleServer.setDoorsLocked(this._handle, locked ? 2 : 1);
205
+ this.syncStateBag('locked', locked);
206
+ }
207
+ /**
208
+ * Teleports the vehicle to a position.
209
+ *
210
+ * @param position - Target position
211
+ * @param heading - Optional heading
212
+ */
213
+ teleport(position, heading) {
214
+ if (!this.exists)
215
+ return;
216
+ this._adapters.entityServer.setCoords(this._handle, position.x, position.y, position.z, false, false, false, true);
217
+ if (heading !== undefined) {
218
+ this._adapters.entityServer.setHeading(this._handle, heading);
219
+ }
220
+ }
221
+ /**
222
+ * Deletes the vehicle from the server.
223
+ */
224
+ delete() {
225
+ if (!this.exists)
226
+ return;
227
+ this._adapters.entityServer.delete(this._handle);
228
+ }
229
+ /**
230
+ * Syncs data to the vehicle's state bag for client access.
231
+ *
232
+ * @param key - State bag key
233
+ * @param value - Value to sync
234
+ */
235
+ syncStateBag(key, value) {
236
+ const stateBag = this._adapters.entityServer.getStateBag(this._handle);
237
+ stateBag.set(key, value, true);
238
+ }
239
+ /**
240
+ * Serializes the vehicle data for network transfer.
241
+ *
242
+ * @returns Serialized vehicle data
243
+ */
244
+ serialize() {
245
+ return {
246
+ networkId: this._networkId,
247
+ handle: this._handle,
248
+ modelHash: this.modelHash,
249
+ model: this.model,
250
+ position: this.position,
251
+ heading: this.heading,
252
+ plate: this.plate,
253
+ ownership: this.ownership,
254
+ mods: this.mods,
255
+ metadata: this.metadata,
256
+ routingBucket: this._routingBucket,
257
+ persistent: this._persistent,
258
+ };
259
+ }
260
+ }
261
+ exports.Vehicle = Vehicle;
@@ -1,2 +1,2 @@
1
- import type { CommandMetadata } from './decorators/command';
1
+ import { CommandMetadata } from './decorators/command';
2
2
  export declare function handleCommandError(error: unknown, meta: CommandMetadata, playerId: number | null): void;
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handleCommandError = handleCommandError;
4
- const utils_1 = require("../utils");
5
- const logger_1 = require("../shared/logger");
4
+ const logger_1 = require("../../kernel/shared/logger");
5
+ const utils_1 = require("../../kernel/utils");
6
6
  function normalizeError(error, origin) {
7
7
  if ((0, utils_1.isAppError)(error)) {
8
8
  return error;
9
9
  }
10
10
  if (error instanceof Error) {
11
- return new utils_1.AppError('UNKNOWN', error.message, origin, { stack: error.stack });
11
+ return new utils_1.AppError('COMMON:UNKNOWN', error.message, origin, { stack: error.stack });
12
12
  }
13
- return new utils_1.AppError('UNKNOWN', String(error), origin, { raw: error });
13
+ return new utils_1.AppError('COMMON:UNKNOWN', String(error), origin, { raw: error });
14
14
  }
15
15
  function handleCommandError(error, meta, playerId) {
16
16
  const appError = normalizeError(error, 'server');
@@ -25,10 +25,9 @@ function handleCommandError(error, meta, playerId) {
25
25
  });
26
26
  if (playerId !== null) {
27
27
  switch (appError.code) {
28
- case 'VALIDATION_ERROR':
29
- case 'INSUFFICIENT_FUNDS':
30
- case 'PERMISSION_DENIED':
31
- case 'UNAUTHORIZED':
28
+ case 'ECONOMY:INSUFFICIENT_FUNDS':
29
+ case 'AUTH:PERMISSION_DENIED':
30
+ case 'AUTH:UNAUTHORIZED':
32
31
  emitNet('chat:addMessage', playerId, {
33
32
  args: ['^1Error', appError.message],
34
33
  });
@@ -0,0 +1,6 @@
1
+ import { CommandMetadata } from '../decorators/command';
2
+ import { Player } from '../entities';
3
+ /**
4
+ * Centraliza validación de argumentos de comandos.
5
+ */
6
+ export declare function validateAndExecuteCommand(meta: CommandMetadata, player: Player, args: string[], handler: Function): Promise<any>;