@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,391 @@
1
+ 'use strict'
2
+ var __decorate =
3
+ (this && this.__decorate) ||
4
+ function (decorators, target, key, desc) {
5
+ var c = arguments.length,
6
+ r =
7
+ c < 3
8
+ ? target
9
+ : desc === null
10
+ ? (desc = Object.getOwnPropertyDescriptor(target, key))
11
+ : desc,
12
+ d
13
+ if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
14
+ r = Reflect.decorate(decorators, target, key, desc)
15
+ else
16
+ for (var i = decorators.length - 1; i >= 0; i--)
17
+ if ((d = decorators[i]))
18
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r
19
+ return c > 3 && r && Object.defineProperty(target, key, r), r
20
+ }
21
+ var __metadata =
22
+ (this && this.__metadata) ||
23
+ ((k, v) => {
24
+ if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function')
25
+ return Reflect.metadata(k, v)
26
+ })
27
+ var __param =
28
+ (this && this.__param) ||
29
+ ((paramIndex, decorator) => (target, key) => {
30
+ decorator(target, key, paramIndex)
31
+ })
32
+ Object.defineProperty(exports, '__esModule', { value: true })
33
+ exports.VehicleService = void 0
34
+ const tsyringe_1 = require('tsyringe')
35
+ const vehicle_1 = require('../../entities/vehicle')
36
+ const logger_1 = require('../../../../kernel/shared/logger')
37
+ const player_directory_port_1 = require('../ports/player-directory.port')
38
+ /**
39
+ * Server-side service for managing vehicle entities.
40
+ *
41
+ * This service is the central authority for all vehicle operations:
42
+ * - Creating vehicles server-side (prevents client-side spawning abuse)
43
+ * - Managing vehicle registry by Network ID
44
+ * - Validating permissions and positions
45
+ * - Synchronizing vehicle state across clients
46
+ *
47
+ * @remarks
48
+ * All vehicle creation MUST go through this service to ensure security.
49
+ * Uses CreateVehicleServerSetter for server-authoritative spawning.
50
+ */
51
+ let VehicleService = class VehicleService {
52
+ constructor(playerDirectory) {
53
+ this.playerDirectory = playerDirectory
54
+ /**
55
+ * Internal registry of all managed vehicles indexed by Network ID
56
+ */
57
+ this.vehiclesByNetworkId = new Map()
58
+ }
59
+ /**
60
+ * Creates a new vehicle on the server.
61
+ *
62
+ * This method uses CreateVehicleServerSetter to spawn the vehicle server-side,
63
+ * preventing client-side spawning exploits.
64
+ *
65
+ * @param options - Vehicle creation options
66
+ * @returns Spawn result with network ID and handle
67
+ */
68
+ async create(options) {
69
+ var _a
70
+ try {
71
+ const {
72
+ model,
73
+ position,
74
+ heading = 0,
75
+ plate,
76
+ primaryColor,
77
+ secondaryColor,
78
+ mods,
79
+ persistent = false,
80
+ ownership,
81
+ metadata,
82
+ routingBucket = 0,
83
+ locked = false,
84
+ fuel = 1.0,
85
+ } = options
86
+ const modelHash = typeof model === 'string' ? GetHashKey(model) : model
87
+ if (!IsModelInCdimage(modelHash) || !IsModelAVehicle(modelHash)) {
88
+ logger_1.coreLogger.error('Invalid vehicle model', { model, modelHash })
89
+ return {
90
+ networkId: 0,
91
+ handle: 0,
92
+ success: false,
93
+ error: `Invalid vehicle model: ${model}`,
94
+ }
95
+ }
96
+ const vehicleType = 'automobile'
97
+ const handle = CreateVehicleServerSetter(
98
+ modelHash,
99
+ vehicleType,
100
+ position.x,
101
+ position.y,
102
+ position.z,
103
+ heading,
104
+ )
105
+ if (!handle || handle === 0) {
106
+ logger_1.coreLogger.error('Failed to create vehicle', { model, position })
107
+ return {
108
+ networkId: 0,
109
+ handle: 0,
110
+ success: false,
111
+ error: 'Failed to create vehicle entity',
112
+ }
113
+ }
114
+ while (!DoesEntityExist(handle)) {
115
+ await new Promise((resolve) => setTimeout(resolve, 0))
116
+ }
117
+ const networkId = NetworkGetNetworkIdFromEntity(handle)
118
+ const vehicleOwnership = {
119
+ clientID: ownership === null || ownership === void 0 ? void 0 : ownership.clientID,
120
+ accountID: ownership === null || ownership === void 0 ? void 0 : ownership.accountID,
121
+ type:
122
+ (_a = ownership === null || ownership === void 0 ? void 0 : ownership.type) !== null &&
123
+ _a !== void 0
124
+ ? _a
125
+ : 'temporary',
126
+ }
127
+ const vehicle = new vehicle_1.Vehicle(
128
+ handle,
129
+ networkId,
130
+ vehicleOwnership,
131
+ persistent,
132
+ routingBucket,
133
+ )
134
+ if (plate) {
135
+ SetVehicleNumberPlateText(handle, plate)
136
+ }
137
+ if (primaryColor !== undefined || secondaryColor !== undefined) {
138
+ const [currentPrimary, currentSecondary] = GetVehicleColours(handle)
139
+ SetVehicleColours(
140
+ handle,
141
+ primaryColor !== null && primaryColor !== void 0 ? primaryColor : currentPrimary,
142
+ secondaryColor !== null && secondaryColor !== void 0 ? secondaryColor : currentSecondary,
143
+ )
144
+ }
145
+ if (mods) {
146
+ vehicle.applyMods(mods)
147
+ }
148
+ if (metadata) {
149
+ for (const [key, value] of Object.entries(metadata)) {
150
+ vehicle.setMetadata(key, value)
151
+ }
152
+ }
153
+ vehicle.setDoorsLocked(locked)
154
+ vehicle.setFuel(fuel)
155
+ if (routingBucket !== 0) {
156
+ vehicle.setRoutingBucket(routingBucket)
157
+ }
158
+ this.vehiclesByNetworkId.set(networkId, vehicle)
159
+ logger_1.coreLogger.info('Vehicle created', {
160
+ networkId,
161
+ model,
162
+ ownership: vehicleOwnership.type,
163
+ persistent,
164
+ totalVehicles: this.vehiclesByNetworkId.size,
165
+ })
166
+ emitNet('opencore:vehicle:created', -1, vehicle.serialize())
167
+ return {
168
+ networkId,
169
+ handle,
170
+ success: true,
171
+ }
172
+ } catch (error) {
173
+ logger_1.coreLogger.error('Error creating vehicle', { error, options })
174
+ return {
175
+ networkId: 0,
176
+ handle: 0,
177
+ success: false,
178
+ error: error instanceof Error ? error.message : 'Unknown error',
179
+ }
180
+ }
181
+ }
182
+ /**
183
+ * Creates a vehicle for a specific player.
184
+ *
185
+ * @param clientID - Client ID of the requesting player
186
+ * @param options - Vehicle creation options
187
+ * @returns Spawn result
188
+ */
189
+ async createForPlayer(clientID, options) {
190
+ const player = this.playerDirectory.getByClient(clientID)
191
+ if (!player) {
192
+ return {
193
+ networkId: 0,
194
+ handle: 0,
195
+ success: false,
196
+ error: 'Player not found',
197
+ }
198
+ }
199
+ const ownership = {
200
+ clientID,
201
+ accountID: player.accountID,
202
+ type: 'player',
203
+ }
204
+ return this.create(Object.assign(Object.assign({}, options), { ownership }))
205
+ }
206
+ /**
207
+ * Retrieves a vehicle by its Network ID.
208
+ *
209
+ * @param networkId - Network ID of the vehicle
210
+ * @returns Vehicle entity or undefined
211
+ */
212
+ getByNetworkId(networkId) {
213
+ return this.vehiclesByNetworkId.get(networkId)
214
+ }
215
+ /**
216
+ * Retrieves a vehicle by its entity handle.
217
+ *
218
+ * @param handle - Entity handle
219
+ * @returns Vehicle entity or undefined
220
+ */
221
+ getByHandle(handle) {
222
+ const networkId = NetworkGetNetworkIdFromEntity(handle)
223
+ return this.vehiclesByNetworkId.get(networkId)
224
+ }
225
+ /**
226
+ * Gets all vehicles owned by a specific player.
227
+ *
228
+ * @param clientID - Client ID of the owner
229
+ * @returns Array of vehicles
230
+ */
231
+ getPlayerVehicles(clientID) {
232
+ const vehicles = []
233
+ for (const vehicle of this.vehiclesByNetworkId.values()) {
234
+ if (vehicle.ownership.clientID === clientID) {
235
+ vehicles.push(vehicle)
236
+ }
237
+ }
238
+ return vehicles
239
+ }
240
+ /**
241
+ * Gets all vehicles in a specific routing bucket.
242
+ *
243
+ * @param bucket - Routing bucket ID
244
+ * @returns Array of vehicles
245
+ */
246
+ getVehiclesInBucket(bucket) {
247
+ const vehicles = []
248
+ for (const vehicle of this.vehiclesByNetworkId.values()) {
249
+ if (vehicle.routingBucket === bucket) {
250
+ vehicles.push(vehicle)
251
+ }
252
+ }
253
+ return vehicles
254
+ }
255
+ /**
256
+ * Gets all managed vehicles.
257
+ *
258
+ * @returns Array of all vehicles
259
+ */
260
+ getAll() {
261
+ return Array.from(this.vehiclesByNetworkId.values())
262
+ }
263
+ /**
264
+ * Deletes a vehicle from the server.
265
+ *
266
+ * @param networkId - Network ID of the vehicle to delete
267
+ * @param requestedBy - Optional client ID for permission validation
268
+ * @returns Success status
269
+ */
270
+ delete(networkId, requestedBy) {
271
+ const vehicle = this.vehiclesByNetworkId.get(networkId)
272
+ if (!vehicle) {
273
+ return false
274
+ }
275
+ if (requestedBy !== undefined) {
276
+ if (vehicle.ownership.clientID !== requestedBy) {
277
+ logger_1.coreLogger.warn('Unauthorized vehicle deletion attempt', {
278
+ networkId,
279
+ requestedBy,
280
+ owner: vehicle.ownership.clientID,
281
+ })
282
+ return false
283
+ }
284
+ }
285
+ vehicle.delete()
286
+ this.vehiclesByNetworkId.delete(networkId)
287
+ logger_1.coreLogger.info('Vehicle deleted', {
288
+ networkId,
289
+ totalVehicles: this.vehiclesByNetworkId.size,
290
+ })
291
+ emitNet('opencore:vehicle:deleted', -1, networkId)
292
+ return true
293
+ }
294
+ /**
295
+ * Deletes all vehicles owned by a player.
296
+ * Useful when a player disconnects.
297
+ *
298
+ * @param clientID - Client ID of the owner
299
+ */
300
+ deletePlayerVehicles(clientID) {
301
+ const vehicles = this.getPlayerVehicles(clientID)
302
+ for (const vehicle of vehicles) {
303
+ this.delete(vehicle.networkId)
304
+ }
305
+ }
306
+ /**
307
+ * Validates if a player can perform an action on a vehicle.
308
+ *
309
+ * @param networkId - Network ID of the vehicle
310
+ * @param clientID - Client ID of the player
311
+ * @returns True if authorized
312
+ */
313
+ validateOwnership(networkId, clientID) {
314
+ const vehicle = this.vehiclesByNetworkId.get(networkId)
315
+ if (!vehicle) return false
316
+ if (vehicle.ownership.type === 'server' || vehicle.ownership.type === 'shared') {
317
+ return true
318
+ }
319
+ return vehicle.ownership.clientID === clientID
320
+ }
321
+ /**
322
+ * Validates if a player is near a vehicle.
323
+ *
324
+ * @param networkId - Network ID of the vehicle
325
+ * @param clientID - Client ID of the player
326
+ * @param maxDistance - Maximum distance in units
327
+ * @returns True if within range
328
+ */
329
+ validateProximity(networkId, clientID, maxDistance = 10.0) {
330
+ const vehicle = this.vehiclesByNetworkId.get(networkId)
331
+ if (!vehicle || !vehicle.exists) return false
332
+ const player = this.playerDirectory.getByClient(clientID)
333
+ if (!player) return false
334
+ const playerPed = GetPlayerPed(player.clientIDStr)
335
+ if (!playerPed || playerPed === 0) return false
336
+ const playerPos = GetEntityCoords(playerPed)
337
+ const vehiclePos = vehicle.position
338
+ const distance = Math.sqrt(
339
+ (playerPos[0] - vehiclePos.x) ** 2 +
340
+ (playerPos[1] - vehiclePos.y) ** 2 +
341
+ (playerPos[2] - vehiclePos.z) ** 2,
342
+ )
343
+ return distance <= maxDistance
344
+ }
345
+ /**
346
+ * Cleans up orphaned vehicles that no longer exist.
347
+ */
348
+ cleanup() {
349
+ const toDelete = []
350
+ for (const [networkId, vehicle] of this.vehiclesByNetworkId.entries()) {
351
+ if (!vehicle.exists) {
352
+ toDelete.push(networkId)
353
+ }
354
+ }
355
+ for (const networkId of toDelete) {
356
+ this.vehiclesByNetworkId.delete(networkId)
357
+ logger_1.coreLogger.debug('Cleaned up orphaned vehicle', { networkId })
358
+ }
359
+ if (toDelete.length > 0) {
360
+ logger_1.coreLogger.info('Vehicle cleanup completed', {
361
+ cleaned: toDelete.length,
362
+ remaining: this.vehiclesByNetworkId.size,
363
+ })
364
+ }
365
+ }
366
+ /**
367
+ * Gets the total count of managed vehicles.
368
+ *
369
+ * @returns Vehicle count
370
+ */
371
+ getCount() {
372
+ return this.vehiclesByNetworkId.size
373
+ }
374
+ /**
375
+ * Serializes all vehicles for data transfer.
376
+ *
377
+ * @returns Array of serialized vehicle data
378
+ */
379
+ serializeAll() {
380
+ return Array.from(this.vehiclesByNetworkId.values()).map((v) => v.serialize())
381
+ }
382
+ }
383
+ exports.VehicleService = VehicleService
384
+ exports.VehicleService = VehicleService = __decorate(
385
+ [
386
+ (0, tsyringe_1.injectable)(),
387
+ __param(0, (0, tsyringe_1.inject)(player_directory_port_1.PlayerDirectoryPort)),
388
+ __metadata('design:paramtypes', [player_directory_port_1.PlayerDirectoryPort]),
389
+ ],
390
+ VehicleService,
391
+ )
@@ -0,0 +1,15 @@
1
+ import { type NetEventInvalidPayloadContext, NetEventSecurityObserverContract } from '../../contracts/security/net-event-security-observer.contract';
2
+ import { Player } from '../../entities/player';
3
+ /**
4
+ * Default net-event security observer.
5
+ *
6
+ * @remarks
7
+ * This implementation is a no-op. Projects can provide an implementation via DI to log invalid
8
+ * payloads, emit metrics, or apply additional security actions.
9
+ */
10
+ export declare class DefaultNetEventSecurityObserver extends NetEventSecurityObserverContract {
11
+ /**
12
+ * Called when a net event payload fails validation.
13
+ */
14
+ onInvalidPayload(_player: Player, _ctx: NetEventInvalidPayloadContext): Promise<void>;
15
+ }
@@ -0,0 +1,28 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DefaultNetEventSecurityObserver = void 0;
10
+ const tsyringe_1 = require("tsyringe");
11
+ const net_event_security_observer_contract_1 = require("../../contracts/security/net-event-security-observer.contract");
12
+ /**
13
+ * Default net-event security observer.
14
+ *
15
+ * @remarks
16
+ * This implementation is a no-op. Projects can provide an implementation via DI to log invalid
17
+ * payloads, emit metrics, or apply additional security actions.
18
+ */
19
+ let DefaultNetEventSecurityObserver = class DefaultNetEventSecurityObserver extends net_event_security_observer_contract_1.NetEventSecurityObserverContract {
20
+ /**
21
+ * Called when a net event payload fails validation.
22
+ */
23
+ async onInvalidPayload(_player, _ctx) { }
24
+ };
25
+ exports.DefaultNetEventSecurityObserver = DefaultNetEventSecurityObserver;
26
+ exports.DefaultNetEventSecurityObserver = DefaultNetEventSecurityObserver = __decorate([
27
+ (0, tsyringe_1.injectable)()
28
+ ], DefaultNetEventSecurityObserver);
@@ -0,0 +1,19 @@
1
+ import { SecurityError } from '../../../../kernel/utils/error/security.error';
2
+ import { SecurityHandlerContract } from '../../contracts/security/security-handler.contract';
3
+ import { Player } from '../../entities';
4
+ /**
5
+ * Default implementation of the security handler.
6
+ *
7
+ * @remarks
8
+ * The default behavior is to log security violations. Projects can provide their own
9
+ * implementation via DI to apply stricter policies (kick/ban/metrics).
10
+ */
11
+ export declare class DefaultSecurityHandler extends SecurityHandlerContract {
12
+ /**
13
+ * Handles a detected security violation.
14
+ *
15
+ * @param player - Player who triggered the violation.
16
+ * @param error - Security error describing the violation.
17
+ */
18
+ handleViolation(player: Player, error: SecurityError): Promise<void>;
19
+ }
@@ -8,9 +8,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.DefaultSecurityHandler = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const security_handler_contract_1 = require("../../templates/security/security-handler.contract");
12
- const logger_1 = require("../../../shared/logger");
11
+ const logger_1 = require("../../../../kernel/shared/logger");
12
+ const security_handler_contract_1 = require("../../contracts/security/security-handler.contract");
13
+ /**
14
+ * Default implementation of the security handler.
15
+ *
16
+ * @remarks
17
+ * The default behavior is to log security violations. Projects can provide their own
18
+ * implementation via DI to apply stricter policies (kick/ban/metrics).
19
+ */
13
20
  let DefaultSecurityHandler = class DefaultSecurityHandler extends security_handler_contract_1.SecurityHandlerContract {
21
+ /**
22
+ * Handles a detected security violation.
23
+ *
24
+ * @param player - Player who triggered the violation.
25
+ * @param error - Security error describing the violation.
26
+ */
14
27
  async handleViolation(player, error) {
15
28
  logger_1.loggers.security.warn(`Security violation detected`, {
16
29
  playerName: player.name,
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.HttpService = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const utils_1 = require("../../../utils");
11
+ const utils_1 = require("../../../../kernel/utils");
12
12
  let HttpService = class HttpService {
13
13
  /**
14
14
  * Performs an HTTP GET request to the specified URL.
@@ -78,9 +78,9 @@ let HttpService = class HttpService {
78
78
  if (err instanceof utils_1.AppError)
79
79
  throw err;
80
80
  if (err instanceof DOMException && err.name === 'AbortError') {
81
- throw new utils_1.AppError('NETWORK_ERROR', `${method} ${url} timed out after ${timeoutMs}ms`, 'external', { timeout: timeoutMs });
81
+ throw new utils_1.AppError('NETWORK:ERROR', `${method} ${url} timed out after ${timeoutMs}ms`, 'external', { timeout: timeoutMs });
82
82
  }
83
- throw new utils_1.AppError('NETWORK_ERROR', `Network error calling ${method} ${url}`, 'external', {
83
+ throw new utils_1.AppError('NETWORK:ERROR', `Network error calling ${method} ${url}`, 'external', {
84
84
  endpoint: url,
85
85
  method,
86
86
  cause: err instanceof Error ? err.message : String(err),
@@ -92,10 +92,10 @@ let HttpService = class HttpService {
92
92
  }
93
93
  async handleResponse(response, method, url) {
94
94
  if (!response.ok) {
95
- let code = 'API_ERROR';
95
+ let code = 'API:ERROR';
96
96
  let errorBody = null;
97
97
  if (response.status === 401 || response.status === 403) {
98
- code = 'UNAUTHORIZED';
98
+ code = 'AUTH:UNAUTHORIZED';
99
99
  }
100
100
  try {
101
101
  errorBody = await response.json();
@@ -0,0 +1,16 @@
1
+ export * from '../database';
2
+ export * from './appearance.service';
3
+ export { ChatService } from './chat.service';
4
+ export { ConfigService } from './config.service';
5
+ export { type HttpOptions, HttpService } from './http/http.service';
6
+ export * from './parallel';
7
+ export { PlayerPersistenceService } from './persistence.service';
8
+ export * from './ports/command-execution.port';
9
+ export * from './ports/player-directory.port';
10
+ export * from './ports/player-session-lifecycle.port';
11
+ export * from './ports/principal.port';
12
+ export { RateLimiterService } from './rate-limiter.service';
13
+ export type * from './types/linked-id';
14
+ export * from './types/player-session.object';
15
+ export * from './vehicle.service';
16
+ export * from './vehicle-modification.service';
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ // Services
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.RateLimiterService = exports.PlayerPersistenceService = exports.HttpService = exports.ConfigService = exports.ChatService = void 0;
19
+ __exportStar(require("../database"), exports);
20
+ __exportStar(require("./appearance.service"), exports);
21
+ var chat_service_1 = require("./chat.service");
22
+ Object.defineProperty(exports, "ChatService", { enumerable: true, get: function () { return chat_service_1.ChatService; } });
23
+ var config_service_1 = require("./config.service");
24
+ Object.defineProperty(exports, "ConfigService", { enumerable: true, get: function () { return config_service_1.ConfigService; } });
25
+ var http_service_1 = require("./http/http.service");
26
+ Object.defineProperty(exports, "HttpService", { enumerable: true, get: function () { return http_service_1.HttpService; } });
27
+ __exportStar(require("./parallel"), exports);
28
+ var persistence_service_1 = require("./persistence.service");
29
+ Object.defineProperty(exports, "PlayerPersistenceService", { enumerable: true, get: function () { return persistence_service_1.PlayerPersistenceService; } });
30
+ __exportStar(require("./ports/command-execution.port"), exports);
31
+ // Contract Services (Ports)
32
+ __exportStar(require("./ports/player-directory.port"), exports);
33
+ __exportStar(require("./ports/player-session-lifecycle.port"), exports);
34
+ __exportStar(require("./ports/principal.port"), exports);
35
+ var rate_limiter_service_1 = require("./rate-limiter.service");
36
+ Object.defineProperty(exports, "RateLimiterService", { enumerable: true, get: function () { return rate_limiter_service_1.RateLimiterService; } });
37
+ __exportStar(require("./types/player-session.object"), exports);
38
+ __exportStar(require("./vehicle.service"), exports);
39
+ __exportStar(require("./vehicle-modification.service"), exports);
@@ -42,8 +42,6 @@
42
42
  * const resultParallel = await processPlayers.parallel(players)
43
43
  * ```
44
44
  */
45
- export type { ExecutionMode, WorkerPoolConfig, ParallelTaskOptions, ParallelTask, ParallelComputeMetrics, TaskResult, WorkerInfo, WorkerStatus, } from './types';
46
- export { ParallelComputeService } from './parallel-compute.service';
47
- export { getParallelComputeService, initParallelCompute, shutdownParallelCompute, defineTask, } from './parallel-compute.service';
48
- export { filterByDistance, sortByDistance, findClosest, defineBatchTransform, defineBatchFilter, defineBatchReduce, type Vector3Like, } from './parallel-compute.service';
45
+ export { defineBatchFilter, defineBatchReduce, defineBatchTransform, defineTask, filterByDistance, findClosest, getParallelComputeService, initParallelCompute, ParallelComputeService, shutdownParallelCompute, sortByDistance, type Vector3Like, } from './parallel-compute.service';
46
+ export type { ExecutionMode, ParallelComputeMetrics, ParallelTask, ParallelTaskOptions, TaskResult, WorkerInfo, WorkerPoolConfig, WorkerStatus, } from './types';
49
47
  export { WorkerPool } from './worker-pool';
@@ -44,24 +44,22 @@
44
44
  * ```
45
45
  */
46
46
  Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.WorkerPool = exports.defineBatchReduce = exports.defineBatchFilter = exports.defineBatchTransform = exports.findClosest = exports.sortByDistance = exports.filterByDistance = exports.defineTask = exports.shutdownParallelCompute = exports.initParallelCompute = exports.getParallelComputeService = exports.ParallelComputeService = void 0;
47
+ exports.WorkerPool = exports.sortByDistance = exports.shutdownParallelCompute = exports.ParallelComputeService = exports.initParallelCompute = exports.getParallelComputeService = exports.findClosest = exports.filterByDistance = exports.defineTask = exports.defineBatchTransform = exports.defineBatchReduce = exports.defineBatchFilter = void 0;
48
48
  // Service
49
- var parallel_compute_service_1 = require("./parallel-compute.service");
50
- Object.defineProperty(exports, "ParallelComputeService", { enumerable: true, get: function () { return parallel_compute_service_1.ParallelComputeService; } });
51
49
  // Standalone functions
52
- var parallel_compute_service_2 = require("./parallel-compute.service");
53
- Object.defineProperty(exports, "getParallelComputeService", { enumerable: true, get: function () { return parallel_compute_service_2.getParallelComputeService; } });
54
- Object.defineProperty(exports, "initParallelCompute", { enumerable: true, get: function () { return parallel_compute_service_2.initParallelCompute; } });
55
- Object.defineProperty(exports, "shutdownParallelCompute", { enumerable: true, get: function () { return parallel_compute_service_2.shutdownParallelCompute; } });
56
- Object.defineProperty(exports, "defineTask", { enumerable: true, get: function () { return parallel_compute_service_2.defineTask; } });
57
50
  // Built-in tasks
58
- var parallel_compute_service_3 = require("./parallel-compute.service");
59
- Object.defineProperty(exports, "filterByDistance", { enumerable: true, get: function () { return parallel_compute_service_3.filterByDistance; } });
60
- Object.defineProperty(exports, "sortByDistance", { enumerable: true, get: function () { return parallel_compute_service_3.sortByDistance; } });
61
- Object.defineProperty(exports, "findClosest", { enumerable: true, get: function () { return parallel_compute_service_3.findClosest; } });
62
- Object.defineProperty(exports, "defineBatchTransform", { enumerable: true, get: function () { return parallel_compute_service_3.defineBatchTransform; } });
63
- Object.defineProperty(exports, "defineBatchFilter", { enumerable: true, get: function () { return parallel_compute_service_3.defineBatchFilter; } });
64
- Object.defineProperty(exports, "defineBatchReduce", { enumerable: true, get: function () { return parallel_compute_service_3.defineBatchReduce; } });
51
+ var parallel_compute_service_1 = require("./parallel-compute.service");
52
+ Object.defineProperty(exports, "defineBatchFilter", { enumerable: true, get: function () { return parallel_compute_service_1.defineBatchFilter; } });
53
+ Object.defineProperty(exports, "defineBatchReduce", { enumerable: true, get: function () { return parallel_compute_service_1.defineBatchReduce; } });
54
+ Object.defineProperty(exports, "defineBatchTransform", { enumerable: true, get: function () { return parallel_compute_service_1.defineBatchTransform; } });
55
+ Object.defineProperty(exports, "defineTask", { enumerable: true, get: function () { return parallel_compute_service_1.defineTask; } });
56
+ Object.defineProperty(exports, "filterByDistance", { enumerable: true, get: function () { return parallel_compute_service_1.filterByDistance; } });
57
+ Object.defineProperty(exports, "findClosest", { enumerable: true, get: function () { return parallel_compute_service_1.findClosest; } });
58
+ Object.defineProperty(exports, "getParallelComputeService", { enumerable: true, get: function () { return parallel_compute_service_1.getParallelComputeService; } });
59
+ Object.defineProperty(exports, "initParallelCompute", { enumerable: true, get: function () { return parallel_compute_service_1.initParallelCompute; } });
60
+ Object.defineProperty(exports, "ParallelComputeService", { enumerable: true, get: function () { return parallel_compute_service_1.ParallelComputeService; } });
61
+ Object.defineProperty(exports, "shutdownParallelCompute", { enumerable: true, get: function () { return parallel_compute_service_1.shutdownParallelCompute; } });
62
+ Object.defineProperty(exports, "sortByDistance", { enumerable: true, get: function () { return parallel_compute_service_1.sortByDistance; } });
65
63
  // Worker pool (for advanced usage)
66
64
  var worker_pool_1 = require("./worker-pool");
67
65
  Object.defineProperty(exports, "WorkerPool", { enumerable: true, get: function () { return worker_pool_1.WorkerPool; } });
@@ -8,7 +8,7 @@
8
8
  * Automatically decides whether to run synchronously or asynchronously
9
9
  * based on estimated computational cost.
10
10
  */
11
- import type { ParallelTaskOptions, ParallelTask, WorkerPoolConfig, ParallelComputeMetrics, TaskResult } from './types';
11
+ import { ParallelComputeMetrics, ParallelTask, ParallelTaskOptions, TaskResult, WorkerPoolConfig } from './types';
12
12
  /**
13
13
  * Service for managing parallel computation
14
14
  */
@@ -209,13 +209,14 @@ let ParallelComputeService = class ParallelComputeService {
209
209
  try {
210
210
  const chunks = options.chunker(input, actualWorkerCount);
211
211
  const results = await Promise.all(chunks.map(async (chunk) => {
212
+ var _a;
212
213
  const message = {
213
214
  id: (0, uuid_1.v4)(),
214
215
  taskName: options.name,
215
216
  functionBody: options.compute.toString(),
216
217
  input: chunk,
217
218
  };
218
- return this.pool.execute(message);
219
+ return (_a = this.pool) === null || _a === void 0 ? void 0 : _a.execute(message);
219
220
  }));
220
221
  const mergedResult = options.merger(results);
221
222
  const executionTime = performance.now() - startTime;
@@ -5,7 +5,7 @@
5
5
  * In FiveM environment, falls back to async execution.
6
6
  * Can be extended to support native workers when available.
7
7
  */
8
- import type { WorkerPoolConfig, WorkerInfo, WorkerMessage } from './types';
8
+ import { WorkerInfo, WorkerMessage, WorkerPoolConfig } from './types';
9
9
  type EventCallback = (...args: unknown[]) => void;
10
10
  /**
11
11
  * Simple event emitter (FiveM compatible)