@open-core/framework 1.0.4-beta.1 → 1.0.5-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 (876) hide show
  1. package/LICENSE +373 -373
  2. package/README.md +196 -268
  3. package/dist/adapters/cfx/cfx-capabilities.d.ts +16 -0
  4. package/dist/adapters/cfx/cfx-capabilities.js +70 -0
  5. package/dist/adapters/cfx/cfx-platform.d.ts +2 -0
  6. package/dist/adapters/cfx/cfx-platform.js +85 -0
  7. package/dist/adapters/cfx/index.d.ts +3 -0
  8. package/dist/adapters/cfx/index.js +3 -0
  9. package/dist/adapters/cfx/runtime-profile.d.ts +3 -0
  10. package/dist/adapters/cfx/runtime-profile.js +37 -0
  11. package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
  12. package/dist/adapters/contracts/IEngineEvents.js +2 -0
  13. package/dist/adapters/contracts/IExports.d.ts +4 -0
  14. package/dist/adapters/contracts/IExports.js +2 -0
  15. package/dist/adapters/contracts/IHasher.d.ts +15 -0
  16. package/dist/adapters/contracts/IHasher.js +8 -0
  17. package/dist/adapters/contracts/IPlatformCapabilities.d.ts +79 -0
  18. package/dist/adapters/contracts/IPlatformCapabilities.js +27 -0
  19. package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
  20. package/dist/adapters/contracts/IPlayerInfo.js +2 -0
  21. package/dist/adapters/contracts/IResourceInfo.d.ts +4 -0
  22. package/dist/adapters/contracts/IResourceInfo.js +2 -0
  23. package/dist/adapters/contracts/ITick.d.ts +10 -0
  24. package/dist/adapters/contracts/ITick.js +5 -0
  25. package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +206 -0
  26. package/dist/adapters/contracts/client/IPedAppearanceClient.js +12 -0
  27. package/dist/adapters/contracts/index.d.ts +2 -0
  28. package/dist/adapters/contracts/index.js +3 -0
  29. package/dist/adapters/contracts/server/IEntityServer.d.ts +188 -0
  30. package/dist/adapters/contracts/server/IEntityServer.js +35 -0
  31. package/dist/adapters/contracts/server/IPedAppearanceServer.d.ts +45 -0
  32. package/dist/adapters/contracts/server/IPedAppearanceServer.js +12 -0
  33. package/dist/adapters/contracts/server/IPedServer.d.ts +29 -0
  34. package/dist/adapters/contracts/server/IPedServer.js +8 -0
  35. package/dist/adapters/contracts/server/IPlayerServer.d.ts +117 -0
  36. package/dist/adapters/contracts/server/IPlayerServer.js +35 -0
  37. package/dist/adapters/contracts/server/IVehicleServer.d.ts +55 -0
  38. package/dist/adapters/contracts/server/IVehicleServer.js +9 -0
  39. package/dist/adapters/contracts/transport/context.d.ts +5 -0
  40. package/dist/adapters/contracts/transport/events.api.d.ts +36 -0
  41. package/dist/adapters/contracts/transport/events.api.js +5 -0
  42. package/dist/adapters/contracts/transport/messaging.transport.d.ts +8 -0
  43. package/dist/adapters/contracts/transport/messaging.transport.js +2 -0
  44. package/dist/adapters/contracts/transport/rpc.api.d.ts +66 -0
  45. package/dist/adapters/contracts/transport/rpc.api.js +20 -0
  46. package/dist/adapters/contracts/types/identifier.d.ts +67 -0
  47. package/dist/adapters/contracts/types/identifier.js +58 -0
  48. package/dist/adapters/contracts/types/index.d.ts +1 -0
  49. package/dist/adapters/contracts/types/index.js +1 -0
  50. package/dist/adapters/fivem/fivem-capabilities.d.ts +18 -0
  51. package/dist/adapters/fivem/fivem-capabilities.js +61 -0
  52. package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
  53. package/dist/adapters/fivem/fivem-engine-events.js +24 -0
  54. package/dist/adapters/fivem/fivem-entity-server.d.ts +26 -0
  55. package/dist/adapters/fivem/fivem-entity-server.js +87 -0
  56. package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
  57. package/dist/adapters/fivem/fivem-exports.js +9 -0
  58. package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
  59. package/dist/adapters/fivem/fivem-hasher.js +20 -0
  60. package/dist/adapters/fivem/fivem-net-transport.d.ts +1 -0
  61. package/dist/adapters/fivem/fivem-net-transport.js +0 -0
  62. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
  63. package/dist/adapters/fivem/fivem-ped-appearance-client.js +79 -0
  64. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
  65. package/dist/adapters/fivem/fivem-ped-appearance-server.js +22 -0
  66. package/dist/adapters/fivem/fivem-ped-server.d.ts +9 -0
  67. package/dist/adapters/fivem/fivem-ped-server.js +30 -0
  68. package/dist/adapters/fivem/fivem-platform.d.ts +5 -0
  69. package/dist/adapters/fivem/fivem-platform.js +74 -0
  70. package/dist/adapters/fivem/fivem-player-server.d.ts +24 -0
  71. package/dist/adapters/fivem/fivem-player-server.js +83 -0
  72. package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
  73. package/dist/adapters/fivem/fivem-playerinfo.js +10 -0
  74. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +5 -0
  75. package/dist/adapters/fivem/fivem-resourceinfo.js +24 -0
  76. package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
  77. package/dist/adapters/fivem/fivem-tick.js +19 -0
  78. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
  79. package/dist/adapters/fivem/fivem-vehicle-server.js +44 -0
  80. package/dist/adapters/fivem/index.d.ts +14 -0
  81. package/dist/adapters/fivem/index.js +16 -0
  82. package/dist/adapters/fivem/transport/adapter.d.ts +8 -0
  83. package/dist/adapters/fivem/transport/adapter.js +8 -0
  84. package/dist/adapters/fivem/transport/fivem.events.d.ts +8 -0
  85. package/dist/adapters/fivem/transport/fivem.events.js +36 -0
  86. package/dist/adapters/fivem/transport/fivem.rpc.d.ts +28 -0
  87. package/dist/adapters/fivem/transport/fivem.rpc.js +183 -0
  88. package/dist/adapters/index.d.ts +21 -0
  89. package/dist/adapters/index.js +32 -0
  90. package/dist/adapters/node/index.d.ts +16 -0
  91. package/dist/adapters/node/index.js +18 -0
  92. package/dist/adapters/node/node-capabilities.d.ts +19 -0
  93. package/dist/adapters/node/node-capabilities.js +48 -0
  94. package/dist/adapters/node/node-engine-events.d.ts +20 -0
  95. package/dist/adapters/node/node-engine-events.js +40 -0
  96. package/dist/adapters/node/node-entity-server.d.ts +37 -0
  97. package/dist/adapters/node/node-entity-server.js +118 -0
  98. package/dist/adapters/node/node-exports.d.ts +26 -0
  99. package/dist/adapters/node/node-exports.js +58 -0
  100. package/dist/adapters/node/node-hasher.d.ts +12 -0
  101. package/dist/adapters/node/node-hasher.js +36 -0
  102. package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
  103. package/dist/adapters/node/node-ped-appearance-client.js +55 -0
  104. package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
  105. package/dist/adapters/node/node-ped-appearance-server.js +14 -0
  106. package/dist/adapters/node/node-ped-server.d.ts +13 -0
  107. package/dist/adapters/node/node-ped-server.js +45 -0
  108. package/dist/adapters/node/node-platform.d.ts +5 -0
  109. package/dist/adapters/node/node-platform.js +76 -0
  110. package/dist/adapters/node/node-player-server.d.ts +44 -0
  111. package/dist/adapters/node/node-player-server.js +105 -0
  112. package/dist/adapters/node/node-playerinfo.d.ts +6 -0
  113. package/dist/adapters/node/node-playerinfo.js +20 -0
  114. package/dist/adapters/node/node-resourceinfo.d.ts +13 -0
  115. package/dist/adapters/node/node-resourceinfo.js +27 -0
  116. package/dist/adapters/node/node-tick.d.ts +10 -0
  117. package/dist/adapters/node/node-tick.js +41 -0
  118. package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
  119. package/dist/adapters/node/node-vehicle-server.js +84 -0
  120. package/dist/adapters/node/transport/adapter.d.ts +10 -0
  121. package/dist/adapters/node/transport/adapter.js +14 -0
  122. package/dist/adapters/node/transport/node.events.d.ts +14 -0
  123. package/dist/adapters/node/transport/node.events.js +38 -0
  124. package/dist/adapters/node/transport/node.rpc.d.ts +18 -0
  125. package/dist/adapters/node/transport/node.rpc.js +71 -0
  126. package/dist/adapters/platform/index.d.ts +1 -0
  127. package/dist/adapters/platform/index.js +1 -0
  128. package/dist/adapters/platform/platform-registry.d.ts +101 -0
  129. package/dist/adapters/platform/platform-registry.js +113 -0
  130. package/dist/adapters/register-capabilities.d.ts +61 -0
  131. package/dist/adapters/register-capabilities.js +78 -0
  132. package/dist/adapters/register-client-capabilities.d.ts +8 -0
  133. package/dist/adapters/register-client-capabilities.js +58 -0
  134. package/dist/index.d.ts +3 -4
  135. package/dist/index.js +4 -41
  136. package/dist/kernel/di/class-constructor.js +0 -0
  137. package/dist/kernel/di/container.d.ts +5 -0
  138. package/dist/kernel/di/container.js +6 -0
  139. package/dist/kernel/di/decorator-processor.js +0 -0
  140. package/dist/kernel/di/index.d.ts +4 -0
  141. package/dist/kernel/di/index.js +4 -0
  142. package/dist/kernel/di/metadata.scanner.d.ts +7 -0
  143. package/dist/kernel/di/metadata.scanner.js +61 -0
  144. package/dist/kernel/error/app.error.d.ts +9 -0
  145. package/dist/kernel/error/app.error.js +15 -0
  146. package/dist/kernel/error/common.error-codes.d.ts +1 -0
  147. package/dist/kernel/error/common.error-codes.js +0 -0
  148. package/dist/kernel/error/framework.error-codes.d.ts +12 -0
  149. package/dist/kernel/error/framework.error-codes.js +0 -0
  150. package/dist/kernel/error/index.d.ts +4 -0
  151. package/dist/kernel/error/index.js +2 -0
  152. package/dist/kernel/error/security.error.d.ts +6 -0
  153. package/dist/kernel/error/security.error.js +9 -0
  154. package/dist/kernel/error/security.types.js +0 -0
  155. package/dist/kernel/index.d.ts +6 -0
  156. package/dist/kernel/index.js +7 -0
  157. package/dist/kernel/logger/core-logger.d.ts +31 -0
  158. package/dist/kernel/logger/core-logger.js +66 -0
  159. package/dist/kernel/logger/index.d.ts +14 -0
  160. package/dist/kernel/logger/index.js +12 -0
  161. package/dist/kernel/logger/logger.config.d.ts +47 -0
  162. package/dist/kernel/logger/logger.config.js +32 -0
  163. package/dist/kernel/logger/logger.env.d.ts +35 -0
  164. package/dist/kernel/logger/logger.env.js +59 -0
  165. package/dist/kernel/logger/logger.service.d.ts +175 -0
  166. package/dist/kernel/logger/logger.service.js +301 -0
  167. package/dist/kernel/logger/logger.types.js +70 -0
  168. package/dist/kernel/logger/transports/buffered.transport.d.ts +88 -0
  169. package/dist/kernel/logger/transports/buffered.transport.js +154 -0
  170. package/dist/kernel/logger/transports/console.transport.d.ts +37 -0
  171. package/dist/kernel/logger/transports/console.transport.js +121 -0
  172. package/dist/kernel/logger/transports/dev-transport.factory.d.ts +75 -0
  173. package/dist/kernel/logger/transports/dev-transport.factory.js +101 -0
  174. package/dist/kernel/logger/transports/http.transport.d.ts +67 -0
  175. package/dist/kernel/logger/transports/http.transport.js +168 -0
  176. package/dist/kernel/logger/transports/index.d.ts +7 -0
  177. package/dist/kernel/logger/transports/index.js +7 -0
  178. package/dist/kernel/logger/transports/simple-console.transport.d.ts +38 -0
  179. package/dist/kernel/logger/transports/simple-console.transport.js +79 -0
  180. package/dist/kernel/logger/transports/transport.interface.d.ts +40 -0
  181. package/dist/kernel/logger/transports/transport.interface.js +0 -0
  182. package/dist/kernel/logger/transports/websocket.transport.d.ts +69 -0
  183. package/dist/kernel/logger/transports/websocket.transport.js +164 -0
  184. package/dist/kernel/schema/index.d.ts +32 -0
  185. package/dist/kernel/schema/index.js +4 -0
  186. package/dist/kernel/shared/index.d.ts +1 -0
  187. package/dist/kernel/shared/index.js +1 -0
  188. package/dist/kernel/shared/player-appearance.types.d.ts +276 -0
  189. package/dist/kernel/shared/player-appearance.types.js +74 -0
  190. package/dist/kernel/utils/index.d.ts +3 -0
  191. package/dist/kernel/utils/index.js +3 -0
  192. package/dist/kernel/utils/result.d.ts +12 -0
  193. package/dist/kernel/utils/result.js +6 -0
  194. package/dist/kernel/utils/rgb.d.ts +17 -0
  195. package/dist/kernel/utils/rgb.js +61 -0
  196. package/dist/kernel/utils/vector3.d.ts +14 -0
  197. package/dist/kernel/utils/vector3.js +24 -0
  198. package/dist/runtime/client/.opencore/autoload.client.controllers.d.ts +1 -0
  199. package/dist/runtime/client/.opencore/autoload.client.controllers.js +0 -0
  200. package/dist/runtime/client/api.d.ts +8 -0
  201. package/dist/runtime/client/api.js +8 -0
  202. package/dist/runtime/client/bus/library-event.bus.d.ts +5 -0
  203. package/dist/runtime/client/bus/library-event.bus.js +28 -0
  204. package/dist/runtime/client/client-api-runtime.d.ts +7 -0
  205. package/dist/runtime/client/client-api-runtime.js +34 -0
  206. package/dist/runtime/client/client-bootstrap.d.ts +7 -0
  207. package/dist/runtime/client/client-bootstrap.js +160 -0
  208. package/dist/runtime/client/client-container.js +3 -0
  209. package/dist/runtime/client/client-core.d.ts +19 -0
  210. package/dist/runtime/client/client-core.js +23 -0
  211. package/dist/runtime/client/client-runtime.d.ts +63 -0
  212. package/dist/runtime/client/client-runtime.js +21 -0
  213. package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
  214. package/dist/runtime/client/controllers/appearance.controller.js +48 -0
  215. package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
  216. package/dist/runtime/client/controllers/player-sync.controller.js +51 -0
  217. package/dist/runtime/client/controllers/spawner.controller.d.ts +12 -0
  218. package/dist/runtime/client/controllers/spawner.controller.js +49 -0
  219. package/dist/runtime/client/decorators/controller.d.ts +20 -0
  220. package/dist/runtime/client/decorators/controller.js +62 -0
  221. package/dist/runtime/client/decorators/export.d.ts +21 -0
  222. package/dist/runtime/client/decorators/export.js +26 -0
  223. package/dist/runtime/client/decorators/gameEvent.d.ts +47 -0
  224. package/dist/runtime/client/decorators/gameEvent.js +50 -0
  225. package/dist/runtime/client/decorators/index.d.ts +13 -0
  226. package/dist/runtime/client/decorators/index.js +13 -0
  227. package/dist/runtime/client/decorators/interval.d.ts +23 -0
  228. package/dist/runtime/client/decorators/interval.js +28 -0
  229. package/dist/runtime/client/decorators/key.d.ts +23 -0
  230. package/dist/runtime/client/decorators/key.js +28 -0
  231. package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
  232. package/dist/runtime/client/decorators/localEvent.js +26 -0
  233. package/dist/runtime/client/decorators/onLibraryEvent.d.ts +17 -0
  234. package/dist/runtime/client/decorators/onLibraryEvent.js +22 -0
  235. package/dist/runtime/client/decorators/onNet.d.ts +21 -0
  236. package/dist/runtime/client/decorators/onNet.js +26 -0
  237. package/dist/runtime/client/decorators/onRPC.d.ts +41 -0
  238. package/dist/runtime/client/decorators/onRPC.js +40 -0
  239. package/dist/runtime/client/decorators/onTick.d.ts +21 -0
  240. package/dist/runtime/client/decorators/onTick.js +26 -0
  241. package/dist/runtime/client/decorators/onView.d.ts +21 -0
  242. package/dist/runtime/client/decorators/onView.js +26 -0
  243. package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
  244. package/dist/runtime/client/decorators/resourceLifecycle.js +49 -0
  245. package/dist/runtime/client/index.d.ts +4 -0
  246. package/dist/runtime/client/index.js +2 -0
  247. package/dist/runtime/client/library/create-client-library.d.ts +13 -0
  248. package/dist/runtime/client/library/create-client-library.js +45 -0
  249. package/dist/runtime/client/library/index.d.ts +4 -0
  250. package/dist/runtime/client/library/index.js +2 -0
  251. package/dist/runtime/client/library/plugin/client-plugin-api.d.ts +5 -0
  252. package/dist/runtime/client/library/plugin/client-plugin-api.js +0 -0
  253. package/dist/runtime/client/library/plugin/index.d.ts +4 -0
  254. package/dist/runtime/client/library/plugin/index.js +4 -0
  255. package/dist/runtime/client/library/plugin/install-client-plugins.d.ts +3 -0
  256. package/dist/runtime/client/library/plugin/install-client-plugins.js +35 -0
  257. package/dist/runtime/client/library/plugin/plugin-context.d.ts +10 -0
  258. package/dist/runtime/client/library/plugin/plugin-context.js +0 -0
  259. package/dist/runtime/client/library/plugin/plugin-registry.d.ts +6 -0
  260. package/dist/runtime/client/library/plugin/plugin-registry.js +12 -0
  261. package/dist/runtime/client/library/plugin/plugin.interface.d.ts +11 -0
  262. package/dist/runtime/client/library/plugin/plugin.interface.js +0 -0
  263. package/dist/runtime/client/player/player.d.ts +262 -0
  264. package/dist/runtime/client/player/player.js +474 -0
  265. package/dist/runtime/client/player/player.loader.js +18 -0
  266. package/dist/runtime/client/services/appearance.service.d.ts +132 -0
  267. package/dist/runtime/client/services/appearance.service.js +330 -0
  268. package/dist/runtime/client/services/blip.service.d.ts +112 -0
  269. package/dist/runtime/client/services/blip.service.js +209 -0
  270. package/dist/runtime/client/services/camera-effects.registry.d.ts +94 -0
  271. package/dist/runtime/client/services/camera-effects.registry.js +145 -0
  272. package/dist/runtime/client/services/camera.d.ts +129 -0
  273. package/dist/runtime/client/services/camera.js +158 -0
  274. package/dist/runtime/client/services/cinematic-builder.d.ts +107 -0
  275. package/dist/runtime/client/services/cinematic-builder.js +467 -0
  276. package/dist/runtime/client/services/cinematic.d.ts +284 -0
  277. package/dist/runtime/client/services/cinematic.js +783 -0
  278. package/dist/runtime/client/services/index.d.ts +14 -0
  279. package/dist/runtime/client/services/index.js +14 -0
  280. package/dist/runtime/client/services/marker.service.d.ts +94 -0
  281. package/dist/runtime/client/services/marker.service.js +148 -0
  282. package/dist/runtime/client/services/notification.service.js +108 -0
  283. package/dist/runtime/client/services/ped.service.d.ts +182 -0
  284. package/dist/runtime/client/services/ped.service.js +298 -0
  285. package/dist/runtime/client/services/progress.service.js +199 -0
  286. package/dist/runtime/client/services/spawn.service.d.ts +73 -0
  287. package/dist/runtime/client/services/spawn.service.js +255 -0
  288. package/dist/runtime/client/services/streaming.service.js +331 -0
  289. package/dist/runtime/client/services/textui.service.d.ts +82 -0
  290. package/dist/runtime/client/services/textui.service.js +160 -0
  291. package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
  292. package/dist/runtime/client/services/vehicle-client.service.js +483 -0
  293. package/dist/runtime/client/services/vehicle.service.d.ts +168 -0
  294. package/dist/runtime/client/services/vehicle.service.js +293 -0
  295. package/dist/runtime/client/system/metadata-client.keys.d.ts +15 -0
  296. package/dist/runtime/client/system/metadata-client.keys.js +15 -0
  297. package/dist/runtime/client/system/processors/export.processor.d.ts +7 -0
  298. package/dist/runtime/client/system/processors/export.processor.js +34 -0
  299. package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +10 -0
  300. package/dist/runtime/client/system/processors/gameEvent.processor.js +53 -0
  301. package/dist/runtime/client/system/processors/interval.processor.d.ts +7 -0
  302. package/dist/runtime/client/system/processors/interval.processor.js +38 -0
  303. package/dist/runtime/client/system/processors/key.processor.d.ts +8 -0
  304. package/dist/runtime/client/system/processors/key.processor.js +22 -0
  305. package/dist/runtime/client/system/processors/libraryEvent.processor.d.ts +6 -0
  306. package/dist/runtime/client/system/processors/libraryEvent.processor.js +36 -0
  307. package/dist/runtime/client/system/processors/localEvent.processor.d.ts +7 -0
  308. package/dist/runtime/client/system/processors/localEvent.processor.js +33 -0
  309. package/dist/runtime/client/system/processors/netEvent.processor.d.ts +7 -0
  310. package/dist/runtime/client/system/processors/netEvent.processor.js +33 -0
  311. package/dist/runtime/client/system/processors/onRpc.processor.d.ts +9 -0
  312. package/dist/runtime/client/system/processors/onRpc.processor.js +62 -0
  313. package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +9 -0
  314. package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +62 -0
  315. package/dist/runtime/client/system/processors/tick.processor.d.ts +5 -0
  316. package/dist/runtime/client/system/processors/tick.processor.js +32 -0
  317. package/dist/runtime/client/system/processors/view.processor.d.ts +7 -0
  318. package/dist/runtime/client/system/processors/view.processor.js +36 -0
  319. package/dist/runtime/client/system/processors.register.js +28 -0
  320. package/dist/runtime/client/types/game-events.d.ts +128 -0
  321. package/dist/runtime/client/types/game-events.js +72 -0
  322. package/dist/runtime/client/types/index.js +1 -0
  323. package/dist/runtime/client/ui-bridge.js +196 -0
  324. package/dist/runtime/core/entity.d.ts +168 -0
  325. package/dist/runtime/core/entity.js +232 -0
  326. package/dist/runtime/core/index.d.ts +5 -0
  327. package/dist/runtime/core/index.js +5 -0
  328. package/dist/runtime/core/library/create-library-base.d.ts +15 -0
  329. package/dist/runtime/core/library/create-library-base.js +27 -0
  330. package/dist/runtime/core/library/index.d.ts +5 -0
  331. package/dist/runtime/core/library/index.js +4 -0
  332. package/dist/runtime/core/library/library-bus.d.ts +9 -0
  333. package/dist/runtime/core/library/library-bus.js +46 -0
  334. package/dist/runtime/core/library/library-config.d.ts +10 -0
  335. package/dist/runtime/core/library/library-config.js +12 -0
  336. package/dist/runtime/core/library/library-event-id.d.ts +8 -0
  337. package/dist/runtime/core/library/library-event-id.js +9 -0
  338. package/dist/runtime/core/library/types.d.ts +146 -0
  339. package/dist/runtime/core/library/types.js +0 -0
  340. package/dist/runtime/core/nativehandle.d.ts +3 -0
  341. package/dist/runtime/core/nativehandle.js +0 -0
  342. package/dist/runtime/core/spatial.d.ts +7 -0
  343. package/dist/runtime/core/spatial.js +0 -0
  344. package/dist/runtime/core/world.d.ts +13 -0
  345. package/dist/runtime/core/world.js +57 -0
  346. package/dist/runtime/server/.opencore/autoload.server.controllers.d.ts +1 -0
  347. package/dist/runtime/server/.opencore/autoload.server.controllers.js +0 -0
  348. package/dist/runtime/server/api.d.ts +15 -0
  349. package/dist/runtime/server/api.js +21 -0
  350. package/dist/runtime/server/apis/appearance.api.d.ts +41 -0
  351. package/dist/runtime/server/apis/appearance.api.js +66 -0
  352. package/dist/runtime/server/apis/chat.api.d.ts +69 -0
  353. package/dist/runtime/server/apis/chat.api.js +129 -0
  354. package/dist/runtime/server/apis/index.d.ts +6 -0
  355. package/dist/runtime/server/apis/index.js +6 -0
  356. package/dist/runtime/server/apis/npcs.api.d.ts +213 -0
  357. package/dist/runtime/server/apis/npcs.api.js +465 -0
  358. package/dist/runtime/server/apis/parallel-compute.api.d.ts +118 -0
  359. package/dist/runtime/server/apis/parallel-compute.api.js +423 -0
  360. package/dist/runtime/server/apis/vehicle-modification.api.d.ts +94 -0
  361. package/dist/runtime/server/apis/vehicle-modification.api.js +308 -0
  362. package/dist/runtime/server/apis/vehicles.api.d.ts +140 -0
  363. package/dist/runtime/server/apis/vehicles.api.js +386 -0
  364. package/dist/runtime/server/bootstrap.d.ts +21 -0
  365. package/dist/runtime/server/bootstrap.js +310 -0
  366. package/dist/runtime/server/bus/internal-event.bus.d.ts +6 -0
  367. package/dist/runtime/server/bus/internal-event.bus.js +30 -0
  368. package/dist/runtime/server/bus/library-event.bus.d.ts +5 -0
  369. package/dist/runtime/server/bus/library-event.bus.js +27 -0
  370. package/dist/runtime/server/concepts/channel.d.ts +29 -0
  371. package/dist/runtime/server/concepts/channel.js +70 -0
  372. package/dist/runtime/server/contracts/index.d.ts +6 -0
  373. package/dist/runtime/server/contracts/index.js +8 -0
  374. package/dist/runtime/server/contracts/player-persistence.contract.d.ts +84 -0
  375. package/dist/runtime/server/contracts/player-persistence.contract.js +46 -0
  376. package/dist/runtime/server/contracts/security/command-error-observer.contract.d.ts +73 -0
  377. package/dist/runtime/server/contracts/security/command-error-observer.contract.js +5 -0
  378. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
  379. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +2 -0
  380. package/dist/runtime/server/contracts/security/principal-provider.contract.d.ts +43 -0
  381. package/dist/runtime/server/contracts/security/principal-provider.contract.js +15 -0
  382. package/dist/runtime/server/contracts/security/security-handler.contract.d.ts +5 -0
  383. package/dist/runtime/server/contracts/security/security-handler.contract.js +2 -0
  384. package/dist/runtime/server/controllers/channel.controller.d.ts +115 -0
  385. package/dist/runtime/server/controllers/channel.controller.js +373 -0
  386. package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
  387. package/dist/runtime/server/controllers/chat.controller.js +67 -0
  388. package/dist/runtime/server/controllers/command-export.controller.d.ts +83 -0
  389. package/dist/runtime/server/controllers/command-export.controller.js +331 -0
  390. package/dist/runtime/server/controllers/player-export.controller.d.ts +30 -0
  391. package/dist/runtime/server/controllers/player-export.controller.js +172 -0
  392. package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
  393. package/dist/runtime/server/controllers/principal-export.controller.js +292 -0
  394. package/dist/runtime/server/controllers/ready.controller.d.ts +4 -0
  395. package/dist/runtime/server/controllers/ready.controller.js +27 -0
  396. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +52 -0
  397. package/dist/runtime/server/controllers/remote-command-execution.controller.js +172 -0
  398. package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
  399. package/dist/runtime/server/controllers/session.controller.js +83 -0
  400. package/dist/runtime/server/controllers/vehicle.controller.d.ts +20 -0
  401. package/dist/runtime/server/controllers/vehicle.controller.js +68 -0
  402. package/dist/runtime/server/core.d.ts +7 -0
  403. package/dist/runtime/server/core.js +37 -0
  404. package/dist/runtime/server/decorators/binaryCall.d.ts +15 -0
  405. package/dist/runtime/server/decorators/binaryCall.js +23 -0
  406. package/dist/runtime/server/decorators/binaryEvent.d.ts +21 -0
  407. package/dist/runtime/server/decorators/binaryEvent.js +22 -0
  408. package/dist/runtime/server/decorators/binaryService.d.ts +27 -0
  409. package/dist/runtime/server/decorators/binaryService.js +71 -0
  410. package/dist/runtime/server/decorators/bind.d.ts +21 -0
  411. package/dist/runtime/server/decorators/bind.js +28 -0
  412. package/dist/runtime/server/decorators/command.d.ts +87 -0
  413. package/dist/runtime/server/decorators/command.js +36 -0
  414. package/dist/runtime/server/decorators/controller.d.ts +26 -0
  415. package/dist/runtime/server/decorators/controller.js +56 -0
  416. package/dist/runtime/server/decorators/export.d.ts +24 -0
  417. package/dist/runtime/server/decorators/export.js +29 -0
  418. package/dist/runtime/server/decorators/guard.d.ts +51 -0
  419. package/dist/runtime/server/decorators/guard.js +80 -0
  420. package/dist/runtime/server/decorators/index.d.ts +18 -0
  421. package/dist/runtime/server/decorators/index.js +18 -0
  422. package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +24 -0
  423. package/dist/runtime/server/decorators/onFrameworkEvent.js +28 -0
  424. package/dist/runtime/server/decorators/onLibraryEvent.d.ts +17 -0
  425. package/dist/runtime/server/decorators/onLibraryEvent.js +22 -0
  426. package/dist/runtime/server/decorators/onNet.d.ts +65 -0
  427. package/dist/runtime/server/decorators/onNet.js +12 -0
  428. package/dist/runtime/server/decorators/onRPC.d.ts +78 -0
  429. package/dist/runtime/server/decorators/onRPC.js +59 -0
  430. package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +25 -0
  431. package/dist/runtime/server/decorators/onRuntimeEvent.js +30 -0
  432. package/dist/runtime/server/decorators/onTick.d.ts +21 -0
  433. package/dist/runtime/server/decorators/onTick.js +26 -0
  434. package/dist/runtime/server/decorators/public.d.ts +26 -0
  435. package/dist/runtime/server/decorators/public.js +32 -0
  436. package/dist/runtime/server/decorators/requiresState.d.ts +63 -0
  437. package/dist/runtime/server/decorators/requiresState.js +70 -0
  438. package/dist/runtime/server/decorators/throttle.d.ts +56 -0
  439. package/dist/runtime/server/decorators/throttle.js +73 -0
  440. package/dist/runtime/server/decorators/utils.d.ts +54 -0
  441. package/dist/runtime/server/decorators/utils.js +54 -0
  442. package/dist/runtime/server/default/default-command-error-observer.d.ts +14 -0
  443. package/dist/runtime/server/default/default-command-error-observer.js +40 -0
  444. package/dist/runtime/server/default/default-net-event-security-observer.d.ts +15 -0
  445. package/dist/runtime/server/default/default-net-event-security-observer.js +25 -0
  446. package/dist/runtime/server/default/default-principal.provider.d.ts +13 -0
  447. package/dist/runtime/server/default/default-principal.provider.js +35 -0
  448. package/dist/runtime/server/default/default-security.handler.d.ts +19 -0
  449. package/dist/runtime/server/default/default-security.handler.js +36 -0
  450. package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
  451. package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +8 -0
  452. package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
  453. package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +8 -0
  454. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
  455. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +7 -0
  456. package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
  457. package/dist/runtime/server/devmode/contracts/index.js +3 -0
  458. package/dist/runtime/server/devmode/dev-mode.service.d.ts +109 -0
  459. package/dist/runtime/server/devmode/dev-mode.service.js +290 -0
  460. package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
  461. package/dist/runtime/server/devmode/event-interceptor.service.js +233 -0
  462. package/dist/runtime/server/devmode/index.d.ts +6 -0
  463. package/dist/runtime/server/devmode/index.js +7 -0
  464. package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
  465. package/dist/runtime/server/devmode/player-simulator.service.js +199 -0
  466. package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
  467. package/dist/runtime/server/devmode/state-inspector.service.js +175 -0
  468. package/dist/runtime/server/devmode/types.d.ts +197 -0
  469. package/dist/runtime/server/devmode/types.js +22 -0
  470. package/dist/runtime/server/entities/index.d.ts +3 -0
  471. package/dist/runtime/server/entities/index.js +3 -0
  472. package/dist/runtime/server/entities/npc.d.ts +255 -0
  473. package/dist/runtime/server/entities/npc.js +307 -0
  474. package/dist/runtime/server/entities/player.d.ts +239 -0
  475. package/dist/runtime/server/entities/player.js +340 -0
  476. package/dist/runtime/server/entities/vehicle.d.ts +113 -0
  477. package/dist/runtime/server/entities/vehicle.js +245 -0
  478. package/dist/runtime/server/error-handler.d.ts +2 -0
  479. package/dist/runtime/server/error-handler.js +39 -0
  480. package/dist/runtime/server/helpers/command-validation.helper.d.ts +3 -0
  481. package/dist/runtime/server/helpers/command-validation.helper.js +73 -0
  482. package/dist/runtime/server/helpers/function-helper.d.ts +6 -0
  483. package/dist/runtime/server/helpers/function-helper.js +28 -0
  484. package/dist/runtime/server/helpers/normalize-app-error.d.ts +9 -0
  485. package/dist/runtime/server/helpers/normalize-app-error.js +17 -0
  486. package/dist/runtime/server/helpers/process-tuple-schema.d.ts +20 -0
  487. package/dist/runtime/server/helpers/process-tuple-schema.js +56 -0
  488. package/dist/runtime/server/helpers/resolve-method.d.ts +5 -0
  489. package/dist/runtime/server/helpers/resolve-method.js +25 -0
  490. package/dist/runtime/server/implementations/local/channel.local.d.ts +32 -0
  491. package/dist/runtime/server/implementations/local/channel.local.js +185 -0
  492. package/dist/runtime/server/implementations/local/command.local.d.ts +57 -0
  493. package/dist/runtime/server/implementations/local/command.local.js +110 -0
  494. package/dist/runtime/server/implementations/local/player.local.d.ts +110 -0
  495. package/dist/runtime/server/implementations/local/player.local.js +204 -0
  496. package/dist/runtime/server/implementations/local/principal.local.d.ts +28 -0
  497. package/dist/runtime/server/implementations/local/principal.local.js +120 -0
  498. package/dist/runtime/server/implementations/remote/channel.remote.d.ts +47 -0
  499. package/dist/runtime/server/implementations/remote/channel.remote.js +165 -0
  500. package/dist/runtime/server/implementations/remote/command.remote.d.ts +64 -0
  501. package/dist/runtime/server/implementations/remote/command.remote.js +154 -0
  502. package/dist/runtime/server/implementations/remote/player.remote.d.ts +65 -0
  503. package/dist/runtime/server/implementations/remote/player.remote.js +204 -0
  504. package/dist/runtime/server/implementations/remote/principal.remote.d.ts +33 -0
  505. package/dist/runtime/server/implementations/remote/principal.remote.js +97 -0
  506. package/dist/runtime/server/index.d.ts +9 -0
  507. package/dist/runtime/server/index.js +4 -0
  508. package/dist/runtime/server/library/create-server-library.d.ts +13 -0
  509. package/dist/runtime/server/library/create-server-library.js +48 -0
  510. package/dist/runtime/server/library/index.d.ts +4 -0
  511. package/dist/runtime/server/library/index.js +2 -0
  512. package/dist/runtime/server/library/plugin/index.d.ts +4 -0
  513. package/dist/runtime/server/library/plugin/index.js +4 -0
  514. package/dist/runtime/server/library/plugin/plugin-context.d.ts +10 -0
  515. package/dist/runtime/server/library/plugin/plugin-context.js +0 -0
  516. package/dist/runtime/server/library/plugin/plugin-registry.d.ts +7 -0
  517. package/dist/runtime/server/library/plugin/plugin-registry.js +25 -0
  518. package/dist/runtime/server/library/plugin/plugin.interface.d.ts +19 -0
  519. package/dist/runtime/server/library/plugin/plugin.interface.js +0 -0
  520. package/dist/runtime/server/library/plugin/server-plugin-api.d.ts +5 -0
  521. package/dist/runtime/server/library/plugin/server-plugin-api.js +0 -0
  522. package/dist/runtime/server/ports/authorization.api-port.d.ts +149 -0
  523. package/dist/runtime/server/ports/authorization.api-port.js +28 -0
  524. package/dist/runtime/server/ports/channel.api-port.d.ts +218 -0
  525. package/dist/runtime/server/ports/channel.api-port.js +2 -0
  526. package/dist/runtime/server/ports/internal/command-execution.port.d.ts +48 -0
  527. package/dist/runtime/server/ports/internal/command-execution.port.js +11 -0
  528. package/dist/runtime/server/ports/internal/player-session-lifecycle.port.d.ts +37 -0
  529. package/dist/runtime/server/ports/internal/player-session-lifecycle.port.js +12 -0
  530. package/dist/runtime/server/ports/players.api-port.d.ts +108 -0
  531. package/dist/runtime/server/ports/players.api-port.js +19 -0
  532. package/dist/runtime/server/runtime.d.ts +192 -0
  533. package/dist/runtime/server/runtime.js +211 -0
  534. package/dist/runtime/server/server.runtime.d.ts +7 -0
  535. package/dist/runtime/server/server.runtime.js +34 -0
  536. package/dist/runtime/server/services/appearance.service.d.ts +99 -0
  537. package/dist/runtime/server/services/appearance.service.js +307 -0
  538. package/dist/runtime/server/services/index.d.ts +6 -0
  539. package/dist/runtime/server/services/index.js +6 -0
  540. package/dist/runtime/server/services/parallel/native-worker.entry.d.ts +1 -0
  541. package/dist/runtime/server/services/parallel/native-worker.entry.js +10 -0
  542. package/dist/runtime/server/services/parallel/worker-pool.d.ts +79 -0
  543. package/dist/runtime/server/services/parallel/worker-pool.js +428 -0
  544. package/dist/runtime/server/services/parallel/worker.d.ts +22 -0
  545. package/dist/runtime/server/services/parallel/worker.js +48 -0
  546. package/dist/runtime/server/services/persistence.service.d.ts +59 -0
  547. package/dist/runtime/server/services/persistence.service.js +161 -0
  548. package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
  549. package/dist/runtime/server/services/rate-limiter.service.js +52 -0
  550. package/dist/runtime/server/services/services.register.d.ts +11 -0
  551. package/dist/runtime/server/services/services.register.js +108 -0
  552. package/dist/runtime/server/services/session-recovery.local.d.ts +39 -0
  553. package/dist/runtime/server/services/session-recovery.local.js +108 -0
  554. package/dist/runtime/server/setup.d.ts +9 -0
  555. package/dist/runtime/server/setup.js +25 -0
  556. package/dist/runtime/server/system/managers/binary-process.manager.d.ts +19 -0
  557. package/dist/runtime/server/system/managers/binary-process.manager.js +312 -0
  558. package/dist/runtime/server/system/metadata-server.keys.d.ts +18 -0
  559. package/dist/runtime/server/system/metadata-server.keys.js +18 -0
  560. package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
  561. package/dist/runtime/server/system/processors/command.processor.js +62 -0
  562. package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
  563. package/dist/runtime/server/system/processors/export.processor.js +38 -0
  564. package/dist/runtime/server/system/processors/internalEvent.processor.d.ts +7 -0
  565. package/dist/runtime/server/system/processors/internalEvent.processor.js +36 -0
  566. package/dist/runtime/server/system/processors/libraryEvent.processor.d.ts +6 -0
  567. package/dist/runtime/server/system/processors/libraryEvent.processor.js +38 -0
  568. package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
  569. package/dist/runtime/server/system/processors/netEvent.processor.js +243 -0
  570. package/dist/runtime/server/system/processors/onRpc.processor.d.ts +12 -0
  571. package/dist/runtime/server/system/processors/onRpc.processor.js +142 -0
  572. package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +10 -0
  573. package/dist/runtime/server/system/processors/runtimeEvent.processor.js +48 -0
  574. package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
  575. package/dist/runtime/server/system/processors/tick.processor.js +44 -0
  576. package/dist/runtime/server/system/processors.register.d.ts +2 -0
  577. package/dist/runtime/server/system/processors.register.js +43 -0
  578. package/dist/runtime/server/system/schema-generator.d.ts +2 -0
  579. package/dist/runtime/server/system/schema-generator.js +38 -0
  580. package/dist/runtime/server/types/channel.types.d.ts +44 -0
  581. package/dist/runtime/server/types/channel.types.js +10 -0
  582. package/dist/runtime/server/types/core-exports.types.d.ts +286 -0
  583. package/dist/runtime/server/types/core-exports.types.js +0 -0
  584. package/dist/runtime/server/types/framework-events.types.d.ts +22 -0
  585. package/dist/runtime/server/types/framework-events.types.js +0 -0
  586. package/dist/runtime/server/types/index.d.ts +9 -0
  587. package/dist/runtime/server/types/index.js +9 -0
  588. package/dist/runtime/server/types/linked-id.d.ts +6 -0
  589. package/dist/runtime/server/types/linked-id.js +0 -0
  590. package/dist/runtime/server/types/npc.types.d.ts +36 -0
  591. package/dist/runtime/server/types/npc.types.js +0 -0
  592. package/dist/runtime/server/types/parallel.types.d.ts +191 -0
  593. package/dist/runtime/server/types/parallel.types.js +5 -0
  594. package/dist/runtime/server/types/player-session.types.d.ts +11 -0
  595. package/dist/runtime/server/types/player-session.types.js +0 -0
  596. package/dist/runtime/server/types/principal.type.d.ts +32 -0
  597. package/dist/runtime/server/types/principal.type.js +0 -0
  598. package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
  599. package/dist/runtime/server/types/vehicle.types.js +0 -0
  600. package/package.json +43 -46
  601. package/dist/client/client-bootstrap.d.ts +0 -1
  602. package/dist/client/client-bootstrap.js +0 -50
  603. package/dist/client/client-container.js +0 -6
  604. package/dist/client/client-core.d.ts +0 -1
  605. package/dist/client/client-core.js +0 -7
  606. package/dist/client/controllers/spawner.controller.d.ts +0 -12
  607. package/dist/client/controllers/spawner.controller.js +0 -51
  608. package/dist/client/decorators/controller.d.ts +0 -3
  609. package/dist/client/decorators/controller.js +0 -14
  610. package/dist/client/decorators/export.d.ts +0 -7
  611. package/dist/client/decorators/export.js +0 -15
  612. package/dist/client/decorators/gameEvent.d.ts +0 -47
  613. package/dist/client/decorators/gameEvent.js +0 -54
  614. package/dist/client/decorators/index.d.ts +0 -10
  615. package/dist/client/decorators/index.js +0 -26
  616. package/dist/client/decorators/interval.d.ts +0 -7
  617. package/dist/client/decorators/interval.js +0 -15
  618. package/dist/client/decorators/key.d.ts +0 -2
  619. package/dist/client/decorators/key.js +0 -10
  620. package/dist/client/decorators/localEvent.d.ts +0 -7
  621. package/dist/client/decorators/localEvent.js +0 -15
  622. package/dist/client/decorators/nui.d.ts +0 -1
  623. package/dist/client/decorators/nui.js +0 -9
  624. package/dist/client/decorators/onNet.d.ts +0 -1
  625. package/dist/client/decorators/onNet.js +0 -9
  626. package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
  627. package/dist/client/decorators/resourceLifecycle.js +0 -24
  628. package/dist/client/decorators/tick.d.ts +0 -1
  629. package/dist/client/decorators/tick.js +0 -9
  630. package/dist/client/index.d.ts +0 -7
  631. package/dist/client/index.js +0 -23
  632. package/dist/client/interfaces/appearance.interface.d.ts +0 -19
  633. package/dist/client/interfaces/appearance.interface.js +0 -2
  634. package/dist/client/player/player.d.ts +0 -262
  635. package/dist/client/player/player.js +0 -480
  636. package/dist/client/player/player.loader.js +0 -22
  637. package/dist/client/services/appearance.service.d.ts +0 -6
  638. package/dist/client/services/appearance.service.js +0 -89
  639. package/dist/client/services/blip.service.d.ts +0 -112
  640. package/dist/client/services/blip.service.js +0 -215
  641. package/dist/client/services/index.d.ts +0 -9
  642. package/dist/client/services/index.js +0 -25
  643. package/dist/client/services/marker.service.d.ts +0 -94
  644. package/dist/client/services/marker.service.js +0 -153
  645. package/dist/client/services/notification.service.js +0 -111
  646. package/dist/client/services/ped.service.d.ts +0 -182
  647. package/dist/client/services/ped.service.js +0 -302
  648. package/dist/client/services/progress.service.js +0 -210
  649. package/dist/client/services/spawn.service.d.ts +0 -73
  650. package/dist/client/services/spawn.service.js +0 -261
  651. package/dist/client/services/streaming.service.js +0 -341
  652. package/dist/client/services/textui.service.d.ts +0 -82
  653. package/dist/client/services/textui.service.js +0 -156
  654. package/dist/client/services/vehicle.service.d.ts +0 -168
  655. package/dist/client/services/vehicle.service.js +0 -296
  656. package/dist/client/system/metadata-client.keys.d.ts +0 -13
  657. package/dist/client/system/metadata-client.keys.js +0 -16
  658. package/dist/client/system/processors/export.processor.d.ts +0 -7
  659. package/dist/client/system/processors/export.processor.js +0 -39
  660. package/dist/client/system/processors/gameEvent.processor.d.ts +0 -10
  661. package/dist/client/system/processors/gameEvent.processor.js +0 -58
  662. package/dist/client/system/processors/interval.processor.d.ts +0 -7
  663. package/dist/client/system/processors/interval.processor.js +0 -43
  664. package/dist/client/system/processors/key.processor.d.ts +0 -8
  665. package/dist/client/system/processors/key.processor.js +0 -27
  666. package/dist/client/system/processors/localEvent.processor.d.ts +0 -7
  667. package/dist/client/system/processors/localEvent.processor.js +0 -38
  668. package/dist/client/system/processors/netEvent.processor.d.ts +0 -7
  669. package/dist/client/system/processors/netEvent.processor.js +0 -38
  670. package/dist/client/system/processors/nui.processor.d.ts +0 -7
  671. package/dist/client/system/processors/nui.processor.js +0 -40
  672. package/dist/client/system/processors/resourceLifecycle.processor.d.ts +0 -9
  673. package/dist/client/system/processors/resourceLifecycle.processor.js +0 -69
  674. package/dist/client/system/processors/tick.processor.d.ts +0 -5
  675. package/dist/client/system/processors/tick.processor.js +0 -37
  676. package/dist/client/system/processors.register.js +0 -27
  677. package/dist/client/types/game-events.d.ts +0 -126
  678. package/dist/client/types/game-events.js +0 -83
  679. package/dist/client/types/index.js +0 -17
  680. package/dist/client/ui-bridge.js +0 -201
  681. package/dist/server/bootstrap.d.ts +0 -16
  682. package/dist/server/bootstrap.js +0 -57
  683. package/dist/server/bus/core-event-bus.d.ts +0 -6
  684. package/dist/server/bus/core-event-bus.js +0 -31
  685. package/dist/server/configs/api.config.d.ts +0 -71
  686. package/dist/server/configs/api.config.js +0 -81
  687. package/dist/server/configs/config.base.d.ts +0 -63
  688. package/dist/server/configs/config.base.js +0 -64
  689. package/dist/server/configs/index.d.ts +0 -2
  690. package/dist/server/configs/index.js +0 -18
  691. package/dist/server/container.d.ts +0 -2
  692. package/dist/server/container.js +0 -6
  693. package/dist/server/controllers/chat.controller.d.ts +0 -10
  694. package/dist/server/controllers/chat.controller.js +0 -50
  695. package/dist/server/controllers/command.controller.d.ts +0 -7
  696. package/dist/server/controllers/command.controller.js +0 -47
  697. package/dist/server/controllers/session.controller.d.ts +0 -9
  698. package/dist/server/controllers/session.controller.js +0 -70
  699. package/dist/server/core.d.ts +0 -1
  700. package/dist/server/core.js +0 -7
  701. package/dist/server/database/adapters/oxmysql.adapter.d.ts +0 -89
  702. package/dist/server/database/adapters/oxmysql.adapter.js +0 -149
  703. package/dist/server/database/database.contract.d.ts +0 -128
  704. package/dist/server/database/database.contract.js +0 -29
  705. package/dist/server/database/database.service.d.ts +0 -216
  706. package/dist/server/database/database.service.js +0 -301
  707. package/dist/server/database/index.d.ts +0 -53
  708. package/dist/server/database/index.js +0 -70
  709. package/dist/server/database/types.d.ts +0 -67
  710. package/dist/server/database/types.js +0 -7
  711. package/dist/server/database.d.ts +0 -7
  712. package/dist/server/database.js +0 -23
  713. package/dist/server/decorators/bind.d.ts +0 -2
  714. package/dist/server/decorators/bind.js +0 -15
  715. package/dist/server/decorators/command.d.ts +0 -49
  716. package/dist/server/decorators/command.js +0 -23
  717. package/dist/server/decorators/controller.d.ts +0 -25
  718. package/dist/server/decorators/controller.js +0 -36
  719. package/dist/server/decorators/export.d.ts +0 -39
  720. package/dist/server/decorators/export.js +0 -47
  721. package/dist/server/decorators/guard.d.ts +0 -56
  722. package/dist/server/decorators/guard.js +0 -82
  723. package/dist/server/decorators/index.d.ts +0 -10
  724. package/dist/server/decorators/index.js +0 -29
  725. package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
  726. package/dist/server/decorators/onFiveMEvent.js +0 -14
  727. package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
  728. package/dist/server/decorators/onFrameworkEvent.js +0 -29
  729. package/dist/server/decorators/onNet.d.ts +0 -58
  730. package/dist/server/decorators/onNet.js +0 -57
  731. package/dist/server/decorators/onTick.d.ts +0 -32
  732. package/dist/server/decorators/onTick.js +0 -40
  733. package/dist/server/decorators/public.d.ts +0 -27
  734. package/dist/server/decorators/public.js +0 -36
  735. package/dist/server/decorators/requiresState.d.ts +0 -56
  736. package/dist/server/decorators/requiresState.js +0 -63
  737. package/dist/server/decorators/throttle.d.ts +0 -48
  738. package/dist/server/decorators/throttle.js +0 -63
  739. package/dist/server/decorators/utils.d.ts +0 -57
  740. package/dist/server/decorators/utils.js +0 -63
  741. package/dist/server/entities/index.d.ts +0 -1
  742. package/dist/server/entities/index.js +0 -17
  743. package/dist/server/entities/player.d.ts +0 -157
  744. package/dist/server/entities/player.js +0 -217
  745. package/dist/server/error-handler.d.ts +0 -2
  746. package/dist/server/error-handler.js +0 -43
  747. package/dist/server/helpers/resolve-method.d.ts +0 -5
  748. package/dist/server/helpers/resolve-method.js +0 -18
  749. package/dist/server/index.d.ts +0 -10
  750. package/dist/server/index.js +0 -31
  751. package/dist/server/loaders/exports.loader.js +0 -23
  752. package/dist/server/loaders/playerSession.loader.d.ts +0 -1
  753. package/dist/server/loaders/playerSession.loader.js +0 -51
  754. package/dist/server/services/access-control.service.d.ts +0 -56
  755. package/dist/server/services/access-control.service.js +0 -99
  756. package/dist/server/services/chat.service.d.ts +0 -7
  757. package/dist/server/services/chat.service.js +0 -31
  758. package/dist/server/services/command.service.d.ts +0 -15
  759. package/dist/server/services/command.service.js +0 -77
  760. package/dist/server/services/config.service.d.ts +0 -75
  761. package/dist/server/services/config.service.js +0 -116
  762. package/dist/server/services/default/default-security.handler.d.ts +0 -6
  763. package/dist/server/services/default/default-security.handler.js +0 -26
  764. package/dist/server/services/http/http.service.d.ts +0 -50
  765. package/dist/server/services/http/http.service.js +0 -126
  766. package/dist/server/services/index.d.ts +0 -10
  767. package/dist/server/services/index.js +0 -26
  768. package/dist/server/services/parallel/index.d.ts +0 -49
  769. package/dist/server/services/parallel/index.js +0 -67
  770. package/dist/server/services/parallel/parallel-compute.service.d.ts +0 -132
  771. package/dist/server/services/parallel/parallel-compute.service.js +0 -449
  772. package/dist/server/services/parallel/types.d.ts +0 -188
  773. package/dist/server/services/parallel/types.js +0 -7
  774. package/dist/server/services/parallel/worker-pool.d.ts +0 -83
  775. package/dist/server/services/parallel/worker-pool.js +0 -350
  776. package/dist/server/services/parallel/worker.d.ts +0 -19
  777. package/dist/server/services/parallel/worker.js +0 -49
  778. package/dist/server/services/persistence.service.d.ts +0 -59
  779. package/dist/server/services/persistence.service.js +0 -166
  780. package/dist/server/services/player.service.d.ts +0 -96
  781. package/dist/server/services/player.service.js +0 -132
  782. package/dist/server/services/rate-limiter.service.d.ts +0 -5
  783. package/dist/server/services/rate-limiter.service.js +0 -39
  784. package/dist/server/services/registers.d.ts +0 -1
  785. package/dist/server/services/registers.js +0 -18
  786. package/dist/server/setup.d.ts +0 -9
  787. package/dist/server/setup.js +0 -28
  788. package/dist/server/system/metadata-server.keys.d.ts +0 -10
  789. package/dist/server/system/metadata-server.keys.js +0 -13
  790. package/dist/server/system/processors/command.processor.d.ts +0 -9
  791. package/dist/server/system/processors/command.processor.js +0 -30
  792. package/dist/server/system/processors/coreEvent.processor.d.ts +0 -7
  793. package/dist/server/system/processors/coreEvent.processor.js +0 -41
  794. package/dist/server/system/processors/export.processor.d.ts +0 -7
  795. package/dist/server/system/processors/export.processor.js +0 -30
  796. package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
  797. package/dist/server/system/processors/fivemEvent.processor.js +0 -40
  798. package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
  799. package/dist/server/system/processors/netEvent.processor.js +0 -103
  800. package/dist/server/system/processors/tick.processor.d.ts +0 -5
  801. package/dist/server/system/processors/tick.processor.js +0 -36
  802. package/dist/server/system/processors.register.d.ts +0 -1
  803. package/dist/server/system/processors.register.js +0 -23
  804. package/dist/server/system/schema-generator.d.ts +0 -2
  805. package/dist/server/system/schema-generator.js +0 -34
  806. package/dist/server/templates/admin/admin.controller-template.d.ts +0 -12
  807. package/dist/server/templates/admin/admin.controller-template.js +0 -2
  808. package/dist/server/templates/auth/auth-provider.contract.d.ts +0 -58
  809. package/dist/server/templates/auth/auth-provider.contract.js +0 -23
  810. package/dist/server/templates/index.d.ts +0 -8
  811. package/dist/server/templates/index.js +0 -21
  812. package/dist/server/templates/persistence/index.d.ts +0 -30
  813. package/dist/server/templates/persistence/index.js +0 -34
  814. package/dist/server/templates/persistence/player-persistence.contract.d.ts +0 -86
  815. package/dist/server/templates/persistence/player-persistence.contract.js +0 -52
  816. package/dist/server/templates/repository/index.d.ts +0 -57
  817. package/dist/server/templates/repository/index.js +0 -61
  818. package/dist/server/templates/repository/repository.contract.d.ts +0 -224
  819. package/dist/server/templates/repository/repository.contract.js +0 -342
  820. package/dist/server/templates/repository/repository.types.d.ts +0 -51
  821. package/dist/server/templates/repository/repository.types.js +0 -7
  822. package/dist/server/templates/security/permission.types.d.ts +0 -32
  823. package/dist/server/templates/security/permission.types.js +0 -2
  824. package/dist/server/templates/security/principal-provider.contract.d.ts +0 -43
  825. package/dist/server/templates/security/principal-provider.contract.js +0 -19
  826. package/dist/server/templates/security/security-handler.contract.d.ts +0 -5
  827. package/dist/server/templates/security/security-handler.contract.js +0 -6
  828. package/dist/server/types/core-events.d.ts +0 -22
  829. package/dist/server/types/core-events.js +0 -2
  830. package/dist/server/types/security.types.js +0 -2
  831. package/dist/shared/index.d.ts +0 -1
  832. package/dist/shared/index.js +0 -17
  833. package/dist/shared/logger/core-logger.d.ts +0 -35
  834. package/dist/shared/logger/core-logger.js +0 -52
  835. package/dist/shared/logger/index.d.ts +0 -11
  836. package/dist/shared/logger/index.js +0 -26
  837. package/dist/shared/logger/logger.config.d.ts +0 -47
  838. package/dist/shared/logger/logger.config.js +0 -33
  839. package/dist/shared/logger/logger.service.d.ts +0 -161
  840. package/dist/shared/logger/logger.service.js +0 -279
  841. package/dist/shared/logger/logger.types.js +0 -74
  842. package/dist/shared/logger/transports/buffered.transport.d.ts +0 -88
  843. package/dist/shared/logger/transports/buffered.transport.js +0 -174
  844. package/dist/shared/logger/transports/console.transport.d.ts +0 -37
  845. package/dist/shared/logger/transports/console.transport.js +0 -134
  846. package/dist/shared/logger/transports/index.d.ts +0 -3
  847. package/dist/shared/logger/transports/index.js +0 -19
  848. package/dist/shared/logger/transports/transport.interface.d.ts +0 -40
  849. package/dist/shared/logger/transports/transport.interface.js +0 -2
  850. package/dist/system/class-constructor.js +0 -2
  851. package/dist/system/decorator-processor.js +0 -2
  852. package/dist/system/metadata.scanner.d.ts +0 -7
  853. package/dist/system/metadata.scanner.js +0 -45
  854. package/dist/utils/errors.d.ts +0 -14
  855. package/dist/utils/errors.js +0 -25
  856. package/dist/utils/index.d.ts +0 -4
  857. package/dist/utils/index.js +0 -20
  858. package/dist/utils/result.d.ts +0 -12
  859. package/dist/utils/result.js +0 -10
  860. package/dist/utils/rgb.d.ts +0 -5
  861. package/dist/utils/rgb.js +0 -2
  862. package/dist/utils/vector3.d.ts +0 -13
  863. package/dist/utils/vector3.js +0 -27
  864. /package/dist/{server/loaders/exports.loader.d.ts → adapters/contracts/transport/context.js} +0 -0
  865. /package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
  866. /package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
  867. /package/dist/{server/types → kernel/error}/security.types.d.ts +0 -0
  868. /package/dist/{shared → kernel}/logger/logger.types.d.ts +0 -0
  869. /package/dist/{client → runtime/client}/client-container.d.ts +0 -0
  870. /package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
  871. /package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
  872. /package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
  873. /package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
  874. /package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
  875. /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
  876. /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
package/README.md CHANGED
@@ -1,360 +1,288 @@
1
- # OpenCore Framework - Unstable beta ❗
1
+ [![CI](https://github.com/newcore-network/opencore/actions/workflows/ci.yml/badge.svg)](https://github.com/newcore-network/opencore/actions/workflows/ci.yml)
2
+ ![npm](https://img.shields.io/npm/v/@open-core/framework?style=flat-square)
3
+ ![license](https://img.shields.io/github/license/newcore-network/opencore?style=flat-square)
4
+ ![typescript](https://img.shields.io/badge/TypeScript-first-blue?style=flat-square)
5
+ [![cli](https://img.shields.io/badge/CLI-opencore--cli-purple?style=flat-square)](https://opencorejs.dev/docs/cli/introduction)
6
+ [![website](https://img.shields.io/badge/web-opencorejs.dev-black?style=flat-square)](https://opencorejs.dev)
2
7
 
3
- > **The robust TypeScript Engine for FiveM.**
4
- > Built on strong OOP principles, Layered Architecture, and Security-first design.
5
- > _Stop writing scripts; start engineering gameplay._
6
8
 
7
- [![License: MPL 2.0](https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
8
- [![Version](https://img.shields.io/badge/beta-1.0.3-orange.svg)](https://github.com/newcore-network/opencore)
9
- ![Tests](https://img.shields.io/badge/tests-265%20passing-brightgreen)
10
- ![Coverage](https://img.shields.io/badge/coverage-43%25-yellow)
11
- ![Core Decorators](https://img.shields.io/badge/core%20decorators-100%25-brightgreen)
9
+ # OpenCore Framework - Open Stable beta
12
10
 
13
- ## 📋 Table of Contents
11
+ OpenCore is a TypeScript multiplayer runtime framework targeting CitizenFX runtimes (Cfx) via adapters.
14
12
 
15
- - [Why OpenCore?](#-why-opencore)
16
- - [Installation](#-installation)
17
- - [Quick Start](#-quick-start)
18
- - [Security System](#️-security-system)
19
- - [Architecture](#️-architecture)
20
- - [Testing](#-testing)
21
- - [Performance](#-performance--benchmarks)
22
- - [Project Structure](#-project-structure)
23
- - [Scripts](#-available-scripts)
24
- - [License](#-license)
13
+ It is not a gamemode or RP framework. It provides:
25
14
 
26
- ---
15
+ - A stable execution model (server and client)
16
+ - Dependency Injection and metadata-driven wiring
17
+ - An event/command system
18
+ - Security primitives (validation, access control, rate limiting)
27
19
 
28
- ## 🚀 Why OpenCore?
20
+ License: MPL-2.0
29
21
 
30
- OpenCore transforms FiveM development from chaotic scripting into professional software engineering. Inspired by enterprise frameworks like **Spring Boot** and **NestJS**, it brings structure, security, and strict typing to your server.
22
+ [Discord Community](https://discord.gg/99g3FgvkPs) | [Docs](https://opencorejs.dev) | [OpenCore CLI](https://github.com/newcore-network/opencore-cli)
31
23
 
32
- ### ✨ Key Features
33
-
34
- - **🛡️ Security by Design:** Built-in Input Validation (**Zod**), Rate Limiting (`@Throttle`), and Access Control (`@Guard`).
35
- - **🏗️ Decoupled Architecture:** Logic is separated into **Controllers**, **Services**, and **Entities**.
36
- - **💉 Dependency Injection:** Full IoC container powered by `tsyringe`.
37
- - **📝 Type-Safe:** No more guessing `source` types or argument structures.
38
- - **📡 Event-Driven:** Powerful Event Bus for internal and network communication.
39
- - **⚡ High Performance:** Sub-microsecond latencies, millions of ops/sec.
40
- - **🧪 Fully Tested:** Comprehensive unit, integration, and load tests.
41
-
42
- ---
43
-
44
- ## 📦 Installation
24
+ ## Installation
45
25
 
46
26
  ```bash
47
27
  pnpm add @open-core/framework reflect-metadata tsyringe zod uuid
48
28
  ```
49
29
 
50
- > **Note:** Ensure you have `experimentalDecorators` and `emitDecoratorMetadata` enabled in your `tsconfig.json`.
30
+ This framework uses TypeScript decorators. Ensure your project has decorators enabled.
51
31
 
52
- ---
32
+ ## Imports and entry points
53
33
 
54
- ## Quick Start
34
+ The package exposes subpath entry points:
55
35
 
56
- Define a Controller, validate inputs with Zod, and protect it with a Guard. Zero boilerplate.
36
+ - `@open-core/framework` (root)
37
+ - `@open-core/framework/server`
38
+ - `@open-core/framework/client`
57
39
 
58
- **Server-side:**
40
+ ## Architecture
59
41
 
60
- ```ts
61
- import { Server } from '@open-core/framework/server'
62
- import { z } from 'zod'
42
+ OpenCore follows a Ports & Adapters (Hexagonal) architecture.
63
43
 
64
- // 1. Define your Input Schema
65
- const TransferSchema = z.tuple([
66
- z.coerce.number().positive(), // Target ID
67
- z.coerce.number().min(1).max(50000), // Amount
68
- ])
44
+ - Kernel (`src/kernel`): engine-agnostic infrastructure (DI, logger, metadata scanning)
45
+ - Runtime (`src/runtime`): multiplayer execution model (controllers, processors, security, lifecycle)
46
+ - Adapters (`src/adapters`): platform integration (Cfx, Node testing)
69
47
 
70
- @Server.Controller()
71
- export class BankController {
72
- constructor(private readonly bankService: BankService) {}
48
+ The runtime never auto-detects the platform. Adapters are selected explicitly at bootstrap time.
73
49
 
74
- @Server.Command({
75
- name: 'transfer',
76
- schema: TransferSchema,
77
- usage: '/transfer [id] [amount]',
78
- })
79
- @Server.Guard({ rank: 1 }) // Must be at least Rank 1 (User)
80
- @Server.Throttle(1, 2000) // Max 1 request per 2 seconds
81
- async handleTransfer(player: Server.Player, args: z.infer<typeof TransferSchema>) {
82
- const [targetId, amount] = args
50
+ ### Cfx game profiles
83
51
 
84
- // Logic is pure and type-safe
85
- await this.bankService.transfer(player, targetId, amount)
52
+ OpenCore treats CitizenFX (`cfx`) as the platform and supports game profiles (`gta5` and `rdr3`).
86
53
 
87
- player.emit('chat:message', `Successfully transferred $${amount}`)
88
- }
89
- }
90
- ```
91
-
92
- ---
54
+ - Shared runtime APIs (events, exports, transport, DI) are registered through the Cfx adapter.
55
+ - Game-specific behavior is controlled through platform capabilities/config (`gameProfile`, `defaultSpawnModel`, etc.).
56
+ - Optional RedM-specific enhancements can be layered as external libraries without changing core runtime contracts.
93
57
 
94
- ## 🛡️ Security System
58
+ ## Operating modes
95
59
 
96
- OpenCore handles the dirty work so you can focus on gameplay.
60
+ Each instance runs in exactly one mode configured via `Server.init()`:
97
61
 
98
- ### 1. Input Validation (`@Command`, `@OnNet`)
62
+ - `CORE`: authoritative runtime. Typically provides identity/auth/players via exports.
63
+ - `RESOURCE`: a normal Cfx resource using CORE as provider for some features.
64
+ - `STANDALONE`: a self-contained runtime (useful for tooling, simulations, or small servers).
99
65
 
100
- All network inputs are validated against Zod schemas before they reach your logic. Malformed packets are rejected automatically.
66
+ ## Server bootstrap
101
67
 
102
- ### 2. Access Control (`@Guard`)
103
-
104
- Protect methods with granular permissions or hierarchical ranks:
68
+ Initialize the server runtime:
105
69
 
106
70
  ```ts
107
- @Server.Guard({ permission: 'admin.ban' })
108
- @Server.Guard({ rank: 10 }) // Admin level
109
- ```
71
+ import { Server } from '@open-core/framework/server'
110
72
 
111
- ### 3. Rate Limiting (`@Throttle`)
73
+ await Server.init({
74
+ mode: 'CORE'
75
+ })
76
+ ```
112
77
 
113
- Prevent abuse with configurable rate limits:
78
+ Some features require providers (depending on your mode and configuration). Configure them before calling `init()`:
114
79
 
115
80
  ```ts
116
- @Server.Throttle(5, 10000) // 5 requests per 10 seconds
81
+ import { Server } from '@open-core/framework/server'
82
+
83
+ Server.setPrincipalProvider(MyPrincipalProvider)
84
+ Server.setSecurityHandler(MySecurityHandler)
85
+ Server.setPersistenceProvider(MyPlayerPersistence)
86
+ Server.setNetEventSecurityObserver(MyNetEventSecurityObserver)
117
87
  ```
118
88
 
119
- ### 4. State Management (`@RequiresState`)
89
+ ## Controllers and decorators
120
90
 
121
- Avoid "dead player exploits" or interaction glitches:
91
+ OpenCore uses a decorator + processor pattern.
122
92
 
123
- ```ts
124
- @Server.RequiresState({ missing: ['dead', 'cuffed'] })
125
- openInventory(player: Server.Player) { ... }
126
- ```
127
-
128
- ---
93
+ Decorators store metadata with `Reflect.defineMetadata()`. During bootstrap, the `MetadataScanner` reads metadata and processors register handlers.
129
94
 
130
- ## 🏗️ Architecture
95
+ ### Commands
131
96
 
132
- OpenCore follows a clean, layered architecture:
97
+ ```ts
98
+ import { Controller, Command, Guard, Throttle, Player } from '@open-core/framework/server'
99
+ import { z } from 'zod'
133
100
 
134
- | Layer | Responsibility | Example |
135
- | --------------- | ------------------------------------------------------------ | ---------------- |
136
- | **Controllers** | Handle entry points (Commands, Events, NUI). Keep them thin. | `BankController` |
137
- | **Services** | Contain business logic. Singletons injectable anywhere. | `BankService` |
138
- | **Entities** | Wrappers around FiveM objects with rich APIs. | `Player` |
101
+ const TransferSchema = z.tuple([z.coerce.number().int().positive(), z.coerce.number().min(1)])
139
102
 
140
- ```
141
- ┌─────────────────────────────────────────────────────────┐
142
- │ Client / FiveM │
143
- └─────────────────────────┬───────────────────────────────┘
144
-
145
- ┌─────────────────────────▼───────────────────────────────┐
146
- │ Controllers │
147
- @Command @OnNet @NUI @GameEvent @OnTick │
148
- └─────────────────────────┬───────────────────────────────┘
149
-
150
- ┌─────────────────────────▼───────────────────────────────┐
151
- │ Security Layer (Middleware)
152
- @Guard @Throttle @RequiresState Zod Validation │
153
- └─────────────────────────┬───────────────────────────────┘
154
-
155
- ┌─────────────────────────▼───────────────────────────────┐
156
- │ Services │
157
- │ Business Logic • PlayerService • BankService │
158
- └─────────────────────────┬───────────────────────────────┘
159
-
160
- ┌─────────────────────────▼───────────────────────────────┐
161
- │ Core Event Bus │
162
- │ Internal Events • Cross-Service Communication │
163
- └─────────────────────────────────────────────────────────┘
103
+ @Controller()
104
+ export class BankController {
105
+ @Command({
106
+ command: 'transfer',
107
+ usage: '/transfer <id> <amount>',
108
+ schema: TransferSchema,
109
+ })
110
+ @Guard({ rank: 1 })
111
+ @Throttle(1, 2000)
112
+ async transfer(player: Player, args: z.infer<typeof TransferSchema>) {
113
+ const [targetId, amount] = args
114
+ player.emit('chat:message', `transfer -> ${targetId} (${amount})`)
115
+ }
116
+ }
164
117
  ```
165
118
 
166
- ---
119
+ ### Network events
167
120
 
168
- ## 🧪 Testing
121
+ `@OnNet()` handlers always receive `Player` as the first parameter.
169
122
 
170
- OpenCore has a comprehensive testing suite using **Vitest**.
123
+ ```ts
124
+ import { Controller, OnNet, Player } from '@open-core/framework/server'
125
+ import { z } from 'zod'
171
126
 
172
- ### Test Categories
127
+ const PayloadSchema = z.object({ action: z.string(), amount: z.number().int().positive() })
173
128
 
174
- | Category | Description | Command |
175
- | --------------- | --------------------------------------- | ----------------------- |
176
- | **Unit** | Individual components and decorators | `pnpm test:unit` |
177
- | **Integration** | Component interactions and bootstrap | `pnpm test:integration` |
178
- | **Load** | Performance under simulated player load | `pnpm bench:load` |
179
- | **All Tests** | Run everything | `pnpm test` |
129
+ @Controller()
130
+ export class ExampleNetController {
131
+ @OnNet('bank:action', { schema: PayloadSchema })
132
+ async onBankAction(player: Player, payload: z.infer<typeof PayloadSchema>) {
133
+ player.emit('chat:message', `action=${payload.action} amount=${payload.amount}`)
134
+ }
135
+ }
136
+ ```
180
137
 
181
- ### Running Tests
138
+ ### Security decorators
182
139
 
183
- ```bash
184
- # Run all tests
185
- pnpm test
140
+ - `@Guard({ rank })` or `@Guard({ permission })`
141
+ - `@Throttle(limit, windowMs)`
142
+ - `@RequiresState({ missing: [...] })`
186
143
 
187
- # Run specific test suites
188
- pnpm test:unit
189
- pnpm test:integration
144
+ ### Library events
190
145
 
191
- # Watch mode for development
192
- pnpm test:watch
146
+ Use library wrappers to emit domain events and `@OnLibraryEvent()` to observe them.
193
147
 
194
- # Generate coverage report
195
- pnpm test:coverage
196
- ```
197
-
198
- ### Test Structure
148
+ `@OnLibraryEvent()` listens to events emitted through `library.emit(...)` only.
149
+ It does not listen to `emitExternal`, `emitNetExternal`, or `emitServer`.
199
150
 
200
- ```
201
- tests/
202
- ├── unit/ # Unit tests
203
- │ ├── server/
204
- │ │ └── decorators/
205
- │ │ ├── command.test.ts
206
- │ │ ├── guard.test.ts
207
- │ │ ├── throttle.test.ts
208
- │ │ └── ...
209
- │ └── utils/
210
- ├── integration/ # Integration tests
211
- │ ├── client/
212
- │ └── server/
213
- ├── mocks/ # FiveM mocks
214
- │ └── citizenfx.ts
215
- └── helpers/ # Test utilities
216
- ```
151
+ ```ts
152
+ import { Server } from '@open-core/framework/server'
217
153
 
218
- ### Coverage
154
+ const characters = Server.createServerLibrary('characters')
219
155
 
220
- All core decorators are **100% tested**:
156
+ @Controller()
157
+ export class CharacterListeners {
158
+ @OnLibraryEvent('characters', 'session:created')
159
+ onSessionCreated(payload: { sessionId: string; playerId: number }) {
160
+ // optional listener for library domain events
161
+ }
162
+ }
221
163
 
222
- - `@Command`, `@Guard`, `@Throttle`, `@OnNet`, `@OnTick`
223
- - `@Controller`, `@Public`, `@Export`, `@CoreEvent`, `@Bind`
164
+ characters.emit('session:created', { sessionId: 's-1', playerId: 10 })
165
+ ```
224
166
 
225
- ---
167
+ Client usage follows the same pattern with `Client.createClientLibrary(...)` and
168
+ `@Client.OnLibraryEvent(...)`.
226
169
 
227
- ## ⚡ Performance & Benchmarks
170
+ ## Plugins
228
171
 
229
- OpenCore is built for performance. Our benchmark suite validates that the framework can handle production workloads with ease.
172
+ Plugin contracts are exposed by runtime entrypoint, not by root:
230
173
 
231
- ### Run Benchmarks
174
+ - Server plugins: `@open-core/framework/server`
175
+ - Client plugins: `@open-core/framework/client`
232
176
 
233
- ```bash
234
- # Core component benchmarks (Tinybench)
235
- pnpm bench:core
177
+ ```ts
178
+ import { Server, type OpenCorePlugin } from '@open-core/framework/server'
179
+ import { Client, type OpenCoreClientPlugin } from '@open-core/framework/client'
180
+
181
+ const serverPlugin: OpenCorePlugin = {
182
+ name: 'server-example',
183
+ install(ctx) {
184
+ ctx.server.registerApiExtension('ExampleServerDecorator', () => {})
185
+ },
186
+ }
236
187
 
237
- # Load benchmarks with player simulation (Vitest)
238
- pnpm bench:load
188
+ const clientPlugin: OpenCoreClientPlugin = {
189
+ name: 'client-example',
190
+ install(ctx) {
191
+ ctx.client.registerApiExtension('ExampleClientDecorator', () => {})
192
+ },
193
+ }
239
194
 
240
- # Full benchmark suite with reports
241
- pnpm bench:all
195
+ await Server.init({ mode: 'CORE', plugins: [serverPlugin] })
196
+ await Client.init({ mode: 'CORE', plugins: [clientPlugin] })
242
197
  ```
243
198
 
244
- ### Latest Results (v0.6.0-beta.1)
199
+ Module augmentation for plugin APIs:
245
200
 
246
- #### Core Components
201
+ ```ts
202
+ declare module '@open-core/framework/server' {
203
+ interface ServerPluginApi {
204
+ ExampleServerDecorator: () => void
205
+ }
206
+ }
247
207
 
248
- | Component | Operation | Throughput | Latency |
249
- | ----------------- | ------------------ | ------------- | ------- |
250
- | **DI Container** | Resolve service | 1.65M ops/sec | 0.61μs |
251
- | **Zod** | Simple validation | 1.99M ops/sec | 0.50μs |
252
- | **Zod** | Complex validation | 1.00M ops/sec | 1.00μs |
253
- | **RateLimiter** | Key check | 2.56M ops/sec | 0.39μs |
254
- | **AccessControl** | Permission check | 2.76M ops/sec | 0.36μs |
255
- | **EventBus** | Emit event | 3.22M ops/sec | 0.31μs |
256
- | **Decorators** | Define metadata | 5.48M ops/sec | 0.18μs |
208
+ declare module '@open-core/framework/client' {
209
+ interface ClientPluginApi {
210
+ ExampleClientDecorator: () => void
211
+ }
212
+ }
213
+ ```
257
214
 
258
- #### Load Tests (500 Concurrent Players)
215
+ ## Testing
259
216
 
260
- | Scenario | Throughput | p95 Latency | Error Rate |
261
- | --------------------------- | --------------- | ----------- | ---------- |
262
- | **Net Events (Simple)** | 92.59M ops/sec | 0.80μs | 0.00% |
263
- | **Net Events (Validated)** | 11.47M ops/sec | 2.70μs | 0.00% |
264
- | **Net Events (Concurrent)** | 1.61M ops/sec | 294.22μs | 0.00% |
265
- | **Serialization (Large)** | 146.53K ops/sec | 951.11μs | 0.00% |
217
+ Tests run with Vitest.
266
218
 
267
- #### Key Performance Highlights
219
+ ```bash
220
+ pnpm test
221
+ pnpm test:unit
222
+ pnpm test:integration
223
+ pnpm test:coverage
224
+ ```
268
225
 
269
- - **Zero error rate** across all load scenarios (10 → 500 players)
270
- - ✅ **Sub-microsecond latency** for core operations
271
- - ✅ **Excellent scalability** - handles 500+ concurrent players
272
- - ✅ **Consistent p95/p99** - predictable latency behavior
226
+ Note: `pnpm test` does not run benchmarks.
273
227
 
274
- > Full benchmark details available in [`benchmark/README.md`](./benchmark/README.md)
228
+ ## Benchmarks
275
229
 
276
- ---
230
+ There are two benchmark suites:
277
231
 
278
- ## 📁 Project Structure
232
+ - Core benchmarks (Tinybench)
233
+ - Load benchmarks (Vitest project `benchmark`)
279
234
 
235
+ ```bash
236
+ pnpm bench:core
237
+ pnpm bench:load
238
+ pnpm bench:all
280
239
  ```
281
- opencore/
282
- ├── src/
283
- │ ├── client/ # Client-side framework
284
- │ │ ├── decorators/ # @OnNet, @Key, @Tick, @NUI, etc.
285
- │ │ ├── services/ # Streaming, UI, World services
286
- │ │ └── system/ # Processors and metadata
287
- │ ├── server/ # Server-side framework
288
- │ │ ├── decorators/ # @Command, @Guard, @Throttle, etc.
289
- │ │ ├── services/ # Player, Command, RateLimiter, etc.
290
- │ │ ├── entities/ # Player entity
291
- │ │ └── bus/ # Core Event Bus
292
- │ ├── shared/ # Shared utilities
293
- │ │ └── logger/ # Logging system
294
- │ └── system/ # Core system (MetadataScanner, DI)
295
- ├── tests/ # Test suites
296
- │ ├── unit/
297
- │ ├── integration/
298
- │ └── mocks/
299
- ├── benchmark/ # Performance benchmarks
300
- │ ├── core/ # Tinybench benchmarks
301
- │ ├── load/ # Vitest load tests
302
- │ └── reports/ # Generated reports
303
- └── dist/ # Compiled output
304
- ```
305
-
306
- ---
307
240
 
308
- ## 📜 Available Scripts
241
+ ### Snapshot (latest local run)
309
242
 
310
- | Script | Description |
311
- | ----------------------- | -------------------------------- |
312
- | `pnpm build` | Compile TypeScript to JavaScript |
313
- | `pnpm watch` | Watch mode for development |
314
- | `pnpm lint` | Run ESLint |
315
- | `pnpm lint:fix` | Fix ESLint issues |
316
- | `pnpm format` | Format code with Prettier |
317
- | `pnpm test` | Run all tests |
318
- | `pnpm test:unit` | Run unit tests only |
319
- | `pnpm test:integration` | Run integration tests only |
320
- | `pnpm test:coverage` | Generate coverage report |
321
- | `pnpm bench` | Show benchmark options |
322
- | `pnpm bench:core` | Run core benchmarks |
323
- | `pnpm bench:load` | Run load benchmarks |
324
- | `pnpm bench:all` | Run all benchmarks with reports |
243
+ These values are a small extract from the latest local run (`1.0.0-beta.1`, Feb 26, 2026). Results vary by machine.
325
244
 
326
- ---
245
+ - **Core**
246
+ - BinaryService - classify response type: `~18.25M ops/sec` (mean `~0.055μs`, p95 `~0.076μs`)
247
+ - EventInterceptor - getStatistics (1000 events): `~17.78M ops/sec` (mean `~0.056μs`)
248
+ - RuntimeConfig - resolve CORE mode: `~10.49M ops/sec` (mean `~0.095μs`)
249
+ - Decorators - define metadata (Command): `~6.92M ops/sec` (mean `~0.145μs`)
250
+ - EventBus - multiple event types: `~2.57M ops/sec` (mean `~0.390μs`)
251
+ - DI - resolve simple service: `~1.78M ops/sec` (mean `~0.560μs`)
252
+ - **Load**
253
+ - Commands - 500 players (validated): `~4.78M ops/sec` (p95 `~0.008ms`)
254
+ - Pipeline - validated (500 players): `~4.79M ops/sec` (p95 `~0.024ms`)
255
+ - Pipeline - full (500 players): `~2.34M ops/sec` (p95 `~0.011ms`)
256
+ - RPC - schema generation complex (500 methods): `~705K ops/sec` (p95 `~0.335ms`)
257
+ - Commands - 500 players (concurrent): `~6.31K ops/sec` (p95 `~76.00ms`)
327
258
 
328
- ## Available Modules
259
+ Full reports and methodology are available in benchmark/README.md.
329
260
 
330
- A module is a library belonging to the OpenCore family, where you can take advantage of its functionality if you wish, and where we provide the foundation for building a specific system.
261
+ ### Reports
331
262
 
332
- - [Open-core Identity](https://github.com/newcore-network/opencore-identity): Flexible identity and permission system for OpenCore. Provides multiple authentication strategies, role management, and permission-based authorization through the framework's Principal system. [NPM](https://www.npmjs.com/package/@open-core/identity).
263
+ Benchmark reports are generated under `benchmark/reports/`.
333
264
 
334
- ```bash
335
- pnpm add @open-core/identity
336
- ```
337
-
338
- ## 🤝 Contributing
265
+ - `pnpm bench:all` generates aggregated reports (text/json/html)
266
+ - Load metrics used by load benchmarks are persisted in `benchmark/reports/.load-metrics.json`
339
267
 
340
- Contributions are welcome! Please ensure:
268
+ For details about the benchmark system, see `benchmark/README.md`.
341
269
 
342
- 1. All tests pass (`pnpm test`)
343
- 2. Code is formatted (`pnpm format`)
344
- 3. No linting errors (`pnpm lint`)
345
- 4. New features include tests
270
+ ## Development scripts
346
271
 
347
- ---
272
+ ```bash
273
+ pnpm build
274
+ pnpm watch
275
+ pnpm lint
276
+ pnpm lint:fix
277
+ pnpm format
278
+ ```
348
279
 
349
- ## 📄 License
280
+ ## Ecosystem
350
281
 
351
- OpenCore is licensed under the **MPL-2.0**.
282
+ OpenCore is designed to be extended via separate packages/resources.
352
283
 
353
- See [LICENSE](./LICENSE) for details.
284
+ - `@open-core/identity`: identity and permission system
354
285
 
355
- ---
286
+ ## License
356
287
 
357
- <p align="center">
358
- <strong>OpenCore Framework</strong><br>
359
- <em>Stop scripting. Start engineering.</em>
360
- </p>
288
+ MPL-2.0. See `LICENSE`.
@@ -0,0 +1,16 @@
1
+ import { IPlatformCapabilities } from '../contracts/IPlatformCapabilities';
2
+ export declare class CfxCapabilities extends IPlatformCapabilities {
3
+ readonly platformName = "cfx";
4
+ readonly displayName = "CitizenFX";
5
+ private readonly gameProfile;
6
+ readonly supportsRoutingBuckets = true;
7
+ readonly supportsStateBags = true;
8
+ readonly supportsVoiceChat = true;
9
+ readonly supportsServerEntities = true;
10
+ readonly identifierTypes: readonly ["steam", "license", "license2", "discord", "fivem", "xbl", "live", "ip", "rockstar"];
11
+ readonly maxPlayers = 1024;
12
+ private readonly supportedFeatures;
13
+ private readonly config;
14
+ isFeatureSupported(feature: string): boolean;
15
+ getConfig<T = unknown>(key: string): T | undefined;
16
+ }
@@ -0,0 +1,70 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { injectable } from 'tsyringe';
8
+ import { IPlatformCapabilities, PlatformFeatures } from '../contracts/IPlatformCapabilities';
9
+ import { IdentifierTypes } from '../contracts/types/identifier';
10
+ import { detectCfxGameProfile } from './runtime-profile';
11
+ let CfxCapabilities = class CfxCapabilities extends IPlatformCapabilities {
12
+ platformName = 'cfx';
13
+ displayName = 'CitizenFX';
14
+ gameProfile = detectCfxGameProfile();
15
+ supportsRoutingBuckets = true;
16
+ supportsStateBags = true;
17
+ supportsVoiceChat = true;
18
+ supportsServerEntities = true;
19
+ identifierTypes = [
20
+ IdentifierTypes.STEAM,
21
+ IdentifierTypes.LICENSE,
22
+ IdentifierTypes.LICENSE2,
23
+ IdentifierTypes.DISCORD,
24
+ IdentifierTypes.FIVEM,
25
+ IdentifierTypes.XBL,
26
+ IdentifierTypes.LIVE,
27
+ IdentifierTypes.IP,
28
+ IdentifierTypes.ROCKSTAR,
29
+ ];
30
+ maxPlayers = 1024;
31
+ supportedFeatures = new Set([
32
+ PlatformFeatures.ROUTING_BUCKETS,
33
+ PlatformFeatures.STATE_BAGS,
34
+ PlatformFeatures.VOICE_CHAT,
35
+ PlatformFeatures.SERVER_ENTITIES,
36
+ PlatformFeatures.BLIPS,
37
+ PlatformFeatures.MARKERS,
38
+ PlatformFeatures.TEXT_LABELS,
39
+ PlatformFeatures.CHECKPOINTS,
40
+ PlatformFeatures.COLSHAPES,
41
+ ...(this.gameProfile === 'gta5'
42
+ ? [
43
+ PlatformFeatures.VEHICLE_MODS,
44
+ PlatformFeatures.PED_APPEARANCE,
45
+ PlatformFeatures.WEAPON_COMPONENTS,
46
+ ]
47
+ : []),
48
+ ]);
49
+ config = {
50
+ runtime: 'cfx',
51
+ gameProfile: this.gameProfile,
52
+ defaultRoutingBucket: 0,
53
+ maxRoutingBuckets: 63,
54
+ tickRate: 64,
55
+ syncRate: 10,
56
+ defaultSpawnModel: this.gameProfile === 'rdr3' ? 'mp_male' : 'mp_m_freemode_01',
57
+ enableServerVehicleCreation: this.gameProfile !== 'rdr3',
58
+ defaultVehicleType: this.gameProfile === 'rdr3' ? 'automobile' : 'automobile',
59
+ };
60
+ isFeatureSupported(feature) {
61
+ return this.supportedFeatures.has(feature);
62
+ }
63
+ getConfig(key) {
64
+ return this.config[key];
65
+ }
66
+ };
67
+ CfxCapabilities = __decorate([
68
+ injectable()
69
+ ], CfxCapabilities);
70
+ export { CfxCapabilities };
@@ -0,0 +1,2 @@
1
+ import type { PlatformAdapter } from '../platform/platform-registry';
2
+ export declare const CfxPlatform: PlatformAdapter;