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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/README.md +217 -360
  2. package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
  3. package/dist/adapters/contracts/IEngineEvents.js +6 -0
  4. package/dist/adapters/contracts/IEntityServer.d.ts +88 -0
  5. package/dist/adapters/contracts/IEntityServer.js +13 -0
  6. package/dist/adapters/contracts/IExports.d.ts +4 -0
  7. package/dist/adapters/contracts/IExports.js +6 -0
  8. package/dist/adapters/contracts/IHasher.d.ts +15 -0
  9. package/dist/adapters/contracts/IHasher.js +12 -0
  10. package/dist/adapters/contracts/INetTransport.d.ts +8 -0
  11. package/dist/adapters/contracts/INetTransport.js +6 -0
  12. package/dist/adapters/contracts/IPedAppearanceClient.d.ts +206 -0
  13. package/dist/adapters/contracts/IPedAppearanceClient.js +16 -0
  14. package/dist/adapters/contracts/IPedAppearanceServer.d.ts +45 -0
  15. package/dist/adapters/contracts/IPedAppearanceServer.js +16 -0
  16. package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
  17. package/dist/adapters/contracts/IPlayerInfo.js +6 -0
  18. package/dist/adapters/contracts/IPlayerServer.d.ts +73 -0
  19. package/dist/adapters/contracts/IPlayerServer.js +13 -0
  20. package/dist/adapters/contracts/IResourceInfo.d.ts +3 -0
  21. package/dist/adapters/contracts/IResourceInfo.js +6 -0
  22. package/dist/adapters/contracts/ITick.d.ts +10 -0
  23. package/dist/adapters/contracts/ITick.js +9 -0
  24. package/dist/adapters/contracts/IVehicleServer.d.ts +55 -0
  25. package/dist/adapters/contracts/IVehicleServer.js +13 -0
  26. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.d.ts +2 -2
  27. package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.js +2 -2
  28. package/dist/adapters/database/resource.adapter.d.ts +12 -0
  29. package/dist/adapters/database/resource.adapter.js +68 -0
  30. package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
  31. package/dist/adapters/fivem/fivem-engine-events.js +13 -0
  32. package/dist/adapters/fivem/fivem-entity-server.d.ts +22 -0
  33. package/dist/adapters/fivem/fivem-entity-server.js +80 -0
  34. package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
  35. package/dist/adapters/fivem/fivem-exports.js +14 -0
  36. package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
  37. package/dist/adapters/fivem/fivem-hasher.js +23 -0
  38. package/dist/adapters/fivem/fivem-net-transport.d.ts +5 -0
  39. package/dist/adapters/fivem/fivem-net-transport.js +24 -0
  40. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
  41. package/dist/adapters/fivem/fivem-ped-appearance-client.js +84 -0
  42. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
  43. package/dist/adapters/fivem/fivem-ped-appearance-server.js +26 -0
  44. package/dist/adapters/fivem/fivem-player-server.d.ts +15 -0
  45. package/dist/adapters/fivem/fivem-player-server.js +63 -0
  46. package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
  47. package/dist/adapters/fivem/fivem-playerinfo.js +14 -0
  48. package/dist/adapters/fivem/fivem-resourceinfo.d.ts +4 -0
  49. package/dist/adapters/fivem/fivem-resourceinfo.js +16 -0
  50. package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
  51. package/dist/adapters/fivem/fivem-tick.js +22 -0
  52. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
  53. package/dist/adapters/fivem/fivem-vehicle-server.js +47 -0
  54. package/dist/adapters/index.d.ts +15 -0
  55. package/dist/adapters/index.js +40 -0
  56. package/dist/adapters/node/index.d.ts +8 -0
  57. package/dist/adapters/node/index.js +19 -0
  58. package/dist/adapters/node/node-engine-events.d.ts +20 -0
  59. package/dist/adapters/node/node-engine-events.js +42 -0
  60. package/dist/adapters/node/node-entity-server.d.ts +26 -0
  61. package/dist/adapters/node/node-entity-server.js +101 -0
  62. package/dist/adapters/node/node-exports.d.ts +26 -0
  63. package/dist/adapters/node/node-exports.js +63 -0
  64. package/dist/adapters/node/node-hasher.d.ts +12 -0
  65. package/dist/adapters/node/node-hasher.js +39 -0
  66. package/dist/adapters/node/node-net-transport.d.ts +18 -0
  67. package/dist/adapters/node/node-net-transport.js +57 -0
  68. package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
  69. package/dist/adapters/node/node-ped-appearance-client.js +59 -0
  70. package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
  71. package/dist/adapters/node/node-ped-appearance-server.js +18 -0
  72. package/dist/adapters/node/node-player-server.d.ts +27 -0
  73. package/dist/adapters/node/node-player-server.js +82 -0
  74. package/dist/adapters/node/node-playerinfo.d.ts +6 -0
  75. package/dist/adapters/node/node-playerinfo.js +12 -0
  76. package/dist/adapters/node/node-resourceinfo.d.ts +12 -0
  77. package/dist/adapters/node/node-resourceinfo.js +27 -0
  78. package/dist/adapters/node/node-tick.d.ts +10 -0
  79. package/dist/{server/system/processors/command.processor.js → adapters/node/node-tick.js} +27 -14
  80. package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
  81. package/dist/adapters/node/node-vehicle-server.js +93 -0
  82. package/dist/adapters/register-capabilities.d.ts +11 -0
  83. package/dist/adapters/register-capabilities.js +148 -0
  84. package/dist/adapters/register-client-capabilities.d.ts +8 -0
  85. package/dist/adapters/register-client-capabilities.js +56 -0
  86. package/dist/index.d.ts +5 -4
  87. package/dist/index.js +9 -5
  88. package/dist/kernel/di/index.d.ts +4 -0
  89. package/dist/kernel/di/index.js +20 -0
  90. package/dist/{system → kernel/di}/metadata.scanner.d.ts +1 -2
  91. package/dist/kernel/di/tokens.d.ts +30 -0
  92. package/dist/kernel/di/tokens.js +38 -0
  93. package/dist/kernel/index.d.ts +7 -0
  94. package/dist/kernel/index.js +30 -0
  95. package/dist/kernel/schema/index.d.ts +32 -0
  96. package/dist/kernel/schema/index.js +5 -0
  97. package/dist/kernel/shared/appearance/appearance.interface.d.ts +276 -0
  98. package/dist/kernel/shared/appearance/appearance.interface.js +77 -0
  99. package/dist/kernel/shared/appearance/index.d.ts +1 -0
  100. package/dist/kernel/shared/appearance/index.js +17 -0
  101. package/dist/kernel/shared/index.d.ts +2 -0
  102. package/dist/{shared → kernel/shared}/index.js +1 -0
  103. package/dist/{shared → kernel/shared}/logger/core-logger.d.ts +13 -0
  104. package/dist/{shared → kernel/shared}/logger/core-logger.js +38 -9
  105. package/dist/{shared → kernel/shared}/logger/index.d.ts +12 -9
  106. package/dist/{shared → kernel/shared}/logger/index.js +24 -15
  107. package/dist/{shared → kernel/shared}/logger/logger.config.d.ts +1 -1
  108. package/dist/kernel/shared/logger/logger.env.d.ts +28 -0
  109. package/dist/kernel/shared/logger/logger.env.js +51 -0
  110. package/dist/{shared → kernel/shared}/logger/logger.service.d.ts +2 -2
  111. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.d.ts +2 -2
  112. package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.js +1 -1
  113. package/dist/{shared → kernel/shared}/logger/transports/console.transport.d.ts +2 -2
  114. package/dist/{shared → kernel/shared}/logger/transports/console.transport.js +1 -0
  115. package/dist/kernel/shared/logger/transports/dev-transport.factory.d.ts +75 -0
  116. package/dist/kernel/shared/logger/transports/dev-transport.factory.js +111 -0
  117. package/dist/kernel/shared/logger/transports/http.transport.d.ts +67 -0
  118. package/dist/kernel/shared/logger/transports/http.transport.js +170 -0
  119. package/dist/kernel/shared/logger/transports/index.d.ts +7 -0
  120. package/dist/kernel/shared/logger/transports/index.js +34 -0
  121. package/dist/kernel/shared/logger/transports/simple-console.transport.d.ts +38 -0
  122. package/dist/kernel/shared/logger/transports/simple-console.transport.js +93 -0
  123. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.d.ts +1 -1
  124. package/dist/kernel/shared/logger/transports/websocket.transport.d.ts +69 -0
  125. package/dist/kernel/shared/logger/transports/websocket.transport.js +169 -0
  126. package/dist/kernel/utils/error/app.error.d.ts +9 -0
  127. package/dist/{utils/errors.js → kernel/utils/error/app.error.js} +1 -9
  128. package/dist/kernel/utils/error/security.error.d.ts +6 -0
  129. package/dist/kernel/utils/error/security.error.js +12 -0
  130. package/dist/{utils → kernel/utils}/index.d.ts +3 -2
  131. package/dist/{utils → kernel/utils}/index.js +3 -2
  132. package/dist/{utils → kernel/utils}/result.d.ts +1 -1
  133. package/dist/runtime/client/client-bootstrap.d.ts +7 -0
  134. package/dist/runtime/client/client-bootstrap.js +180 -0
  135. package/dist/runtime/client/client-core.d.ts +19 -0
  136. package/dist/runtime/client/client-core.js +24 -0
  137. package/dist/runtime/client/client-runtime.d.ts +58 -0
  138. package/dist/runtime/client/client-runtime.js +32 -0
  139. package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
  140. package/dist/runtime/client/controllers/appearance.controller.js +50 -0
  141. package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
  142. package/dist/runtime/client/controllers/player-sync.controller.js +54 -0
  143. package/dist/{client → runtime/client}/controllers/spawner.controller.d.ts +1 -1
  144. package/dist/runtime/client/decorators/controller.d.ts +20 -0
  145. package/dist/runtime/client/decorators/controller.js +55 -0
  146. package/dist/runtime/client/decorators/export.d.ts +21 -0
  147. package/dist/runtime/client/decorators/export.js +29 -0
  148. package/dist/{client → runtime/client}/decorators/gameEvent.d.ts +2 -2
  149. package/dist/runtime/client/decorators/interval.d.ts +23 -0
  150. package/dist/runtime/client/decorators/interval.js +31 -0
  151. package/dist/runtime/client/decorators/key.d.ts +23 -0
  152. package/dist/runtime/client/decorators/key.js +31 -0
  153. package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
  154. package/dist/runtime/client/decorators/localEvent.js +29 -0
  155. package/dist/runtime/client/decorators/nui.d.ts +21 -0
  156. package/dist/runtime/client/decorators/nui.js +29 -0
  157. package/dist/runtime/client/decorators/onNet.d.ts +21 -0
  158. package/dist/runtime/client/decorators/onNet.js +29 -0
  159. package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
  160. package/dist/runtime/client/decorators/resourceLifecycle.js +53 -0
  161. package/dist/runtime/client/decorators/tick.d.ts +21 -0
  162. package/dist/runtime/client/decorators/tick.js +29 -0
  163. package/dist/{client → runtime/client}/index.d.ts +2 -2
  164. package/dist/{client → runtime/client}/index.js +4 -2
  165. package/dist/runtime/client/interfaces/appearance.interface.d.ts +25 -0
  166. package/dist/runtime/client/interfaces/appearance.interface.js +2 -0
  167. package/dist/{client → runtime/client}/player/player.d.ts +1 -1
  168. package/dist/{client → runtime/client}/player/player.js +5 -6
  169. package/dist/{client → runtime/client}/player/player.loader.js +2 -2
  170. package/dist/runtime/client/services/appearance.service.d.ts +132 -0
  171. package/dist/runtime/client/services/appearance.service.js +328 -0
  172. package/dist/{client → runtime/client}/services/blip.service.d.ts +1 -1
  173. package/dist/{client → runtime/client}/services/index.d.ts +6 -5
  174. package/dist/{client → runtime/client}/services/index.js +6 -5
  175. package/dist/{client → runtime/client}/services/marker.service.d.ts +1 -1
  176. package/dist/{client → runtime/client}/services/ped.service.d.ts +1 -1
  177. package/dist/{client → runtime/client}/services/ped.service.js +3 -2
  178. package/dist/{client → runtime/client}/services/spawn.service.d.ts +2 -2
  179. package/dist/{client → runtime/client}/services/spawn.service.js +4 -8
  180. package/dist/{client → runtime/client}/services/textui.service.d.ts +1 -1
  181. package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
  182. package/dist/runtime/client/services/vehicle-client.service.js +485 -0
  183. package/dist/{client → runtime/client}/services/vehicle.service.d.ts +2 -2
  184. package/dist/{client → runtime/client}/services/vehicle.service.js +1 -1
  185. package/dist/{client → runtime/client}/system/processors/export.processor.d.ts +1 -1
  186. package/dist/{client → runtime/client}/system/processors/export.processor.js +1 -1
  187. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.d.ts +1 -1
  188. package/dist/{client → runtime/client}/system/processors/gameEvent.processor.js +2 -2
  189. package/dist/{client → runtime/client}/system/processors/interval.processor.d.ts +1 -1
  190. package/dist/{client → runtime/client}/system/processors/interval.processor.js +1 -1
  191. package/dist/{client → runtime/client}/system/processors/key.processor.d.ts +1 -1
  192. package/dist/{client → runtime/client}/system/processors/localEvent.processor.d.ts +1 -1
  193. package/dist/{client → runtime/client}/system/processors/localEvent.processor.js +1 -1
  194. package/dist/{client → runtime/client}/system/processors/netEvent.processor.d.ts +1 -1
  195. package/dist/{client → runtime/client}/system/processors/netEvent.processor.js +1 -1
  196. package/dist/{client → runtime/client}/system/processors/nui.processor.d.ts +1 -1
  197. package/dist/{client → runtime/client}/system/processors/nui.processor.js +1 -1
  198. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.d.ts +1 -1
  199. package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.js +1 -1
  200. package/dist/{client → runtime/client}/system/processors/tick.processor.d.ts +1 -1
  201. package/dist/{client → runtime/client}/system/processors/tick.processor.js +1 -1
  202. package/dist/{client → runtime/client}/types/game-events.js +0 -8
  203. package/dist/{client → runtime/client}/ui-bridge.js +1 -1
  204. package/dist/runtime/index.d.ts +2 -0
  205. package/dist/runtime/index.js +39 -0
  206. package/dist/{server → runtime/server}/bootstrap.d.ts +2 -1
  207. package/dist/runtime/server/bootstrap.js +234 -0
  208. package/dist/runtime/server/bootstrap.validation.d.ts +12 -0
  209. package/dist/runtime/server/bootstrap.validation.js +102 -0
  210. package/dist/runtime/server/bus/core-event-bus.d.ts +6 -0
  211. package/dist/{server → runtime/server}/bus/core-event-bus.js +5 -5
  212. package/dist/{server → runtime/server}/configs/api.config.d.ts +1 -1
  213. package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.d.ts +2 -2
  214. package/dist/runtime/server/contracts/index.d.ts +7 -0
  215. package/dist/{server/templates → runtime/server/contracts}/index.js +8 -4
  216. package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.d.ts +1 -1
  217. package/dist/{server/templates → runtime/server/contracts}/repository/index.d.ts +2 -2
  218. package/dist/{server/templates → runtime/server/contracts}/repository/index.js +1 -1
  219. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.d.ts +2 -2
  220. package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.js +0 -1
  221. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
  222. package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +6 -0
  223. package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.d.ts +3 -3
  224. package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.d.ts +2 -2
  225. package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
  226. package/dist/{server → runtime/server}/controllers/chat.controller.js +23 -11
  227. package/dist/runtime/server/controllers/command-export.controller.d.ts +74 -0
  228. package/dist/runtime/server/controllers/command-export.controller.js +260 -0
  229. package/dist/runtime/server/controllers/command.controller.d.ts +15 -0
  230. package/dist/runtime/server/controllers/command.controller.js +100 -0
  231. package/dist/runtime/server/controllers/player-export.controller.d.ts +29 -0
  232. package/dist/runtime/server/controllers/player-export.controller.js +173 -0
  233. package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
  234. package/dist/runtime/server/controllers/principal-export.controller.js +296 -0
  235. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +43 -0
  236. package/dist/runtime/server/controllers/remote-command-execution.controller.js +104 -0
  237. package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
  238. package/dist/{server → runtime/server}/controllers/session.controller.js +15 -12
  239. package/dist/runtime/server/controllers/vehicle.controller.d.ts +55 -0
  240. package/dist/runtime/server/controllers/vehicle.controller.js +216 -0
  241. package/dist/runtime/server/core.d.ts +3 -0
  242. package/dist/runtime/server/core.js +11 -0
  243. package/dist/runtime/server/database/adapter.registry.d.ts +4 -0
  244. package/dist/runtime/server/database/adapter.registry.js +14 -0
  245. package/dist/{server → runtime/server}/database/database.contract.d.ts +1 -1
  246. package/dist/{server → runtime/server}/database/database.service.d.ts +3 -31
  247. package/dist/{server → runtime/server}/database/database.service.js +36 -50
  248. package/dist/runtime/server/database/index.d.ts +5 -0
  249. package/dist/runtime/server/database/index.js +25 -0
  250. package/dist/runtime/server/decorators/bind.d.ts +21 -0
  251. package/dist/runtime/server/decorators/bind.js +31 -0
  252. package/dist/runtime/server/decorators/command.d.ts +81 -0
  253. package/dist/runtime/server/decorators/command.js +32 -0
  254. package/dist/{server → runtime/server}/decorators/controller.d.ts +4 -3
  255. package/dist/runtime/server/decorators/controller.js +61 -0
  256. package/dist/runtime/server/decorators/export.d.ts +24 -0
  257. package/dist/runtime/server/decorators/export.js +32 -0
  258. package/dist/runtime/server/decorators/guard.d.ts +49 -0
  259. package/dist/{server → runtime/server}/decorators/guard.js +33 -32
  260. package/dist/{server → runtime/server}/decorators/index.d.ts +7 -4
  261. package/dist/{server → runtime/server}/decorators/index.js +8 -5
  262. package/dist/runtime/server/decorators/onFiveMEvent.d.ts +24 -0
  263. package/dist/runtime/server/decorators/onFiveMEvent.js +32 -0
  264. package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +22 -0
  265. package/dist/{server → runtime/server}/decorators/onFrameworkEvent.js +9 -9
  266. package/dist/runtime/server/decorators/onNet.d.ts +62 -0
  267. package/dist/runtime/server/decorators/onNet.js +15 -0
  268. package/dist/runtime/server/decorators/onTick.d.ts +21 -0
  269. package/dist/runtime/server/decorators/onTick.js +29 -0
  270. package/dist/runtime/server/decorators/public.d.ts +26 -0
  271. package/dist/{server → runtime/server}/decorators/public.js +15 -16
  272. package/dist/{server → runtime/server}/decorators/requiresState.d.ts +29 -22
  273. package/dist/runtime/server/decorators/requiresState.js +73 -0
  274. package/dist/runtime/server/decorators/throttle.d.ts +56 -0
  275. package/dist/{server → runtime/server}/decorators/throttle.js +31 -19
  276. package/dist/runtime/server/decorators/utils.d.ts +54 -0
  277. package/dist/runtime/server/decorators/utils.js +60 -0
  278. package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
  279. package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +12 -0
  280. package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
  281. package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +12 -0
  282. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
  283. package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +11 -0
  284. package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
  285. package/dist/runtime/server/devmode/contracts/index.js +9 -0
  286. package/dist/runtime/server/devmode/dev-mode.service.d.ts +110 -0
  287. package/dist/runtime/server/devmode/dev-mode.service.js +324 -0
  288. package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
  289. package/dist/runtime/server/devmode/event-interceptor.service.js +232 -0
  290. package/dist/runtime/server/devmode/hot-reload.server.d.ts +74 -0
  291. package/dist/runtime/server/devmode/hot-reload.server.js +261 -0
  292. package/dist/runtime/server/devmode/index.d.ts +8 -0
  293. package/dist/runtime/server/devmode/index.js +32 -0
  294. package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
  295. package/dist/runtime/server/devmode/player-simulator.service.js +202 -0
  296. package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
  297. package/dist/runtime/server/devmode/state-inspector.service.js +183 -0
  298. package/dist/runtime/server/devmode/types.d.ts +161 -0
  299. package/dist/runtime/server/devmode/types.js +28 -0
  300. package/dist/runtime/server/entities/index.d.ts +2 -0
  301. package/dist/{server → runtime/server}/entities/index.js +1 -0
  302. package/dist/{server → runtime/server}/entities/player.d.ts +70 -3
  303. package/dist/{server → runtime/server}/entities/player.js +92 -14
  304. package/dist/runtime/server/entities/vehicle.d.ts +160 -0
  305. package/dist/runtime/server/entities/vehicle.js +261 -0
  306. package/dist/{server → runtime/server}/error-handler.d.ts +1 -1
  307. package/dist/{server → runtime/server}/error-handler.js +7 -8
  308. package/dist/runtime/server/helpers/command-validation.helper.d.ts +6 -0
  309. package/dist/runtime/server/helpers/command-validation.helper.js +72 -0
  310. package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
  311. package/dist/runtime/server/helpers/function-helper.js +15 -0
  312. package/dist/{server → runtime/server}/helpers/resolve-method.d.ts +1 -1
  313. package/dist/runtime/server/helpers/resolve-method.js +28 -0
  314. package/dist/{server → runtime/server}/index.d.ts +8 -6
  315. package/dist/{server → runtime/server}/index.js +14 -10
  316. package/dist/runtime/server/runtime.d.ts +408 -0
  317. package/dist/runtime/server/runtime.js +234 -0
  318. package/dist/runtime/server/services/access-control.service.d.ts +59 -0
  319. package/dist/runtime/server/services/access-control.service.js +127 -0
  320. package/dist/runtime/server/services/appearance.service.d.ts +99 -0
  321. package/dist/runtime/server/services/appearance.service.js +307 -0
  322. package/dist/runtime/server/services/chat.service.d.ts +33 -0
  323. package/dist/{server → runtime/server}/services/chat.service.js +26 -0
  324. package/dist/{server → runtime/server}/services/config.service.js +1 -1
  325. package/dist/runtime/server/services/core/command.service.d.ts +49 -0
  326. package/dist/runtime/server/services/core/command.service.js +112 -0
  327. package/dist/{server/services → runtime/server/services/core}/player.service.d.ts +48 -22
  328. package/dist/{server/services → runtime/server/services/core}/player.service.js +98 -14
  329. package/dist/runtime/server/services/core/principal.service.d.ts +28 -0
  330. package/dist/runtime/server/services/core/principal.service.js +126 -0
  331. package/dist/runtime/server/services/core/vehicle-modification.service.d.ts +104 -0
  332. package/dist/runtime/server/services/core/vehicle-modification.service.js +330 -0
  333. package/dist/runtime/server/services/core/vehicle.service.d.ts +128 -0
  334. package/dist/runtime/server/services/core/vehicle.service.js +391 -0
  335. package/dist/runtime/server/services/default/default-net-event-security-observer.d.ts +15 -0
  336. package/dist/runtime/server/services/default/default-net-event-security-observer.js +28 -0
  337. package/dist/runtime/server/services/default/default-security.handler.d.ts +19 -0
  338. package/dist/{server → runtime/server}/services/default/default-security.handler.js +15 -2
  339. package/dist/{server → runtime/server}/services/http/http.service.js +5 -5
  340. package/dist/runtime/server/services/index.d.ts +16 -0
  341. package/dist/runtime/server/services/index.js +39 -0
  342. package/dist/{server → runtime/server}/services/parallel/index.d.ts +2 -4
  343. package/dist/{server → runtime/server}/services/parallel/index.js +13 -15
  344. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.d.ts +1 -1
  345. package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.js +2 -1
  346. package/dist/{server → runtime/server}/services/parallel/worker-pool.d.ts +1 -1
  347. package/dist/{server → runtime/server}/services/parallel/worker.d.ts +1 -1
  348. package/dist/{server → runtime/server}/services/persistence.service.d.ts +1 -1
  349. package/dist/{server → runtime/server}/services/persistence.service.js +13 -9
  350. package/dist/runtime/server/services/ports/command-execution.port.d.ts +41 -0
  351. package/dist/runtime/server/services/ports/command-execution.port.js +15 -0
  352. package/dist/runtime/server/services/ports/player-directory.port.d.ts +107 -0
  353. package/dist/runtime/server/services/ports/player-directory.port.js +23 -0
  354. package/dist/runtime/server/services/ports/player-session-lifecycle.port.d.ts +49 -0
  355. package/dist/runtime/server/services/ports/player-session-lifecycle.port.js +16 -0
  356. package/dist/runtime/server/services/ports/principal.port.d.ts +149 -0
  357. package/dist/runtime/server/services/ports/principal.port.js +32 -0
  358. package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
  359. package/dist/{server → runtime/server}/services/rate-limiter.service.js +18 -0
  360. package/dist/runtime/server/services/remote/remote-command.service.d.ts +63 -0
  361. package/dist/runtime/server/services/remote/remote-command.service.js +139 -0
  362. package/dist/runtime/server/services/remote/remote-player.service.d.ts +62 -0
  363. package/dist/runtime/server/services/remote/remote-player.service.js +191 -0
  364. package/dist/runtime/server/services/remote/remote-principal.provider.d.ts +55 -0
  365. package/dist/runtime/server/services/remote/remote-principal.provider.js +130 -0
  366. package/dist/runtime/server/services/remote/remote-principal.service.d.ts +33 -0
  367. package/dist/runtime/server/services/remote/remote-principal.service.js +99 -0
  368. package/dist/runtime/server/services/remote/server-bridge.d.ts +34 -0
  369. package/dist/runtime/server/services/remote/server-bridge.js +94 -0
  370. package/dist/runtime/server/services/services.register.d.ts +14 -0
  371. package/dist/runtime/server/services/services.register.js +98 -0
  372. package/dist/runtime/server/services/types/linked-id.d.ts +6 -0
  373. package/dist/runtime/server/services/types/player-session.object.d.ts +11 -0
  374. package/dist/runtime/server/services/vehicle-modification.service.d.ts +94 -0
  375. package/dist/runtime/server/services/vehicle-modification.service.js +310 -0
  376. package/dist/runtime/server/services/vehicle.service.d.ts +138 -0
  377. package/dist/runtime/server/services/vehicle.service.js +361 -0
  378. package/dist/runtime/server/setup.d.ts +10 -0
  379. package/dist/runtime/server/setup.js +33 -0
  380. package/dist/{server → runtime/server}/system/metadata-server.keys.d.ts +2 -0
  381. package/dist/{server → runtime/server}/system/metadata-server.keys.js +2 -0
  382. package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
  383. package/dist/runtime/server/system/processors/command.processor.js +54 -0
  384. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.d.ts +1 -1
  385. package/dist/{server → runtime/server}/system/processors/coreEvent.processor.js +3 -3
  386. package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
  387. package/dist/{server → runtime/server}/system/processors/export.processor.js +15 -5
  388. package/dist/runtime/server/system/processors/fivemEvent.processor.d.ts +10 -0
  389. package/dist/{server → runtime/server}/system/processors/fivemEvent.processor.js +15 -5
  390. package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
  391. package/dist/runtime/server/system/processors/netEvent.processor.js +240 -0
  392. package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
  393. package/dist/{server → runtime/server}/system/processors/tick.processor.js +14 -4
  394. package/dist/runtime/server/system/processors.register.d.ts +2 -0
  395. package/dist/runtime/server/system/processors.register.js +37 -0
  396. package/dist/{server → runtime/server}/system/schema-generator.d.ts +1 -1
  397. package/dist/{server → runtime/server}/system/schema-generator.js +17 -8
  398. package/dist/{server/templates/admin → runtime/server/templates}/admin.controller-template.d.ts +1 -1
  399. package/dist/runtime/server/templates/index.d.ts +1 -0
  400. package/dist/runtime/server/templates/index.js +17 -0
  401. package/dist/runtime/server/types/core-exports.d.ts +285 -0
  402. package/dist/runtime/server/types/core-exports.js +2 -0
  403. package/dist/runtime/server/types/index.d.ts +4 -0
  404. package/dist/runtime/server/types/index.js +20 -0
  405. package/dist/runtime/server/types/security.types.js +2 -0
  406. package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
  407. package/dist/runtime/server/types/vehicle.types.js +2 -0
  408. package/package.json +98 -98
  409. package/dist/client/client-bootstrap.d.ts +0 -1
  410. package/dist/client/client-bootstrap.js +0 -50
  411. package/dist/client/client-core.d.ts +0 -1
  412. package/dist/client/client-core.js +0 -7
  413. package/dist/client/decorators/controller.d.ts +0 -3
  414. package/dist/client/decorators/controller.js +0 -14
  415. package/dist/client/decorators/export.d.ts +0 -7
  416. package/dist/client/decorators/export.js +0 -15
  417. package/dist/client/decorators/interval.d.ts +0 -7
  418. package/dist/client/decorators/interval.js +0 -15
  419. package/dist/client/decorators/key.d.ts +0 -2
  420. package/dist/client/decorators/key.js +0 -10
  421. package/dist/client/decorators/localEvent.d.ts +0 -7
  422. package/dist/client/decorators/localEvent.js +0 -15
  423. package/dist/client/decorators/nui.d.ts +0 -1
  424. package/dist/client/decorators/nui.js +0 -9
  425. package/dist/client/decorators/onNet.d.ts +0 -1
  426. package/dist/client/decorators/onNet.js +0 -9
  427. package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
  428. package/dist/client/decorators/resourceLifecycle.js +0 -24
  429. package/dist/client/decorators/tick.d.ts +0 -1
  430. package/dist/client/decorators/tick.js +0 -9
  431. package/dist/client/interfaces/appearance.interface.d.ts +0 -19
  432. package/dist/client/services/appearance.service.d.ts +0 -6
  433. package/dist/client/services/appearance.service.js +0 -89
  434. package/dist/server/bootstrap.js +0 -57
  435. package/dist/server/bus/core-event-bus.d.ts +0 -6
  436. package/dist/server/controllers/chat.controller.d.ts +0 -10
  437. package/dist/server/controllers/command.controller.d.ts +0 -7
  438. package/dist/server/controllers/command.controller.js +0 -47
  439. package/dist/server/controllers/session.controller.d.ts +0 -9
  440. package/dist/server/core.d.ts +0 -1
  441. package/dist/server/core.js +0 -7
  442. package/dist/server/database/index.d.ts +0 -53
  443. package/dist/server/database/index.js +0 -70
  444. package/dist/server/decorators/bind.d.ts +0 -2
  445. package/dist/server/decorators/bind.js +0 -15
  446. package/dist/server/decorators/command.d.ts +0 -49
  447. package/dist/server/decorators/command.js +0 -23
  448. package/dist/server/decorators/controller.js +0 -36
  449. package/dist/server/decorators/export.d.ts +0 -39
  450. package/dist/server/decorators/export.js +0 -47
  451. package/dist/server/decorators/guard.d.ts +0 -56
  452. package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
  453. package/dist/server/decorators/onFiveMEvent.js +0 -14
  454. package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
  455. package/dist/server/decorators/onNet.d.ts +0 -58
  456. package/dist/server/decorators/onNet.js +0 -57
  457. package/dist/server/decorators/onTick.d.ts +0 -32
  458. package/dist/server/decorators/onTick.js +0 -40
  459. package/dist/server/decorators/public.d.ts +0 -27
  460. package/dist/server/decorators/requiresState.js +0 -63
  461. package/dist/server/decorators/throttle.d.ts +0 -48
  462. package/dist/server/decorators/utils.d.ts +0 -57
  463. package/dist/server/decorators/utils.js +0 -63
  464. package/dist/server/entities/index.d.ts +0 -1
  465. package/dist/server/helpers/resolve-method.js +0 -18
  466. package/dist/server/loaders/exports.loader.d.ts +0 -0
  467. package/dist/server/loaders/exports.loader.js +0 -23
  468. package/dist/server/loaders/playerSession.loader.d.ts +0 -1
  469. package/dist/server/loaders/playerSession.loader.js +0 -51
  470. package/dist/server/services/access-control.service.d.ts +0 -56
  471. package/dist/server/services/access-control.service.js +0 -99
  472. package/dist/server/services/chat.service.d.ts +0 -7
  473. package/dist/server/services/command.service.d.ts +0 -15
  474. package/dist/server/services/command.service.js +0 -77
  475. package/dist/server/services/default/default-security.handler.d.ts +0 -6
  476. package/dist/server/services/index.d.ts +0 -10
  477. package/dist/server/services/index.js +0 -26
  478. package/dist/server/services/rate-limiter.service.d.ts +0 -5
  479. package/dist/server/services/registers.d.ts +0 -1
  480. package/dist/server/services/registers.js +0 -18
  481. package/dist/server/setup.d.ts +0 -9
  482. package/dist/server/setup.js +0 -28
  483. package/dist/server/system/processors/command.processor.d.ts +0 -9
  484. package/dist/server/system/processors/export.processor.d.ts +0 -7
  485. package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
  486. package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
  487. package/dist/server/system/processors/netEvent.processor.js +0 -103
  488. package/dist/server/system/processors/tick.processor.d.ts +0 -5
  489. package/dist/server/system/processors.register.d.ts +0 -1
  490. package/dist/server/system/processors.register.js +0 -23
  491. package/dist/server/templates/index.d.ts +0 -8
  492. package/dist/server/templates/persistence/index.d.ts +0 -30
  493. package/dist/server/templates/persistence/index.js +0 -34
  494. package/dist/shared/index.d.ts +0 -1
  495. package/dist/shared/logger/transports/index.d.ts +0 -3
  496. package/dist/shared/logger/transports/index.js +0 -19
  497. package/dist/utils/errors.d.ts +0 -14
  498. package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
  499. package/dist/{system → kernel/di}/class-constructor.js +0 -0
  500. package/dist/{server → kernel/di}/container.d.ts +0 -0
  501. package/dist/{server → kernel/di}/container.js +0 -0
  502. package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
  503. package/dist/{system → kernel/di}/decorator-processor.js +0 -0
  504. package/dist/{system → kernel/di}/metadata.scanner.js +0 -0
  505. package/dist/{shared → kernel/shared}/logger/logger.config.js +0 -0
  506. package/dist/{shared → kernel/shared}/logger/logger.service.js +0 -0
  507. package/dist/{shared → kernel/shared}/logger/logger.types.d.ts +0 -0
  508. package/dist/{shared → kernel/shared}/logger/logger.types.js +0 -0
  509. package/dist/{shared → kernel/shared}/logger/transports/transport.interface.js +0 -0
  510. package/dist/{utils → kernel/utils}/result.js +0 -0
  511. package/dist/{utils → kernel/utils}/rgb.d.ts +0 -0
  512. package/dist/{utils → kernel/utils}/rgb.js +0 -0
  513. package/dist/{utils → kernel/utils}/vector3.d.ts +0 -0
  514. package/dist/{utils → kernel/utils}/vector3.js +0 -0
  515. package/dist/{client → runtime/client}/client-container.d.ts +0 -0
  516. package/dist/{client → runtime/client}/client-container.js +0 -0
  517. package/dist/{client → runtime/client}/controllers/spawner.controller.js +0 -0
  518. package/dist/{client → runtime/client}/decorators/gameEvent.js +0 -0
  519. package/dist/{client → runtime/client}/decorators/index.d.ts +5 -5
  520. package/dist/{client → runtime/client}/decorators/index.js +5 -5
  521. package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
  522. package/dist/{client → runtime/client}/services/blip.service.js +0 -0
  523. package/dist/{client → runtime/client}/services/marker.service.js +0 -0
  524. package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
  525. package/dist/{client → runtime/client}/services/notification.service.js +0 -0
  526. package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
  527. package/dist/{client → runtime/client}/services/progress.service.js +0 -0
  528. package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
  529. package/dist/{client → runtime/client}/services/streaming.service.js +0 -0
  530. package/dist/{client → runtime/client}/services/textui.service.js +0 -0
  531. package/dist/{client → runtime/client}/system/metadata-client.keys.d.ts +0 -0
  532. package/dist/{client → runtime/client}/system/metadata-client.keys.js +0 -0
  533. package/dist/{client → runtime/client}/system/processors/key.processor.js +0 -0
  534. package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
  535. package/dist/{client → runtime/client}/system/processors.register.js +6 -6
  536. /package/dist/{client → runtime/client}/types/game-events.d.ts +0 -0
  537. /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
  538. /package/dist/{client → runtime/client}/types/index.js +0 -0
  539. /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
  540. /package/dist/{server → runtime/server}/configs/api.config.js +0 -0
  541. /package/dist/{server → runtime/server}/configs/config.base.d.ts +0 -0
  542. /package/dist/{server → runtime/server}/configs/config.base.js +0 -0
  543. /package/dist/{server → runtime/server}/configs/index.d.ts +0 -0
  544. /package/dist/{server → runtime/server}/configs/index.js +0 -0
  545. /package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.js +0 -0
  546. /package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.js +0 -0
  547. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.d.ts +0 -0
  548. /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.js +0 -0
  549. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.d.ts +0 -0
  550. /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.js +0 -0
  551. /package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.js +0 -0
  552. /package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.js +0 -0
  553. /package/dist/{server → runtime/server}/database/database.contract.js +0 -0
  554. /package/dist/{server → runtime/server}/database/types.d.ts +0 -0
  555. /package/dist/{server → runtime/server}/database/types.js +0 -0
  556. /package/dist/{server → runtime/server}/database.d.ts +0 -0
  557. /package/dist/{server → runtime/server}/database.js +0 -0
  558. /package/dist/{server → runtime/server}/services/config.service.d.ts +0 -0
  559. /package/dist/{server → runtime/server}/services/http/http.service.d.ts +0 -0
  560. /package/dist/{server → runtime/server}/services/parallel/types.d.ts +0 -0
  561. /package/dist/{server → runtime/server}/services/parallel/types.js +0 -0
  562. /package/dist/{server → runtime/server}/services/parallel/worker-pool.js +0 -0
  563. /package/dist/{server → runtime/server}/services/parallel/worker.js +0 -0
  564. /package/dist/{client/interfaces/appearance.interface.js → runtime/server/services/types/linked-id.js} +0 -0
  565. /package/dist/{server/templates/admin/admin.controller-template.js → runtime/server/services/types/player-session.object.js} +0 -0
  566. /package/dist/{server/types/core-events.js → runtime/server/templates/admin.controller-template.js} +0 -0
  567. /package/dist/{server → runtime/server}/types/core-events.d.ts +0 -0
  568. /package/dist/{server/types/security.types.js → runtime/server/types/core-events.js} +0 -0
  569. /package/dist/{server → runtime/server}/types/security.types.d.ts +0 -0
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RemoteCommandService = void 0;
16
+ const tsyringe_1 = require("tsyringe");
17
+ const IExports_1 = require("../../../../adapters/contracts/IExports");
18
+ const logger_1 = require("../../../../kernel/shared/logger");
19
+ const utils_1 = require("../../../../kernel/utils");
20
+ const command_validation_helper_1 = require("../../helpers/command-validation.helper");
21
+ const runtime_1 = require("../../runtime");
22
+ const command_execution_port_1 = require("../ports/command-execution.port");
23
+ /**
24
+ * Remote command service for RESOURCE mode.
25
+ *
26
+ * @remarks
27
+ * In RESOURCE mode, this service:
28
+ * - Stores command handlers and metadata locally in the resource
29
+ * - Registers command metadata with CORE via exports
30
+ * - Executes handlers when invoked by CORE via net event
31
+ * - Validates arguments using Zod schemas (same as CommandService)
32
+ *
33
+ * Flow:
34
+ * 1. Resource declares @Command → metadata registered with CORE
35
+ * 2. Player executes command → CORE validates security and emits event to resource
36
+ * 3. Resource receives event → validates schema → executes handler
37
+ *
38
+ * Security validation is split:
39
+ * - CORE validates: @Guard (rank/permission), @Throttle (rate limit), @RequiresState
40
+ * - RESOURCE validates: Zod schema (not serializable, must be local)
41
+ */
42
+ let RemoteCommandService = class RemoteCommandService extends command_execution_port_1.CommandExecutionPort {
43
+ constructor(exportsService) {
44
+ super();
45
+ this.exportsService = exportsService;
46
+ this.commands = new Map();
47
+ }
48
+ /**
49
+ * Gets typed access to CORE resource exports.
50
+ */
51
+ get core() {
52
+ const { coreResourceName } = (0, runtime_1.getRuntimeContext)();
53
+ const coreExports = this.exportsService.getResource(coreResourceName);
54
+ if (!coreExports) {
55
+ throw new Error(`[OpenCore] CORE resource '${coreResourceName}' exports not found. ` +
56
+ `Ensure the CORE resource is started BEFORE RESOURCE mode resources. ` +
57
+ `Add 'ensure ${coreResourceName}' before this resource in server.cfg`);
58
+ }
59
+ return coreExports;
60
+ }
61
+ /**
62
+ * Registers a command handler locally and with CORE.
63
+ *
64
+ * @remarks
65
+ * The handler and full metadata are stored locally for schema validation.
66
+ * Only serializable metadata is sent to CORE for security validation.
67
+ */
68
+ register(metadata, handler) {
69
+ var _a, _b, _c, _d;
70
+ const commandKey = metadata.command.toLowerCase();
71
+ // Store handler with full metadata locally (for schema validation)
72
+ this.commands.set(commandKey, {
73
+ meta: metadata,
74
+ handler,
75
+ });
76
+ // Register metadata with CORE (security only, schema is not serializable)
77
+ this.core.registerCommand({
78
+ command: metadata.command,
79
+ description: metadata.description,
80
+ usage: metadata.usage,
81
+ isPublic: (_a = metadata.isPublic) !== null && _a !== void 0 ? _a : false,
82
+ resourceName: GetCurrentResourceName(),
83
+ security: metadata.security,
84
+ });
85
+ const publicFlag = metadata.isPublic ? ' [Public]' : '';
86
+ const schemaFlag = metadata.schema ? ' [Validated]' : '';
87
+ const securityFlags = [];
88
+ if ((_b = metadata.security) === null || _b === void 0 ? void 0 : _b.guard)
89
+ securityFlags.push('Guard');
90
+ if ((_c = metadata.security) === null || _c === void 0 ? void 0 : _c.throttle)
91
+ securityFlags.push('Throttle');
92
+ if ((_d = metadata.security) === null || _d === void 0 ? void 0 : _d.requiresState)
93
+ securityFlags.push('RequiresState');
94
+ const securityInfo = securityFlags.length > 0 ? ` (${securityFlags.join(', ')})` : '';
95
+ logger_1.loggers.command.debug(`Registered remote command: /${metadata.command}${publicFlag}${schemaFlag}${securityInfo} (delegated to CORE)`);
96
+ }
97
+ /**
98
+ * Executes a command handler stored in this resource.
99
+ *
100
+ * @remarks
101
+ * Called by the resource's command execution controller when CORE
102
+ * emits a command execution event to this resource.
103
+ *
104
+ * CORE has already validated:
105
+ * - @Guard (rank/permission requirements)
106
+ * - @Throttle (rate limiting)
107
+ * - @RequiresState (player state)
108
+ * - @Public (authentication - if not public, player must be authenticated)
109
+ *
110
+ * This method validates:
111
+ * - Zod schema (argument types and structure)
112
+ *
113
+ * @throws AppError - If schema validation fails or command not found
114
+ */
115
+ async execute(player, commandName, args) {
116
+ const entry = this.commands.get(commandName.toLowerCase());
117
+ if (!entry) {
118
+ logger_1.loggers.command.error(`Handler not found for remote command: ${commandName}`, {
119
+ command: commandName,
120
+ resource: GetCurrentResourceName(),
121
+ });
122
+ throw new utils_1.AppError('COMMAND:NOT_FOUND', `Command not found: ${commandName}`, 'server');
123
+ }
124
+ const { meta, handler } = entry;
125
+ return await (0, command_validation_helper_1.validateAndExecuteCommand)(meta, player, args, handler);
126
+ }
127
+ /**
128
+ * Returns all commands registered in CORE (local + remote).
129
+ */
130
+ getAllCommands() {
131
+ return this.core.getAllCommands();
132
+ }
133
+ };
134
+ exports.RemoteCommandService = RemoteCommandService;
135
+ exports.RemoteCommandService = RemoteCommandService = __decorate([
136
+ (0, tsyringe_1.injectable)(),
137
+ __param(0, (0, tsyringe_1.inject)(IExports_1.IExports)),
138
+ __metadata("design:paramtypes", [IExports_1.IExports])
139
+ ], RemoteCommandService);
@@ -0,0 +1,62 @@
1
+ import { IExports, IPlayerInfo } from '../../../../adapters';
2
+ import { IEntityServer } from '../../../../adapters/contracts/IEntityServer';
3
+ import { INetTransport } from '../../../../adapters/contracts/INetTransport';
4
+ import { IPlayerServer } from '../../../../adapters/contracts/IPlayerServer';
5
+ import { Player } from '../../entities';
6
+ import { PlayerDirectoryPort } from '../ports/player-directory.port';
7
+ /**
8
+ * Player service implementation for `RESOURCE` mode.
9
+ *
10
+ * @remarks
11
+ * This service delegates all player operations to CORE via exports.
12
+ * It creates local Player instances hydrated with real session data from CORE,
13
+ * ensuring RESOURCE mode has access to accurate player information.
14
+ */
15
+ export declare class RemotePlayerService extends PlayerDirectoryPort {
16
+ private readonly playerInfo;
17
+ private readonly exportsService;
18
+ private readonly playerServer;
19
+ private readonly entityServer;
20
+ private readonly netTransport;
21
+ /**
22
+ * Cached adapters bundle for Player instances
23
+ */
24
+ private readonly playerAdapters;
25
+ constructor(playerInfo: IPlayerInfo, exportsService: IExports, playerServer: IPlayerServer, entityServer: IEntityServer, netTransport: INetTransport);
26
+ /**
27
+ * Gets typed access to CORE resource exports.
28
+ */
29
+ private get core();
30
+ /**
31
+ * Creates a local Player instance from serialized data.
32
+ *
33
+ * @remarks
34
+ * The returned Player is hydrated with session data from CORE,
35
+ * including accountID, identifiers, metadata, and states.
36
+ */
37
+ private createPlayerFromData;
38
+ /**
39
+ * Returns a Player instance with real session data from CORE.
40
+ */
41
+ getByClient(clientID: number): Player | undefined;
42
+ getMany(clientIds: number[]): Player[];
43
+ /**
44
+ * Returns all connected players with real session data from CORE.
45
+ */
46
+ getAll(): Player[];
47
+ getPlayerId(clientID: number): string | undefined;
48
+ getMeta<T = unknown>(clientID: number, key: string): Promise<T | undefined>;
49
+ setMeta(clientID: number, key: string, value: unknown): void;
50
+ /**
51
+ * Finds a player by their persistent account ID.
52
+ */
53
+ getByAccountId(accountId: string): Player | undefined;
54
+ /**
55
+ * Gets the current player count from CORE.
56
+ */
57
+ getPlayerCount(): number;
58
+ /**
59
+ * Checks if a player with given account ID is online.
60
+ */
61
+ isOnline(accountId: string): boolean;
62
+ }
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RemotePlayerService = void 0;
16
+ const tsyringe_1 = require("tsyringe");
17
+ const adapters_1 = require("../../../../adapters");
18
+ const IEntityServer_1 = require("../../../../adapters/contracts/IEntityServer");
19
+ const INetTransport_1 = require("../../../../adapters/contracts/INetTransport");
20
+ const IPlayerServer_1 = require("../../../../adapters/contracts/IPlayerServer");
21
+ const logger_1 = require("../../../../kernel/shared/logger");
22
+ const entities_1 = require("../../entities");
23
+ const runtime_1 = require("../../runtime");
24
+ const player_directory_port_1 = require("../ports/player-directory.port");
25
+ /**
26
+ * Player service implementation for `RESOURCE` mode.
27
+ *
28
+ * @remarks
29
+ * This service delegates all player operations to CORE via exports.
30
+ * It creates local Player instances hydrated with real session data from CORE,
31
+ * ensuring RESOURCE mode has access to accurate player information.
32
+ */
33
+ let RemotePlayerService = class RemotePlayerService extends player_directory_port_1.PlayerDirectoryPort {
34
+ constructor(playerInfo, exportsService, playerServer, entityServer, netTransport) {
35
+ super();
36
+ this.playerInfo = playerInfo;
37
+ this.exportsService = exportsService;
38
+ this.playerServer = playerServer;
39
+ this.entityServer = entityServer;
40
+ this.netTransport = netTransport;
41
+ this.playerAdapters = {
42
+ playerInfo: this.playerInfo,
43
+ playerServer: this.playerServer,
44
+ entityServer: this.entityServer,
45
+ netTransport: this.netTransport,
46
+ };
47
+ }
48
+ /**
49
+ * Gets typed access to CORE resource exports.
50
+ */
51
+ get core() {
52
+ const { coreResourceName } = (0, runtime_1.getRuntimeContext)();
53
+ const coreExports = this.exportsService.getResource(coreResourceName);
54
+ if (!coreExports) {
55
+ throw new Error(`[OpenCore] CORE resource '${coreResourceName}' exports not found. ` +
56
+ `Ensure the CORE resource is started BEFORE RESOURCE mode resources.`);
57
+ }
58
+ return coreExports;
59
+ }
60
+ /**
61
+ * Creates a local Player instance from serialized data.
62
+ *
63
+ * @remarks
64
+ * The returned Player is hydrated with session data from CORE,
65
+ * including accountID, identifiers, metadata, and states.
66
+ */
67
+ createPlayerFromData(data) {
68
+ const player = new entities_1.Player({
69
+ clientID: data.clientID,
70
+ accountID: data.accountID,
71
+ identifiers: data.identifiers,
72
+ meta: data.meta,
73
+ }, this.playerAdapters);
74
+ // Restore state flags
75
+ for (const state of data.states) {
76
+ player.addState(state);
77
+ }
78
+ return player;
79
+ }
80
+ /**
81
+ * Returns a Player instance with real session data from CORE.
82
+ */
83
+ getByClient(clientID) {
84
+ try {
85
+ const data = this.core.getPlayerData(clientID);
86
+ if (!data)
87
+ return undefined;
88
+ return this.createPlayerFromData(data);
89
+ }
90
+ catch (error) {
91
+ logger_1.loggers.session.warn(`Failed to get player data from CORE`, {
92
+ clientID,
93
+ error: error instanceof Error ? error.message : String(error),
94
+ });
95
+ // Fallback to basic player
96
+ return new entities_1.Player({ clientID, meta: {} }, this.playerAdapters);
97
+ }
98
+ }
99
+ getMany(clientIds) {
100
+ try {
101
+ const many = this.core.getManyData(clientIds);
102
+ return many.map((data) => this.createPlayerFromData(data));
103
+ }
104
+ catch (error) {
105
+ if (error instanceof Error)
106
+ logger_1.loggers.exports.error(error.message, undefined, error);
107
+ else
108
+ logger_1.loggers.exports.error('unknown error', undefined);
109
+ return [];
110
+ }
111
+ }
112
+ /**
113
+ * Returns all connected players with real session data from CORE.
114
+ */
115
+ getAll() {
116
+ try {
117
+ const allData = this.core.getAllPlayersData();
118
+ return allData.map((data) => this.createPlayerFromData(data));
119
+ }
120
+ catch (error) {
121
+ logger_1.loggers.session.warn(`Failed to get all players from CORE, using fallback`, {
122
+ error: error instanceof Error ? error.message : String(error),
123
+ });
124
+ // In RESOURCE mode fallback, return empty - we can't enumerate without CORE
125
+ return [];
126
+ }
127
+ }
128
+ getPlayerId(clientID) {
129
+ return this.core.getPlayerId(clientID);
130
+ }
131
+ async getMeta(clientID, key) {
132
+ return this.core.getPlayerMeta(clientID, key);
133
+ }
134
+ setMeta(clientID, key, value) {
135
+ this.core.setPlayerMeta(clientID, key, value);
136
+ }
137
+ // ═══════════════════════════════════════════════════════════════
138
+ // Extended methods (delegated to CORE)
139
+ // ═══════════════════════════════════════════════════════════════
140
+ /**
141
+ * Finds a player by their persistent account ID.
142
+ */
143
+ getByAccountId(accountId) {
144
+ try {
145
+ const data = this.core.getPlayerByAccountId(accountId);
146
+ if (!data)
147
+ return undefined;
148
+ return this.createPlayerFromData(data);
149
+ }
150
+ catch (_a) {
151
+ return undefined;
152
+ }
153
+ }
154
+ /**
155
+ * Gets the current player count from CORE.
156
+ */
157
+ getPlayerCount() {
158
+ try {
159
+ return this.core.getPlayerCount();
160
+ }
161
+ catch (_a) {
162
+ // In RESOURCE mode, we can't enumerate without CORE
163
+ return 0;
164
+ }
165
+ }
166
+ /**
167
+ * Checks if a player with given account ID is online.
168
+ */
169
+ isOnline(accountId) {
170
+ try {
171
+ return this.core.isPlayerOnline(accountId);
172
+ }
173
+ catch (_a) {
174
+ return false;
175
+ }
176
+ }
177
+ };
178
+ exports.RemotePlayerService = RemotePlayerService;
179
+ exports.RemotePlayerService = RemotePlayerService = __decorate([
180
+ (0, tsyringe_1.injectable)(),
181
+ __param(0, (0, tsyringe_1.inject)(adapters_1.IPlayerInfo)),
182
+ __param(1, (0, tsyringe_1.inject)(adapters_1.IExports)),
183
+ __param(2, (0, tsyringe_1.inject)(IPlayerServer_1.IPlayerServer)),
184
+ __param(3, (0, tsyringe_1.inject)(IEntityServer_1.IEntityServer)),
185
+ __param(4, (0, tsyringe_1.inject)(INetTransport_1.INetTransport)),
186
+ __metadata("design:paramtypes", [adapters_1.IPlayerInfo,
187
+ adapters_1.IExports,
188
+ IPlayerServer_1.IPlayerServer,
189
+ IEntityServer_1.IEntityServer,
190
+ INetTransport_1.INetTransport])
191
+ ], RemotePlayerService);
@@ -0,0 +1,55 @@
1
+ import { Player } from '../../entities'
2
+ import { Principal, PrincipalProviderContract } from '../../contracts'
3
+ import { IExports } from '../../../../adapters'
4
+ import type { LinkedID } from '../types/linked-id'
5
+ /**
6
+ * Principal provider implementation for `RESOURCE` mode.
7
+ *
8
+ * @remarks
9
+ * This provider delegates all principal/permission operations to CORE via exports.
10
+ * It provides the full PrincipalProviderContract interface for RESOURCE mode.
11
+ */
12
+ export declare class RemotePrincipalProvider extends PrincipalProviderContract {
13
+ private readonly exportsService
14
+ constructor(exportsService: IExports)
15
+ /**
16
+ * Gets typed access to CORE resource exports.
17
+ */
18
+ private get core()
19
+ /**
20
+ * Gets the Principal for a connected player.
21
+ */
22
+ getPrincipal(player: Player): Promise<Principal | null>
23
+ /**
24
+ * Forces a refresh of the player's permissions from persistence.
25
+ */
26
+ refreshPrincipal(player: Player): Promise<void>
27
+ /**
28
+ * Gets Principal by account ID (works for offline players too).
29
+ */
30
+ getPrincipalByLinkedID(linkedID: LinkedID): Promise<Principal | null>
31
+ /**
32
+ * Quick permission check without fetching full Principal.
33
+ */
34
+ hasPermission(clientID: number, permission: string): Promise<boolean>
35
+ /**
36
+ * Quick rank check without fetching full Principal.
37
+ */
38
+ hasRank(clientID: number, requiredRank: number): Promise<boolean>
39
+ /**
40
+ * Check if player has any of the specified permissions.
41
+ */
42
+ hasAnyPermission(clientID: number, permissions: string[]): Promise<boolean>
43
+ /**
44
+ * Check if player has all of the specified permissions.
45
+ */
46
+ hasAllPermissions(clientID: number, permissions: string[]): Promise<boolean>
47
+ /**
48
+ * Get all permissions for a player.
49
+ */
50
+ getPermissions(clientID: number): Promise<string[]>
51
+ /**
52
+ * Get the rank value for a player.
53
+ */
54
+ getRank(clientID: number): Promise<number | null>
55
+ }
@@ -0,0 +1,130 @@
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
+ var __param =
28
+ (this && this.__param) ||
29
+ ((paramIndex, decorator) => (target, key) => {
30
+ decorator(target, key, paramIndex)
31
+ })
32
+ Object.defineProperty(exports, '__esModule', { value: true })
33
+ exports.RemotePrincipalProvider = void 0
34
+ const tsyringe_1 = require('tsyringe')
35
+ const runtime_1 = require('../../runtime')
36
+ const contracts_1 = require('../../contracts')
37
+ const adapters_1 = require('../../../../adapters')
38
+ /**
39
+ * Principal provider implementation for `RESOURCE` mode.
40
+ *
41
+ * @remarks
42
+ * This provider delegates all principal/permission operations to CORE via exports.
43
+ * It provides the full PrincipalProviderContract interface for RESOURCE mode.
44
+ */
45
+ let RemotePrincipalProvider = class RemotePrincipalProvider extends contracts_1.PrincipalProviderContract {
46
+ constructor(exportsService) {
47
+ super()
48
+ this.exportsService = exportsService
49
+ }
50
+ /**
51
+ * Gets typed access to CORE resource exports.
52
+ */
53
+ get core() {
54
+ const { coreResourceName } = (0, runtime_1.getRuntimeContext)()
55
+ const coreExports = this.exportsService.getResource(coreResourceName)
56
+ if (!coreExports) {
57
+ throw new Error(
58
+ `[OpenCore] CORE resource '${coreResourceName}' exports not found. ` +
59
+ `Ensure the CORE resource is started BEFORE RESOURCE mode resources.`,
60
+ )
61
+ }
62
+ return coreExports
63
+ }
64
+ /**
65
+ * Gets the Principal for a connected player.
66
+ */
67
+ async getPrincipal(player) {
68
+ return await this.core.getPrincipal(player.clientID)
69
+ }
70
+ /**
71
+ * Forces a refresh of the player's permissions from persistence.
72
+ */
73
+ async refreshPrincipal(player) {
74
+ await this.core.refreshPrincipal(player.clientID)
75
+ }
76
+ /**
77
+ * Gets Principal by account ID (works for offline players too).
78
+ */
79
+ async getPrincipalByLinkedID(linkedID) {
80
+ return await this.core.getPrincipalByAccountId(linkedID.toString())
81
+ }
82
+ // ═══════════════════════════════════════════════════════════════
83
+ // Convenience methods (not part of contract, but useful)
84
+ // ═══════════════════════════════════════════════════════════════
85
+ /**
86
+ * Quick permission check without fetching full Principal.
87
+ */
88
+ async hasPermission(clientID, permission) {
89
+ return await this.core.hasPermission(clientID, permission)
90
+ }
91
+ /**
92
+ * Quick rank check without fetching full Principal.
93
+ */
94
+ async hasRank(clientID, requiredRank) {
95
+ return await this.core.hasRank(clientID, requiredRank)
96
+ }
97
+ /**
98
+ * Check if player has any of the specified permissions.
99
+ */
100
+ async hasAnyPermission(clientID, permissions) {
101
+ return await this.core.hasAnyPermission(clientID, permissions)
102
+ }
103
+ /**
104
+ * Check if player has all of the specified permissions.
105
+ */
106
+ async hasAllPermissions(clientID, permissions) {
107
+ return await this.core.hasAllPermissions(clientID, permissions)
108
+ }
109
+ /**
110
+ * Get all permissions for a player.
111
+ */
112
+ async getPermissions(clientID) {
113
+ return await this.core.getPermissions(clientID)
114
+ }
115
+ /**
116
+ * Get the rank value for a player.
117
+ */
118
+ async getRank(clientID) {
119
+ return await this.core.getRank(clientID)
120
+ }
121
+ }
122
+ exports.RemotePrincipalProvider = RemotePrincipalProvider
123
+ exports.RemotePrincipalProvider = RemotePrincipalProvider = __decorate(
124
+ [
125
+ (0, tsyringe_1.injectable)(),
126
+ __param(0, (0, tsyringe_1.inject)(adapters_1.IExports)),
127
+ __metadata('design:paramtypes', [adapters_1.IExports]),
128
+ ],
129
+ RemotePrincipalProvider,
130
+ )
@@ -0,0 +1,33 @@
1
+ import { IExports } from '../../../../adapters';
2
+ import { Principal } from '../../contracts/security/permission.types';
3
+ import { GuardOptions } from '../../decorators/guard';
4
+ import { Player } from '../../entities';
5
+ import { PrincipalPort } from '../ports/principal.port';
6
+ /**
7
+ * Principal service implementation for `RESOURCE` mode.
8
+ *
9
+ * @remarks
10
+ * This service delegates all principal/permission operations to CORE via exports.
11
+ * It provides the full PrincipalPort interface for RESOURCE mode, allowing
12
+ * transparent usage regardless of whether running in CORE or RESOURCE mode.
13
+ */
14
+ export declare class RemotePrincipalService extends PrincipalPort {
15
+ private readonly exportsService;
16
+ constructor(exportsService: IExports);
17
+ /**
18
+ * Gets typed access to CORE resource exports.
19
+ */
20
+ private get core();
21
+ getPrincipal(player: Player): Promise<Principal | null>;
22
+ getPrincipalByAccountId(accountId: string): Promise<Principal | null>;
23
+ refreshPrincipal(player: Player): Promise<void>;
24
+ hasPermission(player: Player, permission: string): Promise<boolean>;
25
+ hasRank(player: Player, requiredRank: number): Promise<boolean>;
26
+ hasAnyPermission(player: Player, permissions: string[]): Promise<boolean>;
27
+ hasAllPermissions(player: Player, permissions: string[]): Promise<boolean>;
28
+ getPermissions(player: Player): Promise<string[]>;
29
+ getRank(player: Player): Promise<number | null>;
30
+ getPrincipalName(player: Player): Promise<string | null>;
31
+ getPrincipalMeta(player: Player, key: string): Promise<unknown>;
32
+ enforce(player: Player, requirements: GuardOptions): Promise<void>;
33
+ }