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

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 (344) hide show
  1. package/dist/adapters/contracts/IEngineEvents.d.ts +3 -0
  2. package/dist/adapters/contracts/IEngineEvents.js +7 -0
  3. package/dist/adapters/contracts/IPlatformContext.d.ts +43 -0
  4. package/dist/adapters/contracts/IPlatformContext.js +8 -0
  5. package/dist/adapters/contracts/client/IClientLocalPlayerBridge.d.ts +4 -0
  6. package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +2 -0
  7. package/dist/adapters/contracts/client/IClientLogConsole.d.ts +13 -0
  8. package/dist/adapters/contracts/client/IClientLogConsole.js +2 -0
  9. package/dist/adapters/contracts/client/IClientPlatformBridge.d.ts +195 -0
  10. package/dist/adapters/contracts/client/IClientPlatformBridge.js +282 -0
  11. package/dist/adapters/contracts/client/IClientRuntimeBridge.d.ts +18 -0
  12. package/dist/adapters/contracts/client/IClientRuntimeBridge.js +14 -0
  13. package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.d.ts +26 -0
  14. package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.js +2 -0
  15. package/dist/adapters/contracts/client/index.d.ts +7 -0
  16. package/dist/adapters/contracts/client/index.js +7 -0
  17. package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.d.ts +7 -0
  18. package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +2 -0
  19. package/dist/adapters/contracts/client/spawn/index.d.ts +2 -0
  20. package/dist/adapters/contracts/client/spawn/index.js +2 -0
  21. package/dist/adapters/contracts/client/spawn/types.d.ts +14 -0
  22. package/dist/adapters/contracts/client/ui/IClientBlipBridge.d.ts +25 -0
  23. package/dist/adapters/contracts/client/ui/IClientBlipBridge.js +2 -0
  24. package/dist/adapters/contracts/client/ui/IClientMarkerBridge.d.ts +31 -0
  25. package/dist/adapters/contracts/client/ui/IClientMarkerBridge.js +2 -0
  26. package/dist/adapters/contracts/client/ui/IClientNotificationBridge.d.ts +21 -0
  27. package/dist/adapters/contracts/client/ui/IClientNotificationBridge.js +2 -0
  28. package/dist/adapters/contracts/client/ui/index.d.ts +4 -0
  29. package/dist/adapters/contracts/client/ui/index.js +4 -0
  30. package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.d.ts +13 -0
  31. package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.js +2 -0
  32. package/dist/adapters/contracts/client/ui/webview/index.d.ts +2 -0
  33. package/dist/adapters/contracts/client/ui/webview/index.js +2 -0
  34. package/dist/adapters/contracts/client/ui/webview/types.d.ts +25 -0
  35. package/dist/adapters/contracts/client/ui/webview/types.js +0 -0
  36. package/dist/adapters/contracts/index.d.ts +4 -2
  37. package/dist/adapters/contracts/index.js +4 -3
  38. package/dist/adapters/contracts/runtime/index.d.ts +1 -0
  39. package/dist/adapters/contracts/runtime/index.js +1 -0
  40. package/dist/adapters/contracts/runtime/runtime-events.d.ts +9 -0
  41. package/dist/adapters/contracts/runtime/runtime-events.js +7 -0
  42. package/dist/adapters/contracts/server/IEntityServer.d.ts +4 -28
  43. package/dist/adapters/contracts/server/IEntityServer.js +0 -26
  44. package/dist/adapters/contracts/server/IPlayerServer.d.ts +7 -26
  45. package/dist/adapters/contracts/server/IPlayerServer.js +0 -26
  46. package/dist/adapters/contracts/server/index.d.ts +10 -0
  47. package/dist/adapters/contracts/server/index.js +10 -0
  48. package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.d.ts +5 -0
  49. package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.js +2 -0
  50. package/dist/adapters/contracts/server/npc-lifecycle/index.d.ts +2 -0
  51. package/dist/adapters/contracts/server/npc-lifecycle/index.js +2 -0
  52. package/dist/adapters/contracts/server/npc-lifecycle/types.d.ts +17 -0
  53. package/dist/adapters/contracts/server/npc-lifecycle/types.js +0 -0
  54. package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.d.ts +11 -0
  55. package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.js +2 -0
  56. package/dist/adapters/contracts/server/player-appearance/index.d.ts +1 -0
  57. package/dist/adapters/contracts/server/player-appearance/index.js +1 -0
  58. package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.d.ts +6 -0
  59. package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.js +2 -0
  60. package/dist/adapters/contracts/server/player-lifecycle/index.d.ts +2 -0
  61. package/dist/adapters/contracts/server/player-lifecycle/index.js +2 -0
  62. package/dist/adapters/contracts/server/player-lifecycle/types.d.ts +17 -0
  63. package/dist/adapters/contracts/server/player-lifecycle/types.js +0 -0
  64. package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.d.ts +6 -0
  65. package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.js +2 -0
  66. package/dist/adapters/contracts/server/player-state/index.d.ts +1 -0
  67. package/dist/adapters/contracts/server/player-state/index.js +1 -0
  68. package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.d.ts +5 -0
  69. package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.js +2 -0
  70. package/dist/adapters/contracts/server/vehicle-lifecycle/index.d.ts +2 -0
  71. package/dist/adapters/contracts/server/vehicle-lifecycle/index.js +2 -0
  72. package/dist/adapters/contracts/server/vehicle-lifecycle/types.d.ts +16 -0
  73. package/dist/adapters/contracts/server/vehicle-lifecycle/types.js +0 -0
  74. package/dist/adapters/contracts/transport/index.d.ts +4 -0
  75. package/dist/adapters/contracts/transport/index.js +4 -0
  76. package/dist/adapters/index.d.ts +3 -14
  77. package/dist/adapters/index.js +3 -20
  78. package/dist/adapters/node/node-capabilities.d.ts +11 -11
  79. package/dist/adapters/node/node-capabilities.js +15 -27
  80. package/dist/adapters/node/node-engine-events.d.ts +1 -1
  81. package/dist/adapters/node/node-engine-events.js +2 -1
  82. package/dist/adapters/node/node-entity-server.d.ts +2 -2
  83. package/dist/adapters/node/node-entity-server.js +2 -2
  84. package/dist/adapters/node/node-ped-appearance-client.d.ts +2 -2
  85. package/dist/adapters/node/node-ped-appearance-client.js +2 -2
  86. package/dist/adapters/node/node-platform.js +4 -4
  87. package/dist/adapters/node/node-player-server.d.ts +3 -2
  88. package/dist/adapters/node/node-player-server.js +8 -2
  89. package/dist/adapters/register-capabilities.d.ts +1 -1
  90. package/dist/adapters/register-capabilities.js +1 -3
  91. package/dist/adapters/register-client-capabilities.d.ts +3 -2
  92. package/dist/adapters/register-client-capabilities.js +16 -41
  93. package/dist/contracts/client.d.ts +5 -0
  94. package/dist/contracts/client.js +5 -0
  95. package/dist/contracts/server.d.ts +19 -0
  96. package/dist/contracts/server.js +19 -0
  97. package/dist/contracts.d.ts +4 -0
  98. package/dist/contracts.js +4 -0
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.js +1 -1
  101. package/dist/kernel/logger/client-log-console.d.ts +4 -0
  102. package/dist/kernel/logger/client-log-console.js +43 -0
  103. package/dist/kernel/logger/core-logger.d.ts +3 -1
  104. package/dist/kernel/logger/core-logger.js +4 -2
  105. package/dist/kernel/logger/index.d.ts +2 -0
  106. package/dist/kernel/logger/index.js +1 -0
  107. package/dist/kernel/logger/transports/dev-transport.factory.js +1 -1
  108. package/dist/kernel/logger/transports/simple-console.transport.js +13 -8
  109. package/dist/kernel-public.d.ts +1 -0
  110. package/dist/kernel-public.js +1 -0
  111. package/dist/runtime/client/adapter/client-adapter.d.ts +25 -0
  112. package/dist/runtime/client/adapter/client-adapter.js +11 -0
  113. package/dist/runtime/client/adapter/index.d.ts +15 -0
  114. package/dist/runtime/client/adapter/index.js +15 -0
  115. package/dist/runtime/client/adapter/local-player-bridge.d.ts +1 -0
  116. package/dist/runtime/client/adapter/local-player-bridge.js +1 -0
  117. package/dist/runtime/client/adapter/node-blip-bridge.d.ts +9 -0
  118. package/dist/runtime/client/adapter/node-blip-bridge.js +34 -0
  119. package/dist/runtime/client/adapter/node-client-adapter.d.ts +5 -0
  120. package/dist/runtime/client/adapter/node-client-adapter.js +50 -0
  121. package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +8 -0
  122. package/dist/{adapters/fivem/fivem-hasher.js → runtime/client/adapter/node-local-player-bridge.js} +7 -9
  123. package/dist/runtime/client/adapter/node-log-console.d.ts +11 -0
  124. package/dist/runtime/client/adapter/node-log-console.js +48 -0
  125. package/dist/runtime/client/adapter/node-marker-bridge.d.ts +10 -0
  126. package/dist/runtime/client/adapter/node-marker-bridge.js +35 -0
  127. package/dist/runtime/client/adapter/node-notification-bridge.d.ts +5 -0
  128. package/dist/runtime/client/adapter/node-notification-bridge.js +16 -0
  129. package/dist/runtime/client/adapter/node-platform-bridge.d.ts +3 -0
  130. package/dist/{adapters/fivem/fivem-tick.js → runtime/client/adapter/node-platform-bridge.js} +5 -10
  131. package/dist/runtime/client/adapter/node-runtime-bridge.d.ts +24 -0
  132. package/dist/runtime/client/adapter/node-runtime-bridge.js +58 -0
  133. package/dist/runtime/client/adapter/node-spawn-bridge.d.ts +8 -0
  134. package/dist/runtime/client/adapter/node-spawn-bridge.js +18 -0
  135. package/dist/runtime/client/adapter/node-webview-bridge.d.ts +15 -0
  136. package/dist/runtime/client/adapter/node-webview-bridge.js +43 -0
  137. package/dist/runtime/client/adapter/platform-bridge.d.ts +1 -0
  138. package/dist/runtime/client/adapter/platform-bridge.js +1 -0
  139. package/dist/runtime/client/adapter/registry.d.ts +9 -0
  140. package/dist/runtime/client/adapter/registry.js +85 -0
  141. package/dist/runtime/client/adapter/runtime-bridge.d.ts +1 -0
  142. package/dist/runtime/client/adapter/runtime-bridge.js +1 -0
  143. package/dist/runtime/client/api.d.ts +2 -1
  144. package/dist/runtime/client/api.js +2 -1
  145. package/dist/runtime/client/client-bootstrap.js +51 -44
  146. package/dist/runtime/client/client-core.d.ts +2 -0
  147. package/dist/runtime/client/client-core.js +9 -0
  148. package/dist/runtime/client/client-runtime.d.ts +3 -0
  149. package/dist/runtime/client/client-runtime.js +3 -0
  150. package/dist/runtime/client/controllers/appearance.controller.d.ts +3 -1
  151. package/dist/runtime/client/controllers/appearance.controller.js +14 -4
  152. package/dist/runtime/client/controllers/spawner.controller.js +2 -0
  153. package/dist/runtime/client/decorators/controller.js +2 -10
  154. package/dist/runtime/client/decorators/onView.d.ts +3 -3
  155. package/dist/runtime/client/decorators/onView.js +3 -3
  156. package/dist/runtime/client/index.d.ts +1 -0
  157. package/dist/runtime/client/index.js +1 -0
  158. package/dist/runtime/client/library/create-client-library.js +9 -1
  159. package/dist/runtime/client/services/appearance.service.d.ts +2 -2
  160. package/dist/runtime/client/services/appearance.service.js +7 -4
  161. package/dist/runtime/client/services/blip.service.d.ts +6 -93
  162. package/dist/runtime/client/services/blip.service.js +58 -153
  163. package/dist/runtime/client/services/camera-effects.registry.d.ts +3 -0
  164. package/dist/runtime/client/services/camera-effects.registry.js +20 -7
  165. package/dist/runtime/client/services/camera.d.ts +3 -83
  166. package/dist/runtime/client/services/camera.js +37 -93
  167. package/dist/runtime/client/services/cinematic.d.ts +5 -1
  168. package/dist/runtime/client/services/cinematic.js +45 -30
  169. package/dist/runtime/client/services/index.d.ts +1 -0
  170. package/dist/runtime/client/services/index.js +1 -0
  171. package/dist/runtime/client/services/marker.service.d.ts +12 -63
  172. package/dist/runtime/client/services/marker.service.js +62 -97
  173. package/dist/runtime/client/services/notification.service.d.ts +6 -57
  174. package/dist/runtime/client/services/notification.service.js +43 -81
  175. package/dist/runtime/client/services/ped.service.d.ts +3 -130
  176. package/dist/runtime/client/services/ped.service.js +66 -198
  177. package/dist/runtime/client/services/progress.service.d.ts +5 -30
  178. package/dist/runtime/client/services/progress.service.js +73 -99
  179. package/dist/runtime/client/services/session-bridge.service.d.ts +15 -0
  180. package/dist/runtime/client/services/session-bridge.service.js +61 -0
  181. package/dist/runtime/client/services/spawn.service.d.ts +6 -56
  182. package/dist/runtime/client/services/spawn.service.js +34 -191
  183. package/dist/runtime/client/services/streaming.service.d.ts +5 -126
  184. package/dist/runtime/client/services/streaming.service.js +72 -217
  185. package/dist/runtime/client/services/textui.service.d.ts +5 -45
  186. package/dist/runtime/client/services/textui.service.js +55 -88
  187. package/dist/runtime/client/services/vehicle-client.service.d.ts +12 -149
  188. package/dist/runtime/client/services/vehicle-client.service.js +180 -326
  189. package/dist/runtime/client/services/vehicle.service.d.ts +3 -109
  190. package/dist/runtime/client/services/vehicle.service.js +94 -194
  191. package/dist/runtime/client/system/processors/export.processor.d.ts +3 -0
  192. package/dist/runtime/client/system/processors/export.processor.js +16 -3
  193. package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +3 -0
  194. package/dist/runtime/client/system/processors/gameEvent.processor.js +16 -3
  195. package/dist/runtime/client/system/processors/interval.processor.d.ts +3 -0
  196. package/dist/runtime/client/system/processors/interval.processor.js +17 -4
  197. package/dist/runtime/client/system/processors/key.processor.d.ts +3 -0
  198. package/dist/runtime/client/system/processors/key.processor.js +18 -5
  199. package/dist/runtime/client/system/processors/localEvent.processor.d.ts +3 -0
  200. package/dist/runtime/client/system/processors/localEvent.processor.js +16 -3
  201. package/dist/runtime/client/system/processors/netEvent.processor.d.ts +3 -0
  202. package/dist/runtime/client/system/processors/netEvent.processor.js +16 -3
  203. package/dist/runtime/client/system/processors/onRpc.processor.js +1 -1
  204. package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +5 -0
  205. package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +26 -7
  206. package/dist/runtime/client/system/processors/tick.processor.d.ts +3 -0
  207. package/dist/runtime/client/system/processors/tick.processor.js +16 -3
  208. package/dist/runtime/client/system/processors/view.processor.d.ts +3 -0
  209. package/dist/runtime/client/system/processors/view.processor.js +21 -10
  210. package/dist/runtime/client/system/processors.register.d.ts +1 -0
  211. package/dist/runtime/client/system/processors.register.js +8 -0
  212. package/dist/runtime/client/ui-bridge.d.ts +2 -114
  213. package/dist/runtime/client/ui-bridge.js +2 -194
  214. package/dist/runtime/client/webview-bridge.d.ts +31 -0
  215. package/dist/runtime/client/webview-bridge.js +97 -0
  216. package/dist/runtime/client/webview.service.d.ts +14 -0
  217. package/dist/runtime/client/webview.service.js +98 -0
  218. package/dist/runtime/server/adapter/index.d.ts +5 -0
  219. package/dist/runtime/server/adapter/index.js +5 -0
  220. package/dist/runtime/server/adapter/node-npc-lifecycle-server.d.ts +12 -0
  221. package/dist/runtime/server/adapter/node-npc-lifecycle-server.js +52 -0
  222. package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.d.ts +22 -0
  223. package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.js +94 -0
  224. package/dist/runtime/server/adapter/node-player-lifecycle-server.d.ts +11 -0
  225. package/dist/runtime/server/adapter/node-player-lifecycle-server.js +55 -0
  226. package/dist/runtime/server/adapter/node-player-state-sync-server.d.ts +12 -0
  227. package/dist/runtime/server/adapter/node-player-state-sync-server.js +49 -0
  228. package/dist/runtime/server/adapter/node-server-adapter.d.ts +5 -0
  229. package/dist/runtime/server/adapter/node-server-adapter.js +67 -0
  230. package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.d.ts +13 -0
  231. package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.js +57 -0
  232. package/dist/runtime/server/adapter/player-adapter.d.ts +28 -0
  233. package/dist/runtime/server/adapter/player-adapter.js +28 -0
  234. package/dist/runtime/server/adapter/registry.d.ts +26 -0
  235. package/dist/runtime/server/adapter/registry.js +101 -0
  236. package/dist/runtime/server/adapter/serialization.d.ts +6 -0
  237. package/dist/runtime/server/adapter/serialization.js +9 -0
  238. package/dist/runtime/server/adapter/server-adapter.d.ts +28 -0
  239. package/dist/runtime/server/adapter/server-adapter.js +14 -0
  240. package/dist/runtime/server/api.d.ts +2 -1
  241. package/dist/runtime/server/api.js +2 -1
  242. package/dist/runtime/server/apis/appearance.api.d.ts +5 -3
  243. package/dist/runtime/server/apis/appearance.api.js +20 -7
  244. package/dist/runtime/server/apis/npcs.api.d.ts +3 -4
  245. package/dist/runtime/server/apis/npcs.api.js +26 -56
  246. package/dist/runtime/server/apis/vehicle-modification.api.d.ts +3 -1
  247. package/dist/runtime/server/apis/vehicle-modification.api.js +9 -4
  248. package/dist/runtime/server/apis/vehicles.api.d.ts +12 -6
  249. package/dist/runtime/server/apis/vehicles.api.js +48 -36
  250. package/dist/runtime/server/bootstrap.js +15 -7
  251. package/dist/runtime/server/controllers/channel.controller.js +2 -1
  252. package/dist/runtime/server/controllers/command-export.controller.js +1 -1
  253. package/dist/runtime/server/controllers/player-export.controller.js +5 -4
  254. package/dist/runtime/server/controllers/session.controller.js +3 -2
  255. package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -1
  256. package/dist/runtime/server/controllers/vehicle.controller.js +10 -5
  257. package/dist/runtime/server/core.d.ts +2 -0
  258. package/dist/runtime/server/core.js +9 -1
  259. package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +2 -1
  260. package/dist/runtime/server/entities/npc.d.ts +2 -0
  261. package/dist/runtime/server/entities/npc.js +3 -3
  262. package/dist/runtime/server/entities/player.d.ts +8 -11
  263. package/dist/runtime/server/entities/player.js +39 -28
  264. package/dist/runtime/server/entities/vehicle.js +2 -2
  265. package/dist/runtime/server/error-handler.js +13 -2
  266. package/dist/runtime/server/helpers/command-validation.helper.js +1 -1
  267. package/dist/runtime/server/implementations/local/player.local.d.ts +7 -3
  268. package/dist/runtime/server/implementations/local/player.local.js +23 -11
  269. package/dist/runtime/server/implementations/remote/channel.remote.d.ts +2 -1
  270. package/dist/runtime/server/implementations/remote/channel.remote.js +5 -2
  271. package/dist/runtime/server/implementations/remote/command.remote.d.ts +3 -1
  272. package/dist/runtime/server/implementations/remote/command.remote.js +9 -4
  273. package/dist/runtime/server/implementations/remote/player.remote.d.ts +7 -10
  274. package/dist/runtime/server/implementations/remote/player.remote.js +24 -29
  275. package/dist/runtime/server/library/create-server-library.js +17 -2
  276. package/dist/runtime/server/runtime.d.ts +3 -0
  277. package/dist/runtime/server/runtime.js +1 -15
  278. package/dist/runtime/server/services/appearance.service.d.ts +0 -95
  279. package/dist/runtime/server/services/appearance.service.js +15 -192
  280. package/dist/runtime/server/services/services.register.js +56 -24
  281. package/dist/runtime/server/system/processors/netEvent.processor.js +1 -1
  282. package/dist/runtime/server/system/processors/onRpc.processor.js +1 -1
  283. package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +2 -1
  284. package/dist/runtime/server/system/processors/runtimeEvent.processor.js +1 -1
  285. package/dist/runtime/server/types/core-exports.types.d.ts +5 -0
  286. package/dist/runtime/shared/helpers/process-tuple-schema.d.ts +2 -0
  287. package/dist/runtime/shared/helpers/process-tuple-schema.js +29 -0
  288. package/package.json +21 -3
  289. package/dist/adapters/cfx/cfx-capabilities.d.ts +0 -16
  290. package/dist/adapters/cfx/cfx-capabilities.js +0 -70
  291. package/dist/adapters/cfx/cfx-platform.d.ts +0 -2
  292. package/dist/adapters/cfx/cfx-platform.js +0 -85
  293. package/dist/adapters/cfx/index.d.ts +0 -3
  294. package/dist/adapters/cfx/index.js +0 -3
  295. package/dist/adapters/cfx/runtime-profile.d.ts +0 -3
  296. package/dist/adapters/cfx/runtime-profile.js +0 -37
  297. package/dist/adapters/contracts/IPlatformCapabilities.d.ts +0 -79
  298. package/dist/adapters/contracts/IPlatformCapabilities.js +0 -27
  299. package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +0 -206
  300. package/dist/adapters/contracts/client/IPedAppearanceClient.js +0 -12
  301. package/dist/adapters/fivem/fivem-capabilities.d.ts +0 -18
  302. package/dist/adapters/fivem/fivem-capabilities.js +0 -61
  303. package/dist/adapters/fivem/fivem-engine-events.d.ts +0 -5
  304. package/dist/adapters/fivem/fivem-engine-events.js +0 -24
  305. package/dist/adapters/fivem/fivem-entity-server.d.ts +0 -26
  306. package/dist/adapters/fivem/fivem-entity-server.js +0 -87
  307. package/dist/adapters/fivem/fivem-exports.d.ts +0 -5
  308. package/dist/adapters/fivem/fivem-exports.js +0 -9
  309. package/dist/adapters/fivem/fivem-hasher.d.ts +0 -7
  310. package/dist/adapters/fivem/fivem-net-transport.d.ts +0 -1
  311. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +0 -34
  312. package/dist/adapters/fivem/fivem-ped-appearance-client.js +0 -79
  313. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +0 -14
  314. package/dist/adapters/fivem/fivem-ped-appearance-server.js +0 -22
  315. package/dist/adapters/fivem/fivem-ped-server.d.ts +0 -9
  316. package/dist/adapters/fivem/fivem-ped-server.js +0 -30
  317. package/dist/adapters/fivem/fivem-platform.d.ts +0 -5
  318. package/dist/adapters/fivem/fivem-platform.js +0 -74
  319. package/dist/adapters/fivem/fivem-player-server.d.ts +0 -24
  320. package/dist/adapters/fivem/fivem-player-server.js +0 -83
  321. package/dist/adapters/fivem/fivem-playerinfo.d.ts +0 -6
  322. package/dist/adapters/fivem/fivem-playerinfo.js +0 -10
  323. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +0 -5
  324. package/dist/adapters/fivem/fivem-resourceinfo.js +0 -24
  325. package/dist/adapters/fivem/fivem-tick.d.ts +0 -7
  326. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +0 -15
  327. package/dist/adapters/fivem/fivem-vehicle-server.js +0 -44
  328. package/dist/adapters/fivem/index.d.ts +0 -14
  329. package/dist/adapters/fivem/index.js +0 -16
  330. package/dist/adapters/fivem/transport/adapter.d.ts +0 -8
  331. package/dist/adapters/fivem/transport/adapter.js +0 -8
  332. package/dist/adapters/fivem/transport/fivem.events.d.ts +0 -8
  333. package/dist/adapters/fivem/transport/fivem.events.js +0 -36
  334. package/dist/adapters/fivem/transport/fivem.rpc.d.ts +0 -28
  335. package/dist/adapters/fivem/transport/fivem.rpc.js +0 -183
  336. package/dist/runtime/client/controllers/player-sync.controller.d.ts +0 -11
  337. package/dist/runtime/client/controllers/player-sync.controller.js +0 -51
  338. package/dist/runtime/client/player/player.d.ts +0 -262
  339. package/dist/runtime/client/player/player.js +0 -474
  340. package/dist/runtime/client/player/player.loader.d.ts +0 -1
  341. package/dist/runtime/client/player/player.loader.js +0 -18
  342. package/dist/runtime/server/helpers/process-tuple-schema.d.ts +0 -20
  343. package/dist/runtime/server/helpers/process-tuple-schema.js +0 -56
  344. /package/dist/adapters/{fivem/fivem-net-transport.js → contracts/client/spawn/types.js} +0 -0
@@ -1,5 +0,0 @@
1
- import type { PlatformAdapter } from '../platform/platform-registry';
2
- /**
3
- * FiveM platform adapter for automatic registration.
4
- */
5
- export declare const FiveMPlatform: PlatformAdapter;
@@ -1,74 +0,0 @@
1
- import { IEngineEvents } from '../contracts/IEngineEvents';
2
- import { IExports } from '../contracts/IExports';
3
- import { IHasher } from '../contracts/IHasher';
4
- import { IPlatformCapabilities } from '../contracts/IPlatformCapabilities';
5
- import { IPlayerInfo } from '../contracts/IPlayerInfo';
6
- import { IResourceInfo } from '../contracts/IResourceInfo';
7
- import { ITick } from '../contracts/ITick';
8
- import { IEntityServer } from '../contracts/server/IEntityServer';
9
- import { IPedServer } from '../contracts/server/IPedServer';
10
- import { IPedAppearanceServer } from '../contracts/server/IPedAppearanceServer';
11
- import { IPlayerServer } from '../contracts/server/IPlayerServer';
12
- import { IVehicleServer } from '../contracts/server/IVehicleServer';
13
- import { EventsAPI } from '../contracts/transport/events.api';
14
- import { MessagingTransport } from '../contracts/transport/messaging.transport';
15
- import { RpcAPI } from '../contracts/transport/rpc.api';
16
- /**
17
- * FiveM platform adapter for automatic registration.
18
- */
19
- export const FiveMPlatform = {
20
- name: 'fivem',
21
- priority: 100, // High priority - check FiveM first
22
- detect() {
23
- return typeof globalThis.GetCurrentResourceName === 'function';
24
- },
25
- async register(container) {
26
- // Dynamically import FiveM implementations
27
- const [{ FiveMMessagingTransport }, { FiveMEngineEvents }, { FiveMExports }, { FiveMResourceInfo }, { FiveMTick }, { FiveMPlayerInfo }, { FiveMEntityServer }, { FiveMPedServer }, { FiveMVehicleServer }, { FiveMPlayerServer }, { FiveMHasher }, { FiveMPedAppearanceServerAdapter }, { FiveMCapabilities },] = await Promise.all([
28
- import('./transport/adapter'),
29
- import('./fivem-engine-events'),
30
- import('./fivem-exports'),
31
- import('./fivem-resourceinfo'),
32
- import('./fivem-tick'),
33
- import('./fivem-playerinfo'),
34
- import('./fivem-entity-server'),
35
- import('./fivem-ped-server'),
36
- import('./fivem-vehicle-server'),
37
- import('./fivem-player-server'),
38
- import('./fivem-hasher'),
39
- import('./fivem-ped-appearance-server'),
40
- import('./fivem-capabilities'),
41
- ]);
42
- // Register all FiveM implementations
43
- if (!container.isRegistered(IPlatformCapabilities))
44
- container.registerSingleton(IPlatformCapabilities, FiveMCapabilities);
45
- if (!container.isRegistered(MessagingTransport)) {
46
- const transport = new FiveMMessagingTransport();
47
- container.registerInstance(MessagingTransport, transport);
48
- container.registerInstance(EventsAPI, transport.events);
49
- container.registerInstance(RpcAPI, transport.rpc);
50
- }
51
- if (!container.isRegistered(IEngineEvents))
52
- container.registerSingleton(IEngineEvents, FiveMEngineEvents);
53
- if (!container.isRegistered(IExports))
54
- container.registerSingleton(IExports, FiveMExports);
55
- if (!container.isRegistered(IResourceInfo))
56
- container.registerSingleton(IResourceInfo, FiveMResourceInfo);
57
- if (!container.isRegistered(ITick))
58
- container.registerSingleton(ITick, FiveMTick);
59
- if (!container.isRegistered(IPlayerInfo))
60
- container.registerSingleton(IPlayerInfo, FiveMPlayerInfo);
61
- if (!container.isRegistered(IEntityServer))
62
- container.registerSingleton(IEntityServer, FiveMEntityServer);
63
- if (!container.isRegistered(IPedServer))
64
- container.registerSingleton(IPedServer, FiveMPedServer);
65
- if (!container.isRegistered(IVehicleServer))
66
- container.registerSingleton(IVehicleServer, FiveMVehicleServer);
67
- if (!container.isRegistered(IPlayerServer))
68
- container.registerSingleton(IPlayerServer, FiveMPlayerServer);
69
- if (!container.isRegistered(IHasher))
70
- container.registerSingleton(IHasher, FiveMHasher);
71
- if (!container.isRegistered(IPedAppearanceServer))
72
- container.registerSingleton(IPedAppearanceServer, FiveMPedAppearanceServerAdapter);
73
- },
74
- };
@@ -1,24 +0,0 @@
1
- import { IPlayerServer } from '../contracts/server/IPlayerServer';
2
- import { type PlayerIdentifier } from '../contracts/types/identifier';
3
- /**
4
- * FiveM implementation of server-side player operations.
5
- */
6
- export declare class FiveMPlayerServer extends IPlayerServer {
7
- getPed(playerSrc: string): number;
8
- drop(playerSrc: string, reason: string): void;
9
- getIdentifier(playerSrc: string, identifierType: string): string | undefined;
10
- /**
11
- * Get all identifiers registered.
12
- *
13
- * Use getPlayerIdentifiers() for structured identifier data.
14
- */
15
- getIdentifiers(playerSrc: string): string[];
16
- getPlayerIdentifiers(playerSrc: string): PlayerIdentifier[];
17
- getNumIdentifiers(playerSrc: string): number;
18
- getName(playerSrc: string): string;
19
- getPing(playerSrc: string): number;
20
- getEndpoint(playerSrc: string): string;
21
- setRoutingBucket(playerSrc: string, bucket: number): void;
22
- getRoutingBucket(playerSrc: string): number;
23
- getConnectedPlayers(): string[];
24
- }
@@ -1,83 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { injectable } from 'tsyringe';
8
- import { IPlayerServer } from '../contracts/server/IPlayerServer';
9
- import { parseIdentifier } from '../contracts/types/identifier';
10
- /**
11
- * FiveM implementation of server-side player operations.
12
- */
13
- let FiveMPlayerServer = class FiveMPlayerServer extends IPlayerServer {
14
- getPed(playerSrc) {
15
- return GetPlayerPed(playerSrc);
16
- }
17
- drop(playerSrc, reason) {
18
- DropPlayer(playerSrc, reason);
19
- }
20
- getIdentifier(playerSrc, identifierType) {
21
- const numIdentifiers = this.getNumIdentifiers(playerSrc);
22
- const prefix = `${identifierType}:`;
23
- for (let i = 0; i < numIdentifiers; i++) {
24
- const identifier = GetPlayerIdentifier(playerSrc, i);
25
- if (identifier?.startsWith(prefix)) {
26
- return identifier;
27
- }
28
- }
29
- return undefined;
30
- }
31
- /**
32
- * Get all identifiers registered.
33
- *
34
- * Use getPlayerIdentifiers() for structured identifier data.
35
- */
36
- getIdentifiers(playerSrc) {
37
- const identifiers = [];
38
- const numIdentifiers = this.getNumIdentifiers(playerSrc);
39
- for (let i = 0; i < numIdentifiers; i++) {
40
- const identifier = GetPlayerIdentifier(playerSrc, i);
41
- if (identifier) {
42
- identifiers.push(identifier);
43
- }
44
- }
45
- return identifiers;
46
- }
47
- getPlayerIdentifiers(playerSrc) {
48
- const rawIdentifiers = this.getIdentifiers(playerSrc);
49
- const identifiers = [];
50
- for (const raw of rawIdentifiers) {
51
- const parsed = parseIdentifier(raw);
52
- if (parsed) {
53
- identifiers.push(parsed);
54
- }
55
- }
56
- return identifiers;
57
- }
58
- getNumIdentifiers(playerSrc) {
59
- return GetNumPlayerIdentifiers(playerSrc);
60
- }
61
- getName(playerSrc) {
62
- return GetPlayerName(playerSrc) || 'Unknown';
63
- }
64
- getPing(playerSrc) {
65
- return GetPlayerPing(playerSrc);
66
- }
67
- getEndpoint(playerSrc) {
68
- return GetPlayerEndpoint(playerSrc) || '';
69
- }
70
- setRoutingBucket(playerSrc, bucket) {
71
- SetPlayerRoutingBucket(playerSrc, bucket);
72
- }
73
- getRoutingBucket(playerSrc) {
74
- return GetPlayerRoutingBucket(playerSrc);
75
- }
76
- getConnectedPlayers() {
77
- return getPlayers();
78
- }
79
- };
80
- FiveMPlayerServer = __decorate([
81
- injectable()
82
- ], FiveMPlayerServer);
83
- export { FiveMPlayerServer };
@@ -1,6 +0,0 @@
1
- import { Vector3 } from '../../kernel';
2
- import { IPlayerInfo } from '../contracts/IPlayerInfo';
3
- export declare class FiveMPlayerInfo implements IPlayerInfo {
4
- getPlayerName(clientId: number): string | null;
5
- getPlayerPosition(clientId: number): Vector3;
6
- }
@@ -1,10 +0,0 @@
1
- export class FiveMPlayerInfo {
2
- getPlayerName(clientId) {
3
- return GetPlayerName(clientId);
4
- }
5
- getPlayerPosition(clientId) {
6
- const ped = GetPlayerPed(clientId);
7
- const [x, y, z] = GetEntityCoords(ped, false);
8
- return { x, y, z };
9
- }
10
- }
@@ -1,5 +0,0 @@
1
- import { IResourceInfo } from '../contracts/IResourceInfo';
2
- export declare class FiveMResourceInfo extends IResourceInfo {
3
- getCurrentResourceName(): string;
4
- getCurrentResourcePath(): string;
5
- }
@@ -1,24 +0,0 @@
1
- import { IResourceInfo } from '../contracts/IResourceInfo';
2
- export class FiveMResourceInfo extends IResourceInfo {
3
- getCurrentResourceName() {
4
- const fn = GetCurrentResourceName;
5
- if (typeof fn === 'function') {
6
- const name = fn();
7
- if (typeof name === 'string' && name.trim())
8
- return name;
9
- }
10
- return 'default';
11
- }
12
- getCurrentResourcePath() {
13
- const fn = globalThis.GetResourcePath;
14
- if (typeof fn === 'function') {
15
- const name = this.getCurrentResourceName();
16
- if (name) {
17
- const path = fn(name);
18
- if (typeof path === 'string' && path.trim())
19
- return path;
20
- }
21
- }
22
- return process.cwd();
23
- }
24
- }
@@ -1,7 +0,0 @@
1
- import { ITick } from '../contracts/ITick';
2
- /**
3
- * FiveM implementation of ITick using native setTick
4
- */
5
- export declare class FiveMTick implements ITick {
6
- setTick(handler: () => void | Promise<void>): void;
7
- }
@@ -1,15 +0,0 @@
1
- import { IVehicleServer } from '../contracts/server/IVehicleServer';
2
- /**
3
- * FiveM implementation of server-side vehicle operations.
4
- */
5
- export declare class FiveMVehicleServer extends IVehicleServer {
6
- createServerSetter(modelHash: number, vehicleType: string, x: number, y: number, z: number, heading: number): number;
7
- getColours(handle: number): [number, number];
8
- setColours(handle: number, primary: number, secondary: number): void;
9
- getNumberPlateText(handle: number): string;
10
- setNumberPlateText(handle: number, text: string): void;
11
- setDoorsLocked(handle: number, state: number): void;
12
- getNetworkIdFromEntity(handle: number): number;
13
- getEntityFromNetworkId(networkId: number): number;
14
- networkIdExists(networkId: number): boolean;
15
- }
@@ -1,44 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { injectable } from 'tsyringe';
8
- import { IVehicleServer } from '../contracts/server/IVehicleServer';
9
- /**
10
- * FiveM implementation of server-side vehicle operations.
11
- */
12
- let FiveMVehicleServer = class FiveMVehicleServer extends IVehicleServer {
13
- createServerSetter(modelHash, vehicleType, x, y, z, heading) {
14
- return CreateVehicleServerSetter(modelHash, vehicleType, x, y, z, heading);
15
- }
16
- getColours(handle) {
17
- return GetVehicleColours(handle);
18
- }
19
- setColours(handle, primary, secondary) {
20
- SetVehicleColours(handle, primary, secondary);
21
- }
22
- getNumberPlateText(handle) {
23
- return GetVehicleNumberPlateText(handle);
24
- }
25
- setNumberPlateText(handle, text) {
26
- SetVehicleNumberPlateText(handle, text);
27
- }
28
- setDoorsLocked(handle, state) {
29
- SetVehicleDoorsLocked(handle, state);
30
- }
31
- getNetworkIdFromEntity(handle) {
32
- return NetworkGetNetworkIdFromEntity(handle);
33
- }
34
- getEntityFromNetworkId(networkId) {
35
- return NetworkGetEntityFromNetworkId(networkId);
36
- }
37
- networkIdExists(networkId) {
38
- return NetworkDoesEntityExistWithNetworkId(networkId);
39
- }
40
- };
41
- FiveMVehicleServer = __decorate([
42
- injectable()
43
- ], FiveMVehicleServer);
44
- export { FiveMVehicleServer };
@@ -1,14 +0,0 @@
1
- export { FiveMCapabilities } from './fivem-capabilities';
2
- export { FiveMEngineEvents } from './fivem-engine-events';
3
- export { FiveMEntityServer } from './fivem-entity-server';
4
- export { FiveMExports } from './fivem-exports';
5
- export { FiveMHasher } from './fivem-hasher';
6
- export { FiveMPedServer } from './fivem-ped-server';
7
- export { FiveMMessagingTransport } from './transport/adapter';
8
- export { FiveMPedAppearanceServerAdapter } from './fivem-ped-appearance-server';
9
- export { FiveMPlatform } from './fivem-platform';
10
- export { FiveMPlayerServer } from './fivem-player-server';
11
- export { FiveMPlayerInfo } from './fivem-playerinfo';
12
- export { FiveMResourceInfo } from './fivem-resourceinfo';
13
- export { FiveMTick } from './fivem-tick';
14
- export { FiveMVehicleServer } from './fivem-vehicle-server';
@@ -1,16 +0,0 @@
1
- // FiveM implementations
2
- export { FiveMCapabilities } from './fivem-capabilities';
3
- export { FiveMEngineEvents } from './fivem-engine-events';
4
- export { FiveMEntityServer } from './fivem-entity-server';
5
- export { FiveMExports } from './fivem-exports';
6
- export { FiveMHasher } from './fivem-hasher';
7
- export { FiveMPedServer } from './fivem-ped-server';
8
- export { FiveMMessagingTransport } from './transport/adapter';
9
- export { FiveMPedAppearanceServerAdapter } from './fivem-ped-appearance-server';
10
- // Platform adapter
11
- export { FiveMPlatform } from './fivem-platform';
12
- export { FiveMPlayerServer } from './fivem-player-server';
13
- export { FiveMPlayerInfo } from './fivem-playerinfo';
14
- export { FiveMResourceInfo } from './fivem-resourceinfo';
15
- export { FiveMTick } from './fivem-tick';
16
- export { FiveMVehicleServer } from './fivem-vehicle-server';
@@ -1,8 +0,0 @@
1
- import { MessagingTransport } from '../../contracts/transport/messaging.transport';
2
- import { FiveMEvents } from './fivem.events';
3
- import { FiveMRpc } from './fivem.rpc';
4
- export declare class FiveMMessagingTransport extends MessagingTransport {
5
- readonly context: string;
6
- readonly events: FiveMEvents;
7
- readonly rpc: FiveMRpc<"client" | "server">;
8
- }
@@ -1,8 +0,0 @@
1
- import { MessagingTransport } from '../../contracts/transport/messaging.transport';
2
- import { FiveMEvents } from './fivem.events';
3
- import { FiveMRpc } from './fivem.rpc';
4
- export class FiveMMessagingTransport extends MessagingTransport {
5
- context = IsDuplicityVersion() ? 'server' : 'client';
6
- events = new FiveMEvents(this.context);
7
- rpc = new FiveMRpc(this.context);
8
- }
@@ -1,8 +0,0 @@
1
- import { EventsAPI } from '../../contracts/transport/events.api';
2
- import { RuntimeContext } from '../../contracts/transport/context';
3
- export declare class FiveMEvents extends EventsAPI<RuntimeContext> {
4
- private readonly context;
5
- constructor(context: RuntimeContext);
6
- on(event: string, handler: any): void;
7
- emit(event: string, ...args: any[]): void;
8
- }
@@ -1,36 +0,0 @@
1
- import { EventsAPI } from '../../contracts/transport/events.api';
2
- import { Player } from '../../../runtime/server/entities/player';
3
- export class FiveMEvents extends EventsAPI {
4
- context;
5
- constructor(context) {
6
- super();
7
- this.context = context;
8
- }
9
- on(event, handler) {
10
- onNet(event, (...args) => {
11
- const sourceId = this.context === 'server' ? global.source : undefined;
12
- handler({ clientId: sourceId, raw: sourceId }, ...args);
13
- });
14
- }
15
- emit(event, ...args) {
16
- if (this.context !== 'server') {
17
- emitNet(event, ...args);
18
- return;
19
- }
20
- const [target, ...payload] = args;
21
- const send = (id) => emitNet(event, id, ...payload);
22
- if (target === 'all') {
23
- send(-1);
24
- return;
25
- }
26
- if (Array.isArray(target)) {
27
- target.forEach(send);
28
- return;
29
- }
30
- if (target instanceof Player) {
31
- send(target.clientID);
32
- return;
33
- }
34
- send(target);
35
- }
36
- }
@@ -1,28 +0,0 @@
1
- import { RpcAPI } from '../../contracts/transport/rpc.api';
2
- import type { RuntimeContext } from '../../contracts/transport/context';
3
- export declare class FiveMRpc<C extends RuntimeContext = RuntimeContext> extends RpcAPI<C> {
4
- private readonly context;
5
- private readonly pending;
6
- private requestSeq;
7
- private readonly handlers;
8
- private readonly channel;
9
- private readonly requestEvent;
10
- private readonly responseEvent;
11
- private readonly defaultTimeoutMs;
12
- constructor(context: C);
13
- on<TArgs extends any[], TResult>(name: string, handler: (ctx: {
14
- requestId: string;
15
- clientId?: number;
16
- raw?: unknown;
17
- }, ...args: TArgs) => TResult | Promise<TResult>): void;
18
- call<TResult = unknown>(name: string, ...args: any[]): Promise<TResult>;
19
- notify(name: string, ...args: any[]): Promise<void>;
20
- private normalizeInvocation;
21
- private isValidTarget;
22
- private sendAndWait;
23
- private createRequestId;
24
- private resolveServerTarget;
25
- private handleRequestMessage;
26
- private handleResponseMessage;
27
- private emitResponse;
28
- }
@@ -1,183 +0,0 @@
1
- import { RpcAPI } from '../../contracts/transport/rpc.api';
2
- function getCurrentResourceNameSafe() {
3
- const fn = globalThis.GetCurrentResourceName;
4
- if (typeof fn === 'function') {
5
- const name = fn();
6
- if (typeof name === 'string' && name.trim())
7
- return name;
8
- }
9
- return 'default';
10
- }
11
- export class FiveMRpc extends RpcAPI {
12
- context;
13
- pending = new Map();
14
- requestSeq = 0;
15
- handlers = new Map();
16
- channel = getCurrentResourceNameSafe();
17
- requestEvent = `__oc:rpc:req:${this.channel}`;
18
- responseEvent = `__oc:rpc:res:${this.channel}`;
19
- defaultTimeoutMs = 7_500;
20
- constructor(context) {
21
- super();
22
- this.context = context;
23
- onNet(this.requestEvent, (msg) => {
24
- void this.handleRequestMessage(msg);
25
- });
26
- onNet(this.responseEvent, (msg) => {
27
- this.handleResponseMessage(msg);
28
- });
29
- }
30
- on(name, handler) {
31
- this.handlers.set(name, handler);
32
- }
33
- call(name, ...args) {
34
- const { target, payload } = this.normalizeInvocation(name, 'call', args);
35
- return this.sendAndWait({ kind: 'call', name, args: payload }, target);
36
- }
37
- notify(name, ...args) {
38
- const { target, payload } = this.normalizeInvocation(name, 'notify', args);
39
- return this.sendAndWait({ kind: 'notify', name, args: payload }, target);
40
- }
41
- normalizeInvocation(name, kind, args) {
42
- if (this.context === 'server') {
43
- if (args.length === 0) {
44
- throw new Error(`FiveMRpc: missing target for '${kind}' '${name}' in server context`);
45
- }
46
- const [target, ...payload] = args;
47
- if (!this.isValidTarget(target)) {
48
- throw new Error(`FiveMRpc: invalid target for '${kind}' '${name}'`);
49
- }
50
- if (kind === 'call' && target === 'all') {
51
- throw new Error(`FiveMRpc: target=all is not supported for call '${name}'`);
52
- }
53
- return { target, payload };
54
- }
55
- return { target: undefined, payload: args };
56
- }
57
- isValidTarget(value) {
58
- if (value === 'all')
59
- return true;
60
- if (typeof value === 'number')
61
- return true;
62
- if (Array.isArray(value))
63
- return value.every((item) => typeof item === 'number');
64
- return false;
65
- }
66
- sendAndWait(input, target) {
67
- const id = this.createRequestId();
68
- const msg = {
69
- kind: input.kind,
70
- id,
71
- name: input.name,
72
- args: input.args ?? [],
73
- };
74
- return new Promise((resolve, reject) => {
75
- const timeout = setTimeout(() => {
76
- this.pending.delete(id);
77
- reject(new Error(`FiveMRpc: timeout waiting for '${input.kind}' response for '${input.name}' (${id})`));
78
- }, this.defaultTimeoutMs);
79
- this.pending.set(id, { resolve: resolve, reject, timeout });
80
- if (this.context === 'server') {
81
- const resolvedTarget = this.resolveServerTarget(target, input.kind, input.name);
82
- emitNet(this.requestEvent, resolvedTarget, msg);
83
- }
84
- else {
85
- emitNet(this.requestEvent, msg);
86
- }
87
- });
88
- }
89
- createRequestId() {
90
- this.requestSeq += 1;
91
- const ts = Date.now().toString(36);
92
- const seq = this.requestSeq.toString(36);
93
- const rand = Math.floor(Math.random() * 1_000_000_000).toString(36);
94
- return `${this.channel}:${this.context}:${ts}:${seq}:${rand}`;
95
- }
96
- resolveServerTarget(target, kind, name) {
97
- if (target === undefined) {
98
- throw new Error(`FiveMRpc: missing target for '${kind}' '${name}' in server context`);
99
- }
100
- if (kind === 'call' && target === 'all') {
101
- throw new Error(`FiveMRpc: target=all is not supported for call '${name}'`);
102
- }
103
- if (target === 'all')
104
- return -1;
105
- return target;
106
- }
107
- async handleRequestMessage(msg) {
108
- if (msg.kind !== 'call' && msg.kind !== 'notify')
109
- return;
110
- const handler = this.handlers.get(msg.name);
111
- const sourceId = this.context === 'server' ? global.source : undefined;
112
- const replyTarget = this.context === 'server' ? sourceId : undefined;
113
- if (!handler) {
114
- if (msg.kind === 'call') {
115
- this.emitResponse(replyTarget, {
116
- kind: 'result',
117
- id: msg.id,
118
- ok: false,
119
- error: { message: `FiveMRpc: no handler registered for '${msg.name}'` },
120
- });
121
- }
122
- else {
123
- this.emitResponse(replyTarget, { kind: 'ack', id: msg.id });
124
- }
125
- return;
126
- }
127
- try {
128
- const result = await Promise.resolve(handler({
129
- requestId: msg.id,
130
- clientId: sourceId,
131
- raw: sourceId,
132
- }, ...msg.args));
133
- if (msg.kind === 'notify') {
134
- this.emitResponse(replyTarget, { kind: 'ack', id: msg.id });
135
- }
136
- else {
137
- this.emitResponse(replyTarget, { kind: 'result', id: msg.id, ok: true, result });
138
- }
139
- }
140
- catch (err) {
141
- if (msg.kind === 'notify') {
142
- this.emitResponse(replyTarget, { kind: 'ack', id: msg.id });
143
- return;
144
- }
145
- this.emitResponse(replyTarget, {
146
- kind: 'result',
147
- id: msg.id,
148
- ok: false,
149
- error: {
150
- message: err?.message ? String(err.message) : String(err),
151
- name: err?.name ? String(err.name) : undefined,
152
- },
153
- });
154
- }
155
- }
156
- handleResponseMessage(msg) {
157
- if (msg.kind !== 'result' && msg.kind !== 'ack')
158
- return;
159
- const pending = this.pending.get(msg.id);
160
- if (!pending)
161
- return;
162
- clearTimeout(pending.timeout);
163
- this.pending.delete(msg.id);
164
- if (msg.kind === 'ack') {
165
- pending.resolve(undefined);
166
- return;
167
- }
168
- if (msg.ok) {
169
- pending.resolve(msg.result);
170
- return;
171
- }
172
- const error = new Error(msg.error?.message ?? 'FiveMRpc: remote error');
173
- error.name = msg.error?.name ?? error.name;
174
- pending.reject(error);
175
- }
176
- emitResponse(target, msg) {
177
- if (this.context === 'server') {
178
- emitNet(this.responseEvent, target ?? -1, msg);
179
- return;
180
- }
181
- emitNet(this.responseEvent, msg);
182
- }
183
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Client-side service that syncs player health and armor from server state bags.
3
- *
4
- * @remarks
5
- * Listens to state bag changes from the server and applies them to the local player ped.
6
- * This allows the server to control player health and armor through simple state bag updates.
7
- */
8
- export declare class PlayerSyncController {
9
- constructor();
10
- private registerStateBagHandlers;
11
- }