@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,285 @@
1
+ import { Principal } from '../contracts/security/permission.types';
2
+ import { GuardOptions } from '../decorators/guard';
3
+ import { StateRequirement } from '../decorators/requiresState';
4
+ import { ThrottleOptions } from '../decorators/throttle';
5
+ import { CommandInfo } from '../services/ports/command-execution.port';
6
+ /**
7
+ * Serialized player data for cross-resource transfer.
8
+ *
9
+ * @remarks
10
+ * This DTO contains all session data that can be transferred from CORE to RESOURCE.
11
+ * Used by PlayerDirectory exports to provide real player data to remote resources.
12
+ */
13
+ export interface SerializedPlayerData {
14
+ /** FiveM server client ID (source) */
15
+ clientID: number;
16
+ /** Persistent account ID (undefined if not authenticated) */
17
+ accountID?: string;
18
+ /** Platform identifiers (license, steam, discord, etc.) */
19
+ identifiers?: {
20
+ license?: string;
21
+ steam?: string;
22
+ discord?: string;
23
+ [key: string]: string | undefined;
24
+ };
25
+ /** Session metadata (transient key-value storage) */
26
+ meta: Record<string, unknown>;
27
+ /** Active state flags (dead, cuffed, etc.) */
28
+ states: string[];
29
+ }
30
+ /**
31
+ * Security metadata collected from decorators for remote validation.
32
+ *
33
+ * @remarks
34
+ * Transmitted from RESOURCE to CORE during command registration.
35
+ * CORE validates these constraints before delegating execution back to RESOURCE.
36
+ */
37
+ export interface SecurityMetadata {
38
+ /** @Guard decorator options (rank/permission requirements) */
39
+ guard?: GuardOptions;
40
+ /** @Throttle decorator options (rate limiting configuration) */
41
+ throttle?: ThrottleOptions;
42
+ /** @RequiresState decorator options (player state validation) */
43
+ requiresState?: StateRequirement;
44
+ }
45
+ /**
46
+ * Metadata sent when a RESOURCE registers a command with CORE.
47
+ */
48
+ export interface CommandRegistrationDto {
49
+ /** Command name (without leading slash) */
50
+ command: string;
51
+ /** Optional description shown in help */
52
+ description?: string;
53
+ /** Optional usage hint (e.g., "/revive <player>") */
54
+ usage?: string;
55
+ /** Whether command allows unauthenticated access */
56
+ isPublic: boolean;
57
+ /** Resource name that owns this command */
58
+ resourceName: string;
59
+ /** Security metadata for CORE validation (optional) */
60
+ security?: SecurityMetadata;
61
+ }
62
+ /**
63
+ * Type-safe interface for CORE resource exports.
64
+ *
65
+ * @remarks
66
+ * Used by remote services (RemoteCommandService, RemotePlayerService, etc.)
67
+ * to access CORE functionality via FiveM exports with full type safety.
68
+ *
69
+ * Usage:
70
+ * ```ts
71
+ * const core = (exports as any)[coreResourceName] as CoreExports
72
+ * core.registerCommand({ ... })
73
+ * ```
74
+ */
75
+ export interface CorePrincipalExports {
76
+ /**
77
+ * Gets the full Principal object for a player.
78
+ *
79
+ * @param source - FiveM client/server ID
80
+ * @returns Principal data or null if not authenticated
81
+ */
82
+ getPrincipal(source: number): Promise<Principal | null>;
83
+ /**
84
+ * Gets Principal by account ID (works for offline players too).
85
+ *
86
+ * @param accountId - Database account identifier
87
+ * @returns Principal data or null
88
+ */
89
+ getPrincipalByAccountId(accountId: string): Promise<Principal | null>;
90
+ /**
91
+ * Forces a refresh of the player's permissions from persistence.
92
+ *
93
+ * @param source - FiveM client/server ID
94
+ */
95
+ refreshPrincipal(source: number): Promise<void>;
96
+ /**
97
+ * Checks if player has a specific permission.
98
+ *
99
+ * @param source - FiveM client/server ID
100
+ * @param permission - Permission string to check
101
+ * @returns True if player has permission (or wildcard '*')
102
+ */
103
+ hasPermission(source: number, permission: string): Promise<boolean>;
104
+ /**
105
+ * Checks if player has at least the required rank.
106
+ *
107
+ * @param source - FiveM client/server ID
108
+ * @param requiredRank - Minimum rank value
109
+ * @returns True if playerRank >= requiredRank
110
+ */
111
+ hasRank(source: number, requiredRank: number): Promise<boolean>;
112
+ /**
113
+ * Checks if player has ANY of the specified permissions.
114
+ *
115
+ * @param source - FiveM client/server ID
116
+ * @param permissions - Array of permissions to check
117
+ * @returns True if player has at least one permission
118
+ */
119
+ hasAnyPermission(source: number, permissions: string[]): Promise<boolean>;
120
+ /**
121
+ * Checks if player has ALL of the specified permissions.
122
+ *
123
+ * @param source - FiveM client/server ID
124
+ * @param permissions - Array of permissions to check
125
+ * @returns True if player has all permissions
126
+ */
127
+ hasAllPermissions(source: number, permissions: string[]): Promise<boolean>;
128
+ /**
129
+ * Gets all permissions for a player.
130
+ *
131
+ * @param source - FiveM client/server ID
132
+ * @returns Array of permission strings
133
+ */
134
+ getPermissions(source: number): Promise<string[]>;
135
+ /**
136
+ * Gets the rank value for a player.
137
+ *
138
+ * @param source - FiveM client/server ID
139
+ * @returns Rank number or null if not set
140
+ */
141
+ getRank(source: number): Promise<number | null>;
142
+ /**
143
+ * Gets the principal name/role name for a player.
144
+ *
145
+ * @param source - FiveM client/server ID
146
+ * @returns Role name or null
147
+ */
148
+ getPrincipalName(source: number): Promise<string | null>;
149
+ /**
150
+ * Gets principal metadata for a player.
151
+ *
152
+ * @param source - FiveM client/server ID
153
+ * @param key - Metadata key
154
+ * @returns Metadata value or null
155
+ */
156
+ getPrincipalMeta(source: number, key: string): Promise<unknown>;
157
+ /**
158
+ * Enforces access control requirements, throwing on failure.
159
+ *
160
+ * @remarks
161
+ * Used by RESOURCE mode to delegate security validation to CORE.
162
+ * Validates rank and/or permission requirements and throws if player
163
+ * doesn't meet the criteria.
164
+ *
165
+ * @param source - FiveM client/server ID
166
+ * @param requirements - Guard options containing rank and/or permission requirements
167
+ *
168
+ * @throws AppError - AUTH:UNAUTHORIZED, GAME:NO_RANK_IN_PRINCIPAL, or AUTH:PERMISSION_DENIED
169
+ */
170
+ enforce(source: number, requirements: GuardOptions): Promise<void>;
171
+ }
172
+ export interface CoreCommandsExports {
173
+ /**
174
+ * Registers a command from a RESOURCE with CORE.
175
+ *
176
+ * @remarks
177
+ * CORE maintains command registry and routes execution back to the owning resource.
178
+ * Handlers remain in the RESOURCE and are invoked via event when command executes.
179
+ *
180
+ * @param metadata - Command registration metadata
181
+ */
182
+ registerCommand(metadata: CommandRegistrationDto): void;
183
+ /**
184
+ * Executes a registered command (called by RESOURCE when delegating).
185
+ *
186
+ * @param clientID - Player client ID
187
+ * @param commandName - Command name (without leading slash)
188
+ * @param args - Raw argument strings
189
+ */
190
+ executeCommand(clientID: number, commandName: string, args: string[]): Promise<void>;
191
+ /**
192
+ * Returns all registered commands (local + remote).
193
+ *
194
+ * @returns Array of command metadata
195
+ */
196
+ getAllCommands(): CommandInfo[];
197
+ }
198
+ export interface CorePlayerExports {
199
+ /**
200
+ * Gets persistent account ID for a client.
201
+ *
202
+ * @param clientID - FiveM client/server ID
203
+ * @returns Account ID or undefined if not linked
204
+ */
205
+ getPlayerId(clientID: number): string | undefined;
206
+ /**
207
+ * Retrieves session metadata for a player.
208
+ *
209
+ * @param clientID - FiveM client/server ID
210
+ * @param key - Metadata key
211
+ * @returns Stored value or undefined
212
+ */
213
+ getPlayerMeta(clientID: number, key: string): Promise<any>;
214
+ /**
215
+ * Stores session metadata for a player.
216
+ *
217
+ * @param clientID - FiveM client/server ID
218
+ * @param key - Metadata key
219
+ * @param value - Value to store
220
+ */
221
+ setPlayerMeta(clientID: number, key: string, value: unknown): void;
222
+ /**
223
+ * Gets complete serialized player data.
224
+ *
225
+ * @param clientID - FiveM client/server ID
226
+ * @returns Serialized player data or null if not found
227
+ */
228
+ getPlayerData(clientID: number): SerializedPlayerData | null;
229
+ getManyData(clientIds: number[]): SerializedPlayerData[];
230
+ /**
231
+ * Gets serialized data for all connected players.
232
+ *
233
+ * @returns Array of serialized player data
234
+ */
235
+ getAllPlayersData(): SerializedPlayerData[];
236
+ /**
237
+ * Finds a player by their persistent account ID.
238
+ *
239
+ * @param accountId - Database account identifier
240
+ * @returns Serialized player data or null if not online
241
+ */
242
+ getPlayerByAccountId(accountId: string): SerializedPlayerData | null;
243
+ /**
244
+ * Gets the current player count.
245
+ *
246
+ * @returns Number of connected players
247
+ */
248
+ getPlayerCount(): number;
249
+ /**
250
+ * Checks if a player with given account ID is online.
251
+ *
252
+ * @param accountId - Database account identifier
253
+ * @returns True if player is connected
254
+ */
255
+ isPlayerOnline(accountId: string): boolean;
256
+ /**
257
+ * Gets all active state flags for a player.
258
+ *
259
+ * @param clientID - FiveM client/server ID
260
+ * @returns Array of active state strings
261
+ */
262
+ getPlayerStates(clientID: number): string[];
263
+ /**
264
+ * Checks if player has a specific state.
265
+ *
266
+ * @param clientID - FiveM client/server ID
267
+ * @param state - State identifier to check
268
+ * @returns True if state is active
269
+ */
270
+ hasPlayerState(clientID: number, state: string): boolean;
271
+ /**
272
+ * Adds a state flag to a player.
273
+ *
274
+ * @param clientID - FiveM client/server ID
275
+ * @param state - State identifier to add
276
+ */
277
+ addPlayerState(clientID: number, state: string): void;
278
+ /**
279
+ * Removes a state flag from a player.
280
+ *
281
+ * @param clientID - FiveM client/server ID
282
+ * @param state - State identifier to remove
283
+ */
284
+ removePlayerState(clientID: number, state: string): void;
285
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export * from './core-events';
2
+ export * from './core-exports';
3
+ export * from './security.types';
4
+ export * from './vehicle.types';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./core-events"), exports);
18
+ __exportStar(require("./core-exports"), exports);
19
+ __exportStar(require("./security.types"), exports);
20
+ __exportStar(require("./vehicle.types"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,152 @@
1
+ import { Vector3 } from '../../../kernel/utils';
2
+ /**
3
+ * Vehicle ownership information
4
+ */
5
+ export interface VehicleOwnership {
6
+ /** Client ID of the owner (if player-owned) */
7
+ clientID?: number;
8
+ /** Account ID of the owner (if persistent) */
9
+ accountID?: string;
10
+ /** Type of ownership */
11
+ type: 'player' | 'server' | 'temporary' | 'shared';
12
+ }
13
+ /**
14
+ * Vehicle modification data structure
15
+ */
16
+ export interface VehicleMods {
17
+ spoiler?: number;
18
+ frontBumper?: number;
19
+ rearBumper?: number;
20
+ sideSkirt?: number;
21
+ exhaust?: number;
22
+ frame?: number;
23
+ grille?: number;
24
+ hood?: number;
25
+ fender?: number;
26
+ rightFender?: number;
27
+ roof?: number;
28
+ engine?: number;
29
+ brakes?: number;
30
+ transmission?: number;
31
+ horns?: number;
32
+ suspension?: number;
33
+ armor?: number;
34
+ turbo?: boolean;
35
+ xenon?: boolean;
36
+ xenonColor?: number;
37
+ wheelType?: number;
38
+ wheels?: number;
39
+ windowTint?: number;
40
+ livery?: number;
41
+ plateStyle?: number;
42
+ primaryColor?: number;
43
+ secondaryColor?: number;
44
+ pearlescentColor?: number;
45
+ wheelColor?: number;
46
+ neonEnabled?: [boolean, boolean, boolean, boolean];
47
+ neonColor?: [number, number, number];
48
+ extras?: Record<number, boolean>;
49
+ }
50
+ /**
51
+ * Options for creating a new vehicle
52
+ */
53
+ export interface VehicleCreateOptions {
54
+ /** Vehicle model name or hash */
55
+ model: string;
56
+ /** Spawn position */
57
+ position: Vector3;
58
+ /** Heading/rotation in degrees */
59
+ heading?: number;
60
+ /** License plate text */
61
+ plate?: string;
62
+ /** Primary color */
63
+ primaryColor?: number;
64
+ /** Secondary color */
65
+ secondaryColor?: number;
66
+ /** Initial modifications */
67
+ mods?: Partial<VehicleMods>;
68
+ /** Whether vehicle should be persistent (survives server restart if saved) */
69
+ persistent?: boolean;
70
+ /** Ownership information */
71
+ ownership?: Partial<VehicleOwnership>;
72
+ /** Custom metadata */
73
+ metadata?: Record<string, any>;
74
+ /** Routing bucket (default: 0) */
75
+ routingBucket?: number;
76
+ /** Whether to lock the vehicle */
77
+ locked?: boolean;
78
+ /** Fuel level (0.0-1.0) */
79
+ fuel?: number;
80
+ }
81
+ /**
82
+ * Options for modifying an existing vehicle
83
+ */
84
+ export interface VehicleModificationOptions {
85
+ /** Network ID of the vehicle to modify */
86
+ networkId: number;
87
+ /** Modifications to apply */
88
+ mods: Partial<VehicleMods>;
89
+ /** Client ID requesting the modification (for validation) */
90
+ requestedBy?: number;
91
+ }
92
+ /**
93
+ * Vehicle metadata stored in state bags
94
+ */
95
+ export interface VehicleMetadata {
96
+ /** Custom key-value pairs */
97
+ [key: string]: any;
98
+ /** Fuel level */
99
+ fuel?: number;
100
+ /** Engine health */
101
+ engineHealth?: number;
102
+ /** Body health */
103
+ bodyHealth?: number;
104
+ /** Last driver client ID */
105
+ lastDriver?: number;
106
+ /** Creation timestamp */
107
+ createdAt?: number;
108
+ /** Last modification timestamp */
109
+ modifiedAt?: number;
110
+ }
111
+ /**
112
+ * Serialized vehicle data for network transfer
113
+ */
114
+ export interface SerializedVehicleData {
115
+ /** Network ID */
116
+ networkId: number;
117
+ /** Entity handle (server-side) */
118
+ handle: number;
119
+ /** Vehicle model hash */
120
+ modelHash: number;
121
+ /** Vehicle model */
122
+ model: string;
123
+ /** Current position */
124
+ position: Vector3;
125
+ /** Current heading */
126
+ heading: number;
127
+ /** License plate */
128
+ plate: string;
129
+ /** Ownership information */
130
+ ownership: VehicleOwnership;
131
+ /** Applied modifications */
132
+ mods: VehicleMods;
133
+ /** Custom metadata */
134
+ metadata: VehicleMetadata;
135
+ /** Routing bucket */
136
+ routingBucket: number;
137
+ /** Whether vehicle is persistent */
138
+ persistent: boolean;
139
+ }
140
+ /**
141
+ * Vehicle spawn result
142
+ */
143
+ export interface VehicleSpawnResult {
144
+ /** Network ID of the spawned vehicle */
145
+ networkId: number;
146
+ /** Entity handle */
147
+ handle: number;
148
+ /** Success status */
149
+ success: boolean;
150
+ /** Error message if failed */
151
+ error?: string;
152
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,98 +1,98 @@
1
- {
2
- "name": "@open-core/framework",
3
- "version": "0.1.0-alpha.1",
4
- "description": "Secure, Event-Driven, OOP Engine for FiveM. Stop scripting, start engineering.",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "type": "commonjs",
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/newcore-network/opencore.git"
11
- },
12
- "homepage": "https://github.com/newcore-network/opencore",
13
- "bugs": {
14
- "url": "https://github.com/newcore-network/opencore/issues"
15
- },
16
- "files": [
17
- "dist",
18
- "README.md",
19
- "LICENSE"
20
- ],
21
- "exports": {
22
- ".": {
23
- "types": "./dist/index.d.ts",
24
- "import": "./dist/index.js",
25
- "require": "./dist/index.js"
26
- },
27
- "./server": {
28
- "types": "./dist/server/index.d.ts",
29
- "import": "./dist/server/index.js",
30
- "require": "./dist/server/index.js"
31
- },
32
- "./client": {
33
- "types": "./dist/client/index.d.ts",
34
- "import": "./dist/client/index.js",
35
- "require": "./dist/client/index.js"
36
- },
37
- "./shared": {
38
- "types": "./dist/shared/index.d.ts",
39
- "import": "./dist/shared/index.js",
40
- "require": "./dist/shared/index.js"
41
- },
42
- "./utils": {
43
- "types": "./dist/utils/index.d.ts",
44
- "import": "./dist/utils/index.js",
45
- "require": "./dist/utils/index.js"
46
- },
47
- "./package.json": "./package.json"
48
- },
49
- "scripts": {
50
- "build": "tsc -p tsconfig.build.json",
51
- "watch": "tsc -p tsconfig.build.json --watch",
52
- "lint": "eslint . --ext .ts",
53
- "lint:fix": "eslint . --ext .ts --fix",
54
- "format": "prettier --write .",
55
- "test": "vitest run",
56
- "test:watch": "vitest",
57
- "test:unit": "vitest run --project unit",
58
- "test:integration": "vitest run --project integration",
59
- "test:coverage": "vitest run --coverage",
60
- "bench": "tsx benchmark/index.ts",
61
- "bench:core": "tsx benchmark/index.ts --core",
62
- "bench:load": "vitest run --project benchmark",
63
- "bench:all": "tsx benchmark/index.ts --all"
64
- },
65
- "keywords": [
66
- "framework",
67
- "opencore",
68
- "fivem",
69
- "typescript",
70
- "roleplay"
71
- ],
72
- "author": "OpenCore Team",
73
- "license": "MPL-2.0",
74
- "packageManager": "pnpm@10.13.1",
75
- "dependencies": {
76
- "reflect-metadata": "^0.2.2",
77
- "tsyringe": "^4.10.0",
78
- "uuid": "^13.0.0",
79
- "zod": "^4.1.13"
80
- },
81
- "devDependencies": {
82
- "@citizenfx/client": "2.0.22443-1",
83
- "@citizenfx/server": "2.0.22443-1",
84
- "@types/node": "^24.10.1",
85
- "@typescript-eslint/eslint-plugin": "^8.48.1",
86
- "@typescript-eslint/parser": "^8.48.1",
87
- "@vitest/coverage-v8": "^4.0.15",
88
- "eslint": "^9.39.1",
89
- "eslint-config-prettier": "^10.1.8",
90
- "eslint-plugin-import": "^2.32.0",
91
- "eslint-plugin-prettier": "^5.5.4",
92
- "prettier": "3.7.1",
93
- "tinybench": "^2.7.0",
94
- "tsx": "^4.19.2",
95
- "typescript": "^5.9.3",
96
- "vitest": "^4.0.15"
97
- }
98
- }
1
+ {
2
+ "name": "@open-core/framework",
3
+ "version": "0.2.1-beta.1",
4
+ "description": "Secure, Event-Driven, OOP Engine for FiveM. Stop scripting, start engineering.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "commonjs",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/newcore-network/opencore.git"
11
+ },
12
+ "homepage": "https://github.com/newcore-network/opencore",
13
+ "bugs": {
14
+ "url": "https://github.com/newcore-network/opencore/issues"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md",
19
+ "LICENSE"
20
+ ],
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js",
25
+ "require": "./dist/index.js"
26
+ },
27
+ "./server": {
28
+ "types": "./dist/runtime/server/index.d.ts",
29
+ "import": "./dist/runtime/server/index.js",
30
+ "require": "./dist/runtime/server/index.js"
31
+ },
32
+ "./client": {
33
+ "types": "./dist/runtime/client/index.d.ts",
34
+ "import": "./dist/runtime/client/index.js",
35
+ "require": "./dist/runtime/client/index.js"
36
+ },
37
+ "./shared": {
38
+ "types": "./dist/kernel/shared/index.d.ts",
39
+ "import": "./dist/kernel/shared/index.js",
40
+ "require": "./dist/kernel/shared/index.js"
41
+ },
42
+ "./utils": {
43
+ "types": "./dist/kernel/utils/index.d.ts",
44
+ "import": "./dist/kernel/utils/index.js",
45
+ "require": "./dist/kernel/utils/index.js"
46
+ },
47
+ "./package.json": "./package.json"
48
+ },
49
+ "scripts": {
50
+ "build": "tsc -p tsconfig.build.json",
51
+ "watch": "tsc -p tsconfig.build.json --watch",
52
+ "check": "biome check .",
53
+ "check:fix": "biome check --write .",
54
+ "check:fix:unsafe": "biome check --write --unsafe",
55
+ "format": "biome format --write .",
56
+ "lint": "biome lint .",
57
+ "lint:fix": "biome lint --write .",
58
+ "typecheck": "tsc --noEmit",
59
+ "test": "npx vitest run --project unit --project integration --project e2e",
60
+ "test:watch": "npx vitest --project unit --project integration --project e2e",
61
+ "test:unit": "npx vitest run --project unit",
62
+ "test:integration": "npx vitest run --project integration",
63
+ "test:coverage": "npx vitest run --coverage",
64
+ "bench": "npx tsx benchmark/index.ts",
65
+ "bench:core": "npx tsx benchmark/index.ts --core",
66
+ "bench:load": "npx vitest run --project benchmark",
67
+ "bench:all": "npx tsx benchmark/index.ts --all"
68
+ },
69
+ "keywords": [
70
+ "framework",
71
+ "opencore",
72
+ "fivem",
73
+ "typescript",
74
+ "roleplay"
75
+ ],
76
+ "author": "OpenCore Team",
77
+ "license": "MPL-2.0",
78
+ "packageManager": "pnpm@10.13.1",
79
+ "dependencies": {
80
+ "reflect-metadata": "^0.2.2",
81
+ "tsyringe": "^4.10.0",
82
+ "uuid": "^13.0.0",
83
+ "zod": "^4.1.13"
84
+ },
85
+ "devDependencies": {
86
+ "@biomejs/biome": "^2.3.10",
87
+ "@citizenfx/client": "2.0.22443-1",
88
+ "@citizenfx/server": "2.0.22443-1",
89
+ "@types/node": "^24.10.1",
90
+ "@vitest/coverage-v8": "^4.0.15",
91
+ "eslint-config-prettier": "^10.1.8",
92
+ "eslint-plugin-import": "^2.32.0",
93
+ "tinybench": "^2.7.0",
94
+ "tsx": "^4.19.2",
95
+ "typescript": "^5.9.3",
96
+ "vitest": "^4.0.15"
97
+ }
98
+ }
@@ -1 +0,0 @@
1
- export declare function initClientCore(): Promise<void>;