@open-core/framework 1.0.5-beta.1 → 1.0.5

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 (397) hide show
  1. package/dist/adapters/contracts/IEngineEvents.d.ts +5 -2
  2. package/dist/adapters/contracts/IEngineEvents.js +7 -0
  3. package/dist/adapters/contracts/IExports.d.ts +2 -2
  4. package/dist/adapters/contracts/IPlatformContext.d.ts +43 -0
  5. package/dist/adapters/contracts/IPlatformContext.js +8 -0
  6. package/dist/adapters/contracts/client/IClientLocalPlayerBridge.d.ts +25 -0
  7. package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +8 -0
  8. package/dist/adapters/contracts/client/IClientLogConsole.d.ts +13 -0
  9. package/dist/adapters/contracts/client/IClientLogConsole.js +2 -0
  10. package/dist/adapters/contracts/client/IClientPlatformBridge.d.ts +195 -0
  11. package/dist/adapters/contracts/client/IClientPlatformBridge.js +282 -0
  12. package/dist/adapters/contracts/client/IClientRuntimeBridge.d.ts +18 -0
  13. package/dist/adapters/contracts/client/IClientRuntimeBridge.js +14 -0
  14. package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.d.ts +26 -0
  15. package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.js +2 -0
  16. package/dist/adapters/contracts/client/camera/IClientCameraPort.d.ts +107 -0
  17. package/dist/adapters/contracts/client/camera/IClientCameraPort.js +8 -0
  18. package/dist/adapters/contracts/client/camera/index.d.ts +1 -0
  19. package/dist/adapters/contracts/client/camera/index.js +1 -0
  20. package/dist/adapters/contracts/client/index.d.ts +11 -0
  21. package/dist/adapters/contracts/client/index.js +11 -0
  22. package/dist/adapters/contracts/client/ped/IClientPedPort.d.ts +62 -0
  23. package/dist/adapters/contracts/client/ped/IClientPedPort.js +5 -0
  24. package/dist/adapters/contracts/client/ped/index.d.ts +1 -0
  25. package/dist/adapters/contracts/client/ped/index.js +1 -0
  26. package/dist/adapters/contracts/client/progress/IClientProgressPort.d.ts +53 -0
  27. package/dist/adapters/contracts/client/progress/IClientProgressPort.js +8 -0
  28. package/dist/adapters/contracts/client/progress/index.d.ts +1 -0
  29. package/dist/adapters/contracts/client/progress/index.js +1 -0
  30. package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.d.ts +6 -0
  31. package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +6 -0
  32. package/dist/adapters/contracts/client/spawn/IClientSpawnPort.d.ts +19 -0
  33. package/dist/adapters/contracts/client/spawn/IClientSpawnPort.js +2 -0
  34. package/dist/adapters/contracts/client/spawn/index.d.ts +4 -0
  35. package/dist/adapters/contracts/client/spawn/index.js +4 -0
  36. package/dist/adapters/contracts/client/spawn/types.d.ts +17 -0
  37. package/dist/adapters/contracts/client/ui/IClientBlipBridge.d.ts +25 -0
  38. package/dist/adapters/contracts/client/ui/IClientBlipBridge.js +2 -0
  39. package/dist/adapters/contracts/client/ui/IClientMarkerBridge.d.ts +31 -0
  40. package/dist/adapters/contracts/client/ui/IClientMarkerBridge.js +2 -0
  41. package/dist/adapters/contracts/client/ui/IClientNotificationBridge.d.ts +21 -0
  42. package/dist/adapters/contracts/client/ui/IClientNotificationBridge.js +2 -0
  43. package/dist/adapters/contracts/client/ui/index.d.ts +4 -0
  44. package/dist/adapters/contracts/client/ui/index.js +4 -0
  45. package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.d.ts +14 -0
  46. package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.js +2 -0
  47. package/dist/adapters/contracts/client/ui/webview/index.d.ts +2 -0
  48. package/dist/adapters/contracts/client/ui/webview/index.js +2 -0
  49. package/dist/adapters/contracts/client/ui/webview/types.d.ts +27 -0
  50. package/dist/adapters/contracts/client/ui/webview/types.js +0 -0
  51. package/dist/adapters/contracts/client/vehicle/IClientVehiclePort.d.ts +166 -0
  52. package/dist/adapters/contracts/client/vehicle/IClientVehiclePort.js +8 -0
  53. package/dist/adapters/contracts/client/vehicle/index.d.ts +1 -0
  54. package/dist/adapters/contracts/client/vehicle/index.js +1 -0
  55. package/dist/adapters/contracts/index.d.ts +4 -2
  56. package/dist/adapters/contracts/index.js +4 -3
  57. package/dist/adapters/contracts/runtime/index.d.ts +1 -0
  58. package/dist/adapters/contracts/runtime/index.js +1 -0
  59. package/dist/adapters/contracts/runtime/runtime-events.d.ts +9 -0
  60. package/dist/adapters/contracts/runtime/runtime-events.js +7 -0
  61. package/dist/adapters/contracts/server/IEntityServer.d.ts +4 -28
  62. package/dist/adapters/contracts/server/IEntityServer.js +0 -26
  63. package/dist/adapters/contracts/server/IPlayerServer.d.ts +7 -26
  64. package/dist/adapters/contracts/server/IPlayerServer.js +0 -26
  65. package/dist/adapters/contracts/server/index.d.ts +10 -0
  66. package/dist/adapters/contracts/server/index.js +10 -0
  67. package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.d.ts +5 -0
  68. package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.js +2 -0
  69. package/dist/adapters/contracts/server/npc-lifecycle/index.d.ts +2 -0
  70. package/dist/adapters/contracts/server/npc-lifecycle/index.js +2 -0
  71. package/dist/adapters/contracts/server/npc-lifecycle/types.d.ts +17 -0
  72. package/dist/adapters/contracts/server/npc-lifecycle/types.js +0 -0
  73. package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.d.ts +11 -0
  74. package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.js +2 -0
  75. package/dist/adapters/contracts/server/player-appearance/index.d.ts +1 -0
  76. package/dist/adapters/contracts/server/player-appearance/index.js +1 -0
  77. package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.d.ts +6 -0
  78. package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.js +2 -0
  79. package/dist/adapters/contracts/server/player-lifecycle/index.d.ts +2 -0
  80. package/dist/adapters/contracts/server/player-lifecycle/index.js +2 -0
  81. package/dist/adapters/contracts/server/player-lifecycle/types.d.ts +17 -0
  82. package/dist/adapters/contracts/server/player-lifecycle/types.js +0 -0
  83. package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.d.ts +6 -0
  84. package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.js +2 -0
  85. package/dist/adapters/contracts/server/player-state/index.d.ts +1 -0
  86. package/dist/adapters/contracts/server/player-state/index.js +1 -0
  87. package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.d.ts +5 -0
  88. package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.js +2 -0
  89. package/dist/adapters/contracts/server/vehicle-lifecycle/index.d.ts +2 -0
  90. package/dist/adapters/contracts/server/vehicle-lifecycle/index.js +2 -0
  91. package/dist/adapters/contracts/server/vehicle-lifecycle/types.d.ts +16 -0
  92. package/dist/adapters/contracts/server/vehicle-lifecycle/types.js +0 -0
  93. package/dist/adapters/contracts/transport/events.api.d.ts +3 -3
  94. package/dist/adapters/contracts/transport/index.d.ts +4 -0
  95. package/dist/adapters/contracts/transport/index.js +4 -0
  96. package/dist/adapters/contracts/transport/rpc.api.d.ts +3 -3
  97. package/dist/adapters/index.d.ts +3 -14
  98. package/dist/adapters/index.js +3 -20
  99. package/dist/adapters/node/node-capabilities.d.ts +11 -11
  100. package/dist/adapters/node/node-capabilities.js +15 -27
  101. package/dist/adapters/node/node-engine-events.d.ts +1 -1
  102. package/dist/adapters/node/node-engine-events.js +2 -1
  103. package/dist/adapters/node/node-entity-server.d.ts +2 -2
  104. package/dist/adapters/node/node-entity-server.js +2 -2
  105. package/dist/adapters/node/node-ped-appearance-client.d.ts +2 -2
  106. package/dist/adapters/node/node-ped-appearance-client.js +2 -2
  107. package/dist/adapters/node/node-platform.js +4 -4
  108. package/dist/adapters/node/node-player-server.d.ts +3 -2
  109. package/dist/adapters/node/node-player-server.js +8 -2
  110. package/dist/adapters/node/transport/node.events.d.ts +4 -4
  111. package/dist/adapters/node/transport/node.rpc.d.ts +3 -3
  112. package/dist/adapters/node/transport/node.rpc.js +1 -1
  113. package/dist/adapters/register-capabilities.d.ts +1 -1
  114. package/dist/adapters/register-capabilities.js +1 -3
  115. package/dist/adapters/register-client-capabilities.d.ts +3 -2
  116. package/dist/adapters/register-client-capabilities.js +16 -41
  117. package/dist/contracts/client.d.ts +5 -0
  118. package/dist/contracts/client.js +5 -0
  119. package/dist/contracts/server.d.ts +19 -0
  120. package/dist/contracts/server.js +19 -0
  121. package/dist/contracts.d.ts +5 -0
  122. package/dist/contracts.js +5 -0
  123. package/dist/index.d.ts +2 -1
  124. package/dist/index.js +2 -1
  125. package/dist/kernel/logger/client-log-console.d.ts +4 -0
  126. package/dist/kernel/logger/client-log-console.js +43 -0
  127. package/dist/kernel/logger/core-logger.d.ts +3 -1
  128. package/dist/kernel/logger/core-logger.js +4 -2
  129. package/dist/kernel/logger/index.d.ts +3 -1
  130. package/dist/kernel/logger/index.js +2 -1
  131. package/dist/kernel/logger/logger.types.d.ts +1 -0
  132. package/dist/kernel/logger/logger.types.js +35 -0
  133. package/dist/kernel/logger/transports/buffered.transport.js +4 -4
  134. package/dist/kernel/logger/transports/console.transport.js +2 -2
  135. package/dist/kernel/logger/transports/dev-transport.factory.js +1 -1
  136. package/dist/kernel/logger/transports/simple-console.transport.js +15 -10
  137. package/dist/kernel-public.d.ts +1 -0
  138. package/dist/kernel-public.js +1 -0
  139. package/dist/runtime/client/adapter/client-adapter.d.ts +25 -0
  140. package/dist/runtime/client/adapter/client-adapter.js +11 -0
  141. package/dist/runtime/client/adapter/index.d.ts +20 -0
  142. package/dist/runtime/client/adapter/index.js +20 -0
  143. package/dist/runtime/client/adapter/local-player-bridge.d.ts +1 -0
  144. package/dist/runtime/client/adapter/local-player-bridge.js +1 -0
  145. package/dist/runtime/client/adapter/node-blip-bridge.d.ts +9 -0
  146. package/dist/runtime/client/adapter/node-blip-bridge.js +34 -0
  147. package/dist/runtime/client/adapter/node-camera-port.d.ts +19 -0
  148. package/dist/runtime/client/adapter/node-camera-port.js +31 -0
  149. package/dist/runtime/client/adapter/node-client-adapter.d.ts +5 -0
  150. package/dist/runtime/client/adapter/node-client-adapter.js +64 -0
  151. package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +11 -0
  152. package/dist/runtime/client/adapter/node-local-player-bridge.js +27 -0
  153. package/dist/runtime/client/adapter/node-log-console.d.ts +11 -0
  154. package/dist/runtime/client/adapter/node-log-console.js +48 -0
  155. package/dist/runtime/client/adapter/node-marker-bridge.d.ts +10 -0
  156. package/dist/runtime/client/adapter/node-marker-bridge.js +35 -0
  157. package/dist/runtime/client/adapter/node-notification-bridge.d.ts +5 -0
  158. package/dist/{adapters/fivem/fivem-hasher.js → runtime/client/adapter/node-notification-bridge.js} +7 -11
  159. package/dist/runtime/client/adapter/node-ped-port.d.ts +20 -0
  160. package/dist/runtime/client/adapter/node-ped-port.js +38 -0
  161. package/dist/runtime/client/adapter/node-platform-bridge.d.ts +3 -0
  162. package/dist/{adapters/fivem/fivem-tick.js → runtime/client/adapter/node-platform-bridge.js} +5 -10
  163. package/dist/runtime/client/adapter/node-progress-port.d.ts +8 -0
  164. package/dist/runtime/client/adapter/node-progress-port.js +27 -0
  165. package/dist/runtime/client/adapter/node-runtime-bridge.d.ts +22 -0
  166. package/dist/runtime/client/adapter/node-runtime-bridge.js +58 -0
  167. package/dist/runtime/client/adapter/node-spawn-bridge.d.ts +8 -0
  168. package/dist/runtime/client/adapter/node-spawn-bridge.js +22 -0
  169. package/dist/runtime/client/adapter/node-vehicle-port.d.ts +31 -0
  170. package/dist/runtime/client/adapter/node-vehicle-port.js +73 -0
  171. package/dist/runtime/client/adapter/node-webview-bridge.d.ts +16 -0
  172. package/dist/runtime/client/adapter/node-webview-bridge.js +45 -0
  173. package/dist/runtime/client/adapter/platform-bridge.d.ts +1 -0
  174. package/dist/runtime/client/adapter/platform-bridge.js +1 -0
  175. package/dist/runtime/client/adapter/registry.d.ts +9 -0
  176. package/dist/runtime/client/adapter/registry.js +85 -0
  177. package/dist/runtime/client/adapter/runtime-bridge.d.ts +1 -0
  178. package/dist/runtime/client/adapter/runtime-bridge.js +1 -0
  179. package/dist/runtime/client/api.d.ts +2 -1
  180. package/dist/runtime/client/api.js +2 -1
  181. package/dist/runtime/client/client-bootstrap.js +51 -44
  182. package/dist/runtime/client/client-core.d.ts +2 -0
  183. package/dist/runtime/client/client-core.js +9 -0
  184. package/dist/runtime/client/client-runtime.d.ts +3 -0
  185. package/dist/runtime/client/client-runtime.js +3 -0
  186. package/dist/runtime/client/controllers/appearance.controller.d.ts +3 -1
  187. package/dist/runtime/client/controllers/appearance.controller.js +17 -6
  188. package/dist/runtime/client/controllers/spawner.controller.js +6 -3
  189. package/dist/runtime/client/decorators/controller.js +2 -10
  190. package/dist/runtime/client/decorators/onView.d.ts +3 -3
  191. package/dist/runtime/client/decorators/onView.js +3 -3
  192. package/dist/runtime/client/index.d.ts +1 -0
  193. package/dist/runtime/client/index.js +1 -0
  194. package/dist/runtime/client/library/create-client-library.js +9 -1
  195. package/dist/runtime/client/services/appearance.service.d.ts +2 -2
  196. package/dist/runtime/client/services/appearance.service.js +7 -4
  197. package/dist/runtime/client/services/blip.service.d.ts +6 -93
  198. package/dist/runtime/client/services/blip.service.js +58 -153
  199. package/dist/runtime/client/services/camera-effects.registry.d.ts +3 -0
  200. package/dist/runtime/client/services/camera-effects.registry.js +20 -7
  201. package/dist/runtime/client/services/camera.d.ts +4 -106
  202. package/dist/runtime/client/services/camera.js +36 -98
  203. package/dist/runtime/client/services/cinematic.d.ts +5 -1
  204. package/dist/runtime/client/services/cinematic.js +45 -30
  205. package/dist/runtime/client/services/index.d.ts +1 -0
  206. package/dist/runtime/client/services/index.js +1 -0
  207. package/dist/runtime/client/services/marker.service.d.ts +12 -63
  208. package/dist/runtime/client/services/marker.service.js +62 -97
  209. package/dist/runtime/client/services/notification.service.d.ts +6 -57
  210. package/dist/runtime/client/services/notification.service.js +43 -81
  211. package/dist/runtime/client/services/ped.service.d.ts +6 -148
  212. package/dist/runtime/client/services/ped.service.js +42 -221
  213. package/dist/runtime/client/services/progress.service.d.ts +4 -75
  214. package/dist/runtime/client/services/progress.service.js +20 -178
  215. package/dist/runtime/client/services/session-bridge.service.d.ts +15 -0
  216. package/dist/runtime/client/services/session-bridge.service.js +62 -0
  217. package/dist/runtime/client/services/spawn.service.d.ts +4 -56
  218. package/dist/runtime/client/services/spawn.service.js +29 -191
  219. package/dist/runtime/client/services/streaming.service.d.ts +5 -126
  220. package/dist/runtime/client/services/streaming.service.js +72 -217
  221. package/dist/runtime/client/services/textui.service.d.ts +5 -45
  222. package/dist/runtime/client/services/textui.service.js +55 -88
  223. package/dist/runtime/client/services/vehicle-client.service.d.ts +12 -149
  224. package/dist/runtime/client/services/vehicle-client.service.js +128 -374
  225. package/dist/runtime/client/services/vehicle.service.d.ts +4 -147
  226. package/dist/runtime/client/services/vehicle.service.js +33 -239
  227. package/dist/runtime/client/system/processors/export.processor.d.ts +3 -0
  228. package/dist/runtime/client/system/processors/export.processor.js +16 -3
  229. package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +3 -0
  230. package/dist/runtime/client/system/processors/gameEvent.processor.js +16 -3
  231. package/dist/runtime/client/system/processors/interval.processor.d.ts +3 -0
  232. package/dist/runtime/client/system/processors/interval.processor.js +17 -4
  233. package/dist/runtime/client/system/processors/key.processor.d.ts +3 -0
  234. package/dist/runtime/client/system/processors/key.processor.js +18 -5
  235. package/dist/runtime/client/system/processors/localEvent.processor.d.ts +3 -0
  236. package/dist/runtime/client/system/processors/localEvent.processor.js +16 -3
  237. package/dist/runtime/client/system/processors/netEvent.processor.d.ts +3 -0
  238. package/dist/runtime/client/system/processors/netEvent.processor.js +16 -3
  239. package/dist/runtime/client/system/processors/onRpc.processor.js +1 -1
  240. package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +5 -0
  241. package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +26 -7
  242. package/dist/runtime/client/system/processors/tick.processor.d.ts +3 -0
  243. package/dist/runtime/client/system/processors/tick.processor.js +16 -3
  244. package/dist/runtime/client/system/processors/view.processor.d.ts +3 -0
  245. package/dist/runtime/client/system/processors/view.processor.js +21 -10
  246. package/dist/runtime/client/system/processors.register.d.ts +1 -0
  247. package/dist/runtime/client/system/processors.register.js +8 -0
  248. package/dist/runtime/client/ui-bridge.d.ts +2 -114
  249. package/dist/runtime/client/ui-bridge.js +2 -194
  250. package/dist/runtime/client/webview-bridge.d.ts +34 -0
  251. package/dist/runtime/client/webview-bridge.js +103 -0
  252. package/dist/runtime/client/webview.service.d.ts +15 -0
  253. package/dist/runtime/client/webview.service.js +103 -0
  254. package/dist/runtime/server/adapter/index.d.ts +5 -0
  255. package/dist/runtime/server/adapter/index.js +5 -0
  256. package/dist/runtime/server/adapter/node-npc-lifecycle-server.d.ts +12 -0
  257. package/dist/runtime/server/adapter/node-npc-lifecycle-server.js +52 -0
  258. package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.d.ts +22 -0
  259. package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.js +95 -0
  260. package/dist/runtime/server/adapter/node-player-lifecycle-server.d.ts +11 -0
  261. package/dist/runtime/server/adapter/node-player-lifecycle-server.js +56 -0
  262. package/dist/runtime/server/adapter/node-player-state-sync-server.d.ts +12 -0
  263. package/dist/runtime/server/adapter/node-player-state-sync-server.js +49 -0
  264. package/dist/runtime/server/adapter/node-server-adapter.d.ts +5 -0
  265. package/dist/runtime/server/adapter/node-server-adapter.js +67 -0
  266. package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.d.ts +13 -0
  267. package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.js +58 -0
  268. package/dist/runtime/server/adapter/player-adapter.d.ts +28 -0
  269. package/dist/runtime/server/adapter/player-adapter.js +28 -0
  270. package/dist/runtime/server/adapter/registry.d.ts +26 -0
  271. package/dist/runtime/server/adapter/registry.js +101 -0
  272. package/dist/runtime/server/adapter/serialization.d.ts +6 -0
  273. package/dist/runtime/server/adapter/serialization.js +9 -0
  274. package/dist/runtime/server/adapter/server-adapter.d.ts +28 -0
  275. package/dist/runtime/server/adapter/server-adapter.js +14 -0
  276. package/dist/runtime/server/api.d.ts +2 -1
  277. package/dist/runtime/server/api.js +2 -1
  278. package/dist/runtime/server/apis/appearance.api.d.ts +5 -3
  279. package/dist/runtime/server/apis/appearance.api.js +20 -7
  280. package/dist/runtime/server/apis/chat.api.js +6 -5
  281. package/dist/runtime/server/apis/npcs.api.d.ts +3 -4
  282. package/dist/runtime/server/apis/npcs.api.js +28 -57
  283. package/dist/runtime/server/apis/parallel-compute.api.js +1 -0
  284. package/dist/runtime/server/apis/vehicle-modification.api.d.ts +3 -1
  285. package/dist/runtime/server/apis/vehicle-modification.api.js +13 -6
  286. package/dist/runtime/server/apis/vehicles.api.d.ts +12 -6
  287. package/dist/runtime/server/apis/vehicles.api.js +55 -40
  288. package/dist/runtime/server/bootstrap.js +28 -19
  289. package/dist/runtime/server/controllers/channel.controller.js +2 -1
  290. package/dist/runtime/server/controllers/command-export.controller.js +5 -3
  291. package/dist/runtime/server/controllers/player-export.controller.js +5 -4
  292. package/dist/runtime/server/controllers/remote-command-execution.controller.js +2 -1
  293. package/dist/runtime/server/controllers/session.controller.js +3 -2
  294. package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -1
  295. package/dist/runtime/server/controllers/vehicle.controller.js +13 -7
  296. package/dist/runtime/server/core.d.ts +2 -0
  297. package/dist/runtime/server/core.js +9 -1
  298. package/dist/runtime/server/decorators/command.d.ts +2 -0
  299. package/dist/runtime/server/decorators/command.js +3 -1
  300. package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +2 -1
  301. package/dist/runtime/server/entities/npc.d.ts +3 -1
  302. package/dist/runtime/server/entities/npc.js +3 -3
  303. package/dist/runtime/server/entities/player.d.ts +9 -12
  304. package/dist/runtime/server/entities/player.js +49 -31
  305. package/dist/runtime/server/entities/vehicle.js +2 -2
  306. package/dist/runtime/server/error-handler.js +13 -2
  307. package/dist/runtime/server/helpers/command-validation.helper.js +21 -8
  308. package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
  309. package/dist/runtime/server/helpers/function-helper.js +15 -8
  310. package/dist/runtime/server/implementations/local/channel.local.d.ts +1 -1
  311. package/dist/runtime/server/implementations/local/channel.local.js +3 -2
  312. package/dist/runtime/server/implementations/local/player.local.d.ts +7 -3
  313. package/dist/runtime/server/implementations/local/player.local.js +23 -11
  314. package/dist/runtime/server/implementations/remote/channel.remote.d.ts +2 -1
  315. package/dist/runtime/server/implementations/remote/channel.remote.js +5 -2
  316. package/dist/runtime/server/implementations/remote/command.remote.d.ts +3 -1
  317. package/dist/runtime/server/implementations/remote/command.remote.js +9 -4
  318. package/dist/runtime/server/implementations/remote/player.remote.d.ts +7 -10
  319. package/dist/runtime/server/implementations/remote/player.remote.js +24 -29
  320. package/dist/runtime/server/library/create-server-library.js +17 -2
  321. package/dist/runtime/server/ports/channel.api-port.d.ts +1 -1
  322. package/dist/runtime/server/runtime.d.ts +3 -0
  323. package/dist/runtime/server/runtime.js +1 -15
  324. package/dist/runtime/server/services/appearance.service.d.ts +0 -95
  325. package/dist/runtime/server/services/appearance.service.js +15 -192
  326. package/dist/runtime/server/services/parallel/worker-pool.d.ts +1 -1
  327. package/dist/runtime/server/services/parallel/worker-pool.js +38 -6
  328. package/dist/runtime/server/services/parallel/worker.js +1 -0
  329. package/dist/runtime/server/services/services.register.js +56 -24
  330. package/dist/runtime/server/system/processors/netEvent.processor.js +1 -1
  331. package/dist/runtime/server/system/processors/onRpc.processor.js +1 -1
  332. package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +2 -1
  333. package/dist/runtime/server/system/processors/runtimeEvent.processor.js +1 -1
  334. package/dist/runtime/server/system/schema-generator.d.ts +1 -1
  335. package/dist/runtime/server/system/schema-generator.js +6 -3
  336. package/dist/runtime/server/types/core-exports.types.d.ts +5 -0
  337. package/dist/runtime/shared/helpers/process-tuple-schema.d.ts +2 -0
  338. package/dist/runtime/shared/helpers/process-tuple-schema.js +32 -0
  339. package/dist/runtime/shared/types/system-types.d.ts +55 -0
  340. package/dist/runtime/shared/types/system-types.js +54 -0
  341. package/package.json +41 -13
  342. package/dist/adapters/cfx/cfx-capabilities.d.ts +0 -16
  343. package/dist/adapters/cfx/cfx-capabilities.js +0 -70
  344. package/dist/adapters/cfx/cfx-platform.d.ts +0 -2
  345. package/dist/adapters/cfx/cfx-platform.js +0 -85
  346. package/dist/adapters/cfx/index.d.ts +0 -3
  347. package/dist/adapters/cfx/index.js +0 -3
  348. package/dist/adapters/cfx/runtime-profile.d.ts +0 -3
  349. package/dist/adapters/cfx/runtime-profile.js +0 -37
  350. package/dist/adapters/contracts/IPlatformCapabilities.d.ts +0 -79
  351. package/dist/adapters/contracts/IPlatformCapabilities.js +0 -27
  352. package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +0 -206
  353. package/dist/adapters/contracts/client/IPedAppearanceClient.js +0 -12
  354. package/dist/adapters/fivem/fivem-capabilities.d.ts +0 -18
  355. package/dist/adapters/fivem/fivem-capabilities.js +0 -61
  356. package/dist/adapters/fivem/fivem-engine-events.d.ts +0 -5
  357. package/dist/adapters/fivem/fivem-engine-events.js +0 -24
  358. package/dist/adapters/fivem/fivem-entity-server.d.ts +0 -26
  359. package/dist/adapters/fivem/fivem-entity-server.js +0 -87
  360. package/dist/adapters/fivem/fivem-exports.d.ts +0 -5
  361. package/dist/adapters/fivem/fivem-exports.js +0 -9
  362. package/dist/adapters/fivem/fivem-hasher.d.ts +0 -7
  363. package/dist/adapters/fivem/fivem-net-transport.d.ts +0 -1
  364. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +0 -34
  365. package/dist/adapters/fivem/fivem-ped-appearance-client.js +0 -79
  366. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +0 -14
  367. package/dist/adapters/fivem/fivem-ped-appearance-server.js +0 -22
  368. package/dist/adapters/fivem/fivem-ped-server.d.ts +0 -9
  369. package/dist/adapters/fivem/fivem-ped-server.js +0 -30
  370. package/dist/adapters/fivem/fivem-platform.d.ts +0 -5
  371. package/dist/adapters/fivem/fivem-platform.js +0 -74
  372. package/dist/adapters/fivem/fivem-player-server.d.ts +0 -24
  373. package/dist/adapters/fivem/fivem-player-server.js +0 -83
  374. package/dist/adapters/fivem/fivem-playerinfo.d.ts +0 -6
  375. package/dist/adapters/fivem/fivem-playerinfo.js +0 -10
  376. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +0 -5
  377. package/dist/adapters/fivem/fivem-resourceinfo.js +0 -24
  378. package/dist/adapters/fivem/fivem-tick.d.ts +0 -7
  379. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +0 -15
  380. package/dist/adapters/fivem/fivem-vehicle-server.js +0 -44
  381. package/dist/adapters/fivem/index.d.ts +0 -14
  382. package/dist/adapters/fivem/index.js +0 -16
  383. package/dist/adapters/fivem/transport/adapter.d.ts +0 -8
  384. package/dist/adapters/fivem/transport/adapter.js +0 -8
  385. package/dist/adapters/fivem/transport/fivem.events.d.ts +0 -8
  386. package/dist/adapters/fivem/transport/fivem.events.js +0 -36
  387. package/dist/adapters/fivem/transport/fivem.rpc.d.ts +0 -28
  388. package/dist/adapters/fivem/transport/fivem.rpc.js +0 -183
  389. package/dist/runtime/client/controllers/player-sync.controller.d.ts +0 -11
  390. package/dist/runtime/client/controllers/player-sync.controller.js +0 -51
  391. package/dist/runtime/client/player/player.d.ts +0 -262
  392. package/dist/runtime/client/player/player.js +0 -474
  393. package/dist/runtime/client/player/player.loader.d.ts +0 -1
  394. package/dist/runtime/client/player/player.loader.js +0 -18
  395. package/dist/runtime/server/helpers/process-tuple-schema.d.ts +0 -20
  396. package/dist/runtime/server/helpers/process-tuple-schema.js +0 -56
  397. /package/dist/adapters/{fivem/fivem-net-transport.js → contracts/client/spawn/types.js} +0 -0
@@ -1,4 +1,6 @@
1
+ import { loggers } from '../../../kernel/logger';
1
2
  import { BaseEntity } from '../../core/entity';
3
+ import { SYSTEM_EVENTS } from '../../shared/types/system-types';
2
4
  /**
3
5
  * Core-level representation of a connected player on the server.
4
6
  *
@@ -14,6 +16,7 @@ export class Player extends BaseEntity {
14
16
  session;
15
17
  adapters;
16
18
  _position;
19
+ _model;
17
20
  /**
18
21
  * Creates a new Player entity instance.
19
22
  * This is typically instantiated by the `PlayerService` upon connection.
@@ -28,10 +31,16 @@ export class Player extends BaseEntity {
28
31
  this._position = adapters.playerInfo.getPlayerPosition(session.clientID);
29
32
  }
30
33
  getHeading() {
31
- return this.adapters.entityServer.getHeading(this.clientID);
34
+ const ped = this.adapters.playerServer.getPed(this.clientID.toString());
35
+ if (!ped || ped === 0)
36
+ return 0;
37
+ return this.adapters.entityServer.getHeading(ped);
32
38
  }
33
39
  setHeading(heading) {
34
- this.adapters.entityServer.setHeading(this.clientID, heading);
40
+ const ped = this.adapters.playerServer.getPed(this.clientID.toString());
41
+ if (!ped || ped === 0)
42
+ return;
43
+ this.adapters.entityServer.setHeading(ped, heading);
35
44
  }
36
45
  getHandle() {
37
46
  return this.clientID;
@@ -118,7 +127,7 @@ export class Player extends BaseEntity {
118
127
  * @param type - Message type for styling
119
128
  */
120
129
  send(message, type = 'chat') {
121
- this.emit('core:chat:send', message, type);
130
+ this.emit(SYSTEM_EVENTS.chat.send, message, type);
122
131
  }
123
132
  // ─────────────────────────────────────────────────────────────────
124
133
  // Spawning / Teleporting
@@ -133,7 +142,13 @@ export class Player extends BaseEntity {
133
142
  * @param vector - The target coordinates (x, y, z).
134
143
  */
135
144
  teleport(vector) {
136
- this.emit('opencore:spawner:teleport', vector);
145
+ const request = { position: vector };
146
+ void Promise.resolve(this.adapters.playerLifecycle.teleport(this.clientID.toString(), request)).catch((error) => {
147
+ loggers.spawn.error('Failed to teleport player', {
148
+ clientID: this.clientID,
149
+ error: error instanceof Error ? error.message : String(error),
150
+ });
151
+ });
137
152
  }
138
153
  /**
139
154
  * Spawns the player at a position with a specific model.
@@ -142,7 +157,22 @@ export class Player extends BaseEntity {
142
157
  * @param model - The ped model to use (default from platform capabilities)
143
158
  */
144
159
  spawn(vector, model = this.adapters.defaultSpawnModel) {
145
- this.emit('opencore:spawner:spawn', { position: vector, model });
160
+ const request = { position: vector, model };
161
+ void Promise.resolve(this.adapters.playerLifecycle.spawn(this.clientID.toString(), request)).catch((error) => {
162
+ loggers.spawn.error('Failed to spawn player', {
163
+ clientID: this.clientID,
164
+ error: error instanceof Error ? error.message : String(error),
165
+ });
166
+ });
167
+ }
168
+ respawn(vector, model = this.adapters.defaultSpawnModel) {
169
+ const request = { position: vector, model };
170
+ void Promise.resolve(this.adapters.playerLifecycle.respawn(this.clientID.toString(), request)).catch((error) => {
171
+ loggers.spawn.error('Failed to respawn player', {
172
+ clientID: this.clientID,
173
+ error: error instanceof Error ? error.message : String(error),
174
+ });
175
+ });
146
176
  }
147
177
  // ─────────────────────────────────────────────────────────────────
148
178
  // Connection Management
@@ -158,33 +188,18 @@ export class Player extends BaseEntity {
158
188
  // ─────────────────────────────────────────────────────────────────
159
189
  // Dimension / Routing Bucket
160
190
  // ─────────────────────────────────────────────────────────────────
161
- /**
162
- * Sets the routing bucket (virtual world/dimension) for the player.
163
- * Players in different buckets cannot see or interact with each other.
164
- *
165
- * @param bucket - The bucket ID (0 is the default shared world).
166
- */
167
- setRoutingBucket(bucket) {
168
- this.adapters.playerServer.setRoutingBucket(this.clientID.toString(), bucket);
169
- this._dimension = bucket;
170
- }
171
- /**
172
- * Gets the current routing bucket.
173
- */
174
- getRoutingBucket() {
175
- return this.adapters.playerServer.getRoutingBucket(this.clientID.toString());
176
- }
177
191
  /**
178
192
  * Sets the player dimension (alias for setRoutingBucket).
179
193
  */
180
194
  set dimension(value) {
181
- this.setRoutingBucket(value);
195
+ this.adapters.playerServer.setDimension(this.clientID.toString(), value);
196
+ this._dimension = value;
182
197
  }
183
198
  /**
184
199
  * Gets the player dimension (alias for getRoutingBucket).
185
200
  */
186
201
  get dimension() {
187
- return this.getRoutingBucket();
202
+ return this.adapters.playerServer.getDimension(this.clientID.toString());
188
203
  }
189
204
  // ─────────────────────────────────────────────────────────────────
190
205
  // Session Metadata (Transient)
@@ -276,8 +291,7 @@ export class Player extends BaseEntity {
276
291
  * Gets the current health of the player's ped.
277
292
  */
278
293
  getHealth() {
279
- const ped = this.adapters.playerServer.getPed(this.clientID.toString());
280
- return this.adapters.entityServer.getHealth(ped);
294
+ return this.adapters.playerStateSync.getHealth(this.clientID.toString());
281
295
  }
282
296
  /**
283
297
  * Sets the health of the player's ped.
@@ -285,15 +299,13 @@ export class Player extends BaseEntity {
285
299
  * @param health - Health value to set (platform-specific range).
286
300
  */
287
301
  setHealth(health) {
288
- const ped = this.adapters.playerServer.getPed(this.clientID.toString());
289
- this.adapters.entityServer.setHealth(ped, health);
302
+ this.adapters.playerStateSync.setHealth(this.clientID.toString(), health);
290
303
  }
291
304
  /**
292
305
  * Gets the current armor of the player's ped.
293
306
  */
294
307
  getArmor() {
295
- const ped = this.adapters.playerServer.getPed(this.clientID.toString());
296
- return this.adapters.entityServer.getArmor(ped);
308
+ return this.adapters.playerStateSync.getArmor(this.clientID.toString());
297
309
  }
298
310
  /**
299
311
  * Sets the armor of the player's ped.
@@ -301,8 +313,14 @@ export class Player extends BaseEntity {
301
313
  * @param armor - Armor value to set (typically 0-100).
302
314
  */
303
315
  setArmor(armor) {
304
- const ped = this.adapters.playerServer.getPed(this.clientID.toString());
305
- this.adapters.entityServer.setArmor(ped, armor);
316
+ this.adapters.playerStateSync.setArmor(this.clientID.toString(), armor);
317
+ }
318
+ get model() {
319
+ return this._model;
320
+ }
321
+ set model(model) {
322
+ this.adapters.playerServer.setModel(this.clientID.toString(), model);
323
+ this._model = model;
306
324
  }
307
325
  /**
308
326
  * Kills the player by setting health to 0.
@@ -154,13 +154,13 @@ export class Vehicle extends BaseEntity {
154
154
  if (!this.exists) {
155
155
  return this.session.routingBucket;
156
156
  }
157
- return this.adapters.entityServer.getRoutingBucket(this.session.handle);
157
+ return this.adapters.entityServer.getDimension(this.session.handle);
158
158
  }
159
159
  /** Sets routing bucket and updates local dimension snapshot. */
160
160
  setRoutingBucket(bucket) {
161
161
  if (!this.exists)
162
162
  return;
163
- this.adapters.entityServer.setRoutingBucket(this.session.handle, bucket);
163
+ this.adapters.entityServer.setDimension(this.session.handle, bucket);
164
164
  this.session.routingBucket = bucket;
165
165
  this._dimension = bucket;
166
166
  }
@@ -1,5 +1,13 @@
1
+ import { GLOBAL_CONTAINER } from '../../kernel/di/container';
1
2
  import { AppError, isAppError } from '../../kernel/error/app.error';
2
3
  import { loggers } from '../../kernel/logger';
4
+ import { EventsAPI } from '../../adapters/contracts/transport/events.api';
5
+ function getServerEvents() {
6
+ if (!GLOBAL_CONTAINER.isRegistered(EventsAPI)) {
7
+ return null;
8
+ }
9
+ return GLOBAL_CONTAINER.resolve(EventsAPI);
10
+ }
3
11
  function normalizeError(error, origin) {
4
12
  if (isAppError(error)) {
5
13
  return error;
@@ -21,16 +29,19 @@ export function handleCommandError(error, meta, playerId) {
21
29
  details: appError.details,
22
30
  });
23
31
  if (playerId !== null) {
32
+ const events = getServerEvents();
33
+ if (!events)
34
+ return;
24
35
  switch (appError.code) {
25
36
  case 'ECONOMY:INSUFFICIENT_FUNDS':
26
37
  case 'AUTH:PERMISSION_DENIED':
27
38
  case 'AUTH:UNAUTHORIZED':
28
- emitNet('chat:addMessage', playerId, {
39
+ events.emit('chat:addMessage', playerId, {
29
40
  args: ['^1Error', appError.message],
30
41
  });
31
42
  break;
32
43
  default:
33
- emitNet('chat:addMessage', playerId, {
44
+ events.emit('chat:addMessage', playerId, {
34
45
  args: ['^1Error', 'Ha ocurrido un error interno.'],
35
46
  });
36
47
  break;
@@ -1,20 +1,24 @@
1
1
  import z from 'zod';
2
2
  import { AppError } from '../../../kernel';
3
3
  import { generateSchemaFromTypes } from '../system/schema-generator';
4
- import { processTupleSchema } from './process-tuple-schema';
4
+ import { processTupleSchema } from '../../shared/helpers/process-tuple-schema';
5
5
  export async function validateAndExecuteCommand(meta, player, args, handler) {
6
6
  const paramNames = meta.expectsPlayer ? meta.paramNames.slice(1) : meta.paramNames;
7
+ const defaultParams = meta.expectsPlayer
8
+ ? (meta.defaultParams ?? []).slice(1)
9
+ : (meta.defaultParams ?? []);
7
10
  let schema = meta.schema;
8
11
  if (!meta.expectsPlayer) {
9
12
  if (args.length > 0) {
10
- throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${meta.usage}`, 'client', {
11
- usage: meta.usage,
13
+ const usage = resolveCommandUsage(meta, paramNames, defaultParams);
14
+ throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${usage}`, 'client', {
15
+ usage,
12
16
  });
13
17
  }
14
18
  return await handler();
15
19
  }
16
20
  if (!schema) {
17
- schema = generateSchemaFromTypes(meta.paramTypes);
21
+ schema = generateSchemaFromTypes(meta.paramTypes, meta.defaultParams);
18
22
  if (!schema) {
19
23
  if (paramNames.length > 0) {
20
24
  throw new AppError('SCHEMA:MISMATCH', `Command '${meta.command}' has parameters ${paramNames.join(', ')} but no schema was provided.`, 'core');
@@ -39,8 +43,9 @@ export async function validateAndExecuteCommand(meta, player, args, handler) {
39
43
  inputObj[paramNames[i]] = args[i];
40
44
  }
41
45
  const validated = await schema.parseAsync(inputObj).catch(() => {
42
- throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${meta.usage}`, 'client', {
43
- usage: meta.usage,
46
+ const usage = resolveCommandUsage(meta, paramNames, defaultParams);
47
+ throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${usage}`, 'client', {
48
+ usage,
44
49
  });
45
50
  });
46
51
  const obj = validated;
@@ -51,8 +56,9 @@ export async function validateAndExecuteCommand(meta, player, args, handler) {
51
56
  if (schema instanceof z.ZodTuple) {
52
57
  const processedArgs = processTupleSchema(schema, args);
53
58
  const validated = await schema.parseAsync(processedArgs).catch(() => {
54
- throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${meta.usage}`, 'client', {
55
- usage: meta.usage,
59
+ const usage = resolveCommandUsage(meta, paramNames, defaultParams);
60
+ throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${usage}`, 'client', {
61
+ usage,
56
62
  });
57
63
  });
58
64
  const finalArgs = validated;
@@ -71,3 +77,10 @@ export async function validateAndExecuteCommand(meta, player, args, handler) {
71
77
  // fallback
72
78
  return await handler(player);
73
79
  }
80
+ function resolveCommandUsage(meta, paramNames, defaultParams) {
81
+ if (meta.usage?.trim()) {
82
+ return meta.usage;
83
+ }
84
+ const renderedParams = paramNames.map((name, index) => defaultParams[index] ? `[${name}]` : `<${name}>`);
85
+ return `/${meta.command}${renderedParams.length > 0 ? ` ${renderedParams.join(' ')}` : ''}`;
86
+ }
@@ -1,4 +1,5 @@
1
1
  export declare function getParameterNames(func: (...args: any[]) => any): string[];
2
+ export declare function getDefaultParameterIndices(func: (...args: any[]) => any): boolean[];
2
3
  /**
3
4
  * Detects which parameter indices use the spread operator (...args).
4
5
  * Returns an array of booleans where true means the parameter at that index is a spread parameter.
@@ -1,14 +1,10 @@
1
1
  export function getParameterNames(func) {
2
- const stripped = func
3
- .toString()
4
- .replace(/\/\/.*$/gm, '')
5
- .replace(/\/\*[\s\S]*?\*\//gm, '');
6
- const args = stripped
7
- .slice(stripped.indexOf('(') + 1, stripped.indexOf(')'))
8
- .split(',')
2
+ return parseParameterTokens(func)
9
3
  .map((arg) => arg.replace(/=[\s\S]*/, '').trim())
10
4
  .filter(Boolean);
11
- return args;
5
+ }
6
+ export function getDefaultParameterIndices(func) {
7
+ return parseParameterTokens(func).map((arg) => arg.includes('='));
12
8
  }
13
9
  /**
14
10
  * Detects which parameter indices use the spread operator (...args).
@@ -26,3 +22,14 @@ export function getSpreadParameterIndices(func) {
26
22
  .filter(Boolean);
27
23
  return args.map((arg) => arg.startsWith('...'));
28
24
  }
25
+ function parseParameterTokens(func) {
26
+ const stripped = func
27
+ .toString()
28
+ .replace(/\/\/.*$/gm, '')
29
+ .replace(/\/\*[\s\S]*?\*\//gm, '');
30
+ return stripped
31
+ .slice(stripped.indexOf('(') + 1, stripped.indexOf(')'))
32
+ .split(',')
33
+ .map((arg) => arg.trim())
34
+ .filter(Boolean);
35
+ }
@@ -1,5 +1,5 @@
1
1
  import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
2
- import { RGB } from 'src/kernel';
2
+ import { RGB } from '../../../../kernel/utils';
3
3
  import { Player } from '../../entities';
4
4
  import { Channels } from '../../ports/channel.api-port';
5
5
  import { IChannelValidator, ChannelMetadata, ChannelType } from '../../types';
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
14
14
  import { inject, injectable } from 'tsyringe';
15
+ import { SYSTEM_EVENTS } from '../../../shared/types/system-types';
15
16
  import { Channels } from '../../ports/channel.api-port';
16
17
  import { ChannelType } from '../../types';
17
18
  import { Players } from '../../ports/players.api-port';
@@ -96,7 +97,7 @@ let LocalChannelImplementation = class LocalChannelImplementation extends Channe
96
97
  if (targetIds.length === 0) {
97
98
  return;
98
99
  }
99
- this.events.emit('core:chat:addMessage', targetIds, {
100
+ this.events.emit(SYSTEM_EVENTS.chat.addMessage, targetIds, {
100
101
  args: [author ?? sender.name, message],
101
102
  color: color,
102
103
  });
@@ -111,7 +112,7 @@ let LocalChannelImplementation = class LocalChannelImplementation extends Channe
111
112
  if (targetIds.length === 0) {
112
113
  return;
113
114
  }
114
- this.events.emit('core:chat:addMessage', targetIds, {
115
+ this.events.emit(SYSTEM_EVENTS.chat.addMessage, targetIds, {
115
116
  args: [author, message],
116
117
  color: color,
117
118
  });
@@ -1,7 +1,9 @@
1
1
  import { IPlayerInfo } from '../../../../adapters';
2
- import { IPlatformCapabilities } from '../../../../adapters/contracts/IPlatformCapabilities';
2
+ import { IPlatformContext } from '../../../../adapters/contracts/IPlatformContext';
3
3
  import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
4
4
  import { IEntityServer } from '../../../../adapters/contracts/server/IEntityServer';
5
+ import { IPlayerLifecycleServer } from '../../../../adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer';
6
+ import { IPlayerStateSyncServer } from '../../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
5
7
  import { IPlayerServer } from '../../../../adapters/contracts/server/IPlayerServer';
6
8
  import { WorldContext } from '../../../core/world';
7
9
  import { Player } from '../../entities';
@@ -22,11 +24,13 @@ export declare class LocalPlayerImplementation implements Players, PlayerSession
22
24
  private readonly world;
23
25
  private readonly playerInfo;
24
26
  private readonly playerServer;
27
+ private readonly playerLifecycle;
28
+ private readonly playerStateSync;
25
29
  private readonly entityServer;
26
30
  private readonly events;
27
- private readonly platformCapabilities;
31
+ private readonly platformContext;
28
32
  private readonly playerAdapters;
29
- constructor(world: WorldContext, playerInfo: IPlayerInfo, playerServer: IPlayerServer, entityServer: IEntityServer, events: EventsAPI<'server'>, platformCapabilities: IPlatformCapabilities);
33
+ constructor(world: WorldContext, playerInfo: IPlayerInfo, playerServer: IPlayerServer, playerLifecycle: IPlayerLifecycleServer, playerStateSync: IPlayerStateSyncServer, entityServer: IEntityServer, events: EventsAPI<'server'>, platformContext: IPlatformContext);
30
34
  private isPlayer;
31
35
  /**
32
36
  * Initializes a new player session for a connecting client.
@@ -12,13 +12,15 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  import { inject, injectable } from 'tsyringe';
14
14
  import { IPlayerInfo } from '../../../../adapters';
15
- import { IPlatformCapabilities } from '../../../../adapters/contracts/IPlatformCapabilities';
15
+ import { IPlatformContext } from '../../../../adapters/contracts/IPlatformContext';
16
16
  import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
17
17
  import { IEntityServer } from '../../../../adapters/contracts/server/IEntityServer';
18
+ import { IPlayerLifecycleServer } from '../../../../adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer';
19
+ import { IPlayerStateSyncServer } from '../../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
18
20
  import { IPlayerServer } from '../../../../adapters/contracts/server/IPlayerServer';
19
21
  import { loggers } from '../../../../kernel/logger';
20
22
  import { WorldContext } from '../../../core/world';
21
- import { Player } from '../../entities';
23
+ import { createLocalServerPlayer } from '../../adapter/registry';
22
24
  /**
23
25
  * Service responsible for managing the lifecycle of player sessions.
24
26
  * It acts as the central registry for all connected players, mapping FiveM client IDs
@@ -32,21 +34,27 @@ let LocalPlayerImplementation = class LocalPlayerImplementation {
32
34
  world;
33
35
  playerInfo;
34
36
  playerServer;
37
+ playerLifecycle;
38
+ playerStateSync;
35
39
  entityServer;
36
40
  events;
37
- platformCapabilities;
41
+ platformContext;
38
42
  playerAdapters;
39
- constructor(world, playerInfo, playerServer, entityServer, events, platformCapabilities) {
43
+ constructor(world, playerInfo, playerServer, playerLifecycle, playerStateSync, entityServer, events, platformContext) {
40
44
  this.world = world;
41
45
  this.playerInfo = playerInfo;
42
46
  this.playerServer = playerServer;
47
+ this.playerLifecycle = playerLifecycle;
48
+ this.playerStateSync = playerStateSync;
43
49
  this.entityServer = entityServer;
44
50
  this.events = events;
45
- this.platformCapabilities = platformCapabilities;
46
- const defaultSpawnModel = this.platformCapabilities.getConfig('defaultSpawnModel') ?? 'mp_m_freemode_01';
51
+ this.platformContext = platformContext;
52
+ const defaultSpawnModel = this.platformContext.defaultSpawnModel;
47
53
  this.playerAdapters = {
48
54
  playerInfo: this.playerInfo,
49
55
  playerServer: this.playerServer,
56
+ playerLifecycle: this.playerLifecycle,
57
+ playerStateSync: this.playerStateSync,
50
58
  entityServer: this.entityServer,
51
59
  events: this.events,
52
60
  defaultSpawnModel,
@@ -71,7 +79,7 @@ let LocalPlayerImplementation = class LocalPlayerImplementation {
71
79
  identifiers,
72
80
  meta: {},
73
81
  };
74
- const player = new Player(session, this.playerAdapters);
82
+ const player = createLocalServerPlayer(session, this.playerAdapters);
75
83
  this.world.add(player);
76
84
  loggers.session.debug('Player session bound', {
77
85
  clientID,
@@ -191,14 +199,18 @@ LocalPlayerImplementation = __decorate([
191
199
  __param(0, inject(WorldContext)),
192
200
  __param(1, inject(IPlayerInfo)),
193
201
  __param(2, inject(IPlayerServer)),
194
- __param(3, inject(IEntityServer)),
195
- __param(4, inject(EventsAPI)),
196
- __param(5, inject(IPlatformCapabilities)),
202
+ __param(3, inject(IPlayerLifecycleServer)),
203
+ __param(4, inject(IPlayerStateSyncServer)),
204
+ __param(5, inject(IEntityServer)),
205
+ __param(6, inject(EventsAPI)),
206
+ __param(7, inject(IPlatformContext)),
197
207
  __metadata("design:paramtypes", [WorldContext,
198
208
  IPlayerInfo,
199
209
  IPlayerServer,
210
+ IPlayerLifecycleServer,
211
+ IPlayerStateSyncServer,
200
212
  IEntityServer,
201
213
  EventsAPI,
202
- IPlatformCapabilities])
214
+ IPlatformContext])
203
215
  ], LocalPlayerImplementation);
204
216
  export { LocalPlayerImplementation };
@@ -1,4 +1,5 @@
1
1
  import { IExports } from '../../../../adapters/contracts/IExports';
2
+ import { IResourceInfo } from '../../../../adapters/contracts/IResourceInfo';
2
3
  import { RGB } from '../../../../kernel/utils/rgb';
3
4
  import { Channel } from '../../concepts/channel';
4
5
  import { Player } from '../../entities/player';
@@ -21,7 +22,7 @@ export declare class RemoteChannelImplementation extends Channels {
21
22
  private exportsService;
22
23
  private readonly players;
23
24
  private resourceName;
24
- constructor(exportsService: IExports, players: Players);
25
+ constructor(exportsService: IExports, resourceInfo: IResourceInfo, players: Players);
25
26
  /**
26
27
  * Gets typed access to CORE resource exports.
27
28
  */
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  import { inject, injectable } from 'tsyringe';
14
14
  import { IExports } from '../../../../adapters/contracts/IExports';
15
+ import { IResourceInfo } from '../../../../adapters/contracts/IResourceInfo';
15
16
  import { loggers } from '../../../../kernel/logger';
16
17
  import { Channel } from '../../concepts/channel';
17
18
  import { getRuntimeContext } from '../../runtime';
@@ -34,11 +35,11 @@ let RemoteChannelImplementation = class RemoteChannelImplementation extends Chan
34
35
  exportsService;
35
36
  players;
36
37
  resourceName;
37
- constructor(exportsService, players) {
38
+ constructor(exportsService, resourceInfo, players) {
38
39
  super();
39
40
  this.exportsService = exportsService;
40
41
  this.players = players;
41
- this.resourceName = GetCurrentResourceName();
42
+ this.resourceName = resourceInfo.getCurrentResourceName();
42
43
  }
43
44
  /**
44
45
  * Gets typed access to CORE resource exports.
@@ -159,7 +160,9 @@ let RemoteChannelImplementation = class RemoteChannelImplementation extends Chan
159
160
  RemoteChannelImplementation = __decorate([
160
161
  injectable(),
161
162
  __param(0, inject(IExports)),
163
+ __param(1, inject(IResourceInfo)),
162
164
  __metadata("design:paramtypes", [IExports,
165
+ IResourceInfo,
163
166
  Players])
164
167
  ], RemoteChannelImplementation);
165
168
  export { RemoteChannelImplementation };
@@ -1,4 +1,5 @@
1
1
  import { IExports } from '../../../../adapters/contracts/IExports';
2
+ import { IResourceInfo } from '../../../../adapters/contracts/IResourceInfo';
2
3
  import { CommandMetadata } from '../../decorators/command';
3
4
  import { Player } from '../../entities';
4
5
  import { CommandExecutionPort, type CommandInfo } from '../../ports/internal/command-execution.port';
@@ -23,9 +24,10 @@ import { CommandExecutionPort, type CommandInfo } from '../../ports/internal/com
23
24
  */
24
25
  export declare class RemoteCommandImplementation extends CommandExecutionPort {
25
26
  private exportsService;
27
+ private readonly resourceInfo;
26
28
  private commands;
27
29
  getCommandMeta(commandName: string): CommandMetadata | undefined;
28
- constructor(exportsService: IExports);
30
+ constructor(exportsService: IExports, resourceInfo: IResourceInfo);
29
31
  /**
30
32
  * Gets typed access to CORE resource exports.
31
33
  */
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  import { inject, injectable } from 'tsyringe';
14
14
  import { IExports } from '../../../../adapters/contracts/IExports';
15
+ import { IResourceInfo } from '../../../../adapters/contracts/IResourceInfo';
15
16
  import { AppError } from '../../../../kernel/error/app.error';
16
17
  import { loggers } from '../../../../kernel/logger';
17
18
  import { validateAndExecuteCommand } from '../../helpers/command-validation.helper';
@@ -38,13 +39,15 @@ import { CommandExecutionPort } from '../../ports/internal/command-execution.por
38
39
  */
39
40
  let RemoteCommandImplementation = class RemoteCommandImplementation extends CommandExecutionPort {
40
41
  exportsService;
42
+ resourceInfo;
41
43
  commands = new Map();
42
44
  getCommandMeta(commandName) {
43
45
  return this.commands.get(commandName.toLowerCase())?.meta;
44
46
  }
45
- constructor(exportsService) {
47
+ constructor(exportsService, resourceInfo) {
46
48
  super();
47
49
  this.exportsService = exportsService;
50
+ this.resourceInfo = resourceInfo;
48
51
  }
49
52
  /**
50
53
  * Gets typed access to CORE resource exports.
@@ -68,7 +71,7 @@ let RemoteCommandImplementation = class RemoteCommandImplementation extends Comm
68
71
  */
69
72
  register(metadata, handler) {
70
73
  const commandKey = metadata.command.toLowerCase();
71
- const resourceName = GetCurrentResourceName();
74
+ const resourceName = this.resourceInfo.getCurrentResourceName();
72
75
  loggers.command.debug(`Registering command locally`, {
73
76
  command: metadata.command,
74
77
  resource: resourceName,
@@ -132,7 +135,7 @@ let RemoteCommandImplementation = class RemoteCommandImplementation extends Comm
132
135
  if (!entry) {
133
136
  loggers.command.error(`Handler not found for remote command: ${commandName}`, {
134
137
  command: commandName,
135
- resource: GetCurrentResourceName(),
138
+ resource: this.resourceInfo.getCurrentResourceName(),
136
139
  });
137
140
  throw new AppError('COMMAND:NOT_FOUND', `Command not found: ${commandName}`, 'server');
138
141
  }
@@ -149,6 +152,8 @@ let RemoteCommandImplementation = class RemoteCommandImplementation extends Comm
149
152
  RemoteCommandImplementation = __decorate([
150
153
  injectable(),
151
154
  __param(0, inject(IExports)),
152
- __metadata("design:paramtypes", [IExports])
155
+ __param(1, inject(IResourceInfo)),
156
+ __metadata("design:paramtypes", [IExports,
157
+ IResourceInfo])
153
158
  ], RemoteCommandImplementation);
154
159
  export { RemoteCommandImplementation };
@@ -1,7 +1,9 @@
1
1
  import { IExports, IPlayerInfo } from '../../../../adapters';
2
- import { IPlatformCapabilities } from '../../../../adapters/contracts/IPlatformCapabilities';
2
+ import { IPlatformContext } from '../../../../adapters/contracts/IPlatformContext';
3
3
  import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
4
4
  import { IEntityServer } from '../../../../adapters/contracts/server/IEntityServer';
5
+ import { IPlayerLifecycleServer } from '../../../../adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer';
6
+ import { IPlayerStateSyncServer } from '../../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
5
7
  import { IPlayerServer } from '../../../../adapters/contracts/server/IPlayerServer';
6
8
  import { Player } from '../../entities';
7
9
  import { Players } from '../../ports/players.api-port';
@@ -18,25 +20,20 @@ export declare class RemotePlayerImplementation extends Players {
18
20
  private readonly playerInfo;
19
21
  private readonly exportsService;
20
22
  private readonly playerServer;
23
+ private readonly playerLifecycle;
24
+ private readonly playerStateSync;
21
25
  private readonly entityServer;
22
26
  private readonly events;
23
- private readonly platformCapabilities;
27
+ private readonly platformContext;
24
28
  /**
25
29
  * Cached adapters bundle for Player instances
26
30
  */
27
31
  private readonly playerAdapters;
28
- constructor(playerInfo: IPlayerInfo, exportsService: IExports, playerServer: IPlayerServer, entityServer: IEntityServer, events: EventsAPI<'server'>, platformCapabilities: IPlatformCapabilities);
32
+ constructor(playerInfo: IPlayerInfo, exportsService: IExports, playerServer: IPlayerServer, playerLifecycle: IPlayerLifecycleServer, playerStateSync: IPlayerStateSyncServer, entityServer: IEntityServer, events: EventsAPI<'server'>, platformContext: IPlatformContext);
29
33
  /**
30
34
  * Gets typed access to CORE resource exports.
31
35
  */
32
36
  private get core();
33
- /**
34
- * Creates a local Player instance from serialized data.
35
- *
36
- * @remarks
37
- * The returned Player is hydrated with session data from CORE,
38
- * including accountID, identifiers, metadata, and states.
39
- */
40
37
  private createPlayerFromData;
41
38
  /**
42
39
  * Returns a Player instance with real session data from CORE.