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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/README.md +217 -360
  2. package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
  3. package/dist/adapters/contracts/IEngineEvents.js +6 -0
  4. package/dist/adapters/contracts/IEntityServer.d.ts +88 -0
  5. package/dist/adapters/contracts/IEntityServer.js +13 -0
  6. package/dist/adapters/contracts/IExports.d.ts +4 -0
  7. package/dist/adapters/contracts/IExports.js +6 -0
  8. package/dist/adapters/contracts/IHasher.d.ts +15 -0
  9. package/dist/adapters/contracts/IHasher.js +12 -0
  10. package/dist/adapters/contracts/INetTransport.d.ts +8 -0
  11. package/dist/adapters/contracts/INetTransport.js +6 -0
  12. package/dist/adapters/contracts/IPedAppearanceClient.d.ts +206 -0
  13. package/dist/adapters/contracts/IPedAppearanceClient.js +16 -0
  14. package/dist/adapters/contracts/IPedAppearanceServer.d.ts +45 -0
  15. package/dist/adapters/contracts/IPedAppearanceServer.js +16 -0
  16. package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
  17. package/dist/adapters/contracts/IPlayerInfo.js +6 -0
  18. package/dist/adapters/contracts/IPlayerServer.d.ts +73 -0
  19. package/dist/adapters/contracts/IPlayerServer.js +13 -0
  20. package/dist/adapters/contracts/IResourceInfo.d.ts +3 -0
  21. package/dist/adapters/contracts/IResourceInfo.js +6 -0
  22. package/dist/adapters/contracts/ITick.d.ts +10 -0
  23. package/dist/adapters/contracts/ITick.js +9 -0
  24. package/dist/adapters/contracts/IVehicleServer.d.ts +55 -0
  25. package/dist/adapters/contracts/IVehicleServer.js +13 -0
  26. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.d.ts +2 -2
  27. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.js +2 -2
  28. package/dist/adapters/database/resource.adapter.d.ts +12 -0
  29. package/dist/adapters/database/resource.adapter.js +68 -0
  30. package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
  31. package/dist/adapters/fivem/fivem-engine-events.js +13 -0
  32. package/dist/adapters/fivem/fivem-entity-server.d.ts +22 -0
  33. package/dist/adapters/fivem/fivem-entity-server.js +80 -0
  34. package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
  35. package/dist/adapters/fivem/fivem-exports.js +14 -0
  36. package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
  37. package/dist/adapters/fivem/fivem-hasher.js +23 -0
  38. package/dist/adapters/fivem/fivem-net-transport.d.ts +5 -0
  39. package/dist/adapters/fivem/fivem-net-transport.js +24 -0
  40. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
  41. package/dist/adapters/fivem/fivem-ped-appearance-client.js +84 -0
  42. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
  43. package/dist/adapters/fivem/fivem-ped-appearance-server.js +26 -0
  44. package/dist/adapters/fivem/fivem-player-server.d.ts +15 -0
  45. package/dist/adapters/fivem/fivem-player-server.js +63 -0
  46. package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
  47. package/dist/adapters/fivem/fivem-playerinfo.js +14 -0
  48. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +4 -0
  49. package/dist/adapters/fivem/fivem-resourceinfo.js +16 -0
  50. package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
  51. package/dist/adapters/fivem/fivem-tick.js +22 -0
  52. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
  53. package/dist/adapters/fivem/fivem-vehicle-server.js +47 -0
  54. package/dist/adapters/index.d.ts +15 -0
  55. package/dist/adapters/index.js +40 -0
  56. package/dist/adapters/node/index.d.ts +8 -0
  57. package/dist/adapters/node/index.js +19 -0
  58. package/dist/adapters/node/node-engine-events.d.ts +20 -0
  59. package/dist/adapters/node/node-engine-events.js +42 -0
  60. package/dist/adapters/node/node-entity-server.d.ts +26 -0
  61. package/dist/adapters/node/node-entity-server.js +101 -0
  62. package/dist/adapters/node/node-exports.d.ts +26 -0
  63. package/dist/adapters/node/node-exports.js +63 -0
  64. package/dist/adapters/node/node-hasher.d.ts +12 -0
  65. package/dist/adapters/node/node-hasher.js +39 -0
  66. package/dist/adapters/node/node-net-transport.d.ts +18 -0
  67. package/dist/adapters/node/node-net-transport.js +57 -0
  68. package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
  69. package/dist/adapters/node/node-ped-appearance-client.js +59 -0
  70. package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
  71. package/dist/adapters/node/node-ped-appearance-server.js +18 -0
  72. package/dist/adapters/node/node-player-server.d.ts +27 -0
  73. package/dist/adapters/node/node-player-server.js +82 -0
  74. package/dist/adapters/node/node-playerinfo.d.ts +6 -0
  75. package/dist/adapters/node/node-playerinfo.js +12 -0
  76. package/dist/adapters/node/node-resourceinfo.d.ts +12 -0
  77. package/dist/adapters/node/node-resourceinfo.js +27 -0
  78. package/dist/adapters/node/node-tick.d.ts +10 -0
  79. package/dist/{server/system/processors/command.processor.js → adapters/node/node-tick.js} +27 -14
  80. package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
  81. package/dist/adapters/node/node-vehicle-server.js +93 -0
  82. package/dist/adapters/register-capabilities.d.ts +11 -0
  83. package/dist/adapters/register-capabilities.js +148 -0
  84. package/dist/adapters/register-client-capabilities.d.ts +8 -0
  85. package/dist/adapters/register-client-capabilities.js +56 -0
  86. package/dist/index.d.ts +5 -4
  87. package/dist/index.js +9 -5
  88. package/dist/kernel/di/index.d.ts +4 -0
  89. package/dist/kernel/di/index.js +20 -0
  90. package/dist/{system → kernel/di}/metadata.scanner.d.ts +1 -2
  91. package/dist/kernel/di/tokens.d.ts +30 -0
  92. package/dist/kernel/di/tokens.js +38 -0
  93. package/dist/kernel/index.d.ts +7 -0
  94. package/dist/kernel/index.js +30 -0
  95. package/dist/kernel/schema/index.d.ts +32 -0
  96. package/dist/kernel/schema/index.js +5 -0
  97. package/dist/kernel/shared/appearance/appearance.interface.d.ts +276 -0
  98. package/dist/kernel/shared/appearance/appearance.interface.js +77 -0
  99. package/dist/kernel/shared/appearance/index.d.ts +1 -0
  100. package/dist/kernel/shared/appearance/index.js +17 -0
  101. package/dist/kernel/shared/index.d.ts +2 -0
  102. package/dist/{shared → kernel/shared}/index.js +1 -0
  103. package/dist/{shared → kernel/shared}/logger/core-logger.d.ts +13 -0
  104. package/dist/{shared → kernel/shared}/logger/core-logger.js +38 -9
  105. package/dist/{shared → kernel/shared}/logger/index.d.ts +12 -9
  106. package/dist/{shared → kernel/shared}/logger/index.js +24 -15
  107. package/dist/{shared → kernel/shared}/logger/logger.config.d.ts +1 -1
  108. package/dist/kernel/shared/logger/logger.env.d.ts +28 -0
  109. package/dist/kernel/shared/logger/logger.env.js +51 -0
  110. package/dist/{shared → kernel/shared}/logger/logger.service.d.ts +2 -2
  111. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.d.ts +2 -2
  112. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.js +1 -1
  113. package/dist/{shared → kernel/shared}/logger/transports/console.transport.d.ts +2 -2
  114. package/dist/{shared → kernel/shared}/logger/transports/console.transport.js +1 -0
  115. package/dist/kernel/shared/logger/transports/dev-transport.factory.d.ts +75 -0
  116. package/dist/kernel/shared/logger/transports/dev-transport.factory.js +111 -0
  117. package/dist/kernel/shared/logger/transports/http.transport.d.ts +67 -0
  118. package/dist/kernel/shared/logger/transports/http.transport.js +170 -0
  119. package/dist/kernel/shared/logger/transports/index.d.ts +7 -0
  120. package/dist/kernel/shared/logger/transports/index.js +34 -0
  121. package/dist/kernel/shared/logger/transports/simple-console.transport.d.ts +38 -0
  122. package/dist/kernel/shared/logger/transports/simple-console.transport.js +93 -0
  123. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.d.ts +1 -1
  124. package/dist/kernel/shared/logger/transports/websocket.transport.d.ts +69 -0
  125. package/dist/kernel/shared/logger/transports/websocket.transport.js +169 -0
  126. package/dist/kernel/utils/error/app.error.d.ts +9 -0
  127. package/dist/{utils/errors.js → kernel/utils/error/app.error.js} +1 -9
  128. package/dist/kernel/utils/error/security.error.d.ts +6 -0
  129. package/dist/kernel/utils/error/security.error.js +12 -0
  130. package/dist/{utils → kernel/utils}/index.d.ts +3 -2
  131. package/dist/{utils → kernel/utils}/index.js +3 -2
  132. package/dist/{utils → kernel/utils}/result.d.ts +1 -1
  133. package/dist/runtime/client/client-bootstrap.d.ts +7 -0
  134. package/dist/runtime/client/client-bootstrap.js +180 -0
  135. package/dist/runtime/client/client-core.d.ts +19 -0
  136. package/dist/runtime/client/client-core.js +24 -0
  137. package/dist/runtime/client/client-runtime.d.ts +58 -0
  138. package/dist/runtime/client/client-runtime.js +32 -0
  139. package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
  140. package/dist/runtime/client/controllers/appearance.controller.js +50 -0
  141. package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
  142. package/dist/runtime/client/controllers/player-sync.controller.js +54 -0
  143. package/dist/{client → runtime/client}/controllers/spawner.controller.d.ts +1 -1
  144. package/dist/runtime/client/decorators/controller.d.ts +20 -0
  145. package/dist/runtime/client/decorators/controller.js +55 -0
  146. package/dist/runtime/client/decorators/export.d.ts +21 -0
  147. package/dist/runtime/client/decorators/export.js +29 -0
  148. package/dist/{client → runtime/client}/decorators/gameEvent.d.ts +2 -2
  149. package/dist/runtime/client/decorators/interval.d.ts +23 -0
  150. package/dist/runtime/client/decorators/interval.js +31 -0
  151. package/dist/runtime/client/decorators/key.d.ts +23 -0
  152. package/dist/runtime/client/decorators/key.js +31 -0
  153. package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
  154. package/dist/runtime/client/decorators/localEvent.js +29 -0
  155. package/dist/runtime/client/decorators/nui.d.ts +21 -0
  156. package/dist/runtime/client/decorators/nui.js +29 -0
  157. package/dist/runtime/client/decorators/onNet.d.ts +21 -0
  158. package/dist/runtime/client/decorators/onNet.js +29 -0
  159. package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
  160. package/dist/runtime/client/decorators/resourceLifecycle.js +53 -0
  161. package/dist/runtime/client/decorators/tick.d.ts +21 -0
  162. package/dist/runtime/client/decorators/tick.js +29 -0
  163. package/dist/{client → runtime/client}/index.d.ts +2 -2
  164. package/dist/{client → runtime/client}/index.js +4 -2
  165. package/dist/runtime/client/interfaces/appearance.interface.d.ts +25 -0
  166. package/dist/runtime/client/interfaces/appearance.interface.js +2 -0
  167. package/dist/{client → runtime/client}/player/player.d.ts +1 -1
  168. package/dist/{client → runtime/client}/player/player.js +5 -6
  169. package/dist/{client → runtime/client}/player/player.loader.js +2 -2
  170. package/dist/runtime/client/services/appearance.service.d.ts +132 -0
  171. package/dist/runtime/client/services/appearance.service.js +328 -0
  172. package/dist/{client → runtime/client}/services/blip.service.d.ts +1 -1
  173. package/dist/{client → runtime/client}/services/index.d.ts +6 -5
  174. package/dist/{client → runtime/client}/services/index.js +6 -5
  175. package/dist/{client → runtime/client}/services/marker.service.d.ts +1 -1
  176. package/dist/{client → runtime/client}/services/ped.service.d.ts +1 -1
  177. package/dist/{client → runtime/client}/services/ped.service.js +3 -2
  178. package/dist/{client → runtime/client}/services/spawn.service.d.ts +2 -2
  179. package/dist/{client → runtime/client}/services/spawn.service.js +4 -8
  180. package/dist/{client → runtime/client}/services/textui.service.d.ts +1 -1
  181. package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
  182. package/dist/runtime/client/services/vehicle-client.service.js +485 -0
  183. package/dist/{client → runtime/client}/services/vehicle.service.d.ts +2 -2
  184. package/dist/{client → runtime/client}/services/vehicle.service.js +1 -1
  185. package/dist/{client → runtime/client}/system/processors/export.processor.d.ts +1 -1
  186. package/dist/{client → runtime/client}/system/processors/export.processor.js +1 -1
  187. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.d.ts +1 -1
  188. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.js +2 -2
  189. package/dist/{client → runtime/client}/system/processors/interval.processor.d.ts +1 -1
  190. package/dist/{client → runtime/client}/system/processors/interval.processor.js +1 -1
  191. package/dist/{client → runtime/client}/system/processors/key.processor.d.ts +1 -1
  192. package/dist/{client → runtime/client}/system/processors/localEvent.processor.d.ts +1 -1
  193. package/dist/{client → runtime/client}/system/processors/localEvent.processor.js +1 -1
  194. package/dist/{client → runtime/client}/system/processors/netEvent.processor.d.ts +1 -1
  195. package/dist/{client → runtime/client}/system/processors/netEvent.processor.js +1 -1
  196. package/dist/{client → runtime/client}/system/processors/nui.processor.d.ts +1 -1
  197. package/dist/{client → runtime/client}/system/processors/nui.processor.js +1 -1
  198. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.d.ts +1 -1
  199. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.js +1 -1
  200. package/dist/{client → runtime/client}/system/processors/tick.processor.d.ts +1 -1
  201. package/dist/{client → runtime/client}/system/processors/tick.processor.js +1 -1
  202. package/dist/{client → runtime/client}/types/game-events.js +0 -8
  203. package/dist/{client → runtime/client}/ui-bridge.js +1 -1
  204. package/dist/runtime/index.d.ts +2 -0
  205. package/dist/runtime/index.js +39 -0
  206. package/dist/{server → runtime/server}/bootstrap.d.ts +2 -1
  207. package/dist/runtime/server/bootstrap.js +234 -0
  208. package/dist/runtime/server/bootstrap.validation.d.ts +12 -0
  209. package/dist/runtime/server/bootstrap.validation.js +102 -0
  210. package/dist/runtime/server/bus/core-event-bus.d.ts +6 -0
  211. package/dist/{server → runtime/server}/bus/core-event-bus.js +5 -5
  212. package/dist/{server → runtime/server}/configs/api.config.d.ts +1 -1
  213. package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.d.ts +2 -2
  214. package/dist/runtime/server/contracts/index.d.ts +7 -0
  215. package/dist/{server/templates → runtime/server/contracts}/index.js +8 -4
  216. package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.d.ts +1 -1
  217. package/dist/{server/templates → runtime/server/contracts}/repository/index.d.ts +2 -2
  218. package/dist/{server/templates → runtime/server/contracts}/repository/index.js +1 -1
  219. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.d.ts +2 -2
  220. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.js +0 -1
  221. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
  222. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +6 -0
  223. package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.d.ts +3 -3
  224. package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.d.ts +2 -2
  225. package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
  226. package/dist/{server → runtime/server}/controllers/chat.controller.js +23 -11
  227. package/dist/runtime/server/controllers/command-export.controller.d.ts +74 -0
  228. package/dist/runtime/server/controllers/command-export.controller.js +260 -0
  229. package/dist/runtime/server/controllers/command.controller.d.ts +15 -0
  230. package/dist/runtime/server/controllers/command.controller.js +100 -0
  231. package/dist/runtime/server/controllers/player-export.controller.d.ts +29 -0
  232. package/dist/runtime/server/controllers/player-export.controller.js +173 -0
  233. package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
  234. package/dist/runtime/server/controllers/principal-export.controller.js +296 -0
  235. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +43 -0
  236. package/dist/runtime/server/controllers/remote-command-execution.controller.js +104 -0
  237. package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
  238. package/dist/{server → runtime/server}/controllers/session.controller.js +15 -12
  239. package/dist/runtime/server/controllers/vehicle.controller.d.ts +55 -0
  240. package/dist/runtime/server/controllers/vehicle.controller.js +216 -0
  241. package/dist/runtime/server/core.d.ts +3 -0
  242. package/dist/runtime/server/core.js +11 -0
  243. package/dist/runtime/server/database/adapter.registry.d.ts +4 -0
  244. package/dist/runtime/server/database/adapter.registry.js +14 -0
  245. package/dist/{server → runtime/server}/database/database.contract.d.ts +1 -1
  246. package/dist/{server → runtime/server}/database/database.service.d.ts +3 -31
  247. package/dist/{server → runtime/server}/database/database.service.js +36 -50
  248. package/dist/runtime/server/database/index.d.ts +5 -0
  249. package/dist/runtime/server/database/index.js +25 -0
  250. package/dist/runtime/server/decorators/bind.d.ts +21 -0
  251. package/dist/runtime/server/decorators/bind.js +31 -0
  252. package/dist/runtime/server/decorators/command.d.ts +81 -0
  253. package/dist/runtime/server/decorators/command.js +32 -0
  254. package/dist/{server → runtime/server}/decorators/controller.d.ts +4 -3
  255. package/dist/runtime/server/decorators/controller.js +61 -0
  256. package/dist/runtime/server/decorators/export.d.ts +24 -0
  257. package/dist/runtime/server/decorators/export.js +32 -0
  258. package/dist/runtime/server/decorators/guard.d.ts +49 -0
  259. package/dist/{server → runtime/server}/decorators/guard.js +33 -32
  260. package/dist/{server → runtime/server}/decorators/index.d.ts +7 -4
  261. package/dist/{server → runtime/server}/decorators/index.js +8 -5
  262. package/dist/runtime/server/decorators/onFiveMEvent.d.ts +24 -0
  263. package/dist/runtime/server/decorators/onFiveMEvent.js +32 -0
  264. package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +22 -0
  265. package/dist/{server → runtime/server}/decorators/onFrameworkEvent.js +9 -9
  266. package/dist/runtime/server/decorators/onNet.d.ts +62 -0
  267. package/dist/runtime/server/decorators/onNet.js +15 -0
  268. package/dist/runtime/server/decorators/onTick.d.ts +21 -0
  269. package/dist/runtime/server/decorators/onTick.js +29 -0
  270. package/dist/runtime/server/decorators/public.d.ts +26 -0
  271. package/dist/{server → runtime/server}/decorators/public.js +15 -16
  272. package/dist/{server → runtime/server}/decorators/requiresState.d.ts +29 -22
  273. package/dist/runtime/server/decorators/requiresState.js +73 -0
  274. package/dist/runtime/server/decorators/throttle.d.ts +56 -0
  275. package/dist/{server → runtime/server}/decorators/throttle.js +31 -19
  276. package/dist/runtime/server/decorators/utils.d.ts +54 -0
  277. package/dist/runtime/server/decorators/utils.js +60 -0
  278. package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
  279. package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +12 -0
  280. package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
  281. package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +12 -0
  282. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
  283. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +11 -0
  284. package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
  285. package/dist/runtime/server/devmode/contracts/index.js +9 -0
  286. package/dist/runtime/server/devmode/dev-mode.service.d.ts +110 -0
  287. package/dist/runtime/server/devmode/dev-mode.service.js +324 -0
  288. package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
  289. package/dist/runtime/server/devmode/event-interceptor.service.js +232 -0
  290. package/dist/runtime/server/devmode/hot-reload.server.d.ts +74 -0
  291. package/dist/runtime/server/devmode/hot-reload.server.js +261 -0
  292. package/dist/runtime/server/devmode/index.d.ts +8 -0
  293. package/dist/runtime/server/devmode/index.js +32 -0
  294. package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
  295. package/dist/runtime/server/devmode/player-simulator.service.js +202 -0
  296. package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
  297. package/dist/runtime/server/devmode/state-inspector.service.js +183 -0
  298. package/dist/runtime/server/devmode/types.d.ts +161 -0
  299. package/dist/runtime/server/devmode/types.js +28 -0
  300. package/dist/runtime/server/entities/index.d.ts +2 -0
  301. package/dist/{server → runtime/server}/entities/index.js +1 -0
  302. package/dist/{server → runtime/server}/entities/player.d.ts +70 -3
  303. package/dist/{server → runtime/server}/entities/player.js +92 -14
  304. package/dist/runtime/server/entities/vehicle.d.ts +160 -0
  305. package/dist/runtime/server/entities/vehicle.js +261 -0
  306. package/dist/{server → runtime/server}/error-handler.d.ts +1 -1
  307. package/dist/{server → runtime/server}/error-handler.js +7 -8
  308. package/dist/runtime/server/helpers/command-validation.helper.d.ts +6 -0
  309. package/dist/runtime/server/helpers/command-validation.helper.js +72 -0
  310. package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
  311. package/dist/runtime/server/helpers/function-helper.js +15 -0
  312. package/dist/{server → runtime/server}/helpers/resolve-method.d.ts +1 -1
  313. package/dist/runtime/server/helpers/resolve-method.js +28 -0
  314. package/dist/{server → runtime/server}/index.d.ts +8 -6
  315. package/dist/{server → runtime/server}/index.js +14 -10
  316. package/dist/runtime/server/runtime.d.ts +408 -0
  317. package/dist/runtime/server/runtime.js +234 -0
  318. package/dist/runtime/server/services/access-control.service.d.ts +59 -0
  319. package/dist/runtime/server/services/access-control.service.js +127 -0
  320. package/dist/runtime/server/services/appearance.service.d.ts +99 -0
  321. package/dist/runtime/server/services/appearance.service.js +307 -0
  322. package/dist/runtime/server/services/chat.service.d.ts +33 -0
  323. package/dist/{server → runtime/server}/services/chat.service.js +26 -0
  324. package/dist/{server → runtime/server}/services/config.service.js +1 -1
  325. package/dist/runtime/server/services/core/command.service.d.ts +49 -0
  326. package/dist/runtime/server/services/core/command.service.js +112 -0
  327. package/dist/{server/services → runtime/server/services/core}/player.service.d.ts +48 -22
  328. package/dist/{server/services → runtime/server/services/core}/player.service.js +98 -14
  329. package/dist/runtime/server/services/core/principal.service.d.ts +28 -0
  330. package/dist/runtime/server/services/core/principal.service.js +126 -0
  331. package/dist/runtime/server/services/core/vehicle-modification.service.d.ts +104 -0
  332. package/dist/runtime/server/services/core/vehicle-modification.service.js +330 -0
  333. package/dist/runtime/server/services/core/vehicle.service.d.ts +128 -0
  334. package/dist/runtime/server/services/core/vehicle.service.js +391 -0
  335. package/dist/runtime/server/services/default/default-net-event-security-observer.d.ts +15 -0
  336. package/dist/runtime/server/services/default/default-net-event-security-observer.js +28 -0
  337. package/dist/runtime/server/services/default/default-security.handler.d.ts +19 -0
  338. package/dist/{server → runtime/server}/services/default/default-security.handler.js +15 -2
  339. package/dist/{server → runtime/server}/services/http/http.service.js +5 -5
  340. package/dist/runtime/server/services/index.d.ts +16 -0
  341. package/dist/runtime/server/services/index.js +39 -0
  342. package/dist/{server → runtime/server}/services/parallel/index.d.ts +2 -4
  343. package/dist/{server → runtime/server}/services/parallel/index.js +13 -15
  344. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.d.ts +1 -1
  345. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.js +2 -1
  346. package/dist/{server → runtime/server}/services/parallel/worker-pool.d.ts +1 -1
  347. package/dist/{server → runtime/server}/services/parallel/worker.d.ts +1 -1
  348. package/dist/{server → runtime/server}/services/persistence.service.d.ts +1 -1
  349. package/dist/{server → runtime/server}/services/persistence.service.js +13 -9
  350. package/dist/runtime/server/services/ports/command-execution.port.d.ts +41 -0
  351. package/dist/runtime/server/services/ports/command-execution.port.js +15 -0
  352. package/dist/runtime/server/services/ports/player-directory.port.d.ts +107 -0
  353. package/dist/runtime/server/services/ports/player-directory.port.js +23 -0
  354. package/dist/runtime/server/services/ports/player-session-lifecycle.port.d.ts +49 -0
  355. package/dist/runtime/server/services/ports/player-session-lifecycle.port.js +16 -0
  356. package/dist/runtime/server/services/ports/principal.port.d.ts +149 -0
  357. package/dist/runtime/server/services/ports/principal.port.js +32 -0
  358. package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
  359. package/dist/{server → runtime/server}/services/rate-limiter.service.js +18 -0
  360. package/dist/runtime/server/services/remote/remote-command.service.d.ts +63 -0
  361. package/dist/runtime/server/services/remote/remote-command.service.js +139 -0
  362. package/dist/runtime/server/services/remote/remote-player.service.d.ts +62 -0
  363. package/dist/runtime/server/services/remote/remote-player.service.js +191 -0
  364. package/dist/runtime/server/services/remote/remote-principal.provider.d.ts +55 -0
  365. package/dist/runtime/server/services/remote/remote-principal.provider.js +130 -0
  366. package/dist/runtime/server/services/remote/remote-principal.service.d.ts +33 -0
  367. package/dist/runtime/server/services/remote/remote-principal.service.js +99 -0
  368. package/dist/runtime/server/services/remote/server-bridge.d.ts +34 -0
  369. package/dist/runtime/server/services/remote/server-bridge.js +94 -0
  370. package/dist/runtime/server/services/services.register.d.ts +14 -0
  371. package/dist/runtime/server/services/services.register.js +98 -0
  372. package/dist/runtime/server/services/types/linked-id.d.ts +6 -0
  373. package/dist/runtime/server/services/types/player-session.object.d.ts +11 -0
  374. package/dist/runtime/server/services/vehicle-modification.service.d.ts +94 -0
  375. package/dist/runtime/server/services/vehicle-modification.service.js +310 -0
  376. package/dist/runtime/server/services/vehicle.service.d.ts +138 -0
  377. package/dist/runtime/server/services/vehicle.service.js +361 -0
  378. package/dist/runtime/server/setup.d.ts +10 -0
  379. package/dist/runtime/server/setup.js +33 -0
  380. package/dist/{server → runtime/server}/system/metadata-server.keys.d.ts +2 -0
  381. package/dist/{server → runtime/server}/system/metadata-server.keys.js +2 -0
  382. package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
  383. package/dist/runtime/server/system/processors/command.processor.js +54 -0
  384. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.d.ts +1 -1
  385. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.js +3 -3
  386. package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
  387. package/dist/{server → runtime/server}/system/processors/export.processor.js +15 -5
  388. package/dist/runtime/server/system/processors/fivemEvent.processor.d.ts +10 -0
  389. package/dist/{server → runtime/server}/system/processors/fivemEvent.processor.js +15 -5
  390. package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
  391. package/dist/runtime/server/system/processors/netEvent.processor.js +240 -0
  392. package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
  393. package/dist/{server → runtime/server}/system/processors/tick.processor.js +14 -4
  394. package/dist/runtime/server/system/processors.register.d.ts +2 -0
  395. package/dist/runtime/server/system/processors.register.js +37 -0
  396. package/dist/{server → runtime/server}/system/schema-generator.d.ts +1 -1
  397. package/dist/{server → runtime/server}/system/schema-generator.js +17 -8
  398. package/dist/{server/templates/admin → runtime/server/templates}/admin.controller-template.d.ts +1 -1
  399. package/dist/runtime/server/templates/index.d.ts +1 -0
  400. package/dist/runtime/server/templates/index.js +17 -0
  401. package/dist/runtime/server/types/core-exports.d.ts +285 -0
  402. package/dist/runtime/server/types/core-exports.js +2 -0
  403. package/dist/runtime/server/types/index.d.ts +4 -0
  404. package/dist/runtime/server/types/index.js +20 -0
  405. package/dist/runtime/server/types/security.types.js +2 -0
  406. package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
  407. package/dist/runtime/server/types/vehicle.types.js +2 -0
  408. package/package.json +98 -98
  409. package/dist/client/client-bootstrap.d.ts +0 -1
  410. package/dist/client/client-bootstrap.js +0 -50
  411. package/dist/client/client-core.d.ts +0 -1
  412. package/dist/client/client-core.js +0 -7
  413. package/dist/client/decorators/controller.d.ts +0 -3
  414. package/dist/client/decorators/controller.js +0 -14
  415. package/dist/client/decorators/export.d.ts +0 -7
  416. package/dist/client/decorators/export.js +0 -15
  417. package/dist/client/decorators/interval.d.ts +0 -7
  418. package/dist/client/decorators/interval.js +0 -15
  419. package/dist/client/decorators/key.d.ts +0 -2
  420. package/dist/client/decorators/key.js +0 -10
  421. package/dist/client/decorators/localEvent.d.ts +0 -7
  422. package/dist/client/decorators/localEvent.js +0 -15
  423. package/dist/client/decorators/nui.d.ts +0 -1
  424. package/dist/client/decorators/nui.js +0 -9
  425. package/dist/client/decorators/onNet.d.ts +0 -1
  426. package/dist/client/decorators/onNet.js +0 -9
  427. package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
  428. package/dist/client/decorators/resourceLifecycle.js +0 -24
  429. package/dist/client/decorators/tick.d.ts +0 -1
  430. package/dist/client/decorators/tick.js +0 -9
  431. package/dist/client/interfaces/appearance.interface.d.ts +0 -19
  432. package/dist/client/services/appearance.service.d.ts +0 -6
  433. package/dist/client/services/appearance.service.js +0 -89
  434. package/dist/server/bootstrap.js +0 -57
  435. package/dist/server/bus/core-event-bus.d.ts +0 -6
  436. package/dist/server/controllers/chat.controller.d.ts +0 -10
  437. package/dist/server/controllers/command.controller.d.ts +0 -7
  438. package/dist/server/controllers/command.controller.js +0 -47
  439. package/dist/server/controllers/session.controller.d.ts +0 -9
  440. package/dist/server/core.d.ts +0 -1
  441. package/dist/server/core.js +0 -7
  442. package/dist/server/database/index.d.ts +0 -53
  443. package/dist/server/database/index.js +0 -70
  444. package/dist/server/decorators/bind.d.ts +0 -2
  445. package/dist/server/decorators/bind.js +0 -15
  446. package/dist/server/decorators/command.d.ts +0 -49
  447. package/dist/server/decorators/command.js +0 -23
  448. package/dist/server/decorators/controller.js +0 -36
  449. package/dist/server/decorators/export.d.ts +0 -39
  450. package/dist/server/decorators/export.js +0 -47
  451. package/dist/server/decorators/guard.d.ts +0 -56
  452. package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
  453. package/dist/server/decorators/onFiveMEvent.js +0 -14
  454. package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
  455. package/dist/server/decorators/onNet.d.ts +0 -58
  456. package/dist/server/decorators/onNet.js +0 -57
  457. package/dist/server/decorators/onTick.d.ts +0 -32
  458. package/dist/server/decorators/onTick.js +0 -40
  459. package/dist/server/decorators/public.d.ts +0 -27
  460. package/dist/server/decorators/requiresState.js +0 -63
  461. package/dist/server/decorators/throttle.d.ts +0 -48
  462. package/dist/server/decorators/utils.d.ts +0 -57
  463. package/dist/server/decorators/utils.js +0 -63
  464. package/dist/server/entities/index.d.ts +0 -1
  465. package/dist/server/helpers/resolve-method.js +0 -18
  466. package/dist/server/loaders/exports.loader.d.ts +0 -0
  467. package/dist/server/loaders/exports.loader.js +0 -23
  468. package/dist/server/loaders/playerSession.loader.d.ts +0 -1
  469. package/dist/server/loaders/playerSession.loader.js +0 -51
  470. package/dist/server/services/access-control.service.d.ts +0 -56
  471. package/dist/server/services/access-control.service.js +0 -99
  472. package/dist/server/services/chat.service.d.ts +0 -7
  473. package/dist/server/services/command.service.d.ts +0 -15
  474. package/dist/server/services/command.service.js +0 -77
  475. package/dist/server/services/default/default-security.handler.d.ts +0 -6
  476. package/dist/server/services/index.d.ts +0 -10
  477. package/dist/server/services/index.js +0 -26
  478. package/dist/server/services/rate-limiter.service.d.ts +0 -5
  479. package/dist/server/services/registers.d.ts +0 -1
  480. package/dist/server/services/registers.js +0 -18
  481. package/dist/server/setup.d.ts +0 -9
  482. package/dist/server/setup.js +0 -28
  483. package/dist/server/system/processors/command.processor.d.ts +0 -9
  484. package/dist/server/system/processors/export.processor.d.ts +0 -7
  485. package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
  486. package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
  487. package/dist/server/system/processors/netEvent.processor.js +0 -103
  488. package/dist/server/system/processors/tick.processor.d.ts +0 -5
  489. package/dist/server/system/processors.register.d.ts +0 -1
  490. package/dist/server/system/processors.register.js +0 -23
  491. package/dist/server/templates/index.d.ts +0 -8
  492. package/dist/server/templates/persistence/index.d.ts +0 -30
  493. package/dist/server/templates/persistence/index.js +0 -34
  494. package/dist/shared/index.d.ts +0 -1
  495. package/dist/shared/logger/transports/index.d.ts +0 -3
  496. package/dist/shared/logger/transports/index.js +0 -19
  497. package/dist/utils/errors.d.ts +0 -14
  498. package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
  499. package/dist/{system → kernel/di}/class-constructor.js +0 -0
  500. package/dist/{server → kernel/di}/container.d.ts +0 -0
  501. package/dist/{server → kernel/di}/container.js +0 -0
  502. package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
  503. package/dist/{system → kernel/di}/decorator-processor.js +0 -0
  504. package/dist/{system → kernel/di}/metadata.scanner.js +0 -0
  505. package/dist/{shared → kernel/shared}/logger/logger.config.js +0 -0
  506. package/dist/{shared → kernel/shared}/logger/logger.service.js +0 -0
  507. package/dist/{shared → kernel/shared}/logger/logger.types.d.ts +0 -0
  508. package/dist/{shared → kernel/shared}/logger/logger.types.js +0 -0
  509. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.js +0 -0
  510. package/dist/{utils → kernel/utils}/result.js +0 -0
  511. package/dist/{utils → kernel/utils}/rgb.d.ts +0 -0
  512. package/dist/{utils → kernel/utils}/rgb.js +0 -0
  513. package/dist/{utils → kernel/utils}/vector3.d.ts +0 -0
  514. package/dist/{utils → kernel/utils}/vector3.js +0 -0
  515. package/dist/{client → runtime/client}/client-container.d.ts +0 -0
  516. package/dist/{client → runtime/client}/client-container.js +0 -0
  517. package/dist/{client → runtime/client}/controllers/spawner.controller.js +0 -0
  518. package/dist/{client → runtime/client}/decorators/gameEvent.js +0 -0
  519. package/dist/{client → runtime/client}/decorators/index.d.ts +5 -5
  520. package/dist/{client → runtime/client}/decorators/index.js +5 -5
  521. package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
  522. package/dist/{client → runtime/client}/services/blip.service.js +0 -0
  523. package/dist/{client → runtime/client}/services/marker.service.js +0 -0
  524. package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
  525. package/dist/{client → runtime/client}/services/notification.service.js +0 -0
  526. package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
  527. package/dist/{client → runtime/client}/services/progress.service.js +0 -0
  528. package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
  529. package/dist/{client → runtime/client}/services/streaming.service.js +0 -0
  530. package/dist/{client → runtime/client}/services/textui.service.js +0 -0
  531. package/dist/{client → runtime/client}/system/metadata-client.keys.d.ts +0 -0
  532. package/dist/{client → runtime/client}/system/metadata-client.keys.js +0 -0
  533. package/dist/{client → runtime/client}/system/processors/key.processor.js +0 -0
  534. package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
  535. package/dist/{client → runtime/client}/system/processors.register.js +6 -6
  536. /package/dist/{client → runtime/client}/types/game-events.d.ts +0 -0
  537. /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
  538. /package/dist/{client → runtime/client}/types/index.js +0 -0
  539. /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
  540. /package/dist/{server → runtime/server}/configs/api.config.js +0 -0
  541. /package/dist/{server → runtime/server}/configs/config.base.d.ts +0 -0
  542. /package/dist/{server → runtime/server}/configs/config.base.js +0 -0
  543. /package/dist/{server → runtime/server}/configs/index.d.ts +0 -0
  544. /package/dist/{server → runtime/server}/configs/index.js +0 -0
  545. /package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.js +0 -0
  546. /package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.js +0 -0
  547. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.d.ts +0 -0
  548. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.js +0 -0
  549. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.d.ts +0 -0
  550. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.js +0 -0
  551. /package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.js +0 -0
  552. /package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.js +0 -0
  553. /package/dist/{server → runtime/server}/database/database.contract.js +0 -0
  554. /package/dist/{server → runtime/server}/database/types.d.ts +0 -0
  555. /package/dist/{server → runtime/server}/database/types.js +0 -0
  556. /package/dist/{server → runtime/server}/database.d.ts +0 -0
  557. /package/dist/{server → runtime/server}/database.js +0 -0
  558. /package/dist/{server → runtime/server}/services/config.service.d.ts +0 -0
  559. /package/dist/{server → runtime/server}/services/http/http.service.d.ts +0 -0
  560. /package/dist/{server → runtime/server}/services/parallel/types.d.ts +0 -0
  561. /package/dist/{server → runtime/server}/services/parallel/types.js +0 -0
  562. /package/dist/{server → runtime/server}/services/parallel/worker-pool.js +0 -0
  563. /package/dist/{server → runtime/server}/services/parallel/worker.js +0 -0
  564. /package/dist/{client/interfaces/appearance.interface.js → runtime/server/services/types/linked-id.js} +0 -0
  565. /package/dist/{server/templates/admin/admin.controller-template.js → runtime/server/services/types/player-session.object.js} +0 -0
  566. /package/dist/{server/types/core-events.js → runtime/server/templates/admin.controller-template.js} +0 -0
  567. /package/dist/{server → runtime/server}/types/core-events.d.ts +0 -0
  568. /package/dist/{server/types/security.types.js → runtime/server/types/core-events.js} +0 -0
  569. /package/dist/{server → runtime/server}/types/security.types.d.ts +0 -0
@@ -0,0 +1,74 @@
1
+ import { HotReloadOptions } from './types';
2
+ /**
3
+ * Log message structure for HTTP transport.
4
+ */
5
+ export interface LogMessage {
6
+ level: number;
7
+ domain: string;
8
+ message: string;
9
+ timestamp: number;
10
+ context?: Record<string, unknown>;
11
+ error?: {
12
+ name: string;
13
+ message: string;
14
+ stack?: string;
15
+ };
16
+ }
17
+ /**
18
+ * HTTP server for handling hot reload requests from the CLI.
19
+ *
20
+ * Provides an endpoint that the CLI can call to restart resources
21
+ * after file changes are detected.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const server = new HotReloadServer({ enabled: true, port: 3847 })
26
+ * server.start()
27
+ * // CLI calls POST /restart?resource=my-resource
28
+ * ```
29
+ */
30
+ export declare class HotReloadServer {
31
+ private server;
32
+ private options;
33
+ private logBuffer;
34
+ private maxLogBuffer;
35
+ private logListeners;
36
+ constructor(options: HotReloadOptions);
37
+ /**
38
+ * Adds logs to the buffer (called by HttpLogTransport).
39
+ */
40
+ addLogs(logs: LogMessage[]): void;
41
+ /**
42
+ * Gets and clears buffered logs.
43
+ */
44
+ consumeLogs(): LogMessage[];
45
+ /**
46
+ * Adds a listener for new logs.
47
+ */
48
+ onLogs(listener: (logs: LogMessage[]) => void): () => void;
49
+ /**
50
+ * Starts the hot reload HTTP server.
51
+ */
52
+ start(): void;
53
+ /**
54
+ * Stops the hot reload server.
55
+ */
56
+ stop(): void;
57
+ /**
58
+ * Checks if the server is running.
59
+ */
60
+ isRunning(): boolean;
61
+ private handleRequest;
62
+ private handleRestart;
63
+ private handleRefresh;
64
+ private handleHealth;
65
+ private isResourceAllowed;
66
+ /**
67
+ * Handles GET /logs - CLI polls for buffered logs.
68
+ */
69
+ private handleGetLogs;
70
+ /**
71
+ * Handles POST /logs - Framework pushes logs to buffer.
72
+ */
73
+ private handlePostLogs;
74
+ }
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HotReloadServer = void 0;
4
+ const logger_1 = require("../../../kernel/shared/logger");
5
+ // Lazy-loaded http module (only loaded at runtime, not bundled)
6
+ let httpModule = null;
7
+ // Use variable to prevent esbuild from statically analyzing the require
8
+ const HTTP_MODULE = 'http';
9
+ function getHttpSync() {
10
+ if (!httpModule) {
11
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
12
+ httpModule = require(HTTP_MODULE);
13
+ }
14
+ return httpModule;
15
+ }
16
+ // Safe wrappers for FiveM globals (no-op in Node.js)
17
+ function safeGetCurrentResourceName() {
18
+ if (typeof GetCurrentResourceName === 'function') {
19
+ return GetCurrentResourceName();
20
+ }
21
+ return 'unknown';
22
+ }
23
+ function safeExecuteCommand(command) {
24
+ if (typeof ExecuteCommand === 'function') {
25
+ ExecuteCommand(command);
26
+ }
27
+ else {
28
+ logger_1.loggers.bootstrap.warn('[DevMode] ExecuteCommand not available (not running in FiveM)');
29
+ }
30
+ }
31
+ /**
32
+ * HTTP server for handling hot reload requests from the CLI.
33
+ *
34
+ * Provides an endpoint that the CLI can call to restart resources
35
+ * after file changes are detected.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const server = new HotReloadServer({ enabled: true, port: 3847 })
40
+ * server.start()
41
+ * // CLI calls POST /restart?resource=my-resource
42
+ * ```
43
+ */
44
+ class HotReloadServer {
45
+ constructor(options) {
46
+ this.server = null;
47
+ this.logBuffer = [];
48
+ this.maxLogBuffer = 1000;
49
+ this.logListeners = [];
50
+ this.options = options;
51
+ }
52
+ /**
53
+ * Adds logs to the buffer (called by HttpLogTransport).
54
+ */
55
+ addLogs(logs) {
56
+ this.logBuffer.push(...logs);
57
+ if (this.logBuffer.length > this.maxLogBuffer) {
58
+ this.logBuffer = this.logBuffer.slice(-this.maxLogBuffer);
59
+ }
60
+ // Notify listeners
61
+ for (const listener of this.logListeners) {
62
+ listener(logs);
63
+ }
64
+ }
65
+ /**
66
+ * Gets and clears buffered logs.
67
+ */
68
+ consumeLogs() {
69
+ const logs = this.logBuffer;
70
+ this.logBuffer = [];
71
+ return logs;
72
+ }
73
+ /**
74
+ * Adds a listener for new logs.
75
+ */
76
+ onLogs(listener) {
77
+ this.logListeners.push(listener);
78
+ return () => {
79
+ const idx = this.logListeners.indexOf(listener);
80
+ if (idx !== -1)
81
+ this.logListeners.splice(idx, 1);
82
+ };
83
+ }
84
+ /**
85
+ * Starts the hot reload HTTP server.
86
+ */
87
+ start() {
88
+ if (!this.options.enabled)
89
+ return;
90
+ if (this.server)
91
+ return;
92
+ const http = getHttpSync();
93
+ this.server = http.createServer((req, res) => {
94
+ this.handleRequest(req, res);
95
+ });
96
+ this.server.listen(this.options.port, '127.0.0.1', () => {
97
+ logger_1.loggers.bootstrap.info(`[DevMode] Hot reload server listening on port ${this.options.port}`);
98
+ });
99
+ this.server.on('error', (error) => {
100
+ logger_1.loggers.bootstrap.error(`[DevMode] Hot reload server error`, {}, error);
101
+ });
102
+ }
103
+ /**
104
+ * Stops the hot reload server.
105
+ */
106
+ stop() {
107
+ if (this.server) {
108
+ this.server.close();
109
+ this.server = null;
110
+ logger_1.loggers.bootstrap.info('[DevMode] Hot reload server stopped');
111
+ }
112
+ }
113
+ /**
114
+ * Checks if the server is running.
115
+ */
116
+ isRunning() {
117
+ return this.server !== null;
118
+ }
119
+ handleRequest(req, res) {
120
+ var _a, _b;
121
+ // CORS headers for CLI access
122
+ res.setHeader('Access-Control-Allow-Origin', '*');
123
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
124
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
125
+ if (req.method === 'OPTIONS') {
126
+ res.writeHead(204);
127
+ res.end();
128
+ return;
129
+ }
130
+ if (req.method === 'POST' && ((_a = req.url) === null || _a === void 0 ? void 0 : _a.startsWith('/restart'))) {
131
+ this.handleRestart(req, res);
132
+ return;
133
+ }
134
+ if (req.method === 'POST' && ((_b = req.url) === null || _b === void 0 ? void 0 : _b.startsWith('/refresh'))) {
135
+ this.handleRefresh(res);
136
+ return;
137
+ }
138
+ if (req.method === 'GET' && req.url === '/health') {
139
+ this.handleHealth(res);
140
+ return;
141
+ }
142
+ // Log endpoints for CLI polling
143
+ if (req.method === 'GET' && req.url === '/logs') {
144
+ this.handleGetLogs(res);
145
+ return;
146
+ }
147
+ if (req.method === 'POST' && req.url === '/logs') {
148
+ this.handlePostLogs(req, res);
149
+ return;
150
+ }
151
+ res.writeHead(404, { 'Content-Type': 'application/json' });
152
+ res.end(JSON.stringify({ error: 'Not found' }));
153
+ }
154
+ handleRestart(req, res) {
155
+ var _a;
156
+ try {
157
+ const url = new URL((_a = req.url) !== null && _a !== void 0 ? _a : '', `http://localhost:${this.options.port}`);
158
+ const resource = url.searchParams.get('resource');
159
+ if (!resource) {
160
+ res.writeHead(400, { 'Content-Type': 'application/json' });
161
+ res.end(JSON.stringify({ error: 'Missing resource parameter' }));
162
+ return;
163
+ }
164
+ if (!this.isResourceAllowed(resource)) {
165
+ res.writeHead(403, { 'Content-Type': 'application/json' });
166
+ res.end(JSON.stringify({ error: 'Resource not allowed for hot reload' }));
167
+ return;
168
+ }
169
+ // Don't restart ourselves
170
+ const currentResource = safeGetCurrentResourceName();
171
+ if (resource === currentResource) {
172
+ res.writeHead(400, { 'Content-Type': 'application/json' });
173
+ res.end(JSON.stringify({ error: 'Cannot restart the hot-reload resource itself' }));
174
+ return;
175
+ }
176
+ logger_1.loggers.bootstrap.info(`[DevMode] Hot reloading resource: ${resource}`);
177
+ // Execute the restart command
178
+ safeExecuteCommand(`restart ${resource}`);
179
+ res.writeHead(200, { 'Content-Type': 'application/json' });
180
+ res.end(JSON.stringify({ success: true, resource }));
181
+ }
182
+ catch (error) {
183
+ logger_1.loggers.bootstrap.error('[DevMode] Hot reload error', {}, error);
184
+ res.writeHead(500, { 'Content-Type': 'application/json' });
185
+ res.end(JSON.stringify({ error: 'Internal server error' }));
186
+ }
187
+ }
188
+ handleRefresh(res) {
189
+ try {
190
+ logger_1.loggers.bootstrap.info('[DevMode] Refreshing resources');
191
+ safeExecuteCommand('refresh');
192
+ res.writeHead(200, { 'Content-Type': 'application/json' });
193
+ res.end(JSON.stringify({ success: true }));
194
+ }
195
+ catch (error) {
196
+ logger_1.loggers.bootstrap.error('[DevMode] Refresh error', {}, error);
197
+ res.writeHead(500, { 'Content-Type': 'application/json' });
198
+ res.end(JSON.stringify({ error: 'Internal server error' }));
199
+ }
200
+ }
201
+ handleHealth(res) {
202
+ res.writeHead(200, { 'Content-Type': 'application/json' });
203
+ res.end(JSON.stringify({
204
+ status: 'ok',
205
+ resource: safeGetCurrentResourceName(),
206
+ timestamp: Date.now(),
207
+ }));
208
+ }
209
+ isResourceAllowed(resource) {
210
+ if (!this.options.allowedResources || this.options.allowedResources.length === 0) {
211
+ return true;
212
+ }
213
+ return this.options.allowedResources.includes(resource);
214
+ }
215
+ /**
216
+ * Handles GET /logs - CLI polls for buffered logs.
217
+ */
218
+ handleGetLogs(res) {
219
+ const logs = this.consumeLogs();
220
+ res.writeHead(200, { 'Content-Type': 'application/json' });
221
+ res.end(JSON.stringify({ logs, timestamp: Date.now() }));
222
+ }
223
+ /**
224
+ * Handles POST /logs - Framework pushes logs to buffer.
225
+ */
226
+ handlePostLogs(req, res) {
227
+ let body = '';
228
+ req.on('data', (chunk) => {
229
+ body += chunk.toString();
230
+ // Limit body size to 1MB
231
+ if (body.length > 1024 * 1024) {
232
+ res.writeHead(413, { 'Content-Type': 'application/json' });
233
+ res.end(JSON.stringify({ error: 'Payload too large' }));
234
+ req.destroy();
235
+ }
236
+ });
237
+ req.on('end', () => {
238
+ try {
239
+ const data = JSON.parse(body);
240
+ if (data.type === 'logs' && Array.isArray(data.payload)) {
241
+ this.addLogs(data.payload);
242
+ res.writeHead(200, { 'Content-Type': 'application/json' });
243
+ res.end(JSON.stringify({ success: true, received: data.payload.length }));
244
+ }
245
+ else {
246
+ res.writeHead(400, { 'Content-Type': 'application/json' });
247
+ res.end(JSON.stringify({ error: 'Invalid payload format' }));
248
+ }
249
+ }
250
+ catch (_a) {
251
+ res.writeHead(400, { 'Content-Type': 'application/json' });
252
+ res.end(JSON.stringify({ error: 'Invalid JSON' }));
253
+ }
254
+ });
255
+ req.on('error', () => {
256
+ res.writeHead(500, { 'Content-Type': 'application/json' });
257
+ res.end(JSON.stringify({ error: 'Request error' }));
258
+ });
259
+ }
260
+ }
261
+ exports.HotReloadServer = HotReloadServer;
@@ -0,0 +1,8 @@
1
+ export * from './contracts';
2
+ export { DevModeService } from './dev-mode.service';
3
+ export { EventInterceptorService } from './event-interceptor.service';
4
+ export { HotReloadServer } from './hot-reload.server';
5
+ export { PlayerSimulatorService } from './player-simulator.service';
6
+ export { StateInspectorService } from './state-inspector.service';
7
+ export type { BridgeMessage, BridgeOptions, DevEvent, DevModeOptions, HotReloadOptions, InterceptorOptions, RuntimeSnapshot, SimulatedPlayer, SimulatedPlayerOptions, SimulatorOptions, } from './types';
8
+ export { DEFAULT_DEVMODE_OPTIONS } from './types';
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ // DevMode - Development tools for OpenCore
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.DEFAULT_DEVMODE_OPTIONS = exports.StateInspectorService = exports.PlayerSimulatorService = exports.HotReloadServer = exports.EventInterceptorService = exports.DevModeService = void 0;
19
+ // Contracts
20
+ __exportStar(require("./contracts"), exports);
21
+ var dev_mode_service_1 = require("./dev-mode.service");
22
+ Object.defineProperty(exports, "DevModeService", { enumerable: true, get: function () { return dev_mode_service_1.DevModeService; } });
23
+ var event_interceptor_service_1 = require("./event-interceptor.service");
24
+ Object.defineProperty(exports, "EventInterceptorService", { enumerable: true, get: function () { return event_interceptor_service_1.EventInterceptorService; } });
25
+ var hot_reload_server_1 = require("./hot-reload.server");
26
+ Object.defineProperty(exports, "HotReloadServer", { enumerable: true, get: function () { return hot_reload_server_1.HotReloadServer; } });
27
+ var player_simulator_service_1 = require("./player-simulator.service");
28
+ Object.defineProperty(exports, "PlayerSimulatorService", { enumerable: true, get: function () { return player_simulator_service_1.PlayerSimulatorService; } });
29
+ var state_inspector_service_1 = require("./state-inspector.service");
30
+ Object.defineProperty(exports, "StateInspectorService", { enumerable: true, get: function () { return state_inspector_service_1.StateInspectorService; } });
31
+ var types_1 = require("./types");
32
+ Object.defineProperty(exports, "DEFAULT_DEVMODE_OPTIONS", { enumerable: true, get: function () { return types_1.DEFAULT_DEVMODE_OPTIONS; } });
@@ -0,0 +1,66 @@
1
+ import { SimulatedPlayer, SimulatedPlayerOptions } from './types';
2
+ /**
3
+ * Service for simulating player connections during development.
4
+ *
5
+ * Allows developers to test their code without needing actual FiveM clients.
6
+ * Simulated players can emit events and execute commands.
7
+ */
8
+ export declare class PlayerSimulatorService {
9
+ private simulatedPlayers;
10
+ private clientIdCounter;
11
+ private get transport();
12
+ private get sessionLifecycle();
13
+ /**
14
+ * Connects a simulated player.
15
+ * @param options - Player configuration
16
+ * @returns Simulated player instance
17
+ */
18
+ connect(options?: Partial<SimulatedPlayerOptions>): SimulatedPlayer;
19
+ /**
20
+ * Disconnects a simulated player.
21
+ * @param clientId - Client ID to disconnect
22
+ */
23
+ disconnect(clientId: number): void;
24
+ /**
25
+ * Connects multiple simulated players.
26
+ * @param count - Number of players to connect
27
+ * @param baseOptions - Base options for all players
28
+ * @returns Array of simulated players
29
+ */
30
+ connectMany(count: number, baseOptions?: Partial<SimulatedPlayerOptions>): SimulatedPlayer[];
31
+ /**
32
+ * Disconnects all simulated players.
33
+ */
34
+ disconnectAll(): void;
35
+ /**
36
+ * Gets all simulated players.
37
+ */
38
+ getAll(): SimulatedPlayer[];
39
+ /**
40
+ * Gets a simulated player by client ID.
41
+ */
42
+ get(clientId: number): SimulatedPlayer | null;
43
+ /**
44
+ * Sets network latency for a simulated player.
45
+ * @param clientId - Client ID
46
+ * @param latency - Latency in milliseconds
47
+ */
48
+ setNetworkLatency(clientId: number, latency: number): void;
49
+ /**
50
+ * Simulates a net event from a player.
51
+ * @param clientId - Client ID
52
+ * @param eventName - Event name
53
+ * @param args - Event arguments
54
+ */
55
+ emitAsPlayer(clientId: number, eventName: string, ...args: unknown[]): Promise<void>;
56
+ /**
57
+ * Gets statistics about simulated players.
58
+ */
59
+ getStatistics(): {
60
+ total: number;
61
+ connected: number;
62
+ avgLatency: number;
63
+ };
64
+ private createSimulatedPlayerInterface;
65
+ private delay;
66
+ }
@@ -0,0 +1,202 @@
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.PlayerSimulatorService = void 0;
10
+ const tsyringe_1 = require("tsyringe");
11
+ const INetTransport_1 = require("../../../adapters/contracts/INetTransport");
12
+ const container_1 = require("../../../kernel/di/container");
13
+ const logger_1 = require("../../../kernel/shared/logger");
14
+ const player_session_lifecycle_port_1 = require("../services/ports/player-session-lifecycle.port");
15
+ /**
16
+ * Service for simulating player connections during development.
17
+ *
18
+ * Allows developers to test their code without needing actual FiveM clients.
19
+ * Simulated players can emit events and execute commands.
20
+ */
21
+ let PlayerSimulatorService = class PlayerSimulatorService {
22
+ constructor() {
23
+ this.simulatedPlayers = new Map();
24
+ this.clientIdCounter = 90000; // Start high to avoid conflicts with real players
25
+ }
26
+ get transport() {
27
+ return container_1.di.resolve(INetTransport_1.INetTransport);
28
+ }
29
+ get sessionLifecycle() {
30
+ return container_1.di.resolve(player_session_lifecycle_port_1.PlayerSessionLifecyclePort);
31
+ }
32
+ /**
33
+ * Connects a simulated player.
34
+ * @param options - Player configuration
35
+ * @returns Simulated player instance
36
+ */
37
+ connect(options) {
38
+ var _a, _b, _c, _d, _e, _f, _g;
39
+ const clientId = (_a = options === null || options === void 0 ? void 0 : options.clientId) !== null && _a !== void 0 ? _a : this.clientIdCounter++;
40
+ const name = (_b = options === null || options === void 0 ? void 0 : options.name) !== null && _b !== void 0 ? _b : `SimPlayer_${clientId}`;
41
+ const accountId = (_c = options === null || options === void 0 ? void 0 : options.accountId) !== null && _c !== void 0 ? _c : `sim_account_${clientId}`;
42
+ // Create the simulated player data
43
+ const playerData = {
44
+ clientId,
45
+ name,
46
+ accountId,
47
+ rank: (_d = options === null || options === void 0 ? void 0 : options.rank) !== null && _d !== void 0 ? _d : 0,
48
+ permissions: (_e = options === null || options === void 0 ? void 0 : options.permissions) !== null && _e !== void 0 ? _e : [],
49
+ states: (_f = options === null || options === void 0 ? void 0 : options.states) !== null && _f !== void 0 ? _f : [],
50
+ metadata: (_g = options === null || options === void 0 ? void 0 : options.metadata) !== null && _g !== void 0 ? _g : {},
51
+ connected: true,
52
+ networkLatency: 0,
53
+ };
54
+ this.simulatedPlayers.set(clientId, playerData);
55
+ // Bind player session via lifecycle port
56
+ try {
57
+ this.sessionLifecycle.bind(clientId, {
58
+ license: `sim_${accountId}`,
59
+ discord: `sim_${clientId}`,
60
+ });
61
+ }
62
+ catch (error) {
63
+ logger_1.loggers.bootstrap.warn('[DevMode] Could not bind player session', {
64
+ clientId,
65
+ error: error.message,
66
+ });
67
+ }
68
+ logger_1.loggers.bootstrap.info(`[DevMode] Simulated player connected: ${name} (${clientId})`);
69
+ // Return the simulated player interface
70
+ return this.createSimulatedPlayerInterface(playerData);
71
+ }
72
+ /**
73
+ * Disconnects a simulated player.
74
+ * @param clientId - Client ID to disconnect
75
+ */
76
+ disconnect(clientId) {
77
+ const player = this.simulatedPlayers.get(clientId);
78
+ if (!player)
79
+ return;
80
+ player.connected = false;
81
+ // Unbind player session
82
+ try {
83
+ this.sessionLifecycle.unbind(clientId);
84
+ }
85
+ catch (error) {
86
+ logger_1.loggers.bootstrap.warn('[DevMode] Could not unbind player session', {
87
+ clientId,
88
+ error: error.message,
89
+ });
90
+ }
91
+ this.simulatedPlayers.delete(clientId);
92
+ logger_1.loggers.bootstrap.info(`[DevMode] Simulated player disconnected: ${player.name} (${clientId})`);
93
+ }
94
+ /**
95
+ * Connects multiple simulated players.
96
+ * @param count - Number of players to connect
97
+ * @param baseOptions - Base options for all players
98
+ * @returns Array of simulated players
99
+ */
100
+ connectMany(count, baseOptions) {
101
+ const players = [];
102
+ for (let i = 0; i < count; i++) {
103
+ players.push(this.connect(Object.assign(Object.assign({}, baseOptions), { name: (baseOptions === null || baseOptions === void 0 ? void 0 : baseOptions.name) ? `${baseOptions.name}_${i}` : undefined })));
104
+ }
105
+ return players;
106
+ }
107
+ /**
108
+ * Disconnects all simulated players.
109
+ */
110
+ disconnectAll() {
111
+ for (const clientId of this.simulatedPlayers.keys()) {
112
+ this.disconnect(clientId);
113
+ }
114
+ }
115
+ /**
116
+ * Gets all simulated players.
117
+ */
118
+ getAll() {
119
+ return Array.from(this.simulatedPlayers.values())
120
+ .filter((p) => p.connected)
121
+ .map((p) => this.createSimulatedPlayerInterface(p));
122
+ }
123
+ /**
124
+ * Gets a simulated player by client ID.
125
+ */
126
+ get(clientId) {
127
+ const player = this.simulatedPlayers.get(clientId);
128
+ if (!player || !player.connected)
129
+ return null;
130
+ return this.createSimulatedPlayerInterface(player);
131
+ }
132
+ /**
133
+ * Sets network latency for a simulated player.
134
+ * @param clientId - Client ID
135
+ * @param latency - Latency in milliseconds
136
+ */
137
+ setNetworkLatency(clientId, latency) {
138
+ const player = this.simulatedPlayers.get(clientId);
139
+ if (player) {
140
+ player.networkLatency = latency;
141
+ }
142
+ }
143
+ /**
144
+ * Simulates a net event from a player.
145
+ * @param clientId - Client ID
146
+ * @param eventName - Event name
147
+ * @param args - Event arguments
148
+ */
149
+ async emitAsPlayer(clientId, eventName, ...args) {
150
+ const player = this.simulatedPlayers.get(clientId);
151
+ if (!player || !player.connected) {
152
+ throw new Error(`Simulated player ${clientId} not found or disconnected`);
153
+ }
154
+ // Add artificial latency if configured
155
+ if (player.networkLatency > 0) {
156
+ await this.delay(player.networkLatency);
157
+ }
158
+ // Use the node transport to simulate the event
159
+ const nodeTransport = this.transport;
160
+ if (typeof nodeTransport.simulateClientEvent === 'function') {
161
+ nodeTransport.simulateClientEvent(eventName, clientId, ...args);
162
+ }
163
+ else {
164
+ logger_1.loggers.bootstrap.warn('[DevMode] Transport does not support event simulation');
165
+ }
166
+ }
167
+ /**
168
+ * Gets statistics about simulated players.
169
+ */
170
+ getStatistics() {
171
+ const players = Array.from(this.simulatedPlayers.values());
172
+ const connected = players.filter((p) => p.connected);
173
+ const avgLatency = connected.length > 0
174
+ ? connected.reduce((sum, p) => sum + p.networkLatency, 0) / connected.length
175
+ : 0;
176
+ return {
177
+ total: players.length,
178
+ connected: connected.length,
179
+ avgLatency,
180
+ };
181
+ }
182
+ createSimulatedPlayerInterface(data) {
183
+ return {
184
+ clientId: data.clientId,
185
+ connected: data.connected,
186
+ networkLatency: data.networkLatency,
187
+ emit: (eventName, ...args) => {
188
+ void this.emitAsPlayer(data.clientId, eventName, ...args);
189
+ },
190
+ disconnect: () => {
191
+ this.disconnect(data.clientId);
192
+ },
193
+ };
194
+ }
195
+ delay(ms) {
196
+ return new Promise((resolve) => setTimeout(resolve, ms));
197
+ }
198
+ };
199
+ exports.PlayerSimulatorService = PlayerSimulatorService;
200
+ exports.PlayerSimulatorService = PlayerSimulatorService = __decorate([
201
+ (0, tsyringe_1.injectable)()
202
+ ], PlayerSimulatorService);