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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/README.md +217 -360
  2. package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
  3. package/dist/adapters/contracts/IEngineEvents.js +6 -0
  4. package/dist/adapters/contracts/IEntityServer.d.ts +88 -0
  5. package/dist/adapters/contracts/IEntityServer.js +13 -0
  6. package/dist/adapters/contracts/IExports.d.ts +4 -0
  7. package/dist/adapters/contracts/IExports.js +6 -0
  8. package/dist/adapters/contracts/IHasher.d.ts +15 -0
  9. package/dist/adapters/contracts/IHasher.js +12 -0
  10. package/dist/adapters/contracts/INetTransport.d.ts +8 -0
  11. package/dist/adapters/contracts/INetTransport.js +6 -0
  12. package/dist/adapters/contracts/IPedAppearanceClient.d.ts +206 -0
  13. package/dist/adapters/contracts/IPedAppearanceClient.js +16 -0
  14. package/dist/adapters/contracts/IPedAppearanceServer.d.ts +45 -0
  15. package/dist/adapters/contracts/IPedAppearanceServer.js +16 -0
  16. package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
  17. package/dist/adapters/contracts/IPlayerInfo.js +6 -0
  18. package/dist/adapters/contracts/IPlayerServer.d.ts +73 -0
  19. package/dist/adapters/contracts/IPlayerServer.js +13 -0
  20. package/dist/adapters/contracts/IResourceInfo.d.ts +3 -0
  21. package/dist/adapters/contracts/IResourceInfo.js +6 -0
  22. package/dist/adapters/contracts/ITick.d.ts +10 -0
  23. package/dist/adapters/contracts/ITick.js +9 -0
  24. package/dist/adapters/contracts/IVehicleServer.d.ts +55 -0
  25. package/dist/adapters/contracts/IVehicleServer.js +13 -0
  26. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.d.ts +2 -2
  27. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.js +2 -2
  28. package/dist/adapters/database/resource.adapter.d.ts +12 -0
  29. package/dist/adapters/database/resource.adapter.js +68 -0
  30. package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
  31. package/dist/adapters/fivem/fivem-engine-events.js +13 -0
  32. package/dist/adapters/fivem/fivem-entity-server.d.ts +22 -0
  33. package/dist/adapters/fivem/fivem-entity-server.js +80 -0
  34. package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
  35. package/dist/adapters/fivem/fivem-exports.js +14 -0
  36. package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
  37. package/dist/adapters/fivem/fivem-hasher.js +23 -0
  38. package/dist/adapters/fivem/fivem-net-transport.d.ts +5 -0
  39. package/dist/adapters/fivem/fivem-net-transport.js +24 -0
  40. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
  41. package/dist/adapters/fivem/fivem-ped-appearance-client.js +84 -0
  42. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
  43. package/dist/adapters/fivem/fivem-ped-appearance-server.js +26 -0
  44. package/dist/adapters/fivem/fivem-player-server.d.ts +15 -0
  45. package/dist/adapters/fivem/fivem-player-server.js +63 -0
  46. package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
  47. package/dist/adapters/fivem/fivem-playerinfo.js +14 -0
  48. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +4 -0
  49. package/dist/adapters/fivem/fivem-resourceinfo.js +16 -0
  50. package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
  51. package/dist/adapters/fivem/fivem-tick.js +22 -0
  52. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
  53. package/dist/adapters/fivem/fivem-vehicle-server.js +47 -0
  54. package/dist/adapters/index.d.ts +15 -0
  55. package/dist/adapters/index.js +40 -0
  56. package/dist/adapters/node/index.d.ts +8 -0
  57. package/dist/adapters/node/index.js +19 -0
  58. package/dist/adapters/node/node-engine-events.d.ts +20 -0
  59. package/dist/adapters/node/node-engine-events.js +42 -0
  60. package/dist/adapters/node/node-entity-server.d.ts +26 -0
  61. package/dist/adapters/node/node-entity-server.js +101 -0
  62. package/dist/adapters/node/node-exports.d.ts +26 -0
  63. package/dist/adapters/node/node-exports.js +63 -0
  64. package/dist/adapters/node/node-hasher.d.ts +12 -0
  65. package/dist/adapters/node/node-hasher.js +39 -0
  66. package/dist/adapters/node/node-net-transport.d.ts +18 -0
  67. package/dist/adapters/node/node-net-transport.js +57 -0
  68. package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
  69. package/dist/adapters/node/node-ped-appearance-client.js +59 -0
  70. package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
  71. package/dist/adapters/node/node-ped-appearance-server.js +18 -0
  72. package/dist/adapters/node/node-player-server.d.ts +27 -0
  73. package/dist/adapters/node/node-player-server.js +82 -0
  74. package/dist/adapters/node/node-playerinfo.d.ts +6 -0
  75. package/dist/adapters/node/node-playerinfo.js +12 -0
  76. package/dist/adapters/node/node-resourceinfo.d.ts +12 -0
  77. package/dist/adapters/node/node-resourceinfo.js +27 -0
  78. package/dist/adapters/node/node-tick.d.ts +10 -0
  79. package/dist/{server/system/processors/command.processor.js → adapters/node/node-tick.js} +27 -14
  80. package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
  81. package/dist/adapters/node/node-vehicle-server.js +93 -0
  82. package/dist/adapters/register-capabilities.d.ts +11 -0
  83. package/dist/adapters/register-capabilities.js +148 -0
  84. package/dist/adapters/register-client-capabilities.d.ts +8 -0
  85. package/dist/adapters/register-client-capabilities.js +56 -0
  86. package/dist/index.d.ts +5 -4
  87. package/dist/index.js +9 -5
  88. package/dist/kernel/di/index.d.ts +4 -0
  89. package/dist/kernel/di/index.js +20 -0
  90. package/dist/{system → kernel/di}/metadata.scanner.d.ts +1 -2
  91. package/dist/kernel/di/tokens.d.ts +30 -0
  92. package/dist/kernel/di/tokens.js +38 -0
  93. package/dist/kernel/index.d.ts +7 -0
  94. package/dist/kernel/index.js +30 -0
  95. package/dist/kernel/schema/index.d.ts +32 -0
  96. package/dist/kernel/schema/index.js +5 -0
  97. package/dist/kernel/shared/appearance/appearance.interface.d.ts +276 -0
  98. package/dist/kernel/shared/appearance/appearance.interface.js +77 -0
  99. package/dist/kernel/shared/appearance/index.d.ts +1 -0
  100. package/dist/kernel/shared/appearance/index.js +17 -0
  101. package/dist/kernel/shared/index.d.ts +2 -0
  102. package/dist/{shared → kernel/shared}/index.js +1 -0
  103. package/dist/{shared → kernel/shared}/logger/core-logger.d.ts +13 -0
  104. package/dist/{shared → kernel/shared}/logger/core-logger.js +38 -9
  105. package/dist/{shared → kernel/shared}/logger/index.d.ts +12 -9
  106. package/dist/{shared → kernel/shared}/logger/index.js +24 -15
  107. package/dist/{shared → kernel/shared}/logger/logger.config.d.ts +1 -1
  108. package/dist/kernel/shared/logger/logger.env.d.ts +28 -0
  109. package/dist/kernel/shared/logger/logger.env.js +51 -0
  110. package/dist/{shared → kernel/shared}/logger/logger.service.d.ts +2 -2
  111. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.d.ts +2 -2
  112. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.js +1 -1
  113. package/dist/{shared → kernel/shared}/logger/transports/console.transport.d.ts +2 -2
  114. package/dist/{shared → kernel/shared}/logger/transports/console.transport.js +1 -0
  115. package/dist/kernel/shared/logger/transports/dev-transport.factory.d.ts +75 -0
  116. package/dist/kernel/shared/logger/transports/dev-transport.factory.js +111 -0
  117. package/dist/kernel/shared/logger/transports/http.transport.d.ts +67 -0
  118. package/dist/kernel/shared/logger/transports/http.transport.js +170 -0
  119. package/dist/kernel/shared/logger/transports/index.d.ts +7 -0
  120. package/dist/kernel/shared/logger/transports/index.js +34 -0
  121. package/dist/kernel/shared/logger/transports/simple-console.transport.d.ts +38 -0
  122. package/dist/kernel/shared/logger/transports/simple-console.transport.js +93 -0
  123. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.d.ts +1 -1
  124. package/dist/kernel/shared/logger/transports/websocket.transport.d.ts +69 -0
  125. package/dist/kernel/shared/logger/transports/websocket.transport.js +169 -0
  126. package/dist/kernel/utils/error/app.error.d.ts +9 -0
  127. package/dist/{utils/errors.js → kernel/utils/error/app.error.js} +1 -9
  128. package/dist/kernel/utils/error/security.error.d.ts +6 -0
  129. package/dist/kernel/utils/error/security.error.js +12 -0
  130. package/dist/{utils → kernel/utils}/index.d.ts +3 -2
  131. package/dist/{utils → kernel/utils}/index.js +3 -2
  132. package/dist/{utils → kernel/utils}/result.d.ts +1 -1
  133. package/dist/runtime/client/client-bootstrap.d.ts +7 -0
  134. package/dist/runtime/client/client-bootstrap.js +180 -0
  135. package/dist/runtime/client/client-core.d.ts +19 -0
  136. package/dist/runtime/client/client-core.js +24 -0
  137. package/dist/runtime/client/client-runtime.d.ts +58 -0
  138. package/dist/runtime/client/client-runtime.js +32 -0
  139. package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
  140. package/dist/runtime/client/controllers/appearance.controller.js +50 -0
  141. package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
  142. package/dist/runtime/client/controllers/player-sync.controller.js +54 -0
  143. package/dist/{client → runtime/client}/controllers/spawner.controller.d.ts +1 -1
  144. package/dist/runtime/client/decorators/controller.d.ts +20 -0
  145. package/dist/runtime/client/decorators/controller.js +55 -0
  146. package/dist/runtime/client/decorators/export.d.ts +21 -0
  147. package/dist/runtime/client/decorators/export.js +29 -0
  148. package/dist/{client → runtime/client}/decorators/gameEvent.d.ts +2 -2
  149. package/dist/runtime/client/decorators/interval.d.ts +23 -0
  150. package/dist/runtime/client/decorators/interval.js +31 -0
  151. package/dist/runtime/client/decorators/key.d.ts +23 -0
  152. package/dist/runtime/client/decorators/key.js +31 -0
  153. package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
  154. package/dist/runtime/client/decorators/localEvent.js +29 -0
  155. package/dist/runtime/client/decorators/nui.d.ts +21 -0
  156. package/dist/runtime/client/decorators/nui.js +29 -0
  157. package/dist/runtime/client/decorators/onNet.d.ts +21 -0
  158. package/dist/runtime/client/decorators/onNet.js +29 -0
  159. package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
  160. package/dist/runtime/client/decorators/resourceLifecycle.js +53 -0
  161. package/dist/runtime/client/decorators/tick.d.ts +21 -0
  162. package/dist/runtime/client/decorators/tick.js +29 -0
  163. package/dist/{client → runtime/client}/index.d.ts +2 -2
  164. package/dist/{client → runtime/client}/index.js +4 -2
  165. package/dist/runtime/client/interfaces/appearance.interface.d.ts +25 -0
  166. package/dist/runtime/client/interfaces/appearance.interface.js +2 -0
  167. package/dist/{client → runtime/client}/player/player.d.ts +1 -1
  168. package/dist/{client → runtime/client}/player/player.js +5 -6
  169. package/dist/{client → runtime/client}/player/player.loader.js +2 -2
  170. package/dist/runtime/client/services/appearance.service.d.ts +132 -0
  171. package/dist/runtime/client/services/appearance.service.js +328 -0
  172. package/dist/{client → runtime/client}/services/blip.service.d.ts +1 -1
  173. package/dist/{client → runtime/client}/services/index.d.ts +6 -5
  174. package/dist/{client → runtime/client}/services/index.js +6 -5
  175. package/dist/{client → runtime/client}/services/marker.service.d.ts +1 -1
  176. package/dist/{client → runtime/client}/services/ped.service.d.ts +1 -1
  177. package/dist/{client → runtime/client}/services/ped.service.js +3 -2
  178. package/dist/{client → runtime/client}/services/spawn.service.d.ts +2 -2
  179. package/dist/{client → runtime/client}/services/spawn.service.js +4 -8
  180. package/dist/{client → runtime/client}/services/textui.service.d.ts +1 -1
  181. package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
  182. package/dist/runtime/client/services/vehicle-client.service.js +485 -0
  183. package/dist/{client → runtime/client}/services/vehicle.service.d.ts +2 -2
  184. package/dist/{client → runtime/client}/services/vehicle.service.js +1 -1
  185. package/dist/{client → runtime/client}/system/processors/export.processor.d.ts +1 -1
  186. package/dist/{client → runtime/client}/system/processors/export.processor.js +1 -1
  187. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.d.ts +1 -1
  188. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.js +2 -2
  189. package/dist/{client → runtime/client}/system/processors/interval.processor.d.ts +1 -1
  190. package/dist/{client → runtime/client}/system/processors/interval.processor.js +1 -1
  191. package/dist/{client → runtime/client}/system/processors/key.processor.d.ts +1 -1
  192. package/dist/{client → runtime/client}/system/processors/localEvent.processor.d.ts +1 -1
  193. package/dist/{client → runtime/client}/system/processors/localEvent.processor.js +1 -1
  194. package/dist/{client → runtime/client}/system/processors/netEvent.processor.d.ts +1 -1
  195. package/dist/{client → runtime/client}/system/processors/netEvent.processor.js +1 -1
  196. package/dist/{client → runtime/client}/system/processors/nui.processor.d.ts +1 -1
  197. package/dist/{client → runtime/client}/system/processors/nui.processor.js +1 -1
  198. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.d.ts +1 -1
  199. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.js +1 -1
  200. package/dist/{client → runtime/client}/system/processors/tick.processor.d.ts +1 -1
  201. package/dist/{client → runtime/client}/system/processors/tick.processor.js +1 -1
  202. package/dist/{client → runtime/client}/types/game-events.js +0 -8
  203. package/dist/{client → runtime/client}/ui-bridge.js +1 -1
  204. package/dist/runtime/index.d.ts +2 -0
  205. package/dist/runtime/index.js +39 -0
  206. package/dist/{server → runtime/server}/bootstrap.d.ts +2 -1
  207. package/dist/runtime/server/bootstrap.js +234 -0
  208. package/dist/runtime/server/bootstrap.validation.d.ts +12 -0
  209. package/dist/runtime/server/bootstrap.validation.js +102 -0
  210. package/dist/runtime/server/bus/core-event-bus.d.ts +6 -0
  211. package/dist/{server → runtime/server}/bus/core-event-bus.js +5 -5
  212. package/dist/{server → runtime/server}/configs/api.config.d.ts +1 -1
  213. package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.d.ts +2 -2
  214. package/dist/runtime/server/contracts/index.d.ts +7 -0
  215. package/dist/{server/templates → runtime/server/contracts}/index.js +8 -4
  216. package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.d.ts +1 -1
  217. package/dist/{server/templates → runtime/server/contracts}/repository/index.d.ts +2 -2
  218. package/dist/{server/templates → runtime/server/contracts}/repository/index.js +1 -1
  219. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.d.ts +2 -2
  220. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.js +0 -1
  221. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
  222. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +6 -0
  223. package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.d.ts +3 -3
  224. package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.d.ts +2 -2
  225. package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
  226. package/dist/{server → runtime/server}/controllers/chat.controller.js +23 -11
  227. package/dist/runtime/server/controllers/command-export.controller.d.ts +74 -0
  228. package/dist/runtime/server/controllers/command-export.controller.js +260 -0
  229. package/dist/runtime/server/controllers/command.controller.d.ts +15 -0
  230. package/dist/runtime/server/controllers/command.controller.js +100 -0
  231. package/dist/runtime/server/controllers/player-export.controller.d.ts +29 -0
  232. package/dist/runtime/server/controllers/player-export.controller.js +173 -0
  233. package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
  234. package/dist/runtime/server/controllers/principal-export.controller.js +296 -0
  235. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +43 -0
  236. package/dist/runtime/server/controllers/remote-command-execution.controller.js +104 -0
  237. package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
  238. package/dist/{server → runtime/server}/controllers/session.controller.js +15 -12
  239. package/dist/runtime/server/controllers/vehicle.controller.d.ts +55 -0
  240. package/dist/runtime/server/controllers/vehicle.controller.js +216 -0
  241. package/dist/runtime/server/core.d.ts +3 -0
  242. package/dist/runtime/server/core.js +11 -0
  243. package/dist/runtime/server/database/adapter.registry.d.ts +4 -0
  244. package/dist/runtime/server/database/adapter.registry.js +14 -0
  245. package/dist/{server → runtime/server}/database/database.contract.d.ts +1 -1
  246. package/dist/{server → runtime/server}/database/database.service.d.ts +3 -31
  247. package/dist/{server → runtime/server}/database/database.service.js +36 -50
  248. package/dist/runtime/server/database/index.d.ts +5 -0
  249. package/dist/runtime/server/database/index.js +25 -0
  250. package/dist/runtime/server/decorators/bind.d.ts +21 -0
  251. package/dist/runtime/server/decorators/bind.js +31 -0
  252. package/dist/runtime/server/decorators/command.d.ts +81 -0
  253. package/dist/runtime/server/decorators/command.js +32 -0
  254. package/dist/{server → runtime/server}/decorators/controller.d.ts +4 -3
  255. package/dist/runtime/server/decorators/controller.js +61 -0
  256. package/dist/runtime/server/decorators/export.d.ts +24 -0
  257. package/dist/runtime/server/decorators/export.js +32 -0
  258. package/dist/runtime/server/decorators/guard.d.ts +49 -0
  259. package/dist/{server → runtime/server}/decorators/guard.js +33 -32
  260. package/dist/{server → runtime/server}/decorators/index.d.ts +7 -4
  261. package/dist/{server → runtime/server}/decorators/index.js +8 -5
  262. package/dist/runtime/server/decorators/onFiveMEvent.d.ts +24 -0
  263. package/dist/runtime/server/decorators/onFiveMEvent.js +32 -0
  264. package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +22 -0
  265. package/dist/{server → runtime/server}/decorators/onFrameworkEvent.js +9 -9
  266. package/dist/runtime/server/decorators/onNet.d.ts +62 -0
  267. package/dist/runtime/server/decorators/onNet.js +15 -0
  268. package/dist/runtime/server/decorators/onTick.d.ts +21 -0
  269. package/dist/runtime/server/decorators/onTick.js +29 -0
  270. package/dist/runtime/server/decorators/public.d.ts +26 -0
  271. package/dist/{server → runtime/server}/decorators/public.js +15 -16
  272. package/dist/{server → runtime/server}/decorators/requiresState.d.ts +29 -22
  273. package/dist/runtime/server/decorators/requiresState.js +73 -0
  274. package/dist/runtime/server/decorators/throttle.d.ts +56 -0
  275. package/dist/{server → runtime/server}/decorators/throttle.js +31 -19
  276. package/dist/runtime/server/decorators/utils.d.ts +54 -0
  277. package/dist/runtime/server/decorators/utils.js +60 -0
  278. package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
  279. package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +12 -0
  280. package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
  281. package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +12 -0
  282. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
  283. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +11 -0
  284. package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
  285. package/dist/runtime/server/devmode/contracts/index.js +9 -0
  286. package/dist/runtime/server/devmode/dev-mode.service.d.ts +110 -0
  287. package/dist/runtime/server/devmode/dev-mode.service.js +324 -0
  288. package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
  289. package/dist/runtime/server/devmode/event-interceptor.service.js +232 -0
  290. package/dist/runtime/server/devmode/hot-reload.server.d.ts +74 -0
  291. package/dist/runtime/server/devmode/hot-reload.server.js +261 -0
  292. package/dist/runtime/server/devmode/index.d.ts +8 -0
  293. package/dist/runtime/server/devmode/index.js +32 -0
  294. package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
  295. package/dist/runtime/server/devmode/player-simulator.service.js +202 -0
  296. package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
  297. package/dist/runtime/server/devmode/state-inspector.service.js +183 -0
  298. package/dist/runtime/server/devmode/types.d.ts +161 -0
  299. package/dist/runtime/server/devmode/types.js +28 -0
  300. package/dist/runtime/server/entities/index.d.ts +2 -0
  301. package/dist/{server → runtime/server}/entities/index.js +1 -0
  302. package/dist/{server → runtime/server}/entities/player.d.ts +70 -3
  303. package/dist/{server → runtime/server}/entities/player.js +92 -14
  304. package/dist/runtime/server/entities/vehicle.d.ts +160 -0
  305. package/dist/runtime/server/entities/vehicle.js +261 -0
  306. package/dist/{server → runtime/server}/error-handler.d.ts +1 -1
  307. package/dist/{server → runtime/server}/error-handler.js +7 -8
  308. package/dist/runtime/server/helpers/command-validation.helper.d.ts +6 -0
  309. package/dist/runtime/server/helpers/command-validation.helper.js +72 -0
  310. package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
  311. package/dist/runtime/server/helpers/function-helper.js +15 -0
  312. package/dist/{server → runtime/server}/helpers/resolve-method.d.ts +1 -1
  313. package/dist/runtime/server/helpers/resolve-method.js +28 -0
  314. package/dist/{server → runtime/server}/index.d.ts +8 -6
  315. package/dist/{server → runtime/server}/index.js +14 -10
  316. package/dist/runtime/server/runtime.d.ts +408 -0
  317. package/dist/runtime/server/runtime.js +234 -0
  318. package/dist/runtime/server/services/access-control.service.d.ts +59 -0
  319. package/dist/runtime/server/services/access-control.service.js +127 -0
  320. package/dist/runtime/server/services/appearance.service.d.ts +99 -0
  321. package/dist/runtime/server/services/appearance.service.js +307 -0
  322. package/dist/runtime/server/services/chat.service.d.ts +33 -0
  323. package/dist/{server → runtime/server}/services/chat.service.js +26 -0
  324. package/dist/{server → runtime/server}/services/config.service.js +1 -1
  325. package/dist/runtime/server/services/core/command.service.d.ts +49 -0
  326. package/dist/runtime/server/services/core/command.service.js +112 -0
  327. package/dist/{server/services → runtime/server/services/core}/player.service.d.ts +48 -22
  328. package/dist/{server/services → runtime/server/services/core}/player.service.js +98 -14
  329. package/dist/runtime/server/services/core/principal.service.d.ts +28 -0
  330. package/dist/runtime/server/services/core/principal.service.js +126 -0
  331. package/dist/runtime/server/services/core/vehicle-modification.service.d.ts +104 -0
  332. package/dist/runtime/server/services/core/vehicle-modification.service.js +330 -0
  333. package/dist/runtime/server/services/core/vehicle.service.d.ts +128 -0
  334. package/dist/runtime/server/services/core/vehicle.service.js +391 -0
  335. package/dist/runtime/server/services/default/default-net-event-security-observer.d.ts +15 -0
  336. package/dist/runtime/server/services/default/default-net-event-security-observer.js +28 -0
  337. package/dist/runtime/server/services/default/default-security.handler.d.ts +19 -0
  338. package/dist/{server → runtime/server}/services/default/default-security.handler.js +15 -2
  339. package/dist/{server → runtime/server}/services/http/http.service.js +5 -5
  340. package/dist/runtime/server/services/index.d.ts +16 -0
  341. package/dist/runtime/server/services/index.js +39 -0
  342. package/dist/{server → runtime/server}/services/parallel/index.d.ts +2 -4
  343. package/dist/{server → runtime/server}/services/parallel/index.js +13 -15
  344. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.d.ts +1 -1
  345. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.js +2 -1
  346. package/dist/{server → runtime/server}/services/parallel/worker-pool.d.ts +1 -1
  347. package/dist/{server → runtime/server}/services/parallel/worker.d.ts +1 -1
  348. package/dist/{server → runtime/server}/services/persistence.service.d.ts +1 -1
  349. package/dist/{server → runtime/server}/services/persistence.service.js +13 -9
  350. package/dist/runtime/server/services/ports/command-execution.port.d.ts +41 -0
  351. package/dist/runtime/server/services/ports/command-execution.port.js +15 -0
  352. package/dist/runtime/server/services/ports/player-directory.port.d.ts +107 -0
  353. package/dist/runtime/server/services/ports/player-directory.port.js +23 -0
  354. package/dist/runtime/server/services/ports/player-session-lifecycle.port.d.ts +49 -0
  355. package/dist/runtime/server/services/ports/player-session-lifecycle.port.js +16 -0
  356. package/dist/runtime/server/services/ports/principal.port.d.ts +149 -0
  357. package/dist/runtime/server/services/ports/principal.port.js +32 -0
  358. package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
  359. package/dist/{server → runtime/server}/services/rate-limiter.service.js +18 -0
  360. package/dist/runtime/server/services/remote/remote-command.service.d.ts +63 -0
  361. package/dist/runtime/server/services/remote/remote-command.service.js +139 -0
  362. package/dist/runtime/server/services/remote/remote-player.service.d.ts +62 -0
  363. package/dist/runtime/server/services/remote/remote-player.service.js +191 -0
  364. package/dist/runtime/server/services/remote/remote-principal.provider.d.ts +55 -0
  365. package/dist/runtime/server/services/remote/remote-principal.provider.js +130 -0
  366. package/dist/runtime/server/services/remote/remote-principal.service.d.ts +33 -0
  367. package/dist/runtime/server/services/remote/remote-principal.service.js +99 -0
  368. package/dist/runtime/server/services/remote/server-bridge.d.ts +34 -0
  369. package/dist/runtime/server/services/remote/server-bridge.js +94 -0
  370. package/dist/runtime/server/services/services.register.d.ts +14 -0
  371. package/dist/runtime/server/services/services.register.js +98 -0
  372. package/dist/runtime/server/services/types/linked-id.d.ts +6 -0
  373. package/dist/runtime/server/services/types/player-session.object.d.ts +11 -0
  374. package/dist/runtime/server/services/vehicle-modification.service.d.ts +94 -0
  375. package/dist/runtime/server/services/vehicle-modification.service.js +310 -0
  376. package/dist/runtime/server/services/vehicle.service.d.ts +138 -0
  377. package/dist/runtime/server/services/vehicle.service.js +361 -0
  378. package/dist/runtime/server/setup.d.ts +10 -0
  379. package/dist/runtime/server/setup.js +33 -0
  380. package/dist/{server → runtime/server}/system/metadata-server.keys.d.ts +2 -0
  381. package/dist/{server → runtime/server}/system/metadata-server.keys.js +2 -0
  382. package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
  383. package/dist/runtime/server/system/processors/command.processor.js +54 -0
  384. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.d.ts +1 -1
  385. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.js +3 -3
  386. package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
  387. package/dist/{server → runtime/server}/system/processors/export.processor.js +15 -5
  388. package/dist/runtime/server/system/processors/fivemEvent.processor.d.ts +10 -0
  389. package/dist/{server → runtime/server}/system/processors/fivemEvent.processor.js +15 -5
  390. package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
  391. package/dist/runtime/server/system/processors/netEvent.processor.js +240 -0
  392. package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
  393. package/dist/{server → runtime/server}/system/processors/tick.processor.js +14 -4
  394. package/dist/runtime/server/system/processors.register.d.ts +2 -0
  395. package/dist/runtime/server/system/processors.register.js +37 -0
  396. package/dist/{server → runtime/server}/system/schema-generator.d.ts +1 -1
  397. package/dist/{server → runtime/server}/system/schema-generator.js +17 -8
  398. package/dist/{server/templates/admin → runtime/server/templates}/admin.controller-template.d.ts +1 -1
  399. package/dist/runtime/server/templates/index.d.ts +1 -0
  400. package/dist/runtime/server/templates/index.js +17 -0
  401. package/dist/runtime/server/types/core-exports.d.ts +285 -0
  402. package/dist/runtime/server/types/core-exports.js +2 -0
  403. package/dist/runtime/server/types/index.d.ts +4 -0
  404. package/dist/runtime/server/types/index.js +20 -0
  405. package/dist/runtime/server/types/security.types.js +2 -0
  406. package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
  407. package/dist/runtime/server/types/vehicle.types.js +2 -0
  408. package/package.json +30 -30
  409. package/dist/client/client-bootstrap.d.ts +0 -1
  410. package/dist/client/client-bootstrap.js +0 -50
  411. package/dist/client/client-core.d.ts +0 -1
  412. package/dist/client/client-core.js +0 -7
  413. package/dist/client/decorators/controller.d.ts +0 -3
  414. package/dist/client/decorators/controller.js +0 -14
  415. package/dist/client/decorators/export.d.ts +0 -7
  416. package/dist/client/decorators/export.js +0 -15
  417. package/dist/client/decorators/interval.d.ts +0 -7
  418. package/dist/client/decorators/interval.js +0 -15
  419. package/dist/client/decorators/key.d.ts +0 -2
  420. package/dist/client/decorators/key.js +0 -10
  421. package/dist/client/decorators/localEvent.d.ts +0 -7
  422. package/dist/client/decorators/localEvent.js +0 -15
  423. package/dist/client/decorators/nui.d.ts +0 -1
  424. package/dist/client/decorators/nui.js +0 -9
  425. package/dist/client/decorators/onNet.d.ts +0 -1
  426. package/dist/client/decorators/onNet.js +0 -9
  427. package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
  428. package/dist/client/decorators/resourceLifecycle.js +0 -24
  429. package/dist/client/decorators/tick.d.ts +0 -1
  430. package/dist/client/decorators/tick.js +0 -9
  431. package/dist/client/interfaces/appearance.interface.d.ts +0 -19
  432. package/dist/client/services/appearance.service.d.ts +0 -6
  433. package/dist/client/services/appearance.service.js +0 -89
  434. package/dist/server/bootstrap.js +0 -57
  435. package/dist/server/bus/core-event-bus.d.ts +0 -6
  436. package/dist/server/controllers/chat.controller.d.ts +0 -10
  437. package/dist/server/controllers/command.controller.d.ts +0 -7
  438. package/dist/server/controllers/command.controller.js +0 -47
  439. package/dist/server/controllers/session.controller.d.ts +0 -9
  440. package/dist/server/core.d.ts +0 -1
  441. package/dist/server/core.js +0 -7
  442. package/dist/server/database/index.d.ts +0 -53
  443. package/dist/server/database/index.js +0 -70
  444. package/dist/server/decorators/bind.d.ts +0 -2
  445. package/dist/server/decorators/bind.js +0 -15
  446. package/dist/server/decorators/command.d.ts +0 -49
  447. package/dist/server/decorators/command.js +0 -23
  448. package/dist/server/decorators/controller.js +0 -36
  449. package/dist/server/decorators/export.d.ts +0 -39
  450. package/dist/server/decorators/export.js +0 -47
  451. package/dist/server/decorators/guard.d.ts +0 -56
  452. package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
  453. package/dist/server/decorators/onFiveMEvent.js +0 -14
  454. package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
  455. package/dist/server/decorators/onNet.d.ts +0 -58
  456. package/dist/server/decorators/onNet.js +0 -57
  457. package/dist/server/decorators/onTick.d.ts +0 -32
  458. package/dist/server/decorators/onTick.js +0 -40
  459. package/dist/server/decorators/public.d.ts +0 -27
  460. package/dist/server/decorators/requiresState.js +0 -63
  461. package/dist/server/decorators/throttle.d.ts +0 -48
  462. package/dist/server/decorators/utils.d.ts +0 -57
  463. package/dist/server/decorators/utils.js +0 -63
  464. package/dist/server/entities/index.d.ts +0 -1
  465. package/dist/server/helpers/resolve-method.js +0 -18
  466. package/dist/server/loaders/exports.loader.d.ts +0 -0
  467. package/dist/server/loaders/exports.loader.js +0 -23
  468. package/dist/server/loaders/playerSession.loader.d.ts +0 -1
  469. package/dist/server/loaders/playerSession.loader.js +0 -51
  470. package/dist/server/services/access-control.service.d.ts +0 -56
  471. package/dist/server/services/access-control.service.js +0 -99
  472. package/dist/server/services/chat.service.d.ts +0 -7
  473. package/dist/server/services/command.service.d.ts +0 -15
  474. package/dist/server/services/command.service.js +0 -77
  475. package/dist/server/services/default/default-security.handler.d.ts +0 -6
  476. package/dist/server/services/index.d.ts +0 -10
  477. package/dist/server/services/index.js +0 -26
  478. package/dist/server/services/rate-limiter.service.d.ts +0 -5
  479. package/dist/server/services/registers.d.ts +0 -1
  480. package/dist/server/services/registers.js +0 -18
  481. package/dist/server/setup.d.ts +0 -9
  482. package/dist/server/setup.js +0 -28
  483. package/dist/server/system/processors/command.processor.d.ts +0 -9
  484. package/dist/server/system/processors/export.processor.d.ts +0 -7
  485. package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
  486. package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
  487. package/dist/server/system/processors/netEvent.processor.js +0 -103
  488. package/dist/server/system/processors/tick.processor.d.ts +0 -5
  489. package/dist/server/system/processors.register.d.ts +0 -1
  490. package/dist/server/system/processors.register.js +0 -23
  491. package/dist/server/templates/index.d.ts +0 -8
  492. package/dist/server/templates/persistence/index.d.ts +0 -30
  493. package/dist/server/templates/persistence/index.js +0 -34
  494. package/dist/shared/index.d.ts +0 -1
  495. package/dist/shared/logger/transports/index.d.ts +0 -3
  496. package/dist/shared/logger/transports/index.js +0 -19
  497. package/dist/utils/errors.d.ts +0 -14
  498. package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
  499. package/dist/{system → kernel/di}/class-constructor.js +0 -0
  500. package/dist/{server → kernel/di}/container.d.ts +0 -0
  501. package/dist/{server → kernel/di}/container.js +0 -0
  502. package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
  503. package/dist/{system → kernel/di}/decorator-processor.js +0 -0
  504. package/dist/{system → kernel/di}/metadata.scanner.js +0 -0
  505. package/dist/{shared → kernel/shared}/logger/logger.config.js +0 -0
  506. package/dist/{shared → kernel/shared}/logger/logger.service.js +0 -0
  507. package/dist/{shared → kernel/shared}/logger/logger.types.d.ts +0 -0
  508. package/dist/{shared → kernel/shared}/logger/logger.types.js +0 -0
  509. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.js +0 -0
  510. package/dist/{utils → kernel/utils}/result.js +0 -0
  511. package/dist/{utils → kernel/utils}/rgb.d.ts +0 -0
  512. package/dist/{utils → kernel/utils}/rgb.js +0 -0
  513. package/dist/{utils → kernel/utils}/vector3.d.ts +0 -0
  514. package/dist/{utils → kernel/utils}/vector3.js +0 -0
  515. package/dist/{client → runtime/client}/client-container.d.ts +0 -0
  516. package/dist/{client → runtime/client}/client-container.js +0 -0
  517. package/dist/{client → runtime/client}/controllers/spawner.controller.js +0 -0
  518. package/dist/{client → runtime/client}/decorators/gameEvent.js +0 -0
  519. package/dist/{client → runtime/client}/decorators/index.d.ts +5 -5
  520. package/dist/{client → runtime/client}/decorators/index.js +5 -5
  521. package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
  522. package/dist/{client → runtime/client}/services/blip.service.js +0 -0
  523. package/dist/{client → runtime/client}/services/marker.service.js +0 -0
  524. package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
  525. package/dist/{client → runtime/client}/services/notification.service.js +0 -0
  526. package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
  527. package/dist/{client → runtime/client}/services/progress.service.js +0 -0
  528. package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
  529. package/dist/{client → runtime/client}/services/streaming.service.js +0 -0
  530. package/dist/{client → runtime/client}/services/textui.service.js +0 -0
  531. package/dist/{client → runtime/client}/system/metadata-client.keys.d.ts +0 -0
  532. package/dist/{client → runtime/client}/system/metadata-client.keys.js +0 -0
  533. package/dist/{client → runtime/client}/system/processors/key.processor.js +0 -0
  534. package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
  535. package/dist/{client → runtime/client}/system/processors.register.js +6 -6
  536. /package/dist/{client → runtime/client}/types/game-events.d.ts +0 -0
  537. /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
  538. /package/dist/{client → runtime/client}/types/index.js +0 -0
  539. /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
  540. /package/dist/{server → runtime/server}/configs/api.config.js +0 -0
  541. /package/dist/{server → runtime/server}/configs/config.base.d.ts +0 -0
  542. /package/dist/{server → runtime/server}/configs/config.base.js +0 -0
  543. /package/dist/{server → runtime/server}/configs/index.d.ts +0 -0
  544. /package/dist/{server → runtime/server}/configs/index.js +0 -0
  545. /package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.js +0 -0
  546. /package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.js +0 -0
  547. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.d.ts +0 -0
  548. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.js +0 -0
  549. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.d.ts +0 -0
  550. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.js +0 -0
  551. /package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.js +0 -0
  552. /package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.js +0 -0
  553. /package/dist/{server → runtime/server}/database/database.contract.js +0 -0
  554. /package/dist/{server → runtime/server}/database/types.d.ts +0 -0
  555. /package/dist/{server → runtime/server}/database/types.js +0 -0
  556. /package/dist/{server → runtime/server}/database.d.ts +0 -0
  557. /package/dist/{server → runtime/server}/database.js +0 -0
  558. /package/dist/{server → runtime/server}/services/config.service.d.ts +0 -0
  559. /package/dist/{server → runtime/server}/services/http/http.service.d.ts +0 -0
  560. /package/dist/{server → runtime/server}/services/parallel/types.d.ts +0 -0
  561. /package/dist/{server → runtime/server}/services/parallel/types.js +0 -0
  562. /package/dist/{server → runtime/server}/services/parallel/worker-pool.js +0 -0
  563. /package/dist/{server → runtime/server}/services/parallel/worker.js +0 -0
  564. /package/dist/{client/interfaces/appearance.interface.js → runtime/server/services/types/linked-id.js} +0 -0
  565. /package/dist/{server/templates/admin/admin.controller-template.js → runtime/server/services/types/player-session.object.js} +0 -0
  566. /package/dist/{server/types/core-events.js → runtime/server/templates/admin.controller-template.js} +0 -0
  567. /package/dist/{server → runtime/server}/types/core-events.d.ts +0 -0
  568. /package/dist/{server/types/security.types.js → runtime/server/types/core-events.js} +0 -0
  569. /package/dist/{server → runtime/server}/types/security.types.d.ts +0 -0
@@ -0,0 +1,328 @@
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.AppearanceService = void 0;
16
+ const tsyringe_1 = require("tsyringe");
17
+ const IHasher_1 = require("../../../adapters/contracts/IHasher");
18
+ const IPedAppearanceClient_1 = require("../../../adapters/contracts/IPedAppearanceClient");
19
+ /**
20
+ * Client-side appearance management service.
21
+ *
22
+ * @remarks
23
+ * Handles applying and retrieving ped appearance data on the client.
24
+ * Uses adapters for FiveM native abstraction, enabling testability.
25
+ *
26
+ * This service is typically called in response to server events
27
+ * after the server has validated the appearance data.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * // Apply appearance from server-validated data
32
+ * await appearanceService.applyAppearance(PlayerPedId(), validatedAppearance)
33
+ *
34
+ * // Get current appearance for saving
35
+ * const currentAppearance = await appearanceService.getAppearance(PlayerPedId())
36
+ * ```
37
+ */
38
+ let AppearanceService = class AppearanceService {
39
+ constructor(pedAdapter, hasher) {
40
+ this.pedAdapter = pedAdapter;
41
+ this.hasher = hasher;
42
+ }
43
+ /**
44
+ * Applies a complete appearance to a ped.
45
+ *
46
+ * @remarks
47
+ * The order of application is important:
48
+ * 1. HeadBlend (required before overlays/features)
49
+ * 2. Face features
50
+ * 3. Components
51
+ * 4. Props
52
+ * 5. Head overlays with colors
53
+ * 6. Hair color
54
+ * 7. Eye color
55
+ * 8. Tattoos
56
+ *
57
+ * @param ped - Ped entity handle
58
+ * @param appearance - Appearance data to apply
59
+ */
60
+ async applyAppearance(ped, appearance) {
61
+ var _a;
62
+ // 1. HeadBlend must be set first (required for overlays and face features)
63
+ if (appearance.headBlend) {
64
+ this.pedAdapter.setHeadBlendData(ped, appearance.headBlend);
65
+ }
66
+ // 2. Face features (requires headBlend)
67
+ if (appearance.faceFeatures) {
68
+ for (const [index, value] of Object.entries(appearance.faceFeatures)) {
69
+ this.pedAdapter.setFaceFeature(ped, parseInt(index, 10), value);
70
+ }
71
+ }
72
+ // 3. Components (clothing, hair, etc.)
73
+ if (appearance.components) {
74
+ for (const [componentId, data] of Object.entries(appearance.components)) {
75
+ this.pedAdapter.setComponentVariation(ped, parseInt(componentId, 10), data.drawable, data.texture, 2);
76
+ }
77
+ }
78
+ // 4. Props (hats, glasses, etc.)
79
+ if (appearance.props) {
80
+ for (const [propId, data] of Object.entries(appearance.props)) {
81
+ if (data.drawable === -1) {
82
+ this.pedAdapter.clearProp(ped, parseInt(propId, 10));
83
+ }
84
+ else {
85
+ this.pedAdapter.setPropIndex(ped, parseInt(propId, 10), data.drawable, data.texture, true);
86
+ }
87
+ }
88
+ }
89
+ // 5. Head overlays with colors (requires headBlend)
90
+ if (appearance.headOverlays) {
91
+ for (const [overlayId, overlay] of Object.entries(appearance.headOverlays)) {
92
+ const id = parseInt(overlayId, 10);
93
+ this.pedAdapter.setHeadOverlay(ped, id, overlay.index, overlay.opacity);
94
+ if (overlay.colorType !== undefined && overlay.colorId !== undefined) {
95
+ this.pedAdapter.setHeadOverlayColor(ped, id, overlay.colorType, overlay.colorId, (_a = overlay.secondColorId) !== null && _a !== void 0 ? _a : overlay.colorId);
96
+ }
97
+ }
98
+ }
99
+ // 6. Hair color
100
+ if (appearance.hairColor) {
101
+ this.pedAdapter.setHairColor(ped, appearance.hairColor.colorId, appearance.hairColor.highlightColorId);
102
+ }
103
+ // 7. Eye color
104
+ if (appearance.eyeColor !== undefined) {
105
+ this.pedAdapter.setEyeColor(ped, appearance.eyeColor);
106
+ }
107
+ // 8. Tattoos
108
+ if (appearance.tattoos && appearance.tattoos.length > 0) {
109
+ this.pedAdapter.clearDecorations(ped);
110
+ for (const tattoo of appearance.tattoos) {
111
+ const collectionHash = this.hasher.getHashKey(tattoo.collection);
112
+ const overlayHash = this.hasher.getHashKey(tattoo.overlay);
113
+ this.pedAdapter.addDecoration(ped, collectionHash, overlayHash);
114
+ }
115
+ }
116
+ }
117
+ /**
118
+ * Retrieves the current appearance of a ped.
119
+ *
120
+ * @remarks
121
+ * Only retrieves components and props as other data (headBlend, overlays, etc.)
122
+ * cannot be read back from the game.
123
+ *
124
+ * @param ped - Ped entity handle
125
+ * @returns Partial appearance data (components and props only)
126
+ */
127
+ async getAppearance(ped) {
128
+ const appearance = {
129
+ components: {},
130
+ props: {},
131
+ };
132
+ // Components (0-11)
133
+ for (let i = 0; i <= 11; i++) {
134
+ const drawable = this.pedAdapter.getDrawableVariation(ped, i);
135
+ const texture = this.pedAdapter.getTextureVariation(ped, i);
136
+ if (drawable !== -1) {
137
+ appearance.components[i] = { drawable, texture };
138
+ }
139
+ }
140
+ // Props (0-7)
141
+ for (let i = 0; i <= 7; i++) {
142
+ const drawable = this.pedAdapter.getPropIndex(ped, i);
143
+ const texture = this.pedAdapter.getPropTextureIndex(ped, i);
144
+ if (drawable !== -1) {
145
+ appearance.props[i] = { drawable, texture };
146
+ }
147
+ }
148
+ return appearance;
149
+ }
150
+ /**
151
+ * Gets the number of available drawable variations for a component.
152
+ *
153
+ * @param ped - Ped entity handle
154
+ * @param componentId - Component ID (0-11)
155
+ * @returns Number of available drawables
156
+ */
157
+ getNumComponentDrawables(ped, componentId) {
158
+ return this.pedAdapter.getNumDrawableVariations(ped, componentId);
159
+ }
160
+ /**
161
+ * Gets the number of available texture variations for a component drawable.
162
+ *
163
+ * @param ped - Ped entity handle
164
+ * @param componentId - Component ID (0-11)
165
+ * @param drawable - Drawable index
166
+ * @returns Number of available textures
167
+ */
168
+ getNumComponentTextures(ped, componentId, drawable) {
169
+ return this.pedAdapter.getNumTextureVariations(ped, componentId, drawable);
170
+ }
171
+ /**
172
+ * Gets the number of available drawable variations for a prop.
173
+ *
174
+ * @param ped - Ped entity handle
175
+ * @param propId - Prop ID (0-7)
176
+ * @returns Number of available drawables
177
+ */
178
+ getNumPropDrawables(ped, propId) {
179
+ return this.pedAdapter.getNumPropDrawableVariations(ped, propId);
180
+ }
181
+ /**
182
+ * Gets the number of available texture variations for a prop drawable.
183
+ *
184
+ * @param ped - Ped entity handle
185
+ * @param propId - Prop ID (0-7)
186
+ * @param drawable - Drawable index
187
+ * @returns Number of available textures
188
+ */
189
+ getNumPropTextures(ped, propId, drawable) {
190
+ return this.pedAdapter.getNumPropTextureVariations(ped, propId, drawable);
191
+ }
192
+ /**
193
+ * Gets the number of available overlay variations.
194
+ *
195
+ * @param overlayId - Overlay ID (0-12)
196
+ * @returns Number of available variations
197
+ */
198
+ getNumOverlayValues(overlayId) {
199
+ return this.pedAdapter.getNumOverlayValues(overlayId);
200
+ }
201
+ /**
202
+ * Gets the number of available hair colors.
203
+ *
204
+ * @returns Number of hair colors
205
+ */
206
+ getNumHairColors() {
207
+ return this.pedAdapter.getNumHairColors();
208
+ }
209
+ /**
210
+ * Gets the number of available makeup colors.
211
+ *
212
+ * @returns Number of makeup colors
213
+ */
214
+ getNumMakeupColors() {
215
+ return this.pedAdapter.getNumMakeupColors();
216
+ }
217
+ /**
218
+ * Validates appearance data structure.
219
+ *
220
+ * @remarks
221
+ * This is a client-side validation for data integrity.
222
+ * Server-side validation should always be performed for security.
223
+ *
224
+ * @param appearance - Appearance data to validate
225
+ * @returns Validation result with errors if any
226
+ */
227
+ validateAppearance(appearance) {
228
+ const errors = [];
229
+ if (!appearance) {
230
+ return { valid: false, errors: ['Appearance data is null or undefined'] };
231
+ }
232
+ // Validate components (0-11)
233
+ if (appearance.components) {
234
+ for (const [id, data] of Object.entries(appearance.components)) {
235
+ const componentId = parseInt(id, 10);
236
+ if (Number.isNaN(componentId) || componentId < 0 || componentId > 11) {
237
+ errors.push(`Invalid component ID: ${id}`);
238
+ }
239
+ if (data.drawable === undefined || data.texture === undefined) {
240
+ errors.push(`Missing drawable or texture for component ${id}`);
241
+ }
242
+ }
243
+ }
244
+ // Validate props (0-7)
245
+ if (appearance.props) {
246
+ for (const [id, data] of Object.entries(appearance.props)) {
247
+ const propId = parseInt(id, 10);
248
+ if (Number.isNaN(propId) || propId < 0 || propId > 7) {
249
+ errors.push(`Invalid prop ID: ${id}`);
250
+ }
251
+ if (data.drawable === undefined || data.texture === undefined) {
252
+ errors.push(`Missing drawable or texture for prop ${id}`);
253
+ }
254
+ }
255
+ }
256
+ // Validate faceFeatures (0-19, values -1.0 to 1.0)
257
+ if (appearance.faceFeatures) {
258
+ for (const [id, value] of Object.entries(appearance.faceFeatures)) {
259
+ const index = parseInt(id, 10);
260
+ if (Number.isNaN(index) || index < 0 || index > 19) {
261
+ errors.push(`Invalid face feature index: ${id}`);
262
+ }
263
+ if (value < -1.0 || value > 1.0) {
264
+ errors.push(`Face feature ${id} value out of range: ${value}`);
265
+ }
266
+ }
267
+ }
268
+ // Validate headBlend
269
+ if (appearance.headBlend) {
270
+ const hb = appearance.headBlend;
271
+ if (hb.shapeFirst < 0 || hb.shapeFirst > 45)
272
+ errors.push('Invalid shapeFirst (0-45)');
273
+ if (hb.shapeSecond < 0 || hb.shapeSecond > 45)
274
+ errors.push('Invalid shapeSecond (0-45)');
275
+ if (hb.skinFirst < 0 || hb.skinFirst > 45)
276
+ errors.push('Invalid skinFirst (0-45)');
277
+ if (hb.skinSecond < 0 || hb.skinSecond > 45)
278
+ errors.push('Invalid skinSecond (0-45)');
279
+ if (hb.shapeMix < 0 || hb.shapeMix > 1)
280
+ errors.push('Invalid shapeMix (0.0-1.0)');
281
+ if (hb.skinMix < 0 || hb.skinMix > 1)
282
+ errors.push('Invalid skinMix (0.0-1.0)');
283
+ }
284
+ // Validate headOverlays (0-12)
285
+ if (appearance.headOverlays) {
286
+ for (const [id, overlay] of Object.entries(appearance.headOverlays)) {
287
+ const overlayId = parseInt(id, 10);
288
+ if (Number.isNaN(overlayId) || overlayId < 0 || overlayId > 12) {
289
+ errors.push(`Invalid overlay ID: ${id}`);
290
+ }
291
+ if (overlay.opacity < 0 || overlay.opacity > 1) {
292
+ errors.push(`Invalid overlay opacity for ID ${id}`);
293
+ }
294
+ }
295
+ }
296
+ // Validate eyeColor (0-31)
297
+ if (appearance.eyeColor !== undefined) {
298
+ if (appearance.eyeColor < 0 || appearance.eyeColor > 31) {
299
+ errors.push(`Invalid eye color: ${appearance.eyeColor} (0-31)`);
300
+ }
301
+ }
302
+ return { valid: errors.length === 0, errors };
303
+ }
304
+ /**
305
+ * Sets the ped to default component variation.
306
+ *
307
+ * @param ped - Ped entity handle
308
+ */
309
+ setDefaultAppearance(ped) {
310
+ this.pedAdapter.setDefaultComponentVariation(ped);
311
+ }
312
+ /**
313
+ * Clears all tattoos from a ped.
314
+ *
315
+ * @param ped - Ped entity handle
316
+ */
317
+ clearTattoos(ped) {
318
+ this.pedAdapter.clearDecorations(ped);
319
+ }
320
+ };
321
+ exports.AppearanceService = AppearanceService;
322
+ exports.AppearanceService = AppearanceService = __decorate([
323
+ (0, tsyringe_1.injectable)(),
324
+ __param(0, (0, tsyringe_1.inject)(IPedAppearanceClient_1.IPedAppearanceClient)),
325
+ __param(1, (0, tsyringe_1.inject)(IHasher_1.IHasher)),
326
+ __metadata("design:paramtypes", [IPedAppearanceClient_1.IPedAppearanceClient,
327
+ IHasher_1.IHasher])
328
+ ], AppearanceService);
@@ -1,4 +1,4 @@
1
- import type { Vector3 } from '../../utils';
1
+ import { Vector3 } from '../../../kernel/utils';
2
2
  export interface BlipOptions {
3
3
  /** Blip sprite ID (icon) */
4
4
  sprite?: number;
@@ -1,9 +1,10 @@
1
- export * from './spawn.service';
2
1
  export * from './blip.service';
3
- export * from './vehicle.service';
4
- export * from './ped.service';
5
- export * from './streaming.service';
2
+ export * from './marker.service';
6
3
  export * from './notification.service';
4
+ export * from './ped.service';
7
5
  export * from './progress.service';
8
- export * from './marker.service';
6
+ export * from './spawn.service';
7
+ export * from './streaming.service';
9
8
  export * from './textui.service';
9
+ export * from './vehicle.service';
10
+ export * from './vehicle-client.service';
@@ -14,12 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./spawn.service"), exports);
18
17
  __exportStar(require("./blip.service"), exports);
19
- __exportStar(require("./vehicle.service"), exports);
20
- __exportStar(require("./ped.service"), exports);
21
- __exportStar(require("./streaming.service"), exports);
18
+ __exportStar(require("./marker.service"), exports);
22
19
  __exportStar(require("./notification.service"), exports);
20
+ __exportStar(require("./ped.service"), exports);
23
21
  __exportStar(require("./progress.service"), exports);
24
- __exportStar(require("./marker.service"), exports);
22
+ __exportStar(require("./spawn.service"), exports);
23
+ __exportStar(require("./streaming.service"), exports);
25
24
  __exportStar(require("./textui.service"), exports);
25
+ __exportStar(require("./vehicle.service"), exports);
26
+ __exportStar(require("./vehicle-client.service"), exports);
@@ -1,4 +1,4 @@
1
- import type { Vector3 } from '../../utils';
1
+ import { Vector3 } from '../../../kernel/utils';
2
2
  export interface MarkerOptions {
3
3
  /** Marker type (0-43) */
4
4
  type?: number;
@@ -1,4 +1,4 @@
1
- import type { Vector3 } from '../../utils';
1
+ import { Vector3 } from '../../../kernel/utils';
2
2
  export interface PedSpawnOptions {
3
3
  /** Model name or hash */
4
4
  model: string;
@@ -211,15 +211,16 @@ let PedService = class PedService {
211
211
  getNearby(position, radius, excludePlayer = true) {
212
212
  const peds = [];
213
213
  const playerPed = PlayerPedId();
214
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
214
215
  const [handle, _] = FindFirstPed(0);
215
- let ped = handle;
216
+ const ped = handle;
216
217
  do {
217
218
  if (!DoesEntityExist(ped))
218
219
  continue;
219
220
  if (excludePlayer && ped === playerPed)
220
221
  continue;
221
222
  const [ex, ey, ez] = GetEntityCoords(ped, true);
222
- const dist = Math.sqrt(Math.pow(ex - position.x, 2) + Math.pow(ey - position.y, 2) + Math.pow(ez - position.z, 2));
223
+ const dist = Math.sqrt((ex - position.x) ** 2 + (ey - position.y) ** 2 + (ez - position.z) ** 2);
223
224
  if (dist <= radius) {
224
225
  peds.push(ped);
225
226
  }
@@ -1,6 +1,6 @@
1
- import { Vector3 } from '../../utils';
1
+ import { PlayerAppearance } from '../../../kernel/shared';
2
+ import { Vector3 } from '../../../kernel/utils';
2
3
  import { AppearanceService } from './appearance.service';
3
- import { PlayerAppearance } from '../interfaces/appearance.interface';
4
4
  interface SpawnOptions {
5
5
  /** Optional: Apply complete character appearance (RP clothing, face, props, tattoos...) */
6
6
  appearance?: PlayerAppearance;
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SpawnService = void 0;
13
13
  const tsyringe_1 = require("tsyringe");
14
- const shared_1 = require("../../shared");
14
+ const shared_1 = require("../../../kernel/shared");
15
15
  const appearance_service_1 = require("./appearance.service");
16
16
  const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
17
17
  const NETWORK_TIMEOUT_MS = 15000;
@@ -111,10 +111,6 @@ let SpawnService = class SpawnService {
111
111
  SetEntityHeading(ped, heading);
112
112
  }
113
113
  FreezeEntityPosition(ped, false);
114
- shared_1.loggers.spawn.debug('Teleported', {
115
- position: { x: position.x, y: position.y, z: position.z },
116
- heading,
117
- });
118
114
  }
119
115
  /**
120
116
  * Respawns the player after death or a gameplay event.
@@ -185,7 +181,6 @@ let SpawnService = class SpawnService {
185
181
  if (ped !== 0) {
186
182
  SetPedDefaultComponentVariation(ped);
187
183
  }
188
- shared_1.loggers.spawn.debug('Player model set', { model, modelHash });
189
184
  }
190
185
  async ensurePed() {
191
186
  const start = GetGameTimer();
@@ -225,7 +220,6 @@ let SpawnService = class SpawnService {
225
220
  SetEntityVisible(ped, true, false);
226
221
  SetEntityCollision(ped, true, true);
227
222
  SetEntityInvincible(ped, false);
228
- shared_1.loggers.spawn.debug('Ped prepared for gameplay', { ped });
229
223
  }
230
224
  async placePed(ped, position, heading) {
231
225
  FreezeEntityPosition(ped, true);
@@ -239,7 +233,9 @@ let SpawnService = class SpawnService {
239
233
  SetPedDefaultComponentVariation(ped);
240
234
  return;
241
235
  }
242
- if (!this.appearanceService.validateAppearance(appearance)) {
236
+ const validation = this.appearanceService.validateAppearance(appearance);
237
+ if (!validation.valid) {
238
+ shared_1.loggers.spawn.warn('Invalid appearance data', { errors: validation.errors });
243
239
  SetPedDefaultComponentVariation(ped);
244
240
  return;
245
241
  }
@@ -1,4 +1,4 @@
1
- import type { Vector3 } from '../../utils';
1
+ import { Vector3 } from '../../../kernel/utils';
2
2
  export interface TextUIOptions {
3
3
  /** Font (0-8) */
4
4
  font?: number;
@@ -0,0 +1,180 @@
1
+ import { Vector3 } from '../../../kernel/utils';
2
+ import { SerializedVehicleData, VehicleCreateOptions, VehicleSpawnResult } from '../../server/types/vehicle.types';
3
+ /**
4
+ * Client-side vehicle service.
5
+ *
6
+ * This service provides a simplified interface for vehicle operations on the client.
7
+ * Most operations delegate to the server for security and synchronization.
8
+ *
9
+ * @remarks
10
+ * - Vehicle creation is server-authoritative (prevents spawning exploits)
11
+ * - Modifications require server validation
12
+ * - Local operations (queries, visual changes) are safe to perform client-side
13
+ */
14
+ export declare class VehicleClientService {
15
+ private pendingCreations;
16
+ private requestIdCounter;
17
+ constructor();
18
+ /**
19
+ * Requests vehicle creation from the server.
20
+ *
21
+ * @param options - Vehicle creation options
22
+ * @returns Promise resolving to spawn result
23
+ */
24
+ createVehicle(options: Omit<VehicleCreateOptions, 'ownership'>): Promise<VehicleSpawnResult>;
25
+ /**
26
+ * Requests vehicle deletion from the server.
27
+ *
28
+ * @param networkId - Network ID of the vehicle
29
+ * @returns Promise resolving to success status
30
+ */
31
+ deleteVehicle(networkId: number): Promise<boolean>;
32
+ /**
33
+ * Requests vehicle repair from the server.
34
+ *
35
+ * @param networkId - Network ID of the vehicle
36
+ * @returns Promise resolving to success status
37
+ */
38
+ repairVehicle(networkId: number): Promise<boolean>;
39
+ /**
40
+ * Gets the closest vehicle to the player.
41
+ *
42
+ * @param radius - Search radius
43
+ * @returns Vehicle handle or null
44
+ */
45
+ getClosestVehicle(radius?: number): number | null;
46
+ /**
47
+ * Checks if the player is in a vehicle.
48
+ */
49
+ isPlayerInVehicle(): boolean;
50
+ /**
51
+ * Gets the vehicle the player is currently in.
52
+ *
53
+ * @returns Vehicle handle or null
54
+ */
55
+ getCurrentVehicle(): number | null;
56
+ /**
57
+ * Gets the last vehicle the player was in.
58
+ *
59
+ * @returns Vehicle handle or null
60
+ */
61
+ getLastVehicle(): number | null;
62
+ /**
63
+ * Checks if player is the driver of their current vehicle.
64
+ */
65
+ isPlayerDriver(): boolean;
66
+ /**
67
+ * Gets vehicle speed in km/h.
68
+ *
69
+ * @param vehicle - Vehicle handle
70
+ */
71
+ getSpeed(vehicle: number): number;
72
+ /**
73
+ * Gets the network ID from a vehicle handle.
74
+ *
75
+ * @param vehicle - Vehicle handle
76
+ * @returns Network ID or 0 if invalid
77
+ */
78
+ getNetworkId(vehicle: number): number;
79
+ /**
80
+ * Gets the vehicle handle from a network ID.
81
+ *
82
+ * @param networkId - Network ID
83
+ * @returns Vehicle handle or 0 if not found
84
+ */
85
+ getVehicleFromNetworkId(networkId: number): number;
86
+ /**
87
+ * Gets vehicle data from state bag.
88
+ *
89
+ * @param vehicle - Vehicle handle
90
+ * @param key - State bag key
91
+ * @returns State value or undefined
92
+ */
93
+ getVehicleState<T = any>(vehicle: number, key: string): T | undefined;
94
+ /**
95
+ * Requests to lock/unlock vehicle doors.
96
+ *
97
+ * @param networkId - Network ID of the vehicle
98
+ * @param locked - Whether to lock or unlock
99
+ */
100
+ setDoorsLocked(networkId: number, locked: boolean): void;
101
+ /**
102
+ * Requests vehicle data from the server.
103
+ *
104
+ * @param networkId - Network ID of the vehicle
105
+ * @returns Promise resolving to vehicle data
106
+ */
107
+ getVehicleData(networkId: number): Promise<SerializedVehicleData | null>;
108
+ /**
109
+ * Requests all player vehicles from the server.
110
+ *
111
+ * @returns Promise resolving to array of vehicle data
112
+ */
113
+ getPlayerVehicles(): Promise<SerializedVehicleData[]>;
114
+ /**
115
+ * Local-only: Warps player into a vehicle.
116
+ *
117
+ * @param vehicle - Vehicle handle
118
+ * @param seatIndex - Seat index (-1 = driver)
119
+ */
120
+ warpIntoVehicle(vehicle: number, seatIndex?: number): void;
121
+ /**
122
+ * Local-only: Sets vehicle heading.
123
+ *
124
+ * @param vehicle - Vehicle handle
125
+ * @param heading - Heading in degrees
126
+ */
127
+ setHeading(vehicle: number, heading: number): void;
128
+ /**
129
+ * Local-only: Gets vehicle position.
130
+ *
131
+ * @param vehicle - Vehicle handle
132
+ * @returns Position vector
133
+ */
134
+ getPosition(vehicle: number): Vector3 | null;
135
+ /**
136
+ * Local-only: Gets vehicle heading.
137
+ *
138
+ * @param vehicle - Vehicle handle
139
+ * @returns Heading in degrees
140
+ */
141
+ getHeading(vehicle: number): number;
142
+ /**
143
+ * Local-only: Gets vehicle model hash.
144
+ *
145
+ * @param vehicle - Vehicle handle
146
+ * @returns Model hash
147
+ */
148
+ getModel(vehicle: number): number;
149
+ /**
150
+ * Local-only: Gets vehicle license plate.
151
+ *
152
+ * @param vehicle - Vehicle handle
153
+ * @returns License plate text
154
+ */
155
+ getPlate(vehicle: number): string;
156
+ /**
157
+ * Applies vehicle mods from state bag data.
158
+ *
159
+ * @param vehicle - Vehicle handle
160
+ * @param mods - Mods object from state bag
161
+ */
162
+ applyMods(vehicle: number, mods: Record<string, any>): void;
163
+ /**
164
+ * Repairs a vehicle completely (client-side).
165
+ *
166
+ * @param vehicle - Vehicle handle
167
+ */
168
+ repair(vehicle: number): void;
169
+ /**
170
+ * Sets fuel level on a vehicle (client-side).
171
+ *
172
+ * @param vehicle - Vehicle handle
173
+ * @param level - Fuel level (0-100)
174
+ */
175
+ setFuel(vehicle: number, level: number): void;
176
+ /**
177
+ * Registers event handlers for server responses.
178
+ */
179
+ private registerEventHandlers;
180
+ }