@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
@@ -16,14 +16,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.Controller = exports.Command = void 0;
18
18
  __exportStar(require("./bind"), exports);
19
- __exportStar(require("./utils"), exports);
20
19
  var command_1 = require("./command");
21
20
  Object.defineProperty(exports, "Command", { enumerable: true, get: function () { return command_1.Command; } });
22
- __exportStar(require("./onFrameworkEvent"), exports);
23
- __exportStar(require("./onNet"), exports);
24
- __exportStar(require("./onTick"), exports);
25
21
  var controller_1 = require("./controller");
26
22
  Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return controller_1.Controller; } });
27
- __exportStar(require("./throttle"), exports);
23
+ __exportStar(require("./export"), exports);
28
24
  __exportStar(require("./guard"), exports);
25
+ __exportStar(require("./onFiveMEvent"), exports);
26
+ __exportStar(require("./onFrameworkEvent"), exports);
27
+ __exportStar(require("./onNet"), exports);
28
+ __exportStar(require("./onTick"), exports);
29
+ __exportStar(require("./public"), exports);
29
30
  __exportStar(require("./requiresState"), exports);
31
+ __exportStar(require("./throttle"), exports);
32
+ __exportStar(require("./utils"), exports);
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Registers a method as a server-side listener for a native FiveM event.
3
+ *
4
+ * @remarks
5
+ * This decorator only stores metadata. During bootstrap, the framework scans controller
6
+ * methods and binds handlers to FiveM events.
7
+ *
8
+ * FiveM server event reference:
9
+ * https://docs.fivem.net/docs/scripting-reference/events/server-events/
10
+ *
11
+ * @param event - FiveM event name (e.g. `"playerJoining"`).
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * @Server.Controller()
16
+ * export class SessionController {
17
+ * @Server.OnFiveMEvent('playerJoining')
18
+ * onPlayerJoining() {
19
+ * // ...
20
+ * }
21
+ * }
22
+ * ```
23
+ */
24
+ export declare function OnFiveMEvent(event: string): (target: any, propertyKey: string) => void;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnFiveMEvent = OnFiveMEvent;
4
+ const metadata_server_keys_1 = require("../system/metadata-server.keys");
5
+ /**
6
+ * Registers a method as a server-side listener for a native FiveM event.
7
+ *
8
+ * @remarks
9
+ * This decorator only stores metadata. During bootstrap, the framework scans controller
10
+ * methods and binds handlers to FiveM events.
11
+ *
12
+ * FiveM server event reference:
13
+ * https://docs.fivem.net/docs/scripting-reference/events/server-events/
14
+ *
15
+ * @param event - FiveM event name (e.g. `"playerJoining"`).
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * @Server.Controller()
20
+ * export class SessionController {
21
+ * @Server.OnFiveMEvent('playerJoining')
22
+ * onPlayerJoining() {
23
+ * // ...
24
+ * }
25
+ * }
26
+ * ```
27
+ */
28
+ function OnFiveMEvent(event) {
29
+ return (target, propertyKey) => {
30
+ Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.FIVEM_EVENT, { event }, target, propertyKey);
31
+ };
32
+ }
@@ -0,0 +1,22 @@
1
+ import { CoreEventMap } from '../types/core-events';
2
+ /**
3
+ * Registers a method as a listener for an internal OpenCore framework event.
4
+ *
5
+ * @remarks
6
+ * This decorator only stores metadata. The framework binds listeners during bootstrap by scanning
7
+ * controller methods.
8
+ *
9
+ * @param event - Core event name, strongly typed to {@link CoreEventMap}.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * @Server.Controller()
14
+ * export class SystemController {
15
+ * @Server.OnFrameworkEvent('server:ready')
16
+ * onServerReady() {
17
+ * console.log('OpenCore framework is ready')
18
+ * }
19
+ * }
20
+ * ```
21
+ */
22
+ export declare function OnFrameworkEvent<K extends keyof CoreEventMap>(event: K): (target: any, propertyKey: string) => void;
@@ -3,21 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OnFrameworkEvent = OnFrameworkEvent;
4
4
  const metadata_server_keys_1 = require("../system/metadata-server.keys");
5
5
  /**
6
- * Method decorator used to register a method as a listener for an internal OpenCore framework event.
6
+ * Registers a method as a listener for an internal OpenCore framework event.
7
7
  *
8
- * When the specified framework event is emitted, this method will be automatically triggered
9
- * with the arguments provided by the event payload.
10
- *
11
- * @param event - The name of the core event to listen for (typed strictly to `CoreEventMap`).
8
+ * @remarks
9
+ * This decorator only stores metadata. The framework binds listeners during bootstrap by scanning
10
+ * controller methods.
12
11
  *
12
+ * @param event - Core event name, strongly typed to {@link CoreEventMap}.
13
13
  *
14
+ * @example
14
15
  * ```ts
15
16
  * @Server.Controller()
16
17
  * export class SystemController {
17
- *
18
- * @OnFrameworkEvent('server:ready')
19
- * public onServerStart() {
20
- * console.log('OpenCore Framework is ready!')
18
+ * @Server.OnFrameworkEvent('server:ready')
19
+ * onServerReady() {
20
+ * console.log('OpenCore framework is ready')
21
21
  * }
22
22
  * }
23
23
  * ```
@@ -0,0 +1,62 @@
1
+ import { z } from 'zod';
2
+ export interface NetEventOptions {
3
+ /**
4
+ * The network event name to register.
5
+ */
6
+ eventName: string;
7
+ /**
8
+ * Zod schema for payload validation.
9
+ * - `z.tuple([...])`: validates all positional args.
10
+ * - otherwise: expects exactly 1 arg and validates `args[0]` (DTO payload pattern).
11
+ */
12
+ schema?: z.ZodType;
13
+ /**
14
+ * Runtime parameter types for auto-validation.
15
+ */
16
+ paramTypes: any;
17
+ }
18
+ /**
19
+ * Registers a method as a server-side network event handler.
20
+ *
21
+ * @remarks
22
+ * Rules:
23
+ * - First parameter must be `Player` (injected from the caller).
24
+ *
25
+ * Validation:
26
+ * - If schema is provided:
27
+ * - `z.tuple([...])` validates all positional args.
28
+ * - otherwise: expects exactly 1 arg and validates `args[0]` (DTO payload pattern).
29
+ * - If schema is omitted, only primitive args can be auto-validated from runtime param types
30
+ * (`string|number|boolean|any[]`). Complex payloads should use an explicit schema.
31
+ *
32
+ * Authentication:
33
+ * - Handlers are typically protected by the framework's net-event security layer.
34
+ * - Use {@link Public} to explicitly mark a handler as unauthenticated.
35
+ *
36
+ * @param eventName - Network event name.
37
+ * @param schemaOrOptions - Zod schema directly, or options object with schema property.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * import { z, Infer } from '@open-core/framework'
42
+ *
43
+ * const PayloadSchema = z.object({ message: z.string() })
44
+ *
45
+ * @Server.Controller()
46
+ * export class ExampleController {
47
+ * // Simple handler (no schema)
48
+ * @Server.OnNet('example:ping')
49
+ * ping(player: Player, message: string) { }
50
+ *
51
+ * // With schema directly (recommended)
52
+ * @Server.OnNet('example:data', PayloadSchema)
53
+ * handleData(player: Player, data: Infer<typeof PayloadSchema>) { }
54
+ *
55
+ * // With options object (legacy)
56
+ * @Server.OnNet('example:legacy', { schema: PayloadSchema })
57
+ * handleLegacy(player: Player, data: Infer<typeof PayloadSchema>) { }
58
+ * }
59
+ * ```
60
+ */
61
+ export declare function OnNet<_TArgs extends any[]>(eventName: string, schema: z.ZodType): MethodDecorator;
62
+ export declare function OnNet<_TArgs extends any[]>(eventName: string, options?: Pick<NetEventOptions, 'schema'>): MethodDecorator;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnNet = OnNet;
4
+ const zod_1 = require("zod");
5
+ const metadata_server_keys_1 = require("../system/metadata-server.keys");
6
+ // Implementation
7
+ function OnNet(eventName, schemaOrOptions) {
8
+ return (target, propertyKey, _descriptor) => {
9
+ const paramTypes = Reflect.getMetadata('design:paramtypes', target, propertyKey);
10
+ // Detect if second arg is a Zod schema or an options object
11
+ const schema = schemaOrOptions instanceof zod_1.z.ZodType ? schemaOrOptions : schemaOrOptions === null || schemaOrOptions === void 0 ? void 0 : schemaOrOptions.schema;
12
+ const metadata = { eventName, schema, paramTypes };
13
+ Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.NET_EVENT, metadata, target, propertyKey);
14
+ };
15
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Registers a method to be executed on every server tick.
3
+ *
4
+ * @remarks
5
+ * This decorator only stores metadata. During bootstrap, the framework binds tick handlers to the
6
+ * FiveM tick cycle.
7
+ *
8
+ * Tick handlers should be lightweight and non-blocking.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * @Server.Controller()
13
+ * export class SyncController {
14
+ * @Server.OnTick()
15
+ * updatePlayers() {
16
+ * this.service.syncPositions()
17
+ * }
18
+ * }
19
+ * ```
20
+ */
21
+ export declare function OnTick(): (target: any, propertyKey: string) => void;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnTick = OnTick;
4
+ const metadata_server_keys_1 = require("../system/metadata-server.keys");
5
+ /**
6
+ * Registers a method to be executed on every server tick.
7
+ *
8
+ * @remarks
9
+ * This decorator only stores metadata. During bootstrap, the framework binds tick handlers to the
10
+ * FiveM tick cycle.
11
+ *
12
+ * Tick handlers should be lightweight and non-blocking.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * @Server.Controller()
17
+ * export class SyncController {
18
+ * @Server.OnTick()
19
+ * updatePlayers() {
20
+ * this.service.syncPositions()
21
+ * }
22
+ * }
23
+ * ```
24
+ */
25
+ function OnTick() {
26
+ return (target, propertyKey) => {
27
+ Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.TICK, {}, target, propertyKey);
28
+ };
29
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Marks a server-side net-event handler as publicly accessible.
3
+ *
4
+ * @remarks
5
+ * This decorator disables authentication requirements for the decorated method.
6
+ * It is intended to be used together with {@link OnNet}.
7
+ *
8
+ * Security warning:
9
+ * - Use with caution.
10
+ * - Public endpoints should not mutate sensitive game state unless strictly necessary.
11
+ *
12
+ * @returns Method decorator that marks a handler as unauthenticated.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * @Server.Controller()
17
+ * export class AuthController {
18
+ * @Server.Public()
19
+ * @Server.OnNet('auth:login')
20
+ * async login(player: Server.Player, credentials: AuthCredentials) {
21
+ * // no authentication required for this event
22
+ * }
23
+ * }
24
+ * ```
25
+ */
26
+ export declare function Public(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -3,33 +3,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Public = Public;
4
4
  const metadata_server_keys_1 = require("../system/metadata-server.keys");
5
5
  /**
6
- * Marks a server-side NetEvent handler as publicly accessible.
6
+ * Marks a server-side net-event handler as publicly accessible.
7
7
  *
8
- * This decorator disables authentication requirements for the
9
- * decorated method. It should only be applied to endpoints used for:
10
- * - Login
11
- * - Registration
12
- * - Public information retrieval
8
+ * @remarks
9
+ * This decorator disables authentication requirements for the decorated method.
10
+ * It is intended to be used together with {@link OnNet}.
13
11
  *
14
- * ## Security Warning
15
- * This decorator must be used with caution. Public endpoints must NOT
16
- * modify sensitive game state unless necessary.
12
+ * Security warning:
13
+ * - Use with caution.
14
+ * - Public endpoints should not mutate sensitive game state unless strictly necessary.
17
15
  *
18
- * ## Example
16
+ * @returns Method decorator that marks a handler as unauthenticated.
17
+ *
18
+ * @example
19
19
  * ```ts
20
- * class AuthServerController {
21
- * @Public()
22
- * @OnNet("auth:login")
20
+ * @Server.Controller()
21
+ * export class AuthController {
22
+ * @Server.Public()
23
+ * @Server.OnNet('auth:login')
23
24
  * async login(player: Server.Player, credentials: AuthCredentials) {
24
25
  * // no authentication required for this event
25
26
  * }
26
27
  * }
27
28
  * ```
28
- *
29
- * @returns Method decorator that marks a handler as unauthenticated.
30
29
  */
31
30
  function Public() {
32
- return function (target, propertyKey, descriptor) {
31
+ return (target, propertyKey, descriptor) => {
33
32
  Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.PUBLIC, true, target, propertyKey);
34
33
  return descriptor;
35
34
  };
@@ -6,7 +6,7 @@ export interface StateRequirement {
6
6
  /**
7
7
  * **Whitelist:** The player **MUST** possess ALL of these states to proceed.
8
8
  * If the player is missing any one of these, the execution is blocked.
9
- * @example ['on_duty_police', 'in_vehicle']
9
+ * @example ['on_duty', 'in_vehicle']
10
10
  */
11
11
  has?: string[];
12
12
  /**
@@ -24,33 +24,40 @@ export interface StateRequirement {
24
24
  /**
25
25
  * Enforces gameplay state requirements before executing a method.
26
26
  *
27
- * The decorator intercepts the method call and verifies whether
28
- * the player satisfies required state flags (e.g. "dead", "cuffed",
29
- * "on_duty_police").
27
+ * @remarks
28
+ * The decorator wraps the original method and verifies whether the player satisfies required
29
+ * state flags (e.g. `dead`, `cuffed`, `on_duty_police`).
30
30
  *
31
- * ## Whitelist (`has`)
32
- * The player MUST have *all* required states. Missing any state blocks execution.
31
+ * Rules:
32
+ * - The decorated method must receive a `Server.Player` instance as its first argument.
33
33
  *
34
- * ## Blacklist (`missing`)
35
- * The player MUST NOT have any of the forbidden states.
34
+ * Validation:
35
+ * - `req.has`: the player must have *all* of these states.
36
+ * - `req.missing`: the player must have *none* of these states.
36
37
  *
37
- * ## Error Handling
38
- * - Throws a normal Error if the method is called without a valid Player.
39
- * - Throws an `AppError(GAME_STATE_ERROR)` if validation fails.
38
+ * @param req - State validation configuration.
39
+ *
40
+ * @throws Error - If the method is invoked without a `Player` as the first argument.
41
+ * @throws AppError - If the player does not satisfy the configured requirements.
40
42
  *
41
- * ## Example
43
+ * @example
42
44
  * ```ts
43
- * @RequiresState({ missing: ["dead", "cuffed"] })
44
- * openInventory(player: Server.Player) { ... }
45
+ * @Server.Controller()
46
+ * export class InventoryController {
47
+ * @Server.RequiresState({ missing: ['dead', 'cuffed'] })
48
+ * openInventory(player: Server.Player) {
49
+ * // ...
50
+ * }
45
51
  *
46
- * @RequiresState({
47
- * has: ["police_duty"],
48
- * missing: ["dead"],
49
- * errorMessage: "You must be on duty to access the armory."
50
- * })
51
- * openArmory(player: Server.Player) { ... }
52
+ * @Server.RequiresState({
53
+ * has: ['police_duty'],
54
+ * missing: ['dead'],
55
+ * errorMessage: 'You must be on duty to access the armory.',
56
+ * })
57
+ * openArmory(player: Server.Player) {
58
+ * // ...
59
+ * }
60
+ * }
52
61
  * ```
53
- *
54
- * @param req - State validation configuration.
55
62
  */
56
63
  export declare function RequiresState(req: StateRequirement): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequiresState = RequiresState;
4
+ const utils_1 = require("../../../kernel/utils");
5
+ const metadata_server_keys_1 = require("../system/metadata-server.keys");
6
+ /**
7
+ * Enforces gameplay state requirements before executing a method.
8
+ *
9
+ * @remarks
10
+ * The decorator wraps the original method and verifies whether the player satisfies required
11
+ * state flags (e.g. `dead`, `cuffed`, `on_duty_police`).
12
+ *
13
+ * Rules:
14
+ * - The decorated method must receive a `Server.Player` instance as its first argument.
15
+ *
16
+ * Validation:
17
+ * - `req.has`: the player must have *all* of these states.
18
+ * - `req.missing`: the player must have *none* of these states.
19
+ *
20
+ * @param req - State validation configuration.
21
+ *
22
+ * @throws Error - If the method is invoked without a `Player` as the first argument.
23
+ * @throws AppError - If the player does not satisfy the configured requirements.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * @Server.Controller()
28
+ * export class InventoryController {
29
+ * @Server.RequiresState({ missing: ['dead', 'cuffed'] })
30
+ * openInventory(player: Server.Player) {
31
+ * // ...
32
+ * }
33
+ *
34
+ * @Server.RequiresState({
35
+ * has: ['police_duty'],
36
+ * missing: ['dead'],
37
+ * errorMessage: 'You must be on duty to access the armory.',
38
+ * })
39
+ * openArmory(player: Server.Player) {
40
+ * // ...
41
+ * }
42
+ * }
43
+ * ```
44
+ */
45
+ function RequiresState(req) {
46
+ return (target, propertyKey, descriptor) => {
47
+ const originalMethod = descriptor.value;
48
+ // Store metadata for remote transmission
49
+ Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.REQUIRES_STATE, req, target, propertyKey);
50
+ descriptor.value = async function (...args) {
51
+ const player = args[0];
52
+ if (!player) {
53
+ throw new Error(`@RequiresState used on ${propertyKey} without Player context`);
54
+ }
55
+ if (req.has) {
56
+ for (const state of req.has) {
57
+ if (!player.hasState(state)) {
58
+ throw new utils_1.AppError('GAME:INVALID_STATE', req.errorMessage || `You must be [${state}] to do this.`, 'client');
59
+ }
60
+ }
61
+ }
62
+ if (req.missing) {
63
+ for (const state of req.missing) {
64
+ if (player.hasState(state)) {
65
+ throw new utils_1.AppError('GAME:INVALID_STATE', req.errorMessage || `You can't do this while you're [${state}].`, 'client');
66
+ }
67
+ }
68
+ }
69
+ return originalMethod.apply(this, args);
70
+ };
71
+ return descriptor;
72
+ };
73
+ }
@@ -0,0 +1,56 @@
1
+ import { SecurityAction } from '../types/security.types';
2
+ export interface ThrottleOptions {
3
+ /**
4
+ * limit of calls per windowMs
5
+ */
6
+ limit: number;
7
+ /**
8
+ * time window for numeric overload
9
+ */
10
+ windowMs: number;
11
+ /**
12
+ * action to perform on exceed limit
13
+ */
14
+ onExceed?: SecurityAction;
15
+ /**
16
+ * custom message to display on exceed limit (ERROR MESSAGE)
17
+ */
18
+ message?: string;
19
+ }
20
+ /**
21
+ * Rate-limits how frequently a method can be called by a specific player.
22
+ *
23
+ * @remarks
24
+ * Uses {@link RateLimiterService} with a key composed of:
25
+ * `clientId:ClassName:MethodName`.
26
+ *
27
+ * Overloads:
28
+ * - `@Throttle(5, 1000)` → 5 calls per 1000 ms
29
+ * - `@Throttle({ limit, windowMs, onExceed, message })`
30
+ *
31
+ * Behavior:
32
+ * - If the rate limit is exceeded, a {@link SecurityError} is thrown.
33
+ * - If the method is called without a valid `Player` context (first argument), the limiter is skipped.
34
+ *
35
+ * @param optionsOrLimit - Number (simple overload) or full config object.
36
+ * @param windowMs - Time window for the numeric overload.
37
+ *
38
+ * @throws SecurityError - When the rate limit is exceeded.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * @Server.Controller()
43
+ * export class MarketController {
44
+ * @Server.Throttle(5, 2000)
45
+ * async search(player: Server.Player, query: string) {
46
+ * // ...
47
+ * }
48
+ *
49
+ * @Server.Throttle({ limit: 1, windowMs: 5000, message: 'Too fast!' })
50
+ * async placeOrder(player: Server.Player) {
51
+ * // ...
52
+ * }
53
+ * }
54
+ * ```
55
+ */
56
+ export declare function Throttle(optionsOrLimit: number | ThrottleOptions, windowMs?: number): (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => PropertyDescriptor | undefined;
@@ -2,37 +2,47 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Throttle = Throttle;
4
4
  const tsyringe_1 = require("tsyringe");
5
+ const security_error_1 = require("../../../kernel/utils/error/security.error");
5
6
  const rate_limiter_service_1 = require("../services/rate-limiter.service");
6
- const utils_1 = require("../../utils");
7
+ const metadata_server_keys_1 = require("../system/metadata-server.keys");
7
8
  /**
8
9
  * Rate-limits how frequently a method can be called by a specific player.
9
10
  *
10
- * Uses `RateLimiterService` and a unique key composed of:
11
- * `playerID:ClassName:MethodName`.
11
+ * @remarks
12
+ * Uses {@link RateLimiterService} with a key composed of:
13
+ * `clientId:ClassName:MethodName`.
12
14
  *
13
- * ## Overload
14
- * - `@Throttle(5, 1000)` → limit = 5 calls per 1000 ms
15
+ * Overloads:
16
+ * - `@Throttle(5, 1000)` → 5 calls per 1000 ms
15
17
  * - `@Throttle({ limit, windowMs, onExceed, message })`
16
18
  *
17
- * ## Behavior
18
- * If the rate limit is exceeded:
19
- * - A `SecurityError` is thrown.
20
- * - Optional custom behavior (`onExceed`) may be executed.
19
+ * Behavior:
20
+ * - If the rate limit is exceeded, a {@link SecurityError} is thrown.
21
+ * - If the method is called without a valid `Player` context (first argument), the limiter is skipped.
21
22
  *
22
- * ## Example
23
+ * @param optionsOrLimit - Number (simple overload) or full config object.
24
+ * @param windowMs - Time window for the numeric overload.
25
+ *
26
+ * @throws SecurityError - When the rate limit is exceeded.
27
+ *
28
+ * @example
23
29
  * ```ts
24
- * @Throttle(5, 2000)
25
- * async search(player: Server.Player, query: string) { ... }
30
+ * @Server.Controller()
31
+ * export class MarketController {
32
+ * @Server.Throttle(5, 2000)
33
+ * async search(player: Server.Player, query: string) {
34
+ * // ...
35
+ * }
26
36
  *
27
- * @Throttle({ limit: 1, windowMs: 5000, message: "Too fast!" })
28
- * async placeOrder(player: Server.Player) { ... }
37
+ * @Server.Throttle({ limit: 1, windowMs: 5000, message: 'Too fast!' })
38
+ * async placeOrder(player: Server.Player) {
39
+ * // ...
40
+ * }
41
+ * }
29
42
  * ```
30
- *
31
- * @param optionsOrLimit - Number (simple mode) or full config object.
32
- * @param windowMs - Time window for numeric overload.
33
43
  */
34
44
  function Throttle(optionsOrLimit, windowMs) {
35
- return function (target, propertyKey, descriptor) {
45
+ return (target, propertyKey, descriptor) => {
36
46
  if (!descriptor) {
37
47
  // In benchmarks or edge cases, skip method wrapping
38
48
  // This should NOT happen in production code with proper TypeScript compilation
@@ -47,13 +57,15 @@ function Throttle(optionsOrLimit, windowMs) {
47
57
  else {
48
58
  opts = Object.assign({ onExceed: 'LOG' }, optionsOrLimit);
49
59
  }
60
+ // Store metadata for remote transmission
61
+ Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.THROTTLE, opts, target, propertyKey);
50
62
  descriptor.value = async function (...args) {
51
63
  const player = args[0];
52
64
  if (player === null || player === void 0 ? void 0 : player.clientID) {
53
65
  const service = tsyringe_1.container.resolve(rate_limiter_service_1.RateLimiterService);
54
66
  const key = `${player.clientID}:${target.constructor.name}:${propertyKey}`;
55
67
  if (!service.checkLimit(key, opts.limit, opts.windowMs)) {
56
- throw new utils_1.SecurityError(opts.onExceed, opts.message || `Rate limit exceeded on ${propertyKey}`, { limit: opts.limit, key });
68
+ throw new security_error_1.SecurityError(opts.onExceed, opts.message || `Rate limit exceeded on ${propertyKey}`, { limit: opts.limit, key });
57
69
  }
58
70
  }
59
71
  return originalMethod.apply(this, args);