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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/README.md +217 -360
  2. package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
  3. package/dist/adapters/contracts/IEngineEvents.js +6 -0
  4. package/dist/adapters/contracts/IEntityServer.d.ts +88 -0
  5. package/dist/adapters/contracts/IEntityServer.js +13 -0
  6. package/dist/adapters/contracts/IExports.d.ts +4 -0
  7. package/dist/adapters/contracts/IExports.js +6 -0
  8. package/dist/adapters/contracts/IHasher.d.ts +15 -0
  9. package/dist/adapters/contracts/IHasher.js +12 -0
  10. package/dist/adapters/contracts/INetTransport.d.ts +8 -0
  11. package/dist/adapters/contracts/INetTransport.js +6 -0
  12. package/dist/adapters/contracts/IPedAppearanceClient.d.ts +206 -0
  13. package/dist/adapters/contracts/IPedAppearanceClient.js +16 -0
  14. package/dist/adapters/contracts/IPedAppearanceServer.d.ts +45 -0
  15. package/dist/adapters/contracts/IPedAppearanceServer.js +16 -0
  16. package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
  17. package/dist/adapters/contracts/IPlayerInfo.js +6 -0
  18. package/dist/adapters/contracts/IPlayerServer.d.ts +73 -0
  19. package/dist/adapters/contracts/IPlayerServer.js +13 -0
  20. package/dist/adapters/contracts/IResourceInfo.d.ts +3 -0
  21. package/dist/adapters/contracts/IResourceInfo.js +6 -0
  22. package/dist/adapters/contracts/ITick.d.ts +10 -0
  23. package/dist/adapters/contracts/ITick.js +9 -0
  24. package/dist/adapters/contracts/IVehicleServer.d.ts +55 -0
  25. package/dist/adapters/contracts/IVehicleServer.js +13 -0
  26. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.d.ts +2 -2
  27. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.js +2 -2
  28. package/dist/adapters/database/resource.adapter.d.ts +12 -0
  29. package/dist/adapters/database/resource.adapter.js +68 -0
  30. package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
  31. package/dist/adapters/fivem/fivem-engine-events.js +13 -0
  32. package/dist/adapters/fivem/fivem-entity-server.d.ts +22 -0
  33. package/dist/adapters/fivem/fivem-entity-server.js +80 -0
  34. package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
  35. package/dist/adapters/fivem/fivem-exports.js +14 -0
  36. package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
  37. package/dist/adapters/fivem/fivem-hasher.js +23 -0
  38. package/dist/adapters/fivem/fivem-net-transport.d.ts +5 -0
  39. package/dist/adapters/fivem/fivem-net-transport.js +24 -0
  40. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
  41. package/dist/adapters/fivem/fivem-ped-appearance-client.js +84 -0
  42. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
  43. package/dist/adapters/fivem/fivem-ped-appearance-server.js +26 -0
  44. package/dist/adapters/fivem/fivem-player-server.d.ts +15 -0
  45. package/dist/adapters/fivem/fivem-player-server.js +63 -0
  46. package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
  47. package/dist/adapters/fivem/fivem-playerinfo.js +14 -0
  48. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +4 -0
  49. package/dist/adapters/fivem/fivem-resourceinfo.js +16 -0
  50. package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
  51. package/dist/adapters/fivem/fivem-tick.js +22 -0
  52. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
  53. package/dist/adapters/fivem/fivem-vehicle-server.js +47 -0
  54. package/dist/adapters/index.d.ts +15 -0
  55. package/dist/adapters/index.js +40 -0
  56. package/dist/adapters/node/index.d.ts +8 -0
  57. package/dist/adapters/node/index.js +19 -0
  58. package/dist/adapters/node/node-engine-events.d.ts +20 -0
  59. package/dist/adapters/node/node-engine-events.js +42 -0
  60. package/dist/adapters/node/node-entity-server.d.ts +26 -0
  61. package/dist/adapters/node/node-entity-server.js +101 -0
  62. package/dist/adapters/node/node-exports.d.ts +26 -0
  63. package/dist/adapters/node/node-exports.js +63 -0
  64. package/dist/adapters/node/node-hasher.d.ts +12 -0
  65. package/dist/adapters/node/node-hasher.js +39 -0
  66. package/dist/adapters/node/node-net-transport.d.ts +18 -0
  67. package/dist/adapters/node/node-net-transport.js +57 -0
  68. package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
  69. package/dist/adapters/node/node-ped-appearance-client.js +59 -0
  70. package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
  71. package/dist/adapters/node/node-ped-appearance-server.js +18 -0
  72. package/dist/adapters/node/node-player-server.d.ts +27 -0
  73. package/dist/adapters/node/node-player-server.js +82 -0
  74. package/dist/adapters/node/node-playerinfo.d.ts +6 -0
  75. package/dist/adapters/node/node-playerinfo.js +12 -0
  76. package/dist/adapters/node/node-resourceinfo.d.ts +12 -0
  77. package/dist/adapters/node/node-resourceinfo.js +27 -0
  78. package/dist/adapters/node/node-tick.d.ts +10 -0
  79. package/dist/{server/system/processors/command.processor.js → adapters/node/node-tick.js} +27 -14
  80. package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
  81. package/dist/adapters/node/node-vehicle-server.js +93 -0
  82. package/dist/adapters/register-capabilities.d.ts +11 -0
  83. package/dist/adapters/register-capabilities.js +148 -0
  84. package/dist/adapters/register-client-capabilities.d.ts +8 -0
  85. package/dist/adapters/register-client-capabilities.js +56 -0
  86. package/dist/index.d.ts +5 -4
  87. package/dist/index.js +9 -5
  88. package/dist/kernel/di/index.d.ts +4 -0
  89. package/dist/kernel/di/index.js +20 -0
  90. package/dist/{system → kernel/di}/metadata.scanner.d.ts +1 -2
  91. package/dist/kernel/di/tokens.d.ts +30 -0
  92. package/dist/kernel/di/tokens.js +38 -0
  93. package/dist/kernel/index.d.ts +7 -0
  94. package/dist/kernel/index.js +30 -0
  95. package/dist/kernel/schema/index.d.ts +32 -0
  96. package/dist/kernel/schema/index.js +5 -0
  97. package/dist/kernel/shared/appearance/appearance.interface.d.ts +276 -0
  98. package/dist/kernel/shared/appearance/appearance.interface.js +77 -0
  99. package/dist/kernel/shared/appearance/index.d.ts +1 -0
  100. package/dist/kernel/shared/appearance/index.js +17 -0
  101. package/dist/kernel/shared/index.d.ts +2 -0
  102. package/dist/{shared → kernel/shared}/index.js +1 -0
  103. package/dist/{shared → kernel/shared}/logger/core-logger.d.ts +13 -0
  104. package/dist/{shared → kernel/shared}/logger/core-logger.js +38 -9
  105. package/dist/{shared → kernel/shared}/logger/index.d.ts +12 -9
  106. package/dist/{shared → kernel/shared}/logger/index.js +24 -15
  107. package/dist/{shared → kernel/shared}/logger/logger.config.d.ts +1 -1
  108. package/dist/kernel/shared/logger/logger.env.d.ts +28 -0
  109. package/dist/kernel/shared/logger/logger.env.js +51 -0
  110. package/dist/{shared → kernel/shared}/logger/logger.service.d.ts +2 -2
  111. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.d.ts +2 -2
  112. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.js +1 -1
  113. package/dist/{shared → kernel/shared}/logger/transports/console.transport.d.ts +2 -2
  114. package/dist/{shared → kernel/shared}/logger/transports/console.transport.js +1 -0
  115. package/dist/kernel/shared/logger/transports/dev-transport.factory.d.ts +75 -0
  116. package/dist/kernel/shared/logger/transports/dev-transport.factory.js +111 -0
  117. package/dist/kernel/shared/logger/transports/http.transport.d.ts +67 -0
  118. package/dist/kernel/shared/logger/transports/http.transport.js +170 -0
  119. package/dist/kernel/shared/logger/transports/index.d.ts +7 -0
  120. package/dist/kernel/shared/logger/transports/index.js +34 -0
  121. package/dist/kernel/shared/logger/transports/simple-console.transport.d.ts +38 -0
  122. package/dist/kernel/shared/logger/transports/simple-console.transport.js +93 -0
  123. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.d.ts +1 -1
  124. package/dist/kernel/shared/logger/transports/websocket.transport.d.ts +69 -0
  125. package/dist/kernel/shared/logger/transports/websocket.transport.js +169 -0
  126. package/dist/kernel/utils/error/app.error.d.ts +9 -0
  127. package/dist/{utils/errors.js → kernel/utils/error/app.error.js} +1 -9
  128. package/dist/kernel/utils/error/security.error.d.ts +6 -0
  129. package/dist/kernel/utils/error/security.error.js +12 -0
  130. package/dist/{utils → kernel/utils}/index.d.ts +3 -2
  131. package/dist/{utils → kernel/utils}/index.js +3 -2
  132. package/dist/{utils → kernel/utils}/result.d.ts +1 -1
  133. package/dist/runtime/client/client-bootstrap.d.ts +7 -0
  134. package/dist/runtime/client/client-bootstrap.js +180 -0
  135. package/dist/runtime/client/client-core.d.ts +19 -0
  136. package/dist/runtime/client/client-core.js +24 -0
  137. package/dist/runtime/client/client-runtime.d.ts +58 -0
  138. package/dist/runtime/client/client-runtime.js +32 -0
  139. package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
  140. package/dist/runtime/client/controllers/appearance.controller.js +50 -0
  141. package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
  142. package/dist/runtime/client/controllers/player-sync.controller.js +54 -0
  143. package/dist/{client → runtime/client}/controllers/spawner.controller.d.ts +1 -1
  144. package/dist/runtime/client/decorators/controller.d.ts +20 -0
  145. package/dist/runtime/client/decorators/controller.js +55 -0
  146. package/dist/runtime/client/decorators/export.d.ts +21 -0
  147. package/dist/runtime/client/decorators/export.js +29 -0
  148. package/dist/{client → runtime/client}/decorators/gameEvent.d.ts +2 -2
  149. package/dist/runtime/client/decorators/interval.d.ts +23 -0
  150. package/dist/runtime/client/decorators/interval.js +31 -0
  151. package/dist/runtime/client/decorators/key.d.ts +23 -0
  152. package/dist/runtime/client/decorators/key.js +31 -0
  153. package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
  154. package/dist/runtime/client/decorators/localEvent.js +29 -0
  155. package/dist/runtime/client/decorators/nui.d.ts +21 -0
  156. package/dist/runtime/client/decorators/nui.js +29 -0
  157. package/dist/runtime/client/decorators/onNet.d.ts +21 -0
  158. package/dist/runtime/client/decorators/onNet.js +29 -0
  159. package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
  160. package/dist/runtime/client/decorators/resourceLifecycle.js +53 -0
  161. package/dist/runtime/client/decorators/tick.d.ts +21 -0
  162. package/dist/runtime/client/decorators/tick.js +29 -0
  163. package/dist/{client → runtime/client}/index.d.ts +2 -2
  164. package/dist/{client → runtime/client}/index.js +4 -2
  165. package/dist/runtime/client/interfaces/appearance.interface.d.ts +25 -0
  166. package/dist/runtime/client/interfaces/appearance.interface.js +2 -0
  167. package/dist/{client → runtime/client}/player/player.d.ts +1 -1
  168. package/dist/{client → runtime/client}/player/player.js +5 -6
  169. package/dist/{client → runtime/client}/player/player.loader.js +2 -2
  170. package/dist/runtime/client/services/appearance.service.d.ts +132 -0
  171. package/dist/runtime/client/services/appearance.service.js +328 -0
  172. package/dist/{client → runtime/client}/services/blip.service.d.ts +1 -1
  173. package/dist/{client → runtime/client}/services/index.d.ts +6 -5
  174. package/dist/{client → runtime/client}/services/index.js +6 -5
  175. package/dist/{client → runtime/client}/services/marker.service.d.ts +1 -1
  176. package/dist/{client → runtime/client}/services/ped.service.d.ts +1 -1
  177. package/dist/{client → runtime/client}/services/ped.service.js +3 -2
  178. package/dist/{client → runtime/client}/services/spawn.service.d.ts +2 -2
  179. package/dist/{client → runtime/client}/services/spawn.service.js +4 -8
  180. package/dist/{client → runtime/client}/services/textui.service.d.ts +1 -1
  181. package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
  182. package/dist/runtime/client/services/vehicle-client.service.js +485 -0
  183. package/dist/{client → runtime/client}/services/vehicle.service.d.ts +2 -2
  184. package/dist/{client → runtime/client}/services/vehicle.service.js +1 -1
  185. package/dist/{client → runtime/client}/system/processors/export.processor.d.ts +1 -1
  186. package/dist/{client → runtime/client}/system/processors/export.processor.js +1 -1
  187. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.d.ts +1 -1
  188. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.js +2 -2
  189. package/dist/{client → runtime/client}/system/processors/interval.processor.d.ts +1 -1
  190. package/dist/{client → runtime/client}/system/processors/interval.processor.js +1 -1
  191. package/dist/{client → runtime/client}/system/processors/key.processor.d.ts +1 -1
  192. package/dist/{client → runtime/client}/system/processors/localEvent.processor.d.ts +1 -1
  193. package/dist/{client → runtime/client}/system/processors/localEvent.processor.js +1 -1
  194. package/dist/{client → runtime/client}/system/processors/netEvent.processor.d.ts +1 -1
  195. package/dist/{client → runtime/client}/system/processors/netEvent.processor.js +1 -1
  196. package/dist/{client → runtime/client}/system/processors/nui.processor.d.ts +1 -1
  197. package/dist/{client → runtime/client}/system/processors/nui.processor.js +1 -1
  198. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.d.ts +1 -1
  199. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.js +1 -1
  200. package/dist/{client → runtime/client}/system/processors/tick.processor.d.ts +1 -1
  201. package/dist/{client → runtime/client}/system/processors/tick.processor.js +1 -1
  202. package/dist/{client → runtime/client}/types/game-events.js +0 -8
  203. package/dist/{client → runtime/client}/ui-bridge.js +1 -1
  204. package/dist/runtime/index.d.ts +2 -0
  205. package/dist/runtime/index.js +39 -0
  206. package/dist/{server → runtime/server}/bootstrap.d.ts +2 -1
  207. package/dist/runtime/server/bootstrap.js +234 -0
  208. package/dist/runtime/server/bootstrap.validation.d.ts +12 -0
  209. package/dist/runtime/server/bootstrap.validation.js +102 -0
  210. package/dist/runtime/server/bus/core-event-bus.d.ts +6 -0
  211. package/dist/{server → runtime/server}/bus/core-event-bus.js +5 -5
  212. package/dist/{server → runtime/server}/configs/api.config.d.ts +1 -1
  213. package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.d.ts +2 -2
  214. package/dist/runtime/server/contracts/index.d.ts +7 -0
  215. package/dist/{server/templates → runtime/server/contracts}/index.js +8 -4
  216. package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.d.ts +1 -1
  217. package/dist/{server/templates → runtime/server/contracts}/repository/index.d.ts +2 -2
  218. package/dist/{server/templates → runtime/server/contracts}/repository/index.js +1 -1
  219. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.d.ts +2 -2
  220. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.js +0 -1
  221. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
  222. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +6 -0
  223. package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.d.ts +3 -3
  224. package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.d.ts +2 -2
  225. package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
  226. package/dist/{server → runtime/server}/controllers/chat.controller.js +23 -11
  227. package/dist/runtime/server/controllers/command-export.controller.d.ts +74 -0
  228. package/dist/runtime/server/controllers/command-export.controller.js +260 -0
  229. package/dist/runtime/server/controllers/command.controller.d.ts +15 -0
  230. package/dist/runtime/server/controllers/command.controller.js +100 -0
  231. package/dist/runtime/server/controllers/player-export.controller.d.ts +29 -0
  232. package/dist/runtime/server/controllers/player-export.controller.js +173 -0
  233. package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
  234. package/dist/runtime/server/controllers/principal-export.controller.js +296 -0
  235. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +43 -0
  236. package/dist/runtime/server/controllers/remote-command-execution.controller.js +104 -0
  237. package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
  238. package/dist/{server → runtime/server}/controllers/session.controller.js +15 -12
  239. package/dist/runtime/server/controllers/vehicle.controller.d.ts +55 -0
  240. package/dist/runtime/server/controllers/vehicle.controller.js +216 -0
  241. package/dist/runtime/server/core.d.ts +3 -0
  242. package/dist/runtime/server/core.js +11 -0
  243. package/dist/runtime/server/database/adapter.registry.d.ts +4 -0
  244. package/dist/runtime/server/database/adapter.registry.js +14 -0
  245. package/dist/{server → runtime/server}/database/database.contract.d.ts +1 -1
  246. package/dist/{server → runtime/server}/database/database.service.d.ts +3 -31
  247. package/dist/{server → runtime/server}/database/database.service.js +36 -50
  248. package/dist/runtime/server/database/index.d.ts +5 -0
  249. package/dist/runtime/server/database/index.js +25 -0
  250. package/dist/runtime/server/decorators/bind.d.ts +21 -0
  251. package/dist/runtime/server/decorators/bind.js +31 -0
  252. package/dist/runtime/server/decorators/command.d.ts +81 -0
  253. package/dist/runtime/server/decorators/command.js +32 -0
  254. package/dist/{server → runtime/server}/decorators/controller.d.ts +4 -3
  255. package/dist/runtime/server/decorators/controller.js +61 -0
  256. package/dist/runtime/server/decorators/export.d.ts +24 -0
  257. package/dist/runtime/server/decorators/export.js +32 -0
  258. package/dist/runtime/server/decorators/guard.d.ts +49 -0
  259. package/dist/{server → runtime/server}/decorators/guard.js +33 -32
  260. package/dist/{server → runtime/server}/decorators/index.d.ts +7 -4
  261. package/dist/{server → runtime/server}/decorators/index.js +8 -5
  262. package/dist/runtime/server/decorators/onFiveMEvent.d.ts +24 -0
  263. package/dist/runtime/server/decorators/onFiveMEvent.js +32 -0
  264. package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +22 -0
  265. package/dist/{server → runtime/server}/decorators/onFrameworkEvent.js +9 -9
  266. package/dist/runtime/server/decorators/onNet.d.ts +62 -0
  267. package/dist/runtime/server/decorators/onNet.js +15 -0
  268. package/dist/runtime/server/decorators/onTick.d.ts +21 -0
  269. package/dist/runtime/server/decorators/onTick.js +29 -0
  270. package/dist/runtime/server/decorators/public.d.ts +26 -0
  271. package/dist/{server → runtime/server}/decorators/public.js +15 -16
  272. package/dist/{server → runtime/server}/decorators/requiresState.d.ts +29 -22
  273. package/dist/runtime/server/decorators/requiresState.js +73 -0
  274. package/dist/runtime/server/decorators/throttle.d.ts +56 -0
  275. package/dist/{server → runtime/server}/decorators/throttle.js +31 -19
  276. package/dist/runtime/server/decorators/utils.d.ts +54 -0
  277. package/dist/runtime/server/decorators/utils.js +60 -0
  278. package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
  279. package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +12 -0
  280. package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
  281. package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +12 -0
  282. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
  283. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +11 -0
  284. package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
  285. package/dist/runtime/server/devmode/contracts/index.js +9 -0
  286. package/dist/runtime/server/devmode/dev-mode.service.d.ts +110 -0
  287. package/dist/runtime/server/devmode/dev-mode.service.js +324 -0
  288. package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
  289. package/dist/runtime/server/devmode/event-interceptor.service.js +232 -0
  290. package/dist/runtime/server/devmode/hot-reload.server.d.ts +74 -0
  291. package/dist/runtime/server/devmode/hot-reload.server.js +261 -0
  292. package/dist/runtime/server/devmode/index.d.ts +8 -0
  293. package/dist/runtime/server/devmode/index.js +32 -0
  294. package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
  295. package/dist/runtime/server/devmode/player-simulator.service.js +202 -0
  296. package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
  297. package/dist/runtime/server/devmode/state-inspector.service.js +183 -0
  298. package/dist/runtime/server/devmode/types.d.ts +161 -0
  299. package/dist/runtime/server/devmode/types.js +28 -0
  300. package/dist/runtime/server/entities/index.d.ts +2 -0
  301. package/dist/{server → runtime/server}/entities/index.js +1 -0
  302. package/dist/{server → runtime/server}/entities/player.d.ts +70 -3
  303. package/dist/{server → runtime/server}/entities/player.js +92 -14
  304. package/dist/runtime/server/entities/vehicle.d.ts +160 -0
  305. package/dist/runtime/server/entities/vehicle.js +261 -0
  306. package/dist/{server → runtime/server}/error-handler.d.ts +1 -1
  307. package/dist/{server → runtime/server}/error-handler.js +7 -8
  308. package/dist/runtime/server/helpers/command-validation.helper.d.ts +6 -0
  309. package/dist/runtime/server/helpers/command-validation.helper.js +72 -0
  310. package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
  311. package/dist/runtime/server/helpers/function-helper.js +15 -0
  312. package/dist/{server → runtime/server}/helpers/resolve-method.d.ts +1 -1
  313. package/dist/runtime/server/helpers/resolve-method.js +28 -0
  314. package/dist/{server → runtime/server}/index.d.ts +8 -6
  315. package/dist/{server → runtime/server}/index.js +14 -10
  316. package/dist/runtime/server/runtime.d.ts +408 -0
  317. package/dist/runtime/server/runtime.js +234 -0
  318. package/dist/runtime/server/services/access-control.service.d.ts +59 -0
  319. package/dist/runtime/server/services/access-control.service.js +127 -0
  320. package/dist/runtime/server/services/appearance.service.d.ts +99 -0
  321. package/dist/runtime/server/services/appearance.service.js +307 -0
  322. package/dist/runtime/server/services/chat.service.d.ts +33 -0
  323. package/dist/{server → runtime/server}/services/chat.service.js +26 -0
  324. package/dist/{server → runtime/server}/services/config.service.js +1 -1
  325. package/dist/runtime/server/services/core/command.service.d.ts +49 -0
  326. package/dist/runtime/server/services/core/command.service.js +112 -0
  327. package/dist/{server/services → runtime/server/services/core}/player.service.d.ts +48 -22
  328. package/dist/{server/services → runtime/server/services/core}/player.service.js +98 -14
  329. package/dist/runtime/server/services/core/principal.service.d.ts +28 -0
  330. package/dist/runtime/server/services/core/principal.service.js +126 -0
  331. package/dist/runtime/server/services/core/vehicle-modification.service.d.ts +104 -0
  332. package/dist/runtime/server/services/core/vehicle-modification.service.js +330 -0
  333. package/dist/runtime/server/services/core/vehicle.service.d.ts +128 -0
  334. package/dist/runtime/server/services/core/vehicle.service.js +391 -0
  335. package/dist/runtime/server/services/default/default-net-event-security-observer.d.ts +15 -0
  336. package/dist/runtime/server/services/default/default-net-event-security-observer.js +28 -0
  337. package/dist/runtime/server/services/default/default-security.handler.d.ts +19 -0
  338. package/dist/{server → runtime/server}/services/default/default-security.handler.js +15 -2
  339. package/dist/{server → runtime/server}/services/http/http.service.js +5 -5
  340. package/dist/runtime/server/services/index.d.ts +16 -0
  341. package/dist/runtime/server/services/index.js +39 -0
  342. package/dist/{server → runtime/server}/services/parallel/index.d.ts +2 -4
  343. package/dist/{server → runtime/server}/services/parallel/index.js +13 -15
  344. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.d.ts +1 -1
  345. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.js +2 -1
  346. package/dist/{server → runtime/server}/services/parallel/worker-pool.d.ts +1 -1
  347. package/dist/{server → runtime/server}/services/parallel/worker.d.ts +1 -1
  348. package/dist/{server → runtime/server}/services/persistence.service.d.ts +1 -1
  349. package/dist/{server → runtime/server}/services/persistence.service.js +13 -9
  350. package/dist/runtime/server/services/ports/command-execution.port.d.ts +41 -0
  351. package/dist/runtime/server/services/ports/command-execution.port.js +15 -0
  352. package/dist/runtime/server/services/ports/player-directory.port.d.ts +107 -0
  353. package/dist/runtime/server/services/ports/player-directory.port.js +23 -0
  354. package/dist/runtime/server/services/ports/player-session-lifecycle.port.d.ts +49 -0
  355. package/dist/runtime/server/services/ports/player-session-lifecycle.port.js +16 -0
  356. package/dist/runtime/server/services/ports/principal.port.d.ts +149 -0
  357. package/dist/runtime/server/services/ports/principal.port.js +32 -0
  358. package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
  359. package/dist/{server → runtime/server}/services/rate-limiter.service.js +18 -0
  360. package/dist/runtime/server/services/remote/remote-command.service.d.ts +63 -0
  361. package/dist/runtime/server/services/remote/remote-command.service.js +139 -0
  362. package/dist/runtime/server/services/remote/remote-player.service.d.ts +62 -0
  363. package/dist/runtime/server/services/remote/remote-player.service.js +191 -0
  364. package/dist/runtime/server/services/remote/remote-principal.provider.d.ts +55 -0
  365. package/dist/runtime/server/services/remote/remote-principal.provider.js +130 -0
  366. package/dist/runtime/server/services/remote/remote-principal.service.d.ts +33 -0
  367. package/dist/runtime/server/services/remote/remote-principal.service.js +99 -0
  368. package/dist/runtime/server/services/remote/server-bridge.d.ts +34 -0
  369. package/dist/runtime/server/services/remote/server-bridge.js +94 -0
  370. package/dist/runtime/server/services/services.register.d.ts +14 -0
  371. package/dist/runtime/server/services/services.register.js +98 -0
  372. package/dist/runtime/server/services/types/linked-id.d.ts +6 -0
  373. package/dist/runtime/server/services/types/player-session.object.d.ts +11 -0
  374. package/dist/runtime/server/services/vehicle-modification.service.d.ts +94 -0
  375. package/dist/runtime/server/services/vehicle-modification.service.js +310 -0
  376. package/dist/runtime/server/services/vehicle.service.d.ts +138 -0
  377. package/dist/runtime/server/services/vehicle.service.js +361 -0
  378. package/dist/runtime/server/setup.d.ts +10 -0
  379. package/dist/runtime/server/setup.js +33 -0
  380. package/dist/{server → runtime/server}/system/metadata-server.keys.d.ts +2 -0
  381. package/dist/{server → runtime/server}/system/metadata-server.keys.js +2 -0
  382. package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
  383. package/dist/runtime/server/system/processors/command.processor.js +54 -0
  384. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.d.ts +1 -1
  385. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.js +3 -3
  386. package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
  387. package/dist/{server → runtime/server}/system/processors/export.processor.js +15 -5
  388. package/dist/runtime/server/system/processors/fivemEvent.processor.d.ts +10 -0
  389. package/dist/{server → runtime/server}/system/processors/fivemEvent.processor.js +15 -5
  390. package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
  391. package/dist/runtime/server/system/processors/netEvent.processor.js +240 -0
  392. package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
  393. package/dist/{server → runtime/server}/system/processors/tick.processor.js +14 -4
  394. package/dist/runtime/server/system/processors.register.d.ts +2 -0
  395. package/dist/runtime/server/system/processors.register.js +37 -0
  396. package/dist/{server → runtime/server}/system/schema-generator.d.ts +1 -1
  397. package/dist/{server → runtime/server}/system/schema-generator.js +17 -8
  398. package/dist/{server/templates/admin → runtime/server/templates}/admin.controller-template.d.ts +1 -1
  399. package/dist/runtime/server/templates/index.d.ts +1 -0
  400. package/dist/runtime/server/templates/index.js +17 -0
  401. package/dist/runtime/server/types/core-exports.d.ts +285 -0
  402. package/dist/runtime/server/types/core-exports.js +2 -0
  403. package/dist/runtime/server/types/index.d.ts +4 -0
  404. package/dist/runtime/server/types/index.js +20 -0
  405. package/dist/runtime/server/types/security.types.js +2 -0
  406. package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
  407. package/dist/runtime/server/types/vehicle.types.js +2 -0
  408. package/package.json +30 -30
  409. package/dist/client/client-bootstrap.d.ts +0 -1
  410. package/dist/client/client-bootstrap.js +0 -50
  411. package/dist/client/client-core.d.ts +0 -1
  412. package/dist/client/client-core.js +0 -7
  413. package/dist/client/decorators/controller.d.ts +0 -3
  414. package/dist/client/decorators/controller.js +0 -14
  415. package/dist/client/decorators/export.d.ts +0 -7
  416. package/dist/client/decorators/export.js +0 -15
  417. package/dist/client/decorators/interval.d.ts +0 -7
  418. package/dist/client/decorators/interval.js +0 -15
  419. package/dist/client/decorators/key.d.ts +0 -2
  420. package/dist/client/decorators/key.js +0 -10
  421. package/dist/client/decorators/localEvent.d.ts +0 -7
  422. package/dist/client/decorators/localEvent.js +0 -15
  423. package/dist/client/decorators/nui.d.ts +0 -1
  424. package/dist/client/decorators/nui.js +0 -9
  425. package/dist/client/decorators/onNet.d.ts +0 -1
  426. package/dist/client/decorators/onNet.js +0 -9
  427. package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
  428. package/dist/client/decorators/resourceLifecycle.js +0 -24
  429. package/dist/client/decorators/tick.d.ts +0 -1
  430. package/dist/client/decorators/tick.js +0 -9
  431. package/dist/client/interfaces/appearance.interface.d.ts +0 -19
  432. package/dist/client/services/appearance.service.d.ts +0 -6
  433. package/dist/client/services/appearance.service.js +0 -89
  434. package/dist/server/bootstrap.js +0 -57
  435. package/dist/server/bus/core-event-bus.d.ts +0 -6
  436. package/dist/server/controllers/chat.controller.d.ts +0 -10
  437. package/dist/server/controllers/command.controller.d.ts +0 -7
  438. package/dist/server/controllers/command.controller.js +0 -47
  439. package/dist/server/controllers/session.controller.d.ts +0 -9
  440. package/dist/server/core.d.ts +0 -1
  441. package/dist/server/core.js +0 -7
  442. package/dist/server/database/index.d.ts +0 -53
  443. package/dist/server/database/index.js +0 -70
  444. package/dist/server/decorators/bind.d.ts +0 -2
  445. package/dist/server/decorators/bind.js +0 -15
  446. package/dist/server/decorators/command.d.ts +0 -49
  447. package/dist/server/decorators/command.js +0 -23
  448. package/dist/server/decorators/controller.js +0 -36
  449. package/dist/server/decorators/export.d.ts +0 -39
  450. package/dist/server/decorators/export.js +0 -47
  451. package/dist/server/decorators/guard.d.ts +0 -56
  452. package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
  453. package/dist/server/decorators/onFiveMEvent.js +0 -14
  454. package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
  455. package/dist/server/decorators/onNet.d.ts +0 -58
  456. package/dist/server/decorators/onNet.js +0 -57
  457. package/dist/server/decorators/onTick.d.ts +0 -32
  458. package/dist/server/decorators/onTick.js +0 -40
  459. package/dist/server/decorators/public.d.ts +0 -27
  460. package/dist/server/decorators/requiresState.js +0 -63
  461. package/dist/server/decorators/throttle.d.ts +0 -48
  462. package/dist/server/decorators/utils.d.ts +0 -57
  463. package/dist/server/decorators/utils.js +0 -63
  464. package/dist/server/entities/index.d.ts +0 -1
  465. package/dist/server/helpers/resolve-method.js +0 -18
  466. package/dist/server/loaders/exports.loader.d.ts +0 -0
  467. package/dist/server/loaders/exports.loader.js +0 -23
  468. package/dist/server/loaders/playerSession.loader.d.ts +0 -1
  469. package/dist/server/loaders/playerSession.loader.js +0 -51
  470. package/dist/server/services/access-control.service.d.ts +0 -56
  471. package/dist/server/services/access-control.service.js +0 -99
  472. package/dist/server/services/chat.service.d.ts +0 -7
  473. package/dist/server/services/command.service.d.ts +0 -15
  474. package/dist/server/services/command.service.js +0 -77
  475. package/dist/server/services/default/default-security.handler.d.ts +0 -6
  476. package/dist/server/services/index.d.ts +0 -10
  477. package/dist/server/services/index.js +0 -26
  478. package/dist/server/services/rate-limiter.service.d.ts +0 -5
  479. package/dist/server/services/registers.d.ts +0 -1
  480. package/dist/server/services/registers.js +0 -18
  481. package/dist/server/setup.d.ts +0 -9
  482. package/dist/server/setup.js +0 -28
  483. package/dist/server/system/processors/command.processor.d.ts +0 -9
  484. package/dist/server/system/processors/export.processor.d.ts +0 -7
  485. package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
  486. package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
  487. package/dist/server/system/processors/netEvent.processor.js +0 -103
  488. package/dist/server/system/processors/tick.processor.d.ts +0 -5
  489. package/dist/server/system/processors.register.d.ts +0 -1
  490. package/dist/server/system/processors.register.js +0 -23
  491. package/dist/server/templates/index.d.ts +0 -8
  492. package/dist/server/templates/persistence/index.d.ts +0 -30
  493. package/dist/server/templates/persistence/index.js +0 -34
  494. package/dist/shared/index.d.ts +0 -1
  495. package/dist/shared/logger/transports/index.d.ts +0 -3
  496. package/dist/shared/logger/transports/index.js +0 -19
  497. package/dist/utils/errors.d.ts +0 -14
  498. package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
  499. package/dist/{system → kernel/di}/class-constructor.js +0 -0
  500. package/dist/{server → kernel/di}/container.d.ts +0 -0
  501. package/dist/{server → kernel/di}/container.js +0 -0
  502. package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
  503. package/dist/{system → kernel/di}/decorator-processor.js +0 -0
  504. package/dist/{system → kernel/di}/metadata.scanner.js +0 -0
  505. package/dist/{shared → kernel/shared}/logger/logger.config.js +0 -0
  506. package/dist/{shared → kernel/shared}/logger/logger.service.js +0 -0
  507. package/dist/{shared → kernel/shared}/logger/logger.types.d.ts +0 -0
  508. package/dist/{shared → kernel/shared}/logger/logger.types.js +0 -0
  509. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.js +0 -0
  510. package/dist/{utils → kernel/utils}/result.js +0 -0
  511. package/dist/{utils → kernel/utils}/rgb.d.ts +0 -0
  512. package/dist/{utils → kernel/utils}/rgb.js +0 -0
  513. package/dist/{utils → kernel/utils}/vector3.d.ts +0 -0
  514. package/dist/{utils → kernel/utils}/vector3.js +0 -0
  515. package/dist/{client → runtime/client}/client-container.d.ts +0 -0
  516. package/dist/{client → runtime/client}/client-container.js +0 -0
  517. package/dist/{client → runtime/client}/controllers/spawner.controller.js +0 -0
  518. package/dist/{client → runtime/client}/decorators/gameEvent.js +0 -0
  519. package/dist/{client → runtime/client}/decorators/index.d.ts +5 -5
  520. package/dist/{client → runtime/client}/decorators/index.js +5 -5
  521. package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
  522. package/dist/{client → runtime/client}/services/blip.service.js +0 -0
  523. package/dist/{client → runtime/client}/services/marker.service.js +0 -0
  524. package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
  525. package/dist/{client → runtime/client}/services/notification.service.js +0 -0
  526. package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
  527. package/dist/{client → runtime/client}/services/progress.service.js +0 -0
  528. package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
  529. package/dist/{client → runtime/client}/services/streaming.service.js +0 -0
  530. package/dist/{client → runtime/client}/services/textui.service.js +0 -0
  531. package/dist/{client → runtime/client}/system/metadata-client.keys.d.ts +0 -0
  532. package/dist/{client → runtime/client}/system/metadata-client.keys.js +0 -0
  533. package/dist/{client → runtime/client}/system/processors/key.processor.js +0 -0
  534. package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
  535. package/dist/{client → runtime/client}/system/processors.register.js +6 -6
  536. /package/dist/{client → runtime/client}/types/game-events.d.ts +0 -0
  537. /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
  538. /package/dist/{client → runtime/client}/types/index.js +0 -0
  539. /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
  540. /package/dist/{server → runtime/server}/configs/api.config.js +0 -0
  541. /package/dist/{server → runtime/server}/configs/config.base.d.ts +0 -0
  542. /package/dist/{server → runtime/server}/configs/config.base.js +0 -0
  543. /package/dist/{server → runtime/server}/configs/index.d.ts +0 -0
  544. /package/dist/{server → runtime/server}/configs/index.js +0 -0
  545. /package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.js +0 -0
  546. /package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.js +0 -0
  547. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.d.ts +0 -0
  548. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.js +0 -0
  549. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.d.ts +0 -0
  550. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.js +0 -0
  551. /package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.js +0 -0
  552. /package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.js +0 -0
  553. /package/dist/{server → runtime/server}/database/database.contract.js +0 -0
  554. /package/dist/{server → runtime/server}/database/types.d.ts +0 -0
  555. /package/dist/{server → runtime/server}/database/types.js +0 -0
  556. /package/dist/{server → runtime/server}/database.d.ts +0 -0
  557. /package/dist/{server → runtime/server}/database.js +0 -0
  558. /package/dist/{server → runtime/server}/services/config.service.d.ts +0 -0
  559. /package/dist/{server → runtime/server}/services/http/http.service.d.ts +0 -0
  560. /package/dist/{server → runtime/server}/services/parallel/types.d.ts +0 -0
  561. /package/dist/{server → runtime/server}/services/parallel/types.js +0 -0
  562. /package/dist/{server → runtime/server}/services/parallel/worker-pool.js +0 -0
  563. /package/dist/{server → runtime/server}/services/parallel/worker.js +0 -0
  564. /package/dist/{client/interfaces/appearance.interface.js → runtime/server/services/types/linked-id.js} +0 -0
  565. /package/dist/{server/templates/admin/admin.controller-template.js → runtime/server/services/types/player-session.object.js} +0 -0
  566. /package/dist/{server/types/core-events.js → runtime/server/templates/admin.controller-template.js} +0 -0
  567. /package/dist/{server → runtime/server}/types/core-events.d.ts +0 -0
  568. /package/dist/{server/types/security.types.js → runtime/server/types/core-events.js} +0 -0
  569. /package/dist/{server → runtime/server}/types/security.types.d.ts +0 -0
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateRuntimeContextOrThrow = void 0;
4
+ exports.setRuntimeContext = setRuntimeContext;
5
+ exports.getRuntimeContext = getRuntimeContext;
6
+ exports.getFrameworkModeScope = getFrameworkModeScope;
7
+ exports.resolveRuntimeOptions = resolveRuntimeOptions;
8
+ exports.validateRuntimeOptions = validateRuntimeOptions;
9
+ const FEATURE_NAMES = [
10
+ 'players',
11
+ 'netEvents',
12
+ 'fiveMEvents',
13
+ 'commands',
14
+ 'exports',
15
+ 'http',
16
+ 'chat',
17
+ 'database',
18
+ 'principal',
19
+ 'auth',
20
+ 'sessionLifecycle',
21
+ ];
22
+ const FEATURE_ALLOWED_SCOPES = {
23
+ players: ['core', 'resource', 'standalone'],
24
+ netEvents: ['core', 'resource', 'standalone'],
25
+ fiveMEvents: ['core', 'resource', 'standalone'],
26
+ commands: ['core', 'resource', 'standalone'],
27
+ exports: ['core', 'resource', 'standalone'],
28
+ http: ['core', 'resource', 'standalone'],
29
+ chat: ['core', 'resource', 'standalone'],
30
+ database: ['core', 'resource', 'standalone'],
31
+ principal: ['core', 'resource', 'standalone'],
32
+ auth: ['core', 'resource', 'standalone'],
33
+ sessionLifecycle: ['core', 'standalone'],
34
+ };
35
+ let runtimeContext = null;
36
+ function setRuntimeContext(ctx) {
37
+ runtimeContext = ctx;
38
+ }
39
+ function getRuntimeContext() {
40
+ if (!runtimeContext) {
41
+ throw new Error('[OpenCore] RuntimeContext is not initialized. Call Server.init({ mode, ... }) before using the framework.');
42
+ }
43
+ return runtimeContext;
44
+ }
45
+ function getFrameworkModeScope(mode) {
46
+ if (mode === 'CORE')
47
+ return 'core';
48
+ if (mode === 'RESOURCE')
49
+ return 'resource';
50
+ return 'standalone';
51
+ }
52
+ function createDefaultFeatures(mode) {
53
+ const scope = getFrameworkModeScope(mode);
54
+ // Provider logic:
55
+ // - CORE/STANDALONE: All features use 'local' (run locally)
56
+ // - RESOURCE: Some features delegate to CORE ('core'), others run locally ('local')
57
+ const playersProvider = mode === 'RESOURCE' ? 'core' : 'local';
58
+ const commandsProvider = mode === 'RESOURCE' ? 'core' : 'local';
59
+ const principalProvider = mode === 'RESOURCE' ? 'core' : 'local';
60
+ const authProvider = mode === 'RESOURCE' ? 'core' : 'local';
61
+ // These always use 'local' regardless of mode
62
+ const netEventsProvider = 'local';
63
+ const fiveMEventsProvider = 'local';
64
+ const exportsProvider = 'local';
65
+ const httpProvider = 'local';
66
+ const chatProvider = 'local';
67
+ const databaseProvider = 'local';
68
+ const sessionLifecycleProvider = 'local';
69
+ const sessionLifecycleEnabled = mode !== 'RESOURCE';
70
+ // Features that should auto-export in CORE mode for RESOURCE access
71
+ const commandsExport = mode === 'CORE';
72
+ const playersExport = mode === 'CORE';
73
+ const principalExport = mode === 'CORE';
74
+ return {
75
+ players: {
76
+ enabled: true,
77
+ provider: playersProvider,
78
+ export: playersExport,
79
+ scope,
80
+ required: false,
81
+ },
82
+ netEvents: {
83
+ enabled: true,
84
+ provider: netEventsProvider,
85
+ export: false,
86
+ scope,
87
+ required: false,
88
+ },
89
+ fiveMEvents: {
90
+ enabled: sessionLifecycleEnabled,
91
+ provider: fiveMEventsProvider,
92
+ export: false,
93
+ scope,
94
+ required: false,
95
+ },
96
+ commands: {
97
+ enabled: false,
98
+ provider: commandsProvider,
99
+ export: commandsExport,
100
+ scope,
101
+ required: false,
102
+ },
103
+ exports: { enabled: false, provider: exportsProvider, export: false, scope, required: false },
104
+ http: { enabled: false, provider: httpProvider, export: false, scope, required: false },
105
+ chat: { enabled: false, provider: chatProvider, export: false, scope, required: false },
106
+ database: { enabled: false, provider: databaseProvider, export: false, scope, required: false },
107
+ principal: {
108
+ enabled: false,
109
+ provider: principalProvider,
110
+ export: principalExport,
111
+ scope,
112
+ required: false,
113
+ },
114
+ auth: { enabled: false, provider: authProvider, export: false, scope, required: false },
115
+ sessionLifecycle: {
116
+ enabled: sessionLifecycleEnabled,
117
+ provider: sessionLifecycleProvider,
118
+ export: false,
119
+ scope,
120
+ required: false,
121
+ },
122
+ };
123
+ }
124
+ function resolveRuntimeOptions(options) {
125
+ var _a;
126
+ const defaults = createDefaultFeatures(options.mode);
127
+ const features = Object.assign({}, defaults);
128
+ if (options.features) {
129
+ for (const name of FEATURE_NAMES) {
130
+ const override = options.features[name];
131
+ if (!override)
132
+ continue;
133
+ features[name] = Object.assign(Object.assign({}, defaults[name]), override);
134
+ }
135
+ }
136
+ return {
137
+ mode: options.mode,
138
+ features,
139
+ coreResourceName: (_a = options.coreResourceName) !== null && _a !== void 0 ? _a : 'core',
140
+ resourceGrants: options.resourceGrants,
141
+ devMode: options.devMode,
142
+ };
143
+ }
144
+ function assertFeatureKeys(features) {
145
+ const keys = Object.keys(features);
146
+ for (const key of keys) {
147
+ if (!FEATURE_NAMES.includes(key)) {
148
+ throw new Error(`[OpenCore] Unknown feature: '${key}'`);
149
+ }
150
+ }
151
+ }
152
+ function validateRuntimeOptions(options) {
153
+ var _a;
154
+ const { mode, features } = options;
155
+ assertFeatureKeys(features);
156
+ // If in RESOURCE mode, must have coreResourceName
157
+ if (mode === 'RESOURCE' && !options.coreResourceName) {
158
+ throw new Error('[OpenCore] RESOURCE mode requires coreResourceName to be specified');
159
+ }
160
+ // Determine which features need CORE exports in RESOURCE mode
161
+ const needsCoreExports = mode === 'RESOURCE' &&
162
+ (features.players.provider === 'core' ||
163
+ features.commands.provider === 'core' ||
164
+ features.principal.provider === 'core' ||
165
+ features.auth.provider === 'core');
166
+ // Validate coreResourceName exists if needed
167
+ if (mode === 'RESOURCE') {
168
+ const { coreResourceName } = options;
169
+ if (needsCoreExports) {
170
+ const core = (_a = globalThis.exports) === null || _a === void 0 ? void 0 : _a[coreResourceName];
171
+ if (!core) {
172
+ throw new Error(`[OpenCore] CORE resource '${coreResourceName}' not found. Ensure it is started before RESOURCE mode resources.`);
173
+ }
174
+ }
175
+ }
176
+ const scope = getFrameworkModeScope(mode);
177
+ for (const name of FEATURE_NAMES) {
178
+ const f = features[name];
179
+ if (!f.enabled) {
180
+ if (f.required) {
181
+ throw new Error(`[OpenCore] Feature '${name}' is required but disabled`);
182
+ }
183
+ continue;
184
+ }
185
+ const allowedScopes = FEATURE_ALLOWED_SCOPES[name];
186
+ if (!allowedScopes.includes(scope)) {
187
+ throw new Error(`[OpenCore] Feature '${name}' is not allowed in scope '${scope}' (allowed: ${allowedScopes.join(', ')})`);
188
+ }
189
+ if (f.scope !== scope) {
190
+ throw new Error(`[OpenCore] Invalid scope for feature '${name}': expected '${scope}' for mode '${mode}', received '${f.scope}'`);
191
+ }
192
+ if (f.export && !features.exports.enabled) {
193
+ throw new Error(`[OpenCore] Feature '${name}' cannot be exported when 'exports' is disabled`);
194
+ }
195
+ // Validate provider combinations
196
+ if (mode === 'CORE' && f.provider === 'core') {
197
+ throw new Error(`[OpenCore] Feature '${name}' cannot use provider='core' in CORE mode (use 'local' instead)`);
198
+ }
199
+ if (mode === 'RESOURCE' && f.provider === 'core' && f.export) {
200
+ throw new Error(`[OpenCore] Feature '${name}' cannot set export=true when provider='core' in RESOURCE mode`);
201
+ }
202
+ }
203
+ // Feature-specific validations
204
+ if (features.players.enabled && mode === 'RESOURCE' && features.players.provider !== 'core') {
205
+ throw new Error(`[OpenCore] Feature 'players' must use provider 'core' in RESOURCE mode`);
206
+ }
207
+ if (features.principal.enabled && mode === 'RESOURCE' && features.principal.provider !== 'core') {
208
+ throw new Error(`[OpenCore] Feature 'principal' must use provider 'core' in RESOURCE mode`);
209
+ }
210
+ if (features.auth.enabled && mode === 'RESOURCE' && features.auth.provider !== 'core') {
211
+ throw new Error(`[OpenCore] Feature 'auth' must use provider 'core' in RESOURCE mode`);
212
+ }
213
+ if (features.commands.enabled && mode === 'RESOURCE' && features.commands.provider !== 'core') {
214
+ throw new Error(`[OpenCore] Feature 'commands' must use provider 'core' in RESOURCE mode`);
215
+ }
216
+ // Commands export validation
217
+ if (features.commands.export && mode !== 'CORE') {
218
+ throw new Error(`[OpenCore] Feature 'commands' can only be exported in CORE mode (current mode: '${mode}')`);
219
+ }
220
+ // Validate dependencies
221
+ if (features.commands.enabled && !features.players.enabled) {
222
+ throw new Error(`[OpenCore] Feature 'commands' requires 'players' to be enabled`);
223
+ }
224
+ if (features.netEvents.enabled && !features.players.enabled) {
225
+ throw new Error(`[OpenCore] Feature 'netEvents' requires 'players' to be enabled`);
226
+ }
227
+ if (features.chat.enabled && !features.players.enabled) {
228
+ throw new Error(`[OpenCore] Feature 'chat' requires 'players' to be enabled`);
229
+ }
230
+ }
231
+ /**
232
+ * @deprecated Use validateRuntimeOptions instead
233
+ */
234
+ exports.validateRuntimeContextOrThrow = validateRuntimeOptions;
@@ -0,0 +1,59 @@
1
+ import { Server } from '../../..'
2
+ import { PrincipalProviderContract } from '../contracts'
3
+ /**
4
+ * **Core Security Service**
5
+ *
6
+ * This service acts as the central enforcement point for the Access Control system.
7
+ * It uses the configured `PrincipalProvider` to query roles and validates them against requirements.
8
+ *
9
+ * It is primarily used internally by the `@Guard` decorator, but can be injected
10
+ * into services to perform manual checks.
11
+ */
12
+ export declare class AccessControlService {
13
+ private readonly principalProvider
14
+ constructor(principalProvider: PrincipalProviderContract)
15
+ /**
16
+ * Verifies if a player meets a minimum numeric rank requirement.
17
+ *
18
+ * @param player - The target player.
19
+ * @param minRank - The minimum numeric value required (Inclusive).
20
+ *
21
+ * @returns `true` if `Principal.rank >= minRank`.
22
+ *
23
+ * @throws {AppError} code `UNAUTHORIZED` if the player has no Principal (not logged in).
24
+ * @throws {AppError} code `NO_RANK_IN_PRINCIPAL` if the Principal exists but has no `rank` defined.
25
+ */
26
+ hasRank(player: Server.Player, minRank: number): Promise<boolean>
27
+ /**
28
+ * Verifies if a player possesses a specific permission string.
29
+ *
30
+ * @remarks
31
+ * This method supports the **Wildcard ('*')** permission. If the principal has `'*'`
32
+ * in their permissions array, this method always returns `true`.
33
+ *
34
+ * @param player - The target player.
35
+ * @param permission - The specific permission key (e.g., `'admin.ban'`).
36
+ * @returns `true` if the player has the permission or the wildcard.
37
+ */
38
+ hasPermission(player: Server.Player, permission: string): Promise<boolean>
39
+ /**
40
+ * **Strict Enforcement**
41
+ *
42
+ * Validates a set of requirements against a player. If any requirement fails,
43
+ * it throws an exception, halting the execution flow.
44
+ *
45
+ * Used primarily by the `@Guard` decorator logic.
46
+ *
47
+ * @param player - The server player to validate.
48
+ * @param requirements - An object containing rank and/or permission constraints.
49
+ *
50
+ * @throws {AppError} code `PERMISSION_DENIED` if validation fails.
51
+ */
52
+ enforce(
53
+ player: Server.Player,
54
+ requirements: {
55
+ minRank?: number
56
+ permission?: string
57
+ },
58
+ ): Promise<void>
59
+ }
@@ -0,0 +1,127 @@
1
+ 'use strict'
2
+ var __decorate =
3
+ (this && this.__decorate) ||
4
+ function (decorators, target, key, desc) {
5
+ var c = arguments.length,
6
+ r =
7
+ c < 3
8
+ ? target
9
+ : desc === null
10
+ ? (desc = Object.getOwnPropertyDescriptor(target, key))
11
+ : desc,
12
+ d
13
+ if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
14
+ r = Reflect.decorate(decorators, target, key, desc)
15
+ else
16
+ for (var i = decorators.length - 1; i >= 0; i--)
17
+ if ((d = decorators[i]))
18
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r
19
+ return c > 3 && r && Object.defineProperty(target, key, r), r
20
+ }
21
+ var __metadata =
22
+ (this && this.__metadata) ||
23
+ ((k, v) => {
24
+ if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function')
25
+ return Reflect.metadata(k, v)
26
+ })
27
+ Object.defineProperty(exports, '__esModule', { value: true })
28
+ exports.AccessControlService = void 0
29
+ const tsyringe_1 = require('tsyringe')
30
+ const utils_1 = require('../../../kernel/utils')
31
+ const contracts_1 = require('../contracts')
32
+ /**
33
+ * **Core Security Service**
34
+ *
35
+ * This service acts as the central enforcement point for the Access Control system.
36
+ * It uses the configured `PrincipalProvider` to query roles and validates them against requirements.
37
+ *
38
+ * It is primarily used internally by the `@Guard` decorator, but can be injected
39
+ * into services to perform manual checks.
40
+ */
41
+ let AccessControlService = class AccessControlService {
42
+ constructor(principalProvider) {
43
+ this.principalProvider = principalProvider
44
+ }
45
+ /**
46
+ * Verifies if a player meets a minimum numeric rank requirement.
47
+ *
48
+ * @param player - The target player.
49
+ * @param minRank - The minimum numeric value required (Inclusive).
50
+ *
51
+ * @returns `true` if `Principal.rank >= minRank`.
52
+ *
53
+ * @throws {AppError} code `UNAUTHORIZED` if the player has no Principal (not logged in).
54
+ * @throws {AppError} code `NO_RANK_IN_PRINCIPAL` if the Principal exists but has no `rank` defined.
55
+ */
56
+ async hasRank(player, minRank) {
57
+ const principal = await this.principalProvider.getPrincipal(player)
58
+ if (!principal) throw new utils_1.AppError('AUTH:UNAUTHORIZED', 'No principal found', 'core')
59
+ if (principal.rank === undefined)
60
+ throw new utils_1.AppError(
61
+ 'GAME:NO_RANK_IN_PRINCIPAL',
62
+ "You're trying to compare a Principal rank, but there's no defined rank! ",
63
+ 'core',
64
+ )
65
+ return principal.rank >= minRank
66
+ }
67
+ /**
68
+ * Verifies if a player possesses a specific permission string.
69
+ *
70
+ * @remarks
71
+ * This method supports the **Wildcard ('*')** permission. If the principal has `'*'`
72
+ * in their permissions array, this method always returns `true`.
73
+ *
74
+ * @param player - The target player.
75
+ * @param permission - The specific permission key (e.g., `'admin.ban'`).
76
+ * @returns `true` if the player has the permission or the wildcard.
77
+ */
78
+ async hasPermission(player, permission) {
79
+ const principal = await this.principalProvider.getPrincipal(player)
80
+ if (!principal) return false
81
+ if (principal.permissions.includes('*')) return true
82
+ return principal.permissions.includes(permission)
83
+ }
84
+ /**
85
+ * **Strict Enforcement**
86
+ *
87
+ * Validates a set of requirements against a player. If any requirement fails,
88
+ * it throws an exception, halting the execution flow.
89
+ *
90
+ * Used primarily by the `@Guard` decorator logic.
91
+ *
92
+ * @param player - The server player to validate.
93
+ * @param requirements - An object containing rank and/or permission constraints.
94
+ *
95
+ * @throws {AppError} code `PERMISSION_DENIED` if validation fails.
96
+ */
97
+ async enforce(player, requirements) {
98
+ if (requirements.minRank !== undefined) {
99
+ const hasRank = await this.hasRank(player, requirements.minRank)
100
+ if (!hasRank) {
101
+ throw new utils_1.AppError(
102
+ 'AUTH:PERMISSION_DENIED',
103
+ `Access Denied: Requires minimum rank level ${requirements.minRank}`,
104
+ 'core',
105
+ )
106
+ }
107
+ }
108
+ if (requirements.permission) {
109
+ const hasPerm = await this.hasPermission(player, requirements.permission)
110
+ if (!hasPerm) {
111
+ throw new utils_1.AppError(
112
+ 'AUTH:PERMISSION_DENIED',
113
+ `Access Denied: Missing required permission '${requirements.permission}'`,
114
+ 'core',
115
+ )
116
+ }
117
+ }
118
+ }
119
+ }
120
+ exports.AccessControlService = AccessControlService
121
+ exports.AccessControlService = AccessControlService = __decorate(
122
+ [
123
+ (0, tsyringe_1.injectable)(),
124
+ __metadata('design:paramtypes', [contracts_1.PrincipalProviderContract]),
125
+ ],
126
+ AccessControlService,
127
+ )
@@ -0,0 +1,99 @@
1
+ import { INetTransport } from '../../../adapters/contracts/INetTransport';
2
+ import { IPedAppearanceServer } from '../../../adapters/contracts/IPedAppearanceServer';
3
+ import { IPlayerServer } from '../../../adapters/contracts/IPlayerServer';
4
+ import { AppearanceValidationResult, PlayerAppearance } from '../../../kernel/shared';
5
+ /**
6
+ * Server-side appearance management service.
7
+ *
8
+ * @remarks
9
+ * Handles validating and applying ped appearance data on the server.
10
+ * Provides security validation and server-authoritative appearance control.
11
+ *
12
+ * **Security Model:**
13
+ * - All appearance changes should be validated server-side
14
+ * - Server applies components/props directly (available natives)
15
+ * - Server emits events to client for client-only natives (headBlend, overlays, tattoos)
16
+ * - Client never sends appearance data directly to other clients
17
+ *
18
+ * **Persistence:**
19
+ * The framework does NOT handle persistence internally.
20
+ * After calling `applyAppearance`, you receive the validated data back.
21
+ * You decide when and where to save it (database, file, etc.).
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * // Apply appearance to a player
26
+ * const result = await appearanceService.applyAppearance(playerSrc, appearanceData)
27
+ * if (result.success) {
28
+ * // Save to your database
29
+ * await myDatabase.saveAppearance(playerId, result.appearance)
30
+ * }
31
+ *
32
+ * // Validate appearance without applying
33
+ * const validation = appearanceService.validateAppearance(appearanceData)
34
+ * if (!validation.valid) {
35
+ * console.log('Errors:', validation.errors)
36
+ * }
37
+ * ```
38
+ */
39
+ export declare class AppearanceService {
40
+ private readonly pedAdapter;
41
+ private readonly playerServer;
42
+ private readonly netTransport;
43
+ constructor(pedAdapter: IPedAppearanceServer, playerServer: IPlayerServer, netTransport: INetTransport);
44
+ /**
45
+ * Applies validated appearance to a player.
46
+ *
47
+ * @remarks
48
+ * This method:
49
+ * 1. Validates the appearance data
50
+ * 2. Applies server-side natives (components, props)
51
+ * 3. Emits event to client for client-only natives
52
+ * 4. Returns the validated appearance for persistence
53
+ *
54
+ * @param playerSrc - Player source/client ID
55
+ * @param appearance - Appearance data to apply
56
+ * @returns Result with success status and validated appearance
57
+ */
58
+ applyAppearance(playerSrc: string, appearance: PlayerAppearance): Promise<{
59
+ success: boolean;
60
+ appearance?: PlayerAppearance;
61
+ errors?: string[];
62
+ }>;
63
+ /**
64
+ * Applies only components and props (server-side available natives).
65
+ *
66
+ * @remarks
67
+ * Use this for quick clothing changes without full appearance update.
68
+ *
69
+ * @param playerSrc - Player source/client ID
70
+ * @param appearance - Partial appearance with components/props only
71
+ * @returns Success status
72
+ */
73
+ applyClothing(playerSrc: string, appearance: Pick<PlayerAppearance, 'components' | 'props'>): boolean;
74
+ /**
75
+ * Resets a player's appearance to default.
76
+ *
77
+ * @param playerSrc - Player source/client ID
78
+ * @returns Success status
79
+ */
80
+ resetAppearance(playerSrc: string): boolean;
81
+ /**
82
+ * Validates appearance data without applying it.
83
+ *
84
+ * @remarks
85
+ * Use this to validate appearance data before storing or applying.
86
+ * All validation rules are enforced to prevent invalid/malicious data.
87
+ *
88
+ * @param appearance - Appearance data to validate
89
+ * @returns Validation result with errors if any
90
+ */
91
+ validateAppearance(appearance: Partial<PlayerAppearance>): AppearanceValidationResult;
92
+ /**
93
+ * Applies server-side appearance natives (components and props only).
94
+ *
95
+ * @param ped - Ped entity handle
96
+ * @param appearance - Appearance data
97
+ */
98
+ private applyServerSideAppearance;
99
+ }