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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/README.md +217 -360
  2. package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
  3. package/dist/adapters/contracts/IEngineEvents.js +6 -0
  4. package/dist/adapters/contracts/IEntityServer.d.ts +88 -0
  5. package/dist/adapters/contracts/IEntityServer.js +13 -0
  6. package/dist/adapters/contracts/IExports.d.ts +4 -0
  7. package/dist/adapters/contracts/IExports.js +6 -0
  8. package/dist/adapters/contracts/IHasher.d.ts +15 -0
  9. package/dist/adapters/contracts/IHasher.js +12 -0
  10. package/dist/adapters/contracts/INetTransport.d.ts +8 -0
  11. package/dist/adapters/contracts/INetTransport.js +6 -0
  12. package/dist/adapters/contracts/IPedAppearanceClient.d.ts +206 -0
  13. package/dist/adapters/contracts/IPedAppearanceClient.js +16 -0
  14. package/dist/adapters/contracts/IPedAppearanceServer.d.ts +45 -0
  15. package/dist/adapters/contracts/IPedAppearanceServer.js +16 -0
  16. package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
  17. package/dist/adapters/contracts/IPlayerInfo.js +6 -0
  18. package/dist/adapters/contracts/IPlayerServer.d.ts +73 -0
  19. package/dist/adapters/contracts/IPlayerServer.js +13 -0
  20. package/dist/adapters/contracts/IResourceInfo.d.ts +3 -0
  21. package/dist/adapters/contracts/IResourceInfo.js +6 -0
  22. package/dist/adapters/contracts/ITick.d.ts +10 -0
  23. package/dist/adapters/contracts/ITick.js +9 -0
  24. package/dist/adapters/contracts/IVehicleServer.d.ts +55 -0
  25. package/dist/adapters/contracts/IVehicleServer.js +13 -0
  26. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.d.ts +2 -2
  27. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.js +2 -2
  28. package/dist/adapters/database/resource.adapter.d.ts +12 -0
  29. package/dist/adapters/database/resource.adapter.js +68 -0
  30. package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
  31. package/dist/adapters/fivem/fivem-engine-events.js +13 -0
  32. package/dist/adapters/fivem/fivem-entity-server.d.ts +22 -0
  33. package/dist/adapters/fivem/fivem-entity-server.js +80 -0
  34. package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
  35. package/dist/adapters/fivem/fivem-exports.js +14 -0
  36. package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
  37. package/dist/adapters/fivem/fivem-hasher.js +23 -0
  38. package/dist/adapters/fivem/fivem-net-transport.d.ts +5 -0
  39. package/dist/adapters/fivem/fivem-net-transport.js +24 -0
  40. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
  41. package/dist/adapters/fivem/fivem-ped-appearance-client.js +84 -0
  42. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
  43. package/dist/adapters/fivem/fivem-ped-appearance-server.js +26 -0
  44. package/dist/adapters/fivem/fivem-player-server.d.ts +15 -0
  45. package/dist/adapters/fivem/fivem-player-server.js +63 -0
  46. package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
  47. package/dist/adapters/fivem/fivem-playerinfo.js +14 -0
  48. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +4 -0
  49. package/dist/adapters/fivem/fivem-resourceinfo.js +16 -0
  50. package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
  51. package/dist/adapters/fivem/fivem-tick.js +22 -0
  52. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
  53. package/dist/adapters/fivem/fivem-vehicle-server.js +47 -0
  54. package/dist/adapters/index.d.ts +15 -0
  55. package/dist/adapters/index.js +40 -0
  56. package/dist/adapters/node/index.d.ts +8 -0
  57. package/dist/adapters/node/index.js +19 -0
  58. package/dist/adapters/node/node-engine-events.d.ts +20 -0
  59. package/dist/adapters/node/node-engine-events.js +42 -0
  60. package/dist/adapters/node/node-entity-server.d.ts +26 -0
  61. package/dist/adapters/node/node-entity-server.js +101 -0
  62. package/dist/adapters/node/node-exports.d.ts +26 -0
  63. package/dist/adapters/node/node-exports.js +63 -0
  64. package/dist/adapters/node/node-hasher.d.ts +12 -0
  65. package/dist/adapters/node/node-hasher.js +39 -0
  66. package/dist/adapters/node/node-net-transport.d.ts +18 -0
  67. package/dist/adapters/node/node-net-transport.js +57 -0
  68. package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
  69. package/dist/adapters/node/node-ped-appearance-client.js +59 -0
  70. package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
  71. package/dist/adapters/node/node-ped-appearance-server.js +18 -0
  72. package/dist/adapters/node/node-player-server.d.ts +27 -0
  73. package/dist/adapters/node/node-player-server.js +82 -0
  74. package/dist/adapters/node/node-playerinfo.d.ts +6 -0
  75. package/dist/adapters/node/node-playerinfo.js +12 -0
  76. package/dist/adapters/node/node-resourceinfo.d.ts +12 -0
  77. package/dist/adapters/node/node-resourceinfo.js +27 -0
  78. package/dist/adapters/node/node-tick.d.ts +10 -0
  79. package/dist/{server/system/processors/command.processor.js → adapters/node/node-tick.js} +27 -14
  80. package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
  81. package/dist/adapters/node/node-vehicle-server.js +93 -0
  82. package/dist/adapters/register-capabilities.d.ts +11 -0
  83. package/dist/adapters/register-capabilities.js +148 -0
  84. package/dist/adapters/register-client-capabilities.d.ts +8 -0
  85. package/dist/adapters/register-client-capabilities.js +56 -0
  86. package/dist/index.d.ts +5 -4
  87. package/dist/index.js +9 -5
  88. package/dist/kernel/di/index.d.ts +4 -0
  89. package/dist/kernel/di/index.js +20 -0
  90. package/dist/{system → kernel/di}/metadata.scanner.d.ts +1 -2
  91. package/dist/kernel/di/tokens.d.ts +30 -0
  92. package/dist/kernel/di/tokens.js +38 -0
  93. package/dist/kernel/index.d.ts +7 -0
  94. package/dist/kernel/index.js +30 -0
  95. package/dist/kernel/schema/index.d.ts +32 -0
  96. package/dist/kernel/schema/index.js +5 -0
  97. package/dist/kernel/shared/appearance/appearance.interface.d.ts +276 -0
  98. package/dist/kernel/shared/appearance/appearance.interface.js +77 -0
  99. package/dist/kernel/shared/appearance/index.d.ts +1 -0
  100. package/dist/kernel/shared/appearance/index.js +17 -0
  101. package/dist/kernel/shared/index.d.ts +2 -0
  102. package/dist/{shared → kernel/shared}/index.js +1 -0
  103. package/dist/{shared → kernel/shared}/logger/core-logger.d.ts +13 -0
  104. package/dist/{shared → kernel/shared}/logger/core-logger.js +38 -9
  105. package/dist/{shared → kernel/shared}/logger/index.d.ts +12 -9
  106. package/dist/{shared → kernel/shared}/logger/index.js +24 -15
  107. package/dist/{shared → kernel/shared}/logger/logger.config.d.ts +1 -1
  108. package/dist/kernel/shared/logger/logger.env.d.ts +28 -0
  109. package/dist/kernel/shared/logger/logger.env.js +51 -0
  110. package/dist/{shared → kernel/shared}/logger/logger.service.d.ts +2 -2
  111. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.d.ts +2 -2
  112. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.js +1 -1
  113. package/dist/{shared → kernel/shared}/logger/transports/console.transport.d.ts +2 -2
  114. package/dist/{shared → kernel/shared}/logger/transports/console.transport.js +1 -0
  115. package/dist/kernel/shared/logger/transports/dev-transport.factory.d.ts +75 -0
  116. package/dist/kernel/shared/logger/transports/dev-transport.factory.js +111 -0
  117. package/dist/kernel/shared/logger/transports/http.transport.d.ts +67 -0
  118. package/dist/kernel/shared/logger/transports/http.transport.js +170 -0
  119. package/dist/kernel/shared/logger/transports/index.d.ts +7 -0
  120. package/dist/kernel/shared/logger/transports/index.js +34 -0
  121. package/dist/kernel/shared/logger/transports/simple-console.transport.d.ts +38 -0
  122. package/dist/kernel/shared/logger/transports/simple-console.transport.js +93 -0
  123. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.d.ts +1 -1
  124. package/dist/kernel/shared/logger/transports/websocket.transport.d.ts +69 -0
  125. package/dist/kernel/shared/logger/transports/websocket.transport.js +169 -0
  126. package/dist/kernel/utils/error/app.error.d.ts +9 -0
  127. package/dist/{utils/errors.js → kernel/utils/error/app.error.js} +1 -9
  128. package/dist/kernel/utils/error/security.error.d.ts +6 -0
  129. package/dist/kernel/utils/error/security.error.js +12 -0
  130. package/dist/{utils → kernel/utils}/index.d.ts +3 -2
  131. package/dist/{utils → kernel/utils}/index.js +3 -2
  132. package/dist/{utils → kernel/utils}/result.d.ts +1 -1
  133. package/dist/runtime/client/client-bootstrap.d.ts +7 -0
  134. package/dist/runtime/client/client-bootstrap.js +180 -0
  135. package/dist/runtime/client/client-core.d.ts +19 -0
  136. package/dist/runtime/client/client-core.js +24 -0
  137. package/dist/runtime/client/client-runtime.d.ts +58 -0
  138. package/dist/runtime/client/client-runtime.js +32 -0
  139. package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
  140. package/dist/runtime/client/controllers/appearance.controller.js +50 -0
  141. package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
  142. package/dist/runtime/client/controllers/player-sync.controller.js +54 -0
  143. package/dist/{client → runtime/client}/controllers/spawner.controller.d.ts +1 -1
  144. package/dist/runtime/client/decorators/controller.d.ts +20 -0
  145. package/dist/runtime/client/decorators/controller.js +55 -0
  146. package/dist/runtime/client/decorators/export.d.ts +21 -0
  147. package/dist/runtime/client/decorators/export.js +29 -0
  148. package/dist/{client → runtime/client}/decorators/gameEvent.d.ts +2 -2
  149. package/dist/runtime/client/decorators/interval.d.ts +23 -0
  150. package/dist/runtime/client/decorators/interval.js +31 -0
  151. package/dist/runtime/client/decorators/key.d.ts +23 -0
  152. package/dist/runtime/client/decorators/key.js +31 -0
  153. package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
  154. package/dist/runtime/client/decorators/localEvent.js +29 -0
  155. package/dist/runtime/client/decorators/nui.d.ts +21 -0
  156. package/dist/runtime/client/decorators/nui.js +29 -0
  157. package/dist/runtime/client/decorators/onNet.d.ts +21 -0
  158. package/dist/runtime/client/decorators/onNet.js +29 -0
  159. package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
  160. package/dist/runtime/client/decorators/resourceLifecycle.js +53 -0
  161. package/dist/runtime/client/decorators/tick.d.ts +21 -0
  162. package/dist/runtime/client/decorators/tick.js +29 -0
  163. package/dist/{client → runtime/client}/index.d.ts +2 -2
  164. package/dist/{client → runtime/client}/index.js +4 -2
  165. package/dist/runtime/client/interfaces/appearance.interface.d.ts +25 -0
  166. package/dist/runtime/client/interfaces/appearance.interface.js +2 -0
  167. package/dist/{client → runtime/client}/player/player.d.ts +1 -1
  168. package/dist/{client → runtime/client}/player/player.js +5 -6
  169. package/dist/{client → runtime/client}/player/player.loader.js +2 -2
  170. package/dist/runtime/client/services/appearance.service.d.ts +132 -0
  171. package/dist/runtime/client/services/appearance.service.js +328 -0
  172. package/dist/{client → runtime/client}/services/blip.service.d.ts +1 -1
  173. package/dist/{client → runtime/client}/services/index.d.ts +6 -5
  174. package/dist/{client → runtime/client}/services/index.js +6 -5
  175. package/dist/{client → runtime/client}/services/marker.service.d.ts +1 -1
  176. package/dist/{client → runtime/client}/services/ped.service.d.ts +1 -1
  177. package/dist/{client → runtime/client}/services/ped.service.js +3 -2
  178. package/dist/{client → runtime/client}/services/spawn.service.d.ts +2 -2
  179. package/dist/{client → runtime/client}/services/spawn.service.js +4 -8
  180. package/dist/{client → runtime/client}/services/textui.service.d.ts +1 -1
  181. package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
  182. package/dist/runtime/client/services/vehicle-client.service.js +485 -0
  183. package/dist/{client → runtime/client}/services/vehicle.service.d.ts +2 -2
  184. package/dist/{client → runtime/client}/services/vehicle.service.js +1 -1
  185. package/dist/{client → runtime/client}/system/processors/export.processor.d.ts +1 -1
  186. package/dist/{client → runtime/client}/system/processors/export.processor.js +1 -1
  187. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.d.ts +1 -1
  188. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.js +2 -2
  189. package/dist/{client → runtime/client}/system/processors/interval.processor.d.ts +1 -1
  190. package/dist/{client → runtime/client}/system/processors/interval.processor.js +1 -1
  191. package/dist/{client → runtime/client}/system/processors/key.processor.d.ts +1 -1
  192. package/dist/{client → runtime/client}/system/processors/localEvent.processor.d.ts +1 -1
  193. package/dist/{client → runtime/client}/system/processors/localEvent.processor.js +1 -1
  194. package/dist/{client → runtime/client}/system/processors/netEvent.processor.d.ts +1 -1
  195. package/dist/{client → runtime/client}/system/processors/netEvent.processor.js +1 -1
  196. package/dist/{client → runtime/client}/system/processors/nui.processor.d.ts +1 -1
  197. package/dist/{client → runtime/client}/system/processors/nui.processor.js +1 -1
  198. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.d.ts +1 -1
  199. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.js +1 -1
  200. package/dist/{client → runtime/client}/system/processors/tick.processor.d.ts +1 -1
  201. package/dist/{client → runtime/client}/system/processors/tick.processor.js +1 -1
  202. package/dist/{client → runtime/client}/types/game-events.js +0 -8
  203. package/dist/{client → runtime/client}/ui-bridge.js +1 -1
  204. package/dist/runtime/index.d.ts +2 -0
  205. package/dist/runtime/index.js +39 -0
  206. package/dist/{server → runtime/server}/bootstrap.d.ts +2 -1
  207. package/dist/runtime/server/bootstrap.js +234 -0
  208. package/dist/runtime/server/bootstrap.validation.d.ts +12 -0
  209. package/dist/runtime/server/bootstrap.validation.js +102 -0
  210. package/dist/runtime/server/bus/core-event-bus.d.ts +6 -0
  211. package/dist/{server → runtime/server}/bus/core-event-bus.js +5 -5
  212. package/dist/{server → runtime/server}/configs/api.config.d.ts +1 -1
  213. package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.d.ts +2 -2
  214. package/dist/runtime/server/contracts/index.d.ts +7 -0
  215. package/dist/{server/templates → runtime/server/contracts}/index.js +8 -4
  216. package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.d.ts +1 -1
  217. package/dist/{server/templates → runtime/server/contracts}/repository/index.d.ts +2 -2
  218. package/dist/{server/templates → runtime/server/contracts}/repository/index.js +1 -1
  219. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.d.ts +2 -2
  220. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.js +0 -1
  221. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
  222. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +6 -0
  223. package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.d.ts +3 -3
  224. package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.d.ts +2 -2
  225. package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
  226. package/dist/{server → runtime/server}/controllers/chat.controller.js +23 -11
  227. package/dist/runtime/server/controllers/command-export.controller.d.ts +74 -0
  228. package/dist/runtime/server/controllers/command-export.controller.js +260 -0
  229. package/dist/runtime/server/controllers/command.controller.d.ts +15 -0
  230. package/dist/runtime/server/controllers/command.controller.js +100 -0
  231. package/dist/runtime/server/controllers/player-export.controller.d.ts +29 -0
  232. package/dist/runtime/server/controllers/player-export.controller.js +173 -0
  233. package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
  234. package/dist/runtime/server/controllers/principal-export.controller.js +296 -0
  235. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +43 -0
  236. package/dist/runtime/server/controllers/remote-command-execution.controller.js +104 -0
  237. package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
  238. package/dist/{server → runtime/server}/controllers/session.controller.js +15 -12
  239. package/dist/runtime/server/controllers/vehicle.controller.d.ts +55 -0
  240. package/dist/runtime/server/controllers/vehicle.controller.js +216 -0
  241. package/dist/runtime/server/core.d.ts +3 -0
  242. package/dist/runtime/server/core.js +11 -0
  243. package/dist/runtime/server/database/adapter.registry.d.ts +4 -0
  244. package/dist/runtime/server/database/adapter.registry.js +14 -0
  245. package/dist/{server → runtime/server}/database/database.contract.d.ts +1 -1
  246. package/dist/{server → runtime/server}/database/database.service.d.ts +3 -31
  247. package/dist/{server → runtime/server}/database/database.service.js +36 -50
  248. package/dist/runtime/server/database/index.d.ts +5 -0
  249. package/dist/runtime/server/database/index.js +25 -0
  250. package/dist/runtime/server/decorators/bind.d.ts +21 -0
  251. package/dist/runtime/server/decorators/bind.js +31 -0
  252. package/dist/runtime/server/decorators/command.d.ts +81 -0
  253. package/dist/runtime/server/decorators/command.js +32 -0
  254. package/dist/{server → runtime/server}/decorators/controller.d.ts +4 -3
  255. package/dist/runtime/server/decorators/controller.js +61 -0
  256. package/dist/runtime/server/decorators/export.d.ts +24 -0
  257. package/dist/runtime/server/decorators/export.js +32 -0
  258. package/dist/runtime/server/decorators/guard.d.ts +49 -0
  259. package/dist/{server → runtime/server}/decorators/guard.js +33 -32
  260. package/dist/{server → runtime/server}/decorators/index.d.ts +7 -4
  261. package/dist/{server → runtime/server}/decorators/index.js +8 -5
  262. package/dist/runtime/server/decorators/onFiveMEvent.d.ts +24 -0
  263. package/dist/runtime/server/decorators/onFiveMEvent.js +32 -0
  264. package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +22 -0
  265. package/dist/{server → runtime/server}/decorators/onFrameworkEvent.js +9 -9
  266. package/dist/runtime/server/decorators/onNet.d.ts +62 -0
  267. package/dist/runtime/server/decorators/onNet.js +15 -0
  268. package/dist/runtime/server/decorators/onTick.d.ts +21 -0
  269. package/dist/runtime/server/decorators/onTick.js +29 -0
  270. package/dist/runtime/server/decorators/public.d.ts +26 -0
  271. package/dist/{server → runtime/server}/decorators/public.js +15 -16
  272. package/dist/{server → runtime/server}/decorators/requiresState.d.ts +29 -22
  273. package/dist/runtime/server/decorators/requiresState.js +73 -0
  274. package/dist/runtime/server/decorators/throttle.d.ts +56 -0
  275. package/dist/{server → runtime/server}/decorators/throttle.js +31 -19
  276. package/dist/runtime/server/decorators/utils.d.ts +54 -0
  277. package/dist/runtime/server/decorators/utils.js +60 -0
  278. package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
  279. package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +12 -0
  280. package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
  281. package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +12 -0
  282. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
  283. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +11 -0
  284. package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
  285. package/dist/runtime/server/devmode/contracts/index.js +9 -0
  286. package/dist/runtime/server/devmode/dev-mode.service.d.ts +110 -0
  287. package/dist/runtime/server/devmode/dev-mode.service.js +324 -0
  288. package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
  289. package/dist/runtime/server/devmode/event-interceptor.service.js +232 -0
  290. package/dist/runtime/server/devmode/hot-reload.server.d.ts +74 -0
  291. package/dist/runtime/server/devmode/hot-reload.server.js +261 -0
  292. package/dist/runtime/server/devmode/index.d.ts +8 -0
  293. package/dist/runtime/server/devmode/index.js +32 -0
  294. package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
  295. package/dist/runtime/server/devmode/player-simulator.service.js +202 -0
  296. package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
  297. package/dist/runtime/server/devmode/state-inspector.service.js +183 -0
  298. package/dist/runtime/server/devmode/types.d.ts +161 -0
  299. package/dist/runtime/server/devmode/types.js +28 -0
  300. package/dist/runtime/server/entities/index.d.ts +2 -0
  301. package/dist/{server → runtime/server}/entities/index.js +1 -0
  302. package/dist/{server → runtime/server}/entities/player.d.ts +70 -3
  303. package/dist/{server → runtime/server}/entities/player.js +92 -14
  304. package/dist/runtime/server/entities/vehicle.d.ts +160 -0
  305. package/dist/runtime/server/entities/vehicle.js +261 -0
  306. package/dist/{server → runtime/server}/error-handler.d.ts +1 -1
  307. package/dist/{server → runtime/server}/error-handler.js +7 -8
  308. package/dist/runtime/server/helpers/command-validation.helper.d.ts +6 -0
  309. package/dist/runtime/server/helpers/command-validation.helper.js +72 -0
  310. package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
  311. package/dist/runtime/server/helpers/function-helper.js +15 -0
  312. package/dist/{server → runtime/server}/helpers/resolve-method.d.ts +1 -1
  313. package/dist/runtime/server/helpers/resolve-method.js +28 -0
  314. package/dist/{server → runtime/server}/index.d.ts +8 -6
  315. package/dist/{server → runtime/server}/index.js +14 -10
  316. package/dist/runtime/server/runtime.d.ts +408 -0
  317. package/dist/runtime/server/runtime.js +234 -0
  318. package/dist/runtime/server/services/access-control.service.d.ts +59 -0
  319. package/dist/runtime/server/services/access-control.service.js +127 -0
  320. package/dist/runtime/server/services/appearance.service.d.ts +99 -0
  321. package/dist/runtime/server/services/appearance.service.js +307 -0
  322. package/dist/runtime/server/services/chat.service.d.ts +33 -0
  323. package/dist/{server → runtime/server}/services/chat.service.js +26 -0
  324. package/dist/{server → runtime/server}/services/config.service.js +1 -1
  325. package/dist/runtime/server/services/core/command.service.d.ts +49 -0
  326. package/dist/runtime/server/services/core/command.service.js +112 -0
  327. package/dist/{server/services → runtime/server/services/core}/player.service.d.ts +48 -22
  328. package/dist/{server/services → runtime/server/services/core}/player.service.js +98 -14
  329. package/dist/runtime/server/services/core/principal.service.d.ts +28 -0
  330. package/dist/runtime/server/services/core/principal.service.js +126 -0
  331. package/dist/runtime/server/services/core/vehicle-modification.service.d.ts +104 -0
  332. package/dist/runtime/server/services/core/vehicle-modification.service.js +330 -0
  333. package/dist/runtime/server/services/core/vehicle.service.d.ts +128 -0
  334. package/dist/runtime/server/services/core/vehicle.service.js +391 -0
  335. package/dist/runtime/server/services/default/default-net-event-security-observer.d.ts +15 -0
  336. package/dist/runtime/server/services/default/default-net-event-security-observer.js +28 -0
  337. package/dist/runtime/server/services/default/default-security.handler.d.ts +19 -0
  338. package/dist/{server → runtime/server}/services/default/default-security.handler.js +15 -2
  339. package/dist/{server → runtime/server}/services/http/http.service.js +5 -5
  340. package/dist/runtime/server/services/index.d.ts +16 -0
  341. package/dist/runtime/server/services/index.js +39 -0
  342. package/dist/{server → runtime/server}/services/parallel/index.d.ts +2 -4
  343. package/dist/{server → runtime/server}/services/parallel/index.js +13 -15
  344. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.d.ts +1 -1
  345. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.js +2 -1
  346. package/dist/{server → runtime/server}/services/parallel/worker-pool.d.ts +1 -1
  347. package/dist/{server → runtime/server}/services/parallel/worker.d.ts +1 -1
  348. package/dist/{server → runtime/server}/services/persistence.service.d.ts +1 -1
  349. package/dist/{server → runtime/server}/services/persistence.service.js +13 -9
  350. package/dist/runtime/server/services/ports/command-execution.port.d.ts +41 -0
  351. package/dist/runtime/server/services/ports/command-execution.port.js +15 -0
  352. package/dist/runtime/server/services/ports/player-directory.port.d.ts +107 -0
  353. package/dist/runtime/server/services/ports/player-directory.port.js +23 -0
  354. package/dist/runtime/server/services/ports/player-session-lifecycle.port.d.ts +49 -0
  355. package/dist/runtime/server/services/ports/player-session-lifecycle.port.js +16 -0
  356. package/dist/runtime/server/services/ports/principal.port.d.ts +149 -0
  357. package/dist/runtime/server/services/ports/principal.port.js +32 -0
  358. package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
  359. package/dist/{server → runtime/server}/services/rate-limiter.service.js +18 -0
  360. package/dist/runtime/server/services/remote/remote-command.service.d.ts +63 -0
  361. package/dist/runtime/server/services/remote/remote-command.service.js +139 -0
  362. package/dist/runtime/server/services/remote/remote-player.service.d.ts +62 -0
  363. package/dist/runtime/server/services/remote/remote-player.service.js +191 -0
  364. package/dist/runtime/server/services/remote/remote-principal.provider.d.ts +55 -0
  365. package/dist/runtime/server/services/remote/remote-principal.provider.js +130 -0
  366. package/dist/runtime/server/services/remote/remote-principal.service.d.ts +33 -0
  367. package/dist/runtime/server/services/remote/remote-principal.service.js +99 -0
  368. package/dist/runtime/server/services/remote/server-bridge.d.ts +34 -0
  369. package/dist/runtime/server/services/remote/server-bridge.js +94 -0
  370. package/dist/runtime/server/services/services.register.d.ts +14 -0
  371. package/dist/runtime/server/services/services.register.js +98 -0
  372. package/dist/runtime/server/services/types/linked-id.d.ts +6 -0
  373. package/dist/runtime/server/services/types/player-session.object.d.ts +11 -0
  374. package/dist/runtime/server/services/vehicle-modification.service.d.ts +94 -0
  375. package/dist/runtime/server/services/vehicle-modification.service.js +310 -0
  376. package/dist/runtime/server/services/vehicle.service.d.ts +138 -0
  377. package/dist/runtime/server/services/vehicle.service.js +361 -0
  378. package/dist/runtime/server/setup.d.ts +10 -0
  379. package/dist/runtime/server/setup.js +33 -0
  380. package/dist/{server → runtime/server}/system/metadata-server.keys.d.ts +2 -0
  381. package/dist/{server → runtime/server}/system/metadata-server.keys.js +2 -0
  382. package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
  383. package/dist/runtime/server/system/processors/command.processor.js +54 -0
  384. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.d.ts +1 -1
  385. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.js +3 -3
  386. package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
  387. package/dist/{server → runtime/server}/system/processors/export.processor.js +15 -5
  388. package/dist/runtime/server/system/processors/fivemEvent.processor.d.ts +10 -0
  389. package/dist/{server → runtime/server}/system/processors/fivemEvent.processor.js +15 -5
  390. package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
  391. package/dist/runtime/server/system/processors/netEvent.processor.js +240 -0
  392. package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
  393. package/dist/{server → runtime/server}/system/processors/tick.processor.js +14 -4
  394. package/dist/runtime/server/system/processors.register.d.ts +2 -0
  395. package/dist/runtime/server/system/processors.register.js +37 -0
  396. package/dist/{server → runtime/server}/system/schema-generator.d.ts +1 -1
  397. package/dist/{server → runtime/server}/system/schema-generator.js +17 -8
  398. package/dist/{server/templates/admin → runtime/server/templates}/admin.controller-template.d.ts +1 -1
  399. package/dist/runtime/server/templates/index.d.ts +1 -0
  400. package/dist/runtime/server/templates/index.js +17 -0
  401. package/dist/runtime/server/types/core-exports.d.ts +285 -0
  402. package/dist/runtime/server/types/core-exports.js +2 -0
  403. package/dist/runtime/server/types/index.d.ts +4 -0
  404. package/dist/runtime/server/types/index.js +20 -0
  405. package/dist/runtime/server/types/security.types.js +2 -0
  406. package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
  407. package/dist/runtime/server/types/vehicle.types.js +2 -0
  408. package/package.json +98 -98
  409. package/dist/client/client-bootstrap.d.ts +0 -1
  410. package/dist/client/client-bootstrap.js +0 -50
  411. package/dist/client/client-core.d.ts +0 -1
  412. package/dist/client/client-core.js +0 -7
  413. package/dist/client/decorators/controller.d.ts +0 -3
  414. package/dist/client/decorators/controller.js +0 -14
  415. package/dist/client/decorators/export.d.ts +0 -7
  416. package/dist/client/decorators/export.js +0 -15
  417. package/dist/client/decorators/interval.d.ts +0 -7
  418. package/dist/client/decorators/interval.js +0 -15
  419. package/dist/client/decorators/key.d.ts +0 -2
  420. package/dist/client/decorators/key.js +0 -10
  421. package/dist/client/decorators/localEvent.d.ts +0 -7
  422. package/dist/client/decorators/localEvent.js +0 -15
  423. package/dist/client/decorators/nui.d.ts +0 -1
  424. package/dist/client/decorators/nui.js +0 -9
  425. package/dist/client/decorators/onNet.d.ts +0 -1
  426. package/dist/client/decorators/onNet.js +0 -9
  427. package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
  428. package/dist/client/decorators/resourceLifecycle.js +0 -24
  429. package/dist/client/decorators/tick.d.ts +0 -1
  430. package/dist/client/decorators/tick.js +0 -9
  431. package/dist/client/interfaces/appearance.interface.d.ts +0 -19
  432. package/dist/client/services/appearance.service.d.ts +0 -6
  433. package/dist/client/services/appearance.service.js +0 -89
  434. package/dist/server/bootstrap.js +0 -57
  435. package/dist/server/bus/core-event-bus.d.ts +0 -6
  436. package/dist/server/controllers/chat.controller.d.ts +0 -10
  437. package/dist/server/controllers/command.controller.d.ts +0 -7
  438. package/dist/server/controllers/command.controller.js +0 -47
  439. package/dist/server/controllers/session.controller.d.ts +0 -9
  440. package/dist/server/core.d.ts +0 -1
  441. package/dist/server/core.js +0 -7
  442. package/dist/server/database/index.d.ts +0 -53
  443. package/dist/server/database/index.js +0 -70
  444. package/dist/server/decorators/bind.d.ts +0 -2
  445. package/dist/server/decorators/bind.js +0 -15
  446. package/dist/server/decorators/command.d.ts +0 -49
  447. package/dist/server/decorators/command.js +0 -23
  448. package/dist/server/decorators/controller.js +0 -36
  449. package/dist/server/decorators/export.d.ts +0 -39
  450. package/dist/server/decorators/export.js +0 -47
  451. package/dist/server/decorators/guard.d.ts +0 -56
  452. package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
  453. package/dist/server/decorators/onFiveMEvent.js +0 -14
  454. package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
  455. package/dist/server/decorators/onNet.d.ts +0 -58
  456. package/dist/server/decorators/onNet.js +0 -57
  457. package/dist/server/decorators/onTick.d.ts +0 -32
  458. package/dist/server/decorators/onTick.js +0 -40
  459. package/dist/server/decorators/public.d.ts +0 -27
  460. package/dist/server/decorators/requiresState.js +0 -63
  461. package/dist/server/decorators/throttle.d.ts +0 -48
  462. package/dist/server/decorators/utils.d.ts +0 -57
  463. package/dist/server/decorators/utils.js +0 -63
  464. package/dist/server/entities/index.d.ts +0 -1
  465. package/dist/server/helpers/resolve-method.js +0 -18
  466. package/dist/server/loaders/exports.loader.d.ts +0 -0
  467. package/dist/server/loaders/exports.loader.js +0 -23
  468. package/dist/server/loaders/playerSession.loader.d.ts +0 -1
  469. package/dist/server/loaders/playerSession.loader.js +0 -51
  470. package/dist/server/services/access-control.service.d.ts +0 -56
  471. package/dist/server/services/access-control.service.js +0 -99
  472. package/dist/server/services/chat.service.d.ts +0 -7
  473. package/dist/server/services/command.service.d.ts +0 -15
  474. package/dist/server/services/command.service.js +0 -77
  475. package/dist/server/services/default/default-security.handler.d.ts +0 -6
  476. package/dist/server/services/index.d.ts +0 -10
  477. package/dist/server/services/index.js +0 -26
  478. package/dist/server/services/rate-limiter.service.d.ts +0 -5
  479. package/dist/server/services/registers.d.ts +0 -1
  480. package/dist/server/services/registers.js +0 -18
  481. package/dist/server/setup.d.ts +0 -9
  482. package/dist/server/setup.js +0 -28
  483. package/dist/server/system/processors/command.processor.d.ts +0 -9
  484. package/dist/server/system/processors/export.processor.d.ts +0 -7
  485. package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
  486. package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
  487. package/dist/server/system/processors/netEvent.processor.js +0 -103
  488. package/dist/server/system/processors/tick.processor.d.ts +0 -5
  489. package/dist/server/system/processors.register.d.ts +0 -1
  490. package/dist/server/system/processors.register.js +0 -23
  491. package/dist/server/templates/index.d.ts +0 -8
  492. package/dist/server/templates/persistence/index.d.ts +0 -30
  493. package/dist/server/templates/persistence/index.js +0 -34
  494. package/dist/shared/index.d.ts +0 -1
  495. package/dist/shared/logger/transports/index.d.ts +0 -3
  496. package/dist/shared/logger/transports/index.js +0 -19
  497. package/dist/utils/errors.d.ts +0 -14
  498. package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
  499. package/dist/{system → kernel/di}/class-constructor.js +0 -0
  500. package/dist/{server → kernel/di}/container.d.ts +0 -0
  501. package/dist/{server → kernel/di}/container.js +0 -0
  502. package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
  503. package/dist/{system → kernel/di}/decorator-processor.js +0 -0
  504. package/dist/{system → kernel/di}/metadata.scanner.js +0 -0
  505. package/dist/{shared → kernel/shared}/logger/logger.config.js +0 -0
  506. package/dist/{shared → kernel/shared}/logger/logger.service.js +0 -0
  507. package/dist/{shared → kernel/shared}/logger/logger.types.d.ts +0 -0
  508. package/dist/{shared → kernel/shared}/logger/logger.types.js +0 -0
  509. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.js +0 -0
  510. package/dist/{utils → kernel/utils}/result.js +0 -0
  511. package/dist/{utils → kernel/utils}/rgb.d.ts +0 -0
  512. package/dist/{utils → kernel/utils}/rgb.js +0 -0
  513. package/dist/{utils → kernel/utils}/vector3.d.ts +0 -0
  514. package/dist/{utils → kernel/utils}/vector3.js +0 -0
  515. package/dist/{client → runtime/client}/client-container.d.ts +0 -0
  516. package/dist/{client → runtime/client}/client-container.js +0 -0
  517. package/dist/{client → runtime/client}/controllers/spawner.controller.js +0 -0
  518. package/dist/{client → runtime/client}/decorators/gameEvent.js +0 -0
  519. package/dist/{client → runtime/client}/decorators/index.d.ts +5 -5
  520. package/dist/{client → runtime/client}/decorators/index.js +5 -5
  521. package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
  522. package/dist/{client → runtime/client}/services/blip.service.js +0 -0
  523. package/dist/{client → runtime/client}/services/marker.service.js +0 -0
  524. package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
  525. package/dist/{client → runtime/client}/services/notification.service.js +0 -0
  526. package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
  527. package/dist/{client → runtime/client}/services/progress.service.js +0 -0
  528. package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
  529. package/dist/{client → runtime/client}/services/streaming.service.js +0 -0
  530. package/dist/{client → runtime/client}/services/textui.service.js +0 -0
  531. package/dist/{client → runtime/client}/system/metadata-client.keys.d.ts +0 -0
  532. package/dist/{client → runtime/client}/system/metadata-client.keys.js +0 -0
  533. package/dist/{client → runtime/client}/system/processors/key.processor.js +0 -0
  534. package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
  535. package/dist/{client → runtime/client}/system/processors.register.js +6 -6
  536. /package/dist/{client → runtime/client}/types/game-events.d.ts +0 -0
  537. /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
  538. /package/dist/{client → runtime/client}/types/index.js +0 -0
  539. /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
  540. /package/dist/{server → runtime/server}/configs/api.config.js +0 -0
  541. /package/dist/{server → runtime/server}/configs/config.base.d.ts +0 -0
  542. /package/dist/{server → runtime/server}/configs/config.base.js +0 -0
  543. /package/dist/{server → runtime/server}/configs/index.d.ts +0 -0
  544. /package/dist/{server → runtime/server}/configs/index.js +0 -0
  545. /package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.js +0 -0
  546. /package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.js +0 -0
  547. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.d.ts +0 -0
  548. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.js +0 -0
  549. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.d.ts +0 -0
  550. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.js +0 -0
  551. /package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.js +0 -0
  552. /package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.js +0 -0
  553. /package/dist/{server → runtime/server}/database/database.contract.js +0 -0
  554. /package/dist/{server → runtime/server}/database/types.d.ts +0 -0
  555. /package/dist/{server → runtime/server}/database/types.js +0 -0
  556. /package/dist/{server → runtime/server}/database.d.ts +0 -0
  557. /package/dist/{server → runtime/server}/database.js +0 -0
  558. /package/dist/{server → runtime/server}/services/config.service.d.ts +0 -0
  559. /package/dist/{server → runtime/server}/services/http/http.service.d.ts +0 -0
  560. /package/dist/{server → runtime/server}/services/parallel/types.d.ts +0 -0
  561. /package/dist/{server → runtime/server}/services/parallel/types.js +0 -0
  562. /package/dist/{server → runtime/server}/services/parallel/worker-pool.js +0 -0
  563. /package/dist/{server → runtime/server}/services/parallel/worker.js +0 -0
  564. /package/dist/{client/interfaces/appearance.interface.js → runtime/server/services/types/linked-id.js} +0 -0
  565. /package/dist/{server/templates/admin/admin.controller-template.js → runtime/server/services/types/player-session.object.js} +0 -0
  566. /package/dist/{server/types/core-events.js → runtime/server/templates/admin.controller-template.js} +0 -0
  567. /package/dist/{server → runtime/server}/types/core-events.d.ts +0 -0
  568. /package/dist/{server/types/security.types.js → runtime/server/types/core-events.js} +0 -0
  569. /package/dist/{server → runtime/server}/types/security.types.d.ts +0 -0
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.VehicleService = void 0;
16
+ const tsyringe_1 = require("tsyringe");
17
+ const IEntityServer_1 = require("../../../adapters/contracts/IEntityServer");
18
+ const IHasher_1 = require("../../../adapters/contracts/IHasher");
19
+ const INetTransport_1 = require("../../../adapters/contracts/INetTransport");
20
+ const IPlayerServer_1 = require("../../../adapters/contracts/IPlayerServer");
21
+ const IVehicleServer_1 = require("../../../adapters/contracts/IVehicleServer");
22
+ const logger_1 = require("../../../kernel/shared/logger");
23
+ const vehicle_1 = require("../entities/vehicle");
24
+ const player_directory_port_1 = require("./ports/player-directory.port");
25
+ /**
26
+ * Server-side service for managing vehicle entities.
27
+ *
28
+ * This service is the central authority for all vehicle operations:
29
+ * - Creating vehicles server-side (prevents client-side spawning abuse)
30
+ * - Managing vehicle registry by Network ID
31
+ * - Validating permissions and positions
32
+ * - Synchronizing vehicle state across clients
33
+ *
34
+ * @remarks
35
+ * All vehicle creation MUST go through this service to ensure security.
36
+ * Uses CreateVehicleServerSetter for server-authoritative spawning.
37
+ */
38
+ let VehicleService = class VehicleService {
39
+ constructor(playerDirectory, entityServer, vehicleServer, hasher, playerServer, netTransport) {
40
+ this.playerDirectory = playerDirectory;
41
+ this.entityServer = entityServer;
42
+ this.vehicleServer = vehicleServer;
43
+ this.hasher = hasher;
44
+ this.playerServer = playerServer;
45
+ this.netTransport = netTransport;
46
+ /**
47
+ * Internal registry of all managed vehicles indexed by Network ID
48
+ */
49
+ this.vehiclesByNetworkId = new Map();
50
+ this.vehicleAdapters = {
51
+ entityServer: this.entityServer,
52
+ vehicleServer: this.vehicleServer,
53
+ };
54
+ }
55
+ /**
56
+ * Creates a new vehicle on the server.
57
+ *
58
+ * This method uses CreateVehicleServerSetter to spawn the vehicle server-side,
59
+ * preventing client-side spawning exploits.
60
+ *
61
+ * @param options - Vehicle creation options
62
+ * @returns Spawn result with network ID and handle
63
+ */
64
+ async create(options) {
65
+ var _a;
66
+ try {
67
+ const { model, position, heading = 0, plate, primaryColor, secondaryColor, mods, persistent = false, ownership, metadata, routingBucket = 0, locked = false, fuel = 100.0, } = options;
68
+ const modelHash = typeof model === 'string' ? this.hasher.getHashKey(model) : model;
69
+ const vehicleType = 'automobile';
70
+ const handle = this.vehicleServer.createServerSetter(modelHash, vehicleType, position.x, position.y, position.z, heading);
71
+ if (!handle || handle === 0) {
72
+ logger_1.coreLogger.error('Failed to create vehicle', { model, position });
73
+ return {
74
+ networkId: 0,
75
+ handle: 0,
76
+ success: false,
77
+ error: 'Failed to create vehicle entity',
78
+ };
79
+ }
80
+ while (!this.entityServer.doesExist(handle)) {
81
+ await new Promise((resolve) => setTimeout(resolve, 0));
82
+ }
83
+ const networkId = this.vehicleServer.getNetworkIdFromEntity(handle);
84
+ const vehicleOwnership = {
85
+ clientID: ownership === null || ownership === void 0 ? void 0 : ownership.clientID,
86
+ accountID: ownership === null || ownership === void 0 ? void 0 : ownership.accountID,
87
+ type: (_a = ownership === null || ownership === void 0 ? void 0 : ownership.type) !== null && _a !== void 0 ? _a : 'temporary',
88
+ };
89
+ const vehicle = new vehicle_1.Vehicle(handle, networkId, vehicleOwnership, this.vehicleAdapters, persistent, routingBucket, model, modelHash);
90
+ // Server-side operations (these natives work on server)
91
+ if (plate) {
92
+ vehicle.setPlate(plate);
93
+ }
94
+ if (primaryColor !== undefined || secondaryColor !== undefined) {
95
+ vehicle.setColors(primaryColor, secondaryColor);
96
+ }
97
+ // Mods stored in state bag, applied client-side
98
+ if (mods) {
99
+ vehicle.setMods(mods);
100
+ }
101
+ if (metadata) {
102
+ for (const [key, value] of Object.entries(metadata)) {
103
+ vehicle.setMetadata(key, value);
104
+ }
105
+ }
106
+ vehicle.setDoorsLocked(locked);
107
+ vehicle.setFuel(fuel);
108
+ if (routingBucket !== 0) {
109
+ vehicle.setRoutingBucket(routingBucket);
110
+ }
111
+ this.vehiclesByNetworkId.set(networkId, vehicle);
112
+ logger_1.coreLogger.info('Vehicle created', {
113
+ networkId,
114
+ model,
115
+ ownership: vehicleOwnership.type,
116
+ persistent,
117
+ totalVehicles: this.vehiclesByNetworkId.size,
118
+ });
119
+ this.netTransport.emitNet('opencore:vehicle:created', -1, vehicle.serialize());
120
+ return {
121
+ networkId,
122
+ handle,
123
+ success: true,
124
+ };
125
+ }
126
+ catch (error) {
127
+ const errorInfo = error instanceof Error
128
+ ? { message: error.message, name: error.name, stack: error.stack }
129
+ : { message: String(error) };
130
+ logger_1.coreLogger.error('Error creating vehicle', { error: errorInfo, options });
131
+ return {
132
+ networkId: 0,
133
+ handle: 0,
134
+ success: false,
135
+ error: error instanceof Error ? error.message : 'Unknown error',
136
+ };
137
+ }
138
+ }
139
+ /**
140
+ * Creates a vehicle for a specific player.
141
+ *
142
+ * @param clientID - Client ID of the requesting player
143
+ * @param options - Vehicle creation options
144
+ * @returns Spawn result
145
+ */
146
+ async createForPlayer(clientID, options) {
147
+ const player = this.playerDirectory.getByClient(clientID);
148
+ if (!player) {
149
+ return {
150
+ networkId: 0,
151
+ handle: 0,
152
+ success: false,
153
+ error: 'Player not found',
154
+ };
155
+ }
156
+ const ownership = {
157
+ clientID,
158
+ accountID: player.accountID,
159
+ type: 'player',
160
+ };
161
+ const result = await this.create(Object.assign(Object.assign({}, options), { ownership }));
162
+ if (result.success) {
163
+ this.netTransport.emitNet('opencore:vehicle:warpInto', clientID, result.networkId, -1);
164
+ }
165
+ return result;
166
+ }
167
+ /**
168
+ * Retrieves a vehicle by its Network ID.
169
+ *
170
+ * @param networkId - Network ID of the vehicle
171
+ * @returns Vehicle entity or undefined
172
+ */
173
+ getByNetworkId(networkId) {
174
+ return this.vehiclesByNetworkId.get(networkId);
175
+ }
176
+ /**
177
+ * Retrieves a vehicle by its entity handle.
178
+ *
179
+ * @param handle - Entity handle
180
+ * @returns Vehicle entity or undefined
181
+ */
182
+ getByHandle(handle) {
183
+ const networkId = this.vehicleServer.getNetworkIdFromEntity(handle);
184
+ return this.vehiclesByNetworkId.get(networkId);
185
+ }
186
+ /**
187
+ * Gets all vehicles owned by a specific player.
188
+ *
189
+ * @param clientID - Client ID of the owner
190
+ * @returns Array of vehicles
191
+ */
192
+ getPlayerVehicles(clientID) {
193
+ const vehicles = [];
194
+ for (const vehicle of this.vehiclesByNetworkId.values()) {
195
+ if (vehicle.ownership.clientID === clientID) {
196
+ vehicles.push(vehicle);
197
+ }
198
+ }
199
+ return vehicles;
200
+ }
201
+ /**
202
+ * Gets all vehicles in a specific routing bucket.
203
+ *
204
+ * @param bucket - Routing bucket ID
205
+ * @returns Array of vehicles
206
+ */
207
+ getVehiclesInBucket(bucket) {
208
+ const vehicles = [];
209
+ for (const vehicle of this.vehiclesByNetworkId.values()) {
210
+ if (vehicle.routingBucket === bucket) {
211
+ vehicles.push(vehicle);
212
+ }
213
+ }
214
+ return vehicles;
215
+ }
216
+ /**
217
+ * Gets all managed vehicles.
218
+ *
219
+ * @returns Array of all vehicles
220
+ */
221
+ getAll() {
222
+ return Array.from(this.vehiclesByNetworkId.values());
223
+ }
224
+ /**
225
+ * Deletes a vehicle from the server.
226
+ *
227
+ * @param networkId - Network ID of the vehicle to delete
228
+ * @param requestedBy - Optional client ID for permission validation
229
+ * @returns Success status
230
+ */
231
+ delete(networkId, requestedBy) {
232
+ const vehicle = this.vehiclesByNetworkId.get(networkId);
233
+ if (!vehicle) {
234
+ return false;
235
+ }
236
+ if (requestedBy !== undefined) {
237
+ if (vehicle.ownership.clientID !== requestedBy) {
238
+ logger_1.coreLogger.warn('Unauthorized vehicle deletion attempt', {
239
+ networkId,
240
+ requestedBy,
241
+ owner: vehicle.ownership.clientID,
242
+ });
243
+ return false;
244
+ }
245
+ }
246
+ vehicle.delete();
247
+ this.vehiclesByNetworkId.delete(networkId);
248
+ logger_1.coreLogger.info('Vehicle deleted', {
249
+ networkId,
250
+ totalVehicles: this.vehiclesByNetworkId.size,
251
+ });
252
+ this.netTransport.emitNet('opencore:vehicle:deleted', -1, networkId);
253
+ return true;
254
+ }
255
+ /**
256
+ * Deletes all vehicles owned by a player.
257
+ * Useful when a player disconnects.
258
+ *
259
+ * @param clientID - Client ID of the owner
260
+ */
261
+ deletePlayerVehicles(clientID) {
262
+ const vehicles = this.getPlayerVehicles(clientID);
263
+ for (const vehicle of vehicles) {
264
+ this.delete(vehicle.networkId);
265
+ }
266
+ }
267
+ /**
268
+ * Validates if a player can perform an action on a vehicle.
269
+ *
270
+ * @param networkId - Network ID of the vehicle
271
+ * @param clientID - Client ID of the player
272
+ * @returns True if authorized
273
+ */
274
+ validateOwnership(networkId, clientID) {
275
+ const vehicle = this.vehiclesByNetworkId.get(networkId);
276
+ if (!vehicle)
277
+ return false;
278
+ if (vehicle.ownership.type === 'server' || vehicle.ownership.type === 'shared') {
279
+ return true;
280
+ }
281
+ return vehicle.ownership.clientID === clientID;
282
+ }
283
+ /**
284
+ * Validates if a player is near a vehicle.
285
+ *
286
+ * @param networkId - Network ID of the vehicle
287
+ * @param clientID - Client ID of the player
288
+ * @param maxDistance - Maximum distance in units
289
+ * @returns True if within range
290
+ */
291
+ validateProximity(networkId, clientID, maxDistance = 10.0) {
292
+ const vehicle = this.vehiclesByNetworkId.get(networkId);
293
+ if (!vehicle || !vehicle.exists)
294
+ return false;
295
+ const player = this.playerDirectory.getByClient(clientID);
296
+ if (!player)
297
+ return false;
298
+ const playerPed = this.playerServer.getPed(player.clientIDStr);
299
+ if (!playerPed || playerPed === 0)
300
+ return false;
301
+ const playerPos = this.entityServer.getCoords(playerPed);
302
+ const vehiclePos = vehicle.position;
303
+ const distance = Math.sqrt((playerPos.x - vehiclePos.x) ** 2 +
304
+ (playerPos.y - vehiclePos.y) ** 2 +
305
+ (playerPos.z - vehiclePos.z) ** 2);
306
+ return distance <= maxDistance;
307
+ }
308
+ /**
309
+ * Cleans up orphaned vehicles that no longer exist.
310
+ */
311
+ cleanup() {
312
+ const toDelete = [];
313
+ for (const [networkId, vehicle] of this.vehiclesByNetworkId.entries()) {
314
+ if (!vehicle.exists) {
315
+ toDelete.push(networkId);
316
+ }
317
+ }
318
+ for (const networkId of toDelete) {
319
+ this.vehiclesByNetworkId.delete(networkId);
320
+ logger_1.coreLogger.debug('Cleaned up orphaned vehicle', { networkId });
321
+ }
322
+ if (toDelete.length > 0) {
323
+ logger_1.coreLogger.info('Vehicle cleanup completed', {
324
+ cleaned: toDelete.length,
325
+ remaining: this.vehiclesByNetworkId.size,
326
+ });
327
+ }
328
+ }
329
+ /**
330
+ * Gets the total count of managed vehicles.
331
+ *
332
+ * @returns Vehicle count
333
+ */
334
+ getCount() {
335
+ return this.vehiclesByNetworkId.size;
336
+ }
337
+ /**
338
+ * Serializes all vehicles for data transfer.
339
+ *
340
+ * @returns Array of serialized vehicle data
341
+ */
342
+ serializeAll() {
343
+ return Array.from(this.vehiclesByNetworkId.values()).map((v) => v.serialize());
344
+ }
345
+ };
346
+ exports.VehicleService = VehicleService;
347
+ exports.VehicleService = VehicleService = __decorate([
348
+ (0, tsyringe_1.injectable)(),
349
+ __param(0, (0, tsyringe_1.inject)(player_directory_port_1.PlayerDirectoryPort)),
350
+ __param(1, (0, tsyringe_1.inject)(IEntityServer_1.IEntityServer)),
351
+ __param(2, (0, tsyringe_1.inject)(IVehicleServer_1.IVehicleServer)),
352
+ __param(3, (0, tsyringe_1.inject)(IHasher_1.IHasher)),
353
+ __param(4, (0, tsyringe_1.inject)(IPlayerServer_1.IPlayerServer)),
354
+ __param(5, (0, tsyringe_1.inject)(INetTransport_1.INetTransport)),
355
+ __metadata("design:paramtypes", [player_directory_port_1.PlayerDirectoryPort,
356
+ IEntityServer_1.IEntityServer,
357
+ IVehicleServer_1.IVehicleServer,
358
+ IHasher_1.IHasher,
359
+ IPlayerServer_1.IPlayerServer,
360
+ INetTransport_1.INetTransport])
361
+ ], VehicleService);
@@ -0,0 +1,10 @@
1
+ import { ClassConstructor } from '../../kernel/di/index';
2
+ import { PlayerPersistenceContract, PrincipalProviderContract } from './contracts';
3
+ import { AuthProviderContract } from './contracts/auth-provider.contract';
4
+ import { NetEventSecurityObserverContract } from './contracts/security/net-event-security-observer.contract';
5
+ import { SecurityHandlerContract } from './contracts/security/security-handler.contract';
6
+ export declare function setPrincipalProvider(provider: ClassConstructor<PrincipalProviderContract>): void;
7
+ export declare function setAuthProvider(provider: ClassConstructor<AuthProviderContract>): void;
8
+ export declare function setSecurityHandler(handler: ClassConstructor<SecurityHandlerContract>): void;
9
+ export declare function setPersistenceProvider(provider: ClassConstructor<PlayerPersistenceContract>): void;
10
+ export declare function setNetEventSecurityObserver(observer: ClassConstructor<NetEventSecurityObserverContract>): void;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setPrincipalProvider = setPrincipalProvider;
4
+ exports.setAuthProvider = setAuthProvider;
5
+ exports.setSecurityHandler = setSecurityHandler;
6
+ exports.setPersistenceProvider = setPersistenceProvider;
7
+ exports.setNetEventSecurityObserver = setNetEventSecurityObserver;
8
+ const index_1 = require("../../kernel/di/index");
9
+ const logger_1 = require("../../kernel/shared/logger");
10
+ const contracts_1 = require("./contracts");
11
+ const auth_provider_contract_1 = require("./contracts/auth-provider.contract");
12
+ const net_event_security_observer_contract_1 = require("./contracts/security/net-event-security-observer.contract");
13
+ const security_handler_contract_1 = require("./contracts/security/security-handler.contract");
14
+ function setPrincipalProvider(provider) {
15
+ index_1.di.registerSingleton(contracts_1.PrincipalProviderContract, provider);
16
+ logger_1.loggers.bootstrap.info(`Principal Provider configured: ${provider.name}`);
17
+ }
18
+ function setAuthProvider(provider) {
19
+ index_1.di.registerSingleton(auth_provider_contract_1.AuthProviderContract, provider);
20
+ logger_1.loggers.bootstrap.info(`Auth Provider configured: ${provider.name}`);
21
+ }
22
+ function setSecurityHandler(handler) {
23
+ index_1.di.registerSingleton(security_handler_contract_1.SecurityHandlerContract, handler);
24
+ logger_1.loggers.bootstrap.info(`Security Handler configured: ${handler.name}`);
25
+ }
26
+ function setPersistenceProvider(provider) {
27
+ index_1.di.registerSingleton(contracts_1.PlayerPersistenceContract, provider);
28
+ logger_1.loggers.bootstrap.info(`Persistence Provider configured: ${provider.name}`);
29
+ }
30
+ function setNetEventSecurityObserver(observer) {
31
+ index_1.di.registerSingleton(net_event_security_observer_contract_1.NetEventSecurityObserverContract, observer);
32
+ logger_1.loggers.bootstrap.info(`NetEvent Security Observer configured: ${observer.name}`);
33
+ }
@@ -7,4 +7,6 @@ export declare const METADATA_KEYS: {
7
7
  FIVEM_EVENT: string;
8
8
  EXPORT: string;
9
9
  PUBLIC: string;
10
+ THROTTLE: string;
11
+ REQUIRES_STATE: string;
10
12
  };
@@ -10,4 +10,6 @@ exports.METADATA_KEYS = {
10
10
  FIVEM_EVENT: 'core:meta:fivem_event',
11
11
  EXPORT: 'core:meta:export',
12
12
  PUBLIC: 'core:meta:public',
13
+ THROTTLE: 'core:throttle',
14
+ REQUIRES_STATE: 'core:requires_state',
13
15
  };
@@ -0,0 +1,16 @@
1
+ import { DecoratorProcessor } from '../../../../kernel/di/index';
2
+ import { CommandMetadata } from '../../decorators/command';
3
+ import { CommandExecutionPort } from '../../services/ports/command-execution.port';
4
+ /**
5
+ * Processor for @Command decorator.
6
+ *
7
+ * @remarks
8
+ * Reads command metadata and registers handlers with CommandExecutionPort.
9
+ * The port implementation (local or remote) depends on runtime mode.
10
+ */
11
+ export declare class CommandProcessor implements DecoratorProcessor {
12
+ private commandService;
13
+ readonly metadataKey: string;
14
+ constructor(commandService: CommandExecutionPort);
15
+ process(target: any, methodName: string, metadata: CommandMetadata): void;
16
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CommandProcessor = void 0;
13
+ const tsyringe_1 = require("tsyringe");
14
+ const command_execution_port_1 = require("../../services/ports/command-execution.port");
15
+ const metadata_server_keys_1 = require("../metadata-server.keys");
16
+ /**
17
+ * Processor for @Command decorator.
18
+ *
19
+ * @remarks
20
+ * Reads command metadata and registers handlers with CommandExecutionPort.
21
+ * The port implementation (local or remote) depends on runtime mode.
22
+ */
23
+ let CommandProcessor = class CommandProcessor {
24
+ constructor(commandService) {
25
+ this.commandService = commandService;
26
+ this.metadataKey = metadata_server_keys_1.METADATA_KEYS.COMMAND;
27
+ }
28
+ process(target, methodName, metadata) {
29
+ const handler = target[methodName].bind(target);
30
+ // Check if method has @Public decorator
31
+ const proto = Object.getPrototypeOf(target);
32
+ const isPublic = Reflect.getMetadata(metadata_server_keys_1.METADATA_KEYS.PUBLIC, proto, methodName);
33
+ // Collect security metadata from decorators
34
+ const guardOptions = Reflect.getMetadata('core:guard', proto, methodName);
35
+ const throttleOptions = Reflect.getMetadata(metadata_server_keys_1.METADATA_KEYS.THROTTLE, proto, methodName);
36
+ const requiresStateOptions = Reflect.getMetadata(metadata_server_keys_1.METADATA_KEYS.REQUIRES_STATE, proto, methodName);
37
+ // Build security metadata if any decorator is present
38
+ const security = guardOptions || throttleOptions || requiresStateOptions
39
+ ? {
40
+ guard: guardOptions,
41
+ throttle: throttleOptions,
42
+ requiresState: requiresStateOptions,
43
+ }
44
+ : undefined;
45
+ // Enrich metadata with isPublic flag and security
46
+ const enrichedMetadata = Object.assign(Object.assign({}, metadata), { isPublic: isPublic !== null && isPublic !== void 0 ? isPublic : false, security });
47
+ this.commandService.register(enrichedMetadata, handler);
48
+ }
49
+ };
50
+ exports.CommandProcessor = CommandProcessor;
51
+ exports.CommandProcessor = CommandProcessor = __decorate([
52
+ (0, tsyringe_1.injectable)(),
53
+ __metadata("design:paramtypes", [command_execution_port_1.CommandExecutionPort])
54
+ ], CommandProcessor);
@@ -1,4 +1,4 @@
1
- import { DecoratorProcessor } from '../../../system/decorator-processor';
1
+ import { DecoratorProcessor } from '../../../../kernel/di/decorator-processor';
2
2
  export declare class CoreEventProcessor implements DecoratorProcessor {
3
3
  readonly metadataKey: string;
4
4
  process(instance: any, methodName: string, metadata: {
@@ -8,10 +8,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.CoreEventProcessor = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
+ const logger_1 = require("../../../../kernel/shared/logger");
11
12
  const core_event_bus_1 = require("../../bus/core-event-bus");
12
- const metadata_server_keys_1 = require("../metadata-server.keys");
13
- const logger_1 = require("../../../shared/logger");
14
13
  const resolve_method_1 = require("../../helpers/resolve-method");
14
+ const metadata_server_keys_1 = require("../metadata-server.keys");
15
15
  let CoreEventProcessor = class CoreEventProcessor {
16
16
  constructor() {
17
17
  this.metadataKey = metadata_server_keys_1.METADATA_KEYS.CORE_EVENT;
@@ -21,7 +21,7 @@ let CoreEventProcessor = class CoreEventProcessor {
21
21
  if (!result)
22
22
  return;
23
23
  const { handler, handlerName } = result;
24
- (0, core_event_bus_1.onCoreEvent)(metadata.event, (payload) => {
24
+ (0, core_event_bus_1.onFrameworkEvent)(metadata.event, (payload) => {
25
25
  try {
26
26
  handler(payload);
27
27
  }
@@ -0,0 +1,10 @@
1
+ import { IExports } from '../../../../adapters/contracts/IExports';
2
+ import { type DecoratorProcessor } from '../../../../kernel/di/index';
3
+ export declare class ExportProcessor implements DecoratorProcessor {
4
+ private exportsService;
5
+ readonly metadataKey: string;
6
+ constructor(exportsService: IExports);
7
+ process(instance: any, methodName: string, metadata: {
8
+ exportName: string;
9
+ }): void;
10
+ }
@@ -5,14 +5,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  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;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
8
14
  Object.defineProperty(exports, "__esModule", { value: true });
9
15
  exports.ExportProcessor = void 0;
10
16
  const tsyringe_1 = require("tsyringe");
11
- const metadata_server_keys_1 = require("../metadata-server.keys");
12
- const logger_1 = require("../../../shared/logger");
17
+ const IExports_1 = require("../../../../adapters/contracts/IExports");
18
+ const logger_1 = require("../../../../kernel/shared/logger");
13
19
  const resolve_method_1 = require("../../helpers/resolve-method");
20
+ const metadata_server_keys_1 = require("../metadata-server.keys");
14
21
  let ExportProcessor = class ExportProcessor {
15
- constructor() {
22
+ constructor(exportsService) {
23
+ this.exportsService = exportsService;
16
24
  this.metadataKey = metadata_server_keys_1.METADATA_KEYS.EXPORT;
17
25
  }
18
26
  process(instance, methodName, metadata) {
@@ -20,11 +28,13 @@ let ExportProcessor = class ExportProcessor {
20
28
  if (!result)
21
29
  return;
22
30
  const { handler } = result;
23
- globalThis.exports(metadata.exportName, handler);
31
+ this.exportsService.register(metadata.exportName, handler);
24
32
  logger_1.loggers.exports.debug(`Registered: ${metadata.exportName}`);
25
33
  }
26
34
  };
27
35
  exports.ExportProcessor = ExportProcessor;
28
36
  exports.ExportProcessor = ExportProcessor = __decorate([
29
- (0, tsyringe_1.injectable)()
37
+ (0, tsyringe_1.injectable)(),
38
+ __param(0, (0, tsyringe_1.inject)(IExports_1.IExports)),
39
+ __metadata("design:paramtypes", [IExports_1.IExports])
30
40
  ], ExportProcessor);
@@ -0,0 +1,10 @@
1
+ import { IEngineEvents } from '../../../../adapters/contracts/IEngineEvents';
2
+ import { type DecoratorProcessor } from '../../../../kernel/di/index';
3
+ export declare class FiveMEventProcessor implements DecoratorProcessor {
4
+ private readonly engineEvents;
5
+ readonly metadataKey: string;
6
+ constructor(engineEvents: IEngineEvents);
7
+ process(instance: any, methodName: string, metadata: {
8
+ event: string;
9
+ }): void;
10
+ }
@@ -5,14 +5,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  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;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
8
14
  Object.defineProperty(exports, "__esModule", { value: true });
9
15
  exports.FiveMEventProcessor = void 0;
10
16
  const tsyringe_1 = require("tsyringe");
11
- const metadata_server_keys_1 = require("../metadata-server.keys");
12
- const logger_1 = require("../../../shared/logger");
17
+ const IEngineEvents_1 = require("../../../../adapters/contracts/IEngineEvents");
18
+ const logger_1 = require("../../../../kernel/shared/logger");
13
19
  const resolve_method_1 = require("../../helpers/resolve-method");
20
+ const metadata_server_keys_1 = require("../metadata-server.keys");
14
21
  let FiveMEventProcessor = class FiveMEventProcessor {
15
- constructor() {
22
+ constructor(engineEvents) {
23
+ this.engineEvents = engineEvents;
16
24
  this.metadataKey = metadata_server_keys_1.METADATA_KEYS.FIVEM_EVENT;
17
25
  }
18
26
  process(instance, methodName, metadata) {
@@ -20,7 +28,7 @@ let FiveMEventProcessor = class FiveMEventProcessor {
20
28
  if (!result)
21
29
  return;
22
30
  const { handler, handlerName } = result;
23
- on(metadata.event, (...args) => {
31
+ this.engineEvents.on(metadata.event, (...args) => {
24
32
  try {
25
33
  handler(...args);
26
34
  }
@@ -36,5 +44,7 @@ let FiveMEventProcessor = class FiveMEventProcessor {
36
44
  };
37
45
  exports.FiveMEventProcessor = FiveMEventProcessor;
38
46
  exports.FiveMEventProcessor = FiveMEventProcessor = __decorate([
39
- (0, tsyringe_1.injectable)()
47
+ (0, tsyringe_1.injectable)(),
48
+ __param(0, (0, tsyringe_1.inject)(IEngineEvents_1.IEngineEvents)),
49
+ __metadata("design:paramtypes", [IEngineEvents_1.IEngineEvents])
40
50
  ], FiveMEventProcessor);
@@ -0,0 +1,23 @@
1
+ import { INetTransport } from '../../../../adapters/contracts/INetTransport';
2
+ import { type DecoratorProcessor } from '../../../../kernel/di/index';
3
+ import { NetEventSecurityObserverContract } from '../../contracts/security/net-event-security-observer.contract';
4
+ import { SecurityHandlerContract } from '../../contracts/security/security-handler.contract';
5
+ import { NetEventOptions } from '../../decorators';
6
+ import { PlayerDirectoryPort } from '../../services/ports/player-directory.port';
7
+ export declare class NetEventProcessor implements DecoratorProcessor {
8
+ private playerService;
9
+ private securityHandler;
10
+ private netEventObserver;
11
+ private netTransport;
12
+ readonly metadataKey: string;
13
+ private readonly INVALID_COUNTS_META_KEY;
14
+ constructor(playerService: PlayerDirectoryPort, securityHandler: SecurityHandlerContract, netEventObserver: NetEventSecurityObserverContract, netTransport: INetTransport);
15
+ process(instance: any, methodName: string, metadata: NetEventOptions): void;
16
+ private safeHandleViolation;
17
+ private reasonFromSecurityError;
18
+ private handleInvalidPayload;
19
+ private incrementInvalidCount;
20
+ private summarizeZodError;
21
+ private safeObserve;
22
+ private getExpectedArgsCount;
23
+ }