@open-core/framework 0.2.9 → 0.3.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 (313) hide show
  1. package/dist/adapters/contracts/IPlatformCapabilities.d.ts +79 -0
  2. package/dist/adapters/contracts/IPlatformCapabilities.js +31 -0
  3. package/dist/adapters/contracts/IPlayerInfo.d.ts +1 -1
  4. package/dist/adapters/contracts/{IPedAppearanceClient.d.ts → client/IPedAppearanceClient.d.ts} +1 -1
  5. package/dist/adapters/contracts/server/IEntityServer.d.ts +188 -0
  6. package/dist/adapters/contracts/server/IEntityServer.js +39 -0
  7. package/dist/adapters/contracts/{IPlayerServer.d.ts → server/IPlayerServer.d.ts} +52 -9
  8. package/dist/adapters/contracts/server/IPlayerServer.js +39 -0
  9. package/dist/adapters/contracts/types/identifier.d.ts +67 -0
  10. package/dist/adapters/contracts/types/identifier.js +64 -0
  11. package/dist/adapters/contracts/types/index.d.ts +1 -0
  12. package/dist/{kernel/shared/appearance → adapters/contracts/types}/index.js +1 -1
  13. package/dist/adapters/fivem/fivem-capabilities.d.ts +18 -0
  14. package/dist/adapters/fivem/fivem-capabilities.js +67 -0
  15. package/dist/adapters/fivem/fivem-engine-events.js +17 -4
  16. package/dist/adapters/fivem/fivem-entity-server.d.ts +6 -2
  17. package/dist/adapters/fivem/fivem-entity-server.js +14 -1
  18. package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +1 -1
  19. package/dist/adapters/fivem/fivem-ped-appearance-client.js +1 -1
  20. package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +1 -1
  21. package/dist/adapters/fivem/fivem-ped-appearance-server.js +1 -1
  22. package/dist/adapters/fivem/fivem-platform.d.ts +5 -0
  23. package/dist/adapters/fivem/fivem-platform.js +100 -0
  24. package/dist/adapters/fivem/fivem-player-server.d.ts +7 -1
  25. package/dist/adapters/fivem/fivem-player-server.js +19 -1
  26. package/dist/adapters/fivem/fivem-playerinfo.d.ts +1 -1
  27. package/dist/adapters/fivem/fivem-vehicle-server.d.ts +1 -1
  28. package/dist/adapters/fivem/fivem-vehicle-server.js +1 -1
  29. package/dist/adapters/fivem/index.d.ts +13 -0
  30. package/dist/adapters/fivem/index.js +31 -0
  31. package/dist/adapters/index.d.ts +8 -7
  32. package/dist/adapters/index.js +13 -12
  33. package/dist/adapters/node/index.d.ts +5 -0
  34. package/dist/adapters/node/index.js +13 -1
  35. package/dist/adapters/node/node-capabilities.d.ts +19 -0
  36. package/dist/adapters/node/node-capabilities.js +54 -0
  37. package/dist/adapters/node/node-entity-server.d.ts +17 -6
  38. package/dist/adapters/node/node-entity-server.js +41 -15
  39. package/dist/adapters/node/node-net-transport.js +2 -2
  40. package/dist/adapters/node/node-ped-appearance-client.d.ts +1 -1
  41. package/dist/adapters/node/node-ped-appearance-client.js +1 -1
  42. package/dist/adapters/node/node-ped-appearance-server.d.ts +1 -1
  43. package/dist/adapters/node/node-ped-appearance-server.js +1 -1
  44. package/dist/adapters/node/node-platform.d.ts +5 -0
  45. package/dist/adapters/node/node-platform.js +103 -0
  46. package/dist/adapters/node/node-player-server.d.ts +19 -3
  47. package/dist/adapters/node/node-player-server.js +43 -9
  48. package/dist/adapters/node/node-playerinfo.d.ts +2 -2
  49. package/dist/adapters/node/node-playerinfo.js +14 -3
  50. package/dist/adapters/node/node-vehicle-server.d.ts +1 -1
  51. package/dist/adapters/node/node-vehicle-server.js +1 -1
  52. package/dist/adapters/platform/index.d.ts +1 -0
  53. package/dist/{runtime/server/database.js → adapters/platform/index.js} +1 -7
  54. package/dist/adapters/platform/platform-registry.d.ts +101 -0
  55. package/dist/adapters/platform/platform-registry.js +122 -0
  56. package/dist/adapters/register-capabilities.d.ts +52 -2
  57. package/dist/adapters/register-capabilities.js +69 -130
  58. package/dist/adapters/register-client-capabilities.js +1 -1
  59. package/dist/index.d.ts +2 -5
  60. package/dist/index.js +5 -31
  61. package/dist/kernel/di/container.d.ts +4 -2
  62. package/dist/kernel/di/container.js +5 -3
  63. package/dist/kernel/di/metadata.scanner.d.ts +2 -1
  64. package/dist/kernel/di/metadata.scanner.js +3 -2
  65. package/dist/kernel/{utils/error → error}/app.error.d.ts +2 -2
  66. package/dist/kernel/error/common.error-codes.d.ts +1 -0
  67. package/dist/kernel/error/framework.error-codes.d.ts +12 -0
  68. package/dist/kernel/error/index.d.ts +4 -0
  69. package/dist/kernel/error/index.js +18 -0
  70. package/dist/kernel/{utils/error → error}/security.error.d.ts +1 -1
  71. package/dist/kernel/error/security.types.js +2 -0
  72. package/dist/kernel/index.d.ts +4 -5
  73. package/dist/kernel/index.js +6 -11
  74. package/dist/kernel/{shared/logger → logger}/core-logger.d.ts +0 -19
  75. package/dist/kernel/{shared/logger → logger}/core-logger.js +10 -24
  76. package/dist/kernel/{shared/logger → logger}/logger.env.d.ts +12 -5
  77. package/dist/kernel/{shared/logger → logger}/logger.env.js +29 -13
  78. package/dist/kernel/{shared/logger → logger}/logger.service.d.ts +14 -0
  79. package/dist/kernel/{shared/logger → logger}/logger.service.js +20 -2
  80. package/dist/kernel/logger/transports/transport.interface.js +2 -0
  81. package/dist/kernel/shared/index.d.ts +1 -2
  82. package/dist/kernel/shared/index.js +1 -2
  83. package/dist/kernel/utils/index.d.ts +0 -2
  84. package/dist/kernel/utils/index.js +0 -2
  85. package/dist/kernel/utils/result.d.ts +1 -1
  86. package/dist/runtime/client/api.d.ts +7 -0
  87. package/dist/runtime/client/api.js +23 -0
  88. package/dist/runtime/client/client-bootstrap.js +1 -1
  89. package/dist/runtime/client/controllers/spawner.controller.d.ts +1 -1
  90. package/dist/runtime/client/decorators/index.d.ts +2 -2
  91. package/dist/runtime/client/decorators/index.js +2 -2
  92. package/dist/runtime/client/decorators/key.d.ts +2 -2
  93. package/dist/runtime/client/decorators/key.js +3 -3
  94. package/dist/runtime/client/decorators/localEvent.d.ts +1 -1
  95. package/dist/runtime/client/decorators/localEvent.js +1 -1
  96. package/dist/runtime/client/decorators/{tick.d.ts → onTick.d.ts} +1 -1
  97. package/dist/runtime/client/decorators/{tick.js → onTick.js} +2 -2
  98. package/dist/runtime/client/decorators/{nui.d.ts → onView.d.ts} +4 -4
  99. package/dist/runtime/client/decorators/{nui.js → onView.js} +5 -5
  100. package/dist/runtime/client/index.d.ts +1 -7
  101. package/dist/runtime/client/index.js +26 -12
  102. package/dist/runtime/client/player/player.d.ts +1 -1
  103. package/dist/runtime/client/player/player.loader.js +3 -3
  104. package/dist/runtime/client/services/appearance.service.d.ts +1 -1
  105. package/dist/runtime/client/services/appearance.service.js +1 -1
  106. package/dist/runtime/client/services/blip.service.d.ts +1 -1
  107. package/dist/runtime/client/services/marker.service.d.ts +1 -1
  108. package/dist/runtime/client/services/ped.service.d.ts +1 -1
  109. package/dist/runtime/client/services/spawn.service.d.ts +2 -2
  110. package/dist/runtime/client/services/spawn.service.js +12 -12
  111. package/dist/runtime/client/services/textui.service.d.ts +1 -1
  112. package/dist/runtime/client/services/vehicle-client.service.d.ts +1 -1
  113. package/dist/runtime/client/services/vehicle.service.d.ts +1 -1
  114. package/dist/runtime/client/system/processors/export.processor.js +1 -1
  115. package/dist/runtime/client/system/processors/gameEvent.processor.js +1 -1
  116. package/dist/runtime/client/system/processors/interval.processor.js +1 -1
  117. package/dist/runtime/client/system/processors/localEvent.processor.js +1 -1
  118. package/dist/runtime/client/system/processors/netEvent.processor.js +1 -1
  119. package/dist/runtime/client/system/processors/nui.processor.js +1 -1
  120. package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +1 -1
  121. package/dist/runtime/client/system/processors/tick.processor.js +1 -1
  122. package/dist/runtime/client/ui-bridge.js +1 -1
  123. package/dist/runtime/core/entity.d.ts +168 -0
  124. package/dist/runtime/core/entity.js +226 -0
  125. package/dist/runtime/core/index.d.ts +3 -0
  126. package/dist/runtime/core/index.js +19 -0
  127. package/dist/runtime/core/spatial.d.ts +5 -0
  128. package/dist/runtime/core/spatial.js +2 -0
  129. package/dist/runtime/core/world.d.ts +13 -0
  130. package/dist/runtime/core/world.js +64 -0
  131. package/dist/runtime/server/api.d.ts +12 -0
  132. package/dist/runtime/server/api.js +34 -0
  133. package/dist/runtime/server/bootstrap.js +84 -108
  134. package/dist/runtime/server/bus/internal-event.bus.js +1 -1
  135. package/dist/runtime/server/contracts/index.d.ts +1 -2
  136. package/dist/runtime/server/contracts/index.js +2 -3
  137. package/dist/runtime/server/contracts/player-persistence.contract.d.ts +16 -18
  138. package/dist/runtime/server/contracts/player-persistence.contract.js +16 -18
  139. package/dist/runtime/server/contracts/security/command-error-observer.contract.d.ts +73 -0
  140. package/dist/runtime/server/contracts/security/command-error-observer.contract.js +9 -0
  141. package/dist/runtime/server/contracts/security/permission.types.d.ts +2 -2
  142. package/dist/runtime/server/contracts/security/principal-provider.contract.d.ts +3 -3
  143. package/dist/runtime/server/contracts/security/principal-provider.contract.js +2 -2
  144. package/dist/runtime/server/contracts/security/security-handler.contract.d.ts +2 -2
  145. package/dist/runtime/server/controllers/chat.controller.d.ts +1 -1
  146. package/dist/runtime/server/controllers/chat.controller.js +5 -0
  147. package/dist/runtime/server/controllers/command-export.controller.d.ts +12 -3
  148. package/dist/runtime/server/controllers/command-export.controller.js +94 -28
  149. package/dist/runtime/server/controllers/player-export.controller.d.ts +2 -2
  150. package/dist/runtime/server/controllers/player-export.controller.js +5 -0
  151. package/dist/runtime/server/controllers/principal-export.controller.js +8 -7
  152. package/dist/runtime/server/controllers/ready.controller.d.ts +4 -0
  153. package/dist/runtime/server/controllers/ready.controller.js +32 -0
  154. package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +10 -1
  155. package/dist/runtime/server/controllers/remote-command-execution.controller.js +79 -13
  156. package/dist/runtime/server/controllers/session.controller.d.ts +2 -2
  157. package/dist/runtime/server/controllers/session.controller.js +25 -17
  158. package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -38
  159. package/dist/runtime/server/controllers/vehicle.controller.js +6 -152
  160. package/dist/runtime/server/decorators/guard.js +2 -2
  161. package/dist/runtime/server/decorators/index.d.ts +1 -1
  162. package/dist/runtime/server/decorators/index.js +1 -1
  163. package/dist/runtime/server/decorators/{onFiveMEvent.d.ts → onRuntimeEvent.d.ts} +5 -4
  164. package/dist/runtime/server/decorators/{onFiveMEvent.js → onRuntimeEvent.js} +7 -6
  165. package/dist/runtime/server/decorators/requiresState.js +3 -3
  166. package/dist/runtime/server/decorators/throttle.d.ts +1 -1
  167. package/dist/runtime/server/decorators/throttle.js +1 -1
  168. package/dist/runtime/server/decorators/utils.d.ts +1 -1
  169. package/dist/runtime/server/decorators/utils.js +1 -1
  170. package/dist/runtime/server/devmode/dev-mode.service.d.ts +7 -8
  171. package/dist/runtime/server/devmode/dev-mode.service.js +18 -46
  172. package/dist/runtime/server/devmode/index.d.ts +1 -3
  173. package/dist/runtime/server/devmode/index.js +1 -18
  174. package/dist/runtime/server/devmode/player-simulator.service.js +3 -3
  175. package/dist/runtime/server/devmode/state-inspector.service.js +2 -2
  176. package/dist/runtime/server/devmode/types.d.ts +67 -31
  177. package/dist/runtime/server/devmode/types.js +1 -4
  178. package/dist/runtime/server/entities/player.d.ts +80 -66
  179. package/dist/runtime/server/entities/player.js +137 -98
  180. package/dist/runtime/server/entities/vehicle.d.ts +3 -3
  181. package/dist/runtime/server/error-handler.js +5 -5
  182. package/dist/runtime/server/helpers/command-validation.helper.d.ts +0 -3
  183. package/dist/runtime/server/helpers/command-validation.helper.js +3 -7
  184. package/dist/runtime/server/helpers/normalize-app-error.d.ts +9 -0
  185. package/dist/runtime/server/helpers/normalize-app-error.js +20 -0
  186. package/dist/runtime/server/helpers/process-tuple-schema.d.ts +20 -0
  187. package/dist/runtime/server/helpers/process-tuple-schema.js +51 -0
  188. package/dist/runtime/server/helpers/resolve-method.js +3 -3
  189. package/dist/runtime/server/index.d.ts +1 -13
  190. package/dist/runtime/server/index.js +25 -23
  191. package/dist/runtime/server/runtime.d.ts +32 -281
  192. package/dist/runtime/server/runtime.js +46 -60
  193. package/dist/runtime/server/services/appearance.service.d.ts +5 -5
  194. package/dist/runtime/server/services/appearance.service.js +5 -5
  195. package/dist/runtime/server/services/chat.service.d.ts +5 -3
  196. package/dist/runtime/server/services/chat.service.js +17 -12
  197. package/dist/runtime/server/services/core/command.service.d.ts +9 -1
  198. package/dist/runtime/server/services/core/command.service.js +16 -7
  199. package/dist/runtime/server/services/core/player.service.d.ts +12 -16
  200. package/dist/runtime/server/services/core/player.service.js +42 -47
  201. package/dist/runtime/server/services/core/principal.service.js +5 -5
  202. package/dist/runtime/server/services/core/session-recovery.service.d.ts +1 -1
  203. package/dist/runtime/server/services/core/session-recovery.service.js +2 -2
  204. package/dist/runtime/server/services/default/default-command-error-observer.d.ts +14 -0
  205. package/dist/runtime/server/services/default/default-command-error-observer.js +43 -0
  206. package/dist/runtime/server/services/default/default-principal.provider.d.ts +13 -0
  207. package/dist/runtime/server/services/default/default-principal.provider.js +38 -0
  208. package/dist/runtime/server/services/default/default-security.handler.d.ts +1 -1
  209. package/dist/runtime/server/services/default/default-security.handler.js +1 -1
  210. package/dist/runtime/server/services/index.d.ts +0 -3
  211. package/dist/runtime/server/services/index.js +1 -6
  212. package/dist/runtime/server/services/persistence.service.js +3 -3
  213. package/dist/runtime/server/services/ports/command-execution.port.d.ts +7 -0
  214. package/dist/runtime/server/services/ports/principal.port.d.ts +1 -1
  215. package/dist/runtime/server/services/remote/remote-command.service.d.ts +1 -0
  216. package/dist/runtime/server/services/remote/remote-command.service.js +30 -11
  217. package/dist/runtime/server/services/remote/remote-player.service.d.ts +2 -2
  218. package/dist/runtime/server/services/remote/remote-player.service.js +3 -3
  219. package/dist/runtime/server/services/remote/server-bridge.js +2 -2
  220. package/dist/runtime/server/services/services.register.d.ts +2 -5
  221. package/dist/runtime/server/services/services.register.js +29 -41
  222. package/dist/runtime/server/services/vehicle-modification.service.js +1 -1
  223. package/dist/runtime/server/services/vehicle.service.d.ts +3 -3
  224. package/dist/runtime/server/services/vehicle.service.js +5 -5
  225. package/dist/runtime/server/setup.d.ts +2 -3
  226. package/dist/runtime/server/setup.js +10 -11
  227. package/dist/runtime/server/system/metadata-server.keys.d.ts +1 -1
  228. package/dist/runtime/server/system/metadata-server.keys.js +1 -1
  229. package/dist/runtime/server/system/processors/command.processor.js +4 -0
  230. package/dist/runtime/server/system/processors/export.processor.js +1 -1
  231. package/dist/runtime/server/system/processors/internalEvent.processor.js +1 -1
  232. package/dist/runtime/server/system/processors/netEvent.processor.js +11 -10
  233. package/dist/runtime/server/system/processors/{fivemEvent.processor.d.ts → runtimeEvent.processor.d.ts} +1 -1
  234. package/dist/runtime/server/system/processors/{fivemEvent.processor.js → runtimeEvent.processor.js} +8 -8
  235. package/dist/runtime/server/system/processors/tick.processor.js +1 -1
  236. package/dist/runtime/server/system/processors.register.js +16 -11
  237. package/dist/runtime/server/system/schema-generator.js +5 -3
  238. package/dist/runtime/server/types/core-exports.d.ts +6 -6
  239. package/dist/runtime/server/types/index.d.ts +1 -1
  240. package/dist/runtime/server/types/index.js +1 -1
  241. package/dist/runtime/server/types/internal-events.d.ts +1 -1
  242. package/dist/runtime/server/types/vehicle.types.d.ts +1 -1
  243. package/package.json +7 -15
  244. package/dist/adapters/contracts/IEntityServer.d.ts +0 -88
  245. package/dist/adapters/contracts/IEntityServer.js +0 -13
  246. package/dist/adapters/contracts/IPlayerServer.js +0 -13
  247. package/dist/adapters/database/oxmysql.adapter.d.ts +0 -89
  248. package/dist/adapters/database/oxmysql.adapter.js +0 -149
  249. package/dist/adapters/database/resource.adapter.d.ts +0 -12
  250. package/dist/adapters/database/resource.adapter.js +0 -68
  251. package/dist/kernel/shared/appearance/index.d.ts +0 -1
  252. package/dist/runtime/index.d.ts +0 -2
  253. package/dist/runtime/index.js +0 -39
  254. package/dist/runtime/server/bootstrap.validation.d.ts +0 -12
  255. package/dist/runtime/server/bootstrap.validation.js +0 -104
  256. package/dist/runtime/server/contracts/auth-provider.contract.d.ts +0 -58
  257. package/dist/runtime/server/contracts/auth-provider.contract.js +0 -23
  258. package/dist/runtime/server/contracts/repository/index.d.ts +0 -57
  259. package/dist/runtime/server/contracts/repository/index.js +0 -61
  260. package/dist/runtime/server/contracts/repository/repository.contract.d.ts +0 -224
  261. package/dist/runtime/server/contracts/repository/repository.contract.js +0 -341
  262. package/dist/runtime/server/contracts/repository/repository.types.d.ts +0 -51
  263. package/dist/runtime/server/contracts/repository/repository.types.js +0 -7
  264. package/dist/runtime/server/database/adapter.registry.d.ts +0 -4
  265. package/dist/runtime/server/database/adapter.registry.js +0 -14
  266. package/dist/runtime/server/database/database.contract.d.ts +0 -128
  267. package/dist/runtime/server/database/database.contract.js +0 -29
  268. package/dist/runtime/server/database/database.service.d.ts +0 -188
  269. package/dist/runtime/server/database/database.service.js +0 -287
  270. package/dist/runtime/server/database/index.d.ts +0 -5
  271. package/dist/runtime/server/database/index.js +0 -25
  272. package/dist/runtime/server/database/types.d.ts +0 -67
  273. package/dist/runtime/server/database/types.js +0 -7
  274. package/dist/runtime/server/database.d.ts +0 -7
  275. package/dist/runtime/server/devmode/hot-reload.server.d.ts +0 -74
  276. package/dist/runtime/server/devmode/hot-reload.server.js +0 -261
  277. package/dist/runtime/server/services/config.service.d.ts +0 -75
  278. package/dist/runtime/server/services/config.service.js +0 -116
  279. package/dist/runtime/server/services/http/http.service.d.ts +0 -50
  280. package/dist/runtime/server/services/http/http.service.js +0 -126
  281. /package/dist/adapters/contracts/{IPedAppearanceClient.js → client/IPedAppearanceClient.js} +0 -0
  282. /package/dist/adapters/contracts/{IPedAppearanceServer.d.ts → server/IPedAppearanceServer.d.ts} +0 -0
  283. /package/dist/adapters/contracts/{IPedAppearanceServer.js → server/IPedAppearanceServer.js} +0 -0
  284. /package/dist/adapters/contracts/{IVehicleServer.d.ts → server/IVehicleServer.d.ts} +0 -0
  285. /package/dist/adapters/contracts/{IVehicleServer.js → server/IVehicleServer.js} +0 -0
  286. /package/dist/kernel/{utils/error → error}/app.error.js +0 -0
  287. /package/dist/kernel/{shared/logger/transports/transport.interface.js → error/common.error-codes.js} +0 -0
  288. /package/dist/{runtime/server/types/security.types.js → kernel/error/framework.error-codes.js} +0 -0
  289. /package/dist/kernel/{utils/error → error}/security.error.js +0 -0
  290. /package/dist/{runtime/server/types → kernel/error}/security.types.d.ts +0 -0
  291. /package/dist/kernel/{shared/logger → logger}/index.d.ts +0 -0
  292. /package/dist/kernel/{shared/logger → logger}/index.js +0 -0
  293. /package/dist/kernel/{shared/logger → logger}/logger.config.d.ts +0 -0
  294. /package/dist/kernel/{shared/logger → logger}/logger.config.js +0 -0
  295. /package/dist/kernel/{shared/logger → logger}/logger.types.d.ts +0 -0
  296. /package/dist/kernel/{shared/logger → logger}/logger.types.js +0 -0
  297. /package/dist/kernel/{shared/logger → logger}/transports/buffered.transport.d.ts +0 -0
  298. /package/dist/kernel/{shared/logger → logger}/transports/buffered.transport.js +0 -0
  299. /package/dist/kernel/{shared/logger → logger}/transports/console.transport.d.ts +0 -0
  300. /package/dist/kernel/{shared/logger → logger}/transports/console.transport.js +0 -0
  301. /package/dist/kernel/{shared/logger → logger}/transports/dev-transport.factory.d.ts +0 -0
  302. /package/dist/kernel/{shared/logger → logger}/transports/dev-transport.factory.js +0 -0
  303. /package/dist/kernel/{shared/logger → logger}/transports/http.transport.d.ts +0 -0
  304. /package/dist/kernel/{shared/logger → logger}/transports/http.transport.js +0 -0
  305. /package/dist/kernel/{shared/logger → logger}/transports/index.d.ts +0 -0
  306. /package/dist/kernel/{shared/logger → logger}/transports/index.js +0 -0
  307. /package/dist/kernel/{shared/logger → logger}/transports/simple-console.transport.d.ts +0 -0
  308. /package/dist/kernel/{shared/logger → logger}/transports/simple-console.transport.js +0 -0
  309. /package/dist/kernel/{shared/logger → logger}/transports/transport.interface.d.ts +0 -0
  310. /package/dist/kernel/{shared/logger → logger}/transports/websocket.transport.d.ts +0 -0
  311. /package/dist/kernel/{shared/logger → logger}/transports/websocket.transport.js +0 -0
  312. /package/dist/kernel/shared/{appearance/appearance.interface.d.ts → player-appearance.types.d.ts} +0 -0
  313. /package/dist/kernel/shared/{appearance/appearance.interface.js → player-appearance.types.js} +0 -0
@@ -1,8 +1,11 @@
1
1
  import { IPlayerInfo } from '../../../adapters';
2
- import { IEntityServer } from '../../../adapters/contracts/IEntityServer';
3
2
  import { INetTransport } from '../../../adapters/contracts/INetTransport';
4
- import { IPlayerServer } from '../../../adapters/contracts/IPlayerServer';
5
- import { Vector3 } from '../../../kernel/utils';
3
+ import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
4
+ import { IPlayerServer } from '../../../adapters/contracts/server/IPlayerServer';
5
+ import type { PlayerIdentifier } from '../../../adapters/contracts/types/identifier';
6
+ import { Vector3 } from '../../../kernel/utils/vector3';
7
+ import { BaseEntity } from '../../core/entity';
8
+ import { Spatial } from '../../core/spatial';
6
9
  import { LinkedID } from '../services/types/linked-id';
7
10
  import { PlayerSession } from '../services/types/player-session.object';
8
11
  import { SerializedPlayerData } from '../types/core-exports';
@@ -19,17 +22,20 @@ export interface PlayerAdapters {
19
22
  /**
20
23
  * Core-level representation of a connected player on the server.
21
24
  *
22
- * This class wraps FiveM natives and session information.
25
+ * @remarks
26
+ * This class wraps platform natives and session information.
23
27
  * It serves as an abstraction layer to interact with the connected client
24
28
  * (kicking, teleporting, emitting events) without dealing with raw IDs everywhere.
25
29
  *
26
- * ⚠️ **Design Note:** This class does NOT contain gameplay logic (money, jobs, inventory).
30
+ * **Design Note:** This class does NOT contain gameplay logic (money, jobs, inventory).
27
31
  * Domain logic should live in your modules' services/models (e.g., `EconomyService`, `JobModel`).
32
+ *
33
+ * This class is platform-agnostic and works across different game engines
34
+ * (FiveM, RageMP, alt:V, etc.) through the adapter pattern.
28
35
  */
29
- export declare class Player {
36
+ export declare class Player extends BaseEntity implements Spatial {
30
37
  private readonly session;
31
38
  private readonly adapters;
32
- private states;
33
39
  private position;
34
40
  /**
35
41
  * Creates a new Player entity instance.
@@ -40,64 +46,81 @@ export declare class Player {
40
46
  */
41
47
  constructor(session: PlayerSession, adapters: PlayerAdapters);
42
48
  /**
43
- * The numeric FiveM Server ID (Source) of the player.
44
- * Useful for internal logic and array indexing.
49
+ * The numeric client/server ID of the player.
50
+ * This is the platform-specific player identifier used for native calls.
45
51
  */
46
52
  get clientID(): number;
47
- /**
48
- * The FiveM Server ID as a string.
49
- * Required by most FiveM native functions (e.g., `GetPlayerName`, `DropPlayer`).
50
- */
51
- get clientIDStr(): string;
52
53
  /**
53
54
  * The persistent Account ID linked to this session, if the player is authenticated.
54
55
  * Returns `undefined` if the player has not logged in yet.
55
56
  */
56
57
  get accountID(): string | undefined;
57
58
  /**
58
- * The display name of the player (Steam name or FiveM username).
59
+ * The display name of the player.
59
60
  */
60
61
  get name(): string;
61
- getPosition(): Vector3 | undefined;
62
+ getPosition(): Vector3;
62
63
  /**
63
- * Retrieves all platform identifiers associated with the player (steam, license, discord, ip, etc.).
64
+ * Sets the player position using the platform-agnostic API.
64
65
  *
66
+ * @param vector - The target coordinates (x, y, z).
67
+ */
68
+ setPosition(vector: Vector3): void;
69
+ /**
70
+ * Retrieves all platform identifiers associated with the player.
71
+ *
72
+ * @deprecated Use getPlayerIdentifiers() for structured identifier data.
65
73
  * @returns An array of identifier strings (e.g., `['steam:11000...', 'license:2332...']`).
66
74
  */
67
75
  getIdentifiers(): string[];
68
76
  /**
69
- * FiveM license
77
+ * Retrieves all identifiers as structured objects.
78
+ *
79
+ * @returns An array of PlayerIdentifier objects with type, value, and raw fields.
80
+ */
81
+ getPlayerIdentifiers(): PlayerIdentifier[];
82
+ /**
83
+ * Gets a specific identifier by type.
84
+ *
85
+ * @param identifierType - The type of identifier (e.g., 'steam', 'license', 'discord')
86
+ * @returns The identifier string or undefined if not found
87
+ */
88
+ getIdentifier(identifierType: string): string | undefined;
89
+ /**
90
+ * Gets the player's license identifier.
91
+ * @deprecated Use getIdentifier('license') for cross-platform compatibility.
70
92
  */
71
93
  getLicense(): string | undefined;
72
- getIdentifier(identifier: string): string | undefined;
73
94
  /**
74
- * Sends a network event exclusively to this specific player (Client-side).
75
- * Wrapper for `emitNet` ensuring the correct target Source ID is used.
95
+ * Sends a network event exclusively to this specific player (client-side).
76
96
  *
77
97
  * @param eventName - The name of the event to trigger on the client.
78
98
  * @param args - Data to send to the client.
79
99
  */
80
100
  emit(eventName: string, ...args: any[]): void;
81
- /** used to send a private message to the player */
82
- send(message: string, type?: 'chat' | 'error' | 'success' | 'warning'): void;
83
101
  /**
84
- * Teleports the player to a given position using Server-Side natives.
102
+ * Sends a private message to the player.
85
103
  *
86
- * **Note:** This forces the entity position on the server. For smoother gameplay transitions
87
- * (e.g., inside interiors or across the map), consider using `teleportClient`.
88
- *
89
- * @param vector - The target coordinates (x, y, z).
104
+ * @param message - The message text
105
+ * @param type - Message type for styling
90
106
  */
91
- teleport(vector: Vector3): void;
107
+ send(message: string, type?: 'chat' | 'error' | 'success' | 'warning'): void;
92
108
  /**
93
- * Requests the Client to teleport itself via the Core Spawner system.
109
+ * Requests the client to teleport via the spawner system.
94
110
  *
111
+ * @remarks
95
112
  * This method is preferred for gameplay logic as it allows the client to handle
96
113
  * loading screens, fading, and collision loading gracefully.
97
114
  *
98
115
  * @param vector - The target coordinates (x, y, z).
99
116
  */
100
- teleportClient(vector: Vector3): void;
117
+ teleport(vector: Vector3): void;
118
+ /**
119
+ * Spawns the player at a position with a specific model.
120
+ *
121
+ * @param vector - The spawn coordinates
122
+ * @param model - The ped model to use (default: 'mp_m_freemode_01')
123
+ */
101
124
  spawn(vector: Vector3, model?: string): void;
102
125
  /**
103
126
  * Disconnects the player from the server.
@@ -106,12 +129,24 @@ export declare class Player {
106
129
  */
107
130
  kick(reason?: string): void;
108
131
  /**
109
- * Sets the routing bucket (virtual world / dimension) for the player.
132
+ * Sets the routing bucket (virtual world/dimension) for the player.
110
133
  * Players in different buckets cannot see or interact with each other.
111
134
  *
112
135
  * @param bucket - The bucket ID (0 is the default shared world).
113
136
  */
114
137
  setRoutingBucket(bucket: number): void;
138
+ /**
139
+ * Gets the current routing bucket.
140
+ */
141
+ getRoutingBucket(): number;
142
+ /**
143
+ * Sets the player dimension (alias for setRoutingBucket).
144
+ */
145
+ set dimension(value: number);
146
+ /**
147
+ * Gets the player dimension (alias for getRoutingBucket).
148
+ */
149
+ get dimension(): number;
115
150
  /**
116
151
  * Stores arbitrary transient metadata for this player's session.
117
152
  * Useful for flags like `isDead`, `isInRaid`, `lastLocation`, etc.
@@ -119,11 +154,10 @@ export declare class Player {
119
154
  * @param key - The unique key for the metadata.
120
155
  * @param value - The value to store.
121
156
  */
122
- setMeta(key: string, value: unknown): void;
157
+ setMeta<T = unknown>(key: string, value: T): void;
123
158
  /**
124
159
  * Retrieves metadata previously stored in the session.
125
160
  *
126
- * @template T - The expected type of the value.
127
161
  * @param key - The metadata key.
128
162
  * @returns The value cast to T, or `undefined` if not set.
129
163
  */
@@ -132,24 +166,22 @@ export declare class Player {
132
166
  * Links a persistent Account ID to the current session.
133
167
  * Should be called after successful authentication.
134
168
  *
135
- * @param accountID - The unique ID from the database.
169
+ * @param accountID - The unique ID from the persistent storage.
136
170
  */
137
171
  linkAccount(accountID: LinkedID): void;
172
+ /**
173
+ * Unlinks the account from the current session.
174
+ */
138
175
  unlinkAccount(): void;
139
176
  /**
140
177
  * Checks if the player currently possesses a specific state flag.
141
178
  *
142
179
  * @param state - The unique string identifier of the state (e.g., 'dead', 'cuffed').
143
- * @returns `true` if the state is active, `false` otherwise.
144
180
  */
145
181
  hasState(state: string): boolean;
146
182
  /**
147
183
  * Applies a state flag to the player.
148
184
  *
149
- * @remarks
150
- * Since states are stored in a `Set`, adding an existing state has no effect (idempotent).
151
- * Ideally, this should trigger a sync event to the client if needed.
152
- *
153
185
  * @param state - The state key to add.
154
186
  */
155
187
  addState(state: string): void;
@@ -163,48 +195,32 @@ export declare class Player {
163
195
  * Toggles the presence of a state flag.
164
196
  *
165
197
  * @param state - The state key to toggle.
166
- * @param force - If provided, forces the state to be added (`true`) or removed (`false`) regardless of its current status.
167
- *
168
- * @returns The final status of the state (`true` if active, `false` if inactive).
169
- *
170
- * @example
171
- * ```ts
172
- * // Standard toggle
173
- * player.toggleState('duty'); // turns on if off, off if on
174
- *
175
- * // Force enable (equivalent to addState but returns boolean)
176
- * player.toggleState('duty', true); // always results in true
177
- * ```
198
+ * @param force - If provided, forces the state to be added or removed.
199
+ * @returns The final status of the state.
178
200
  */
179
201
  toggleState(state: string, force?: boolean): boolean;
180
202
  /**
181
- * Retrieves a snapshot of all currently active state flags for this player.
182
- *
183
- * @returns An array containing all active state keys.
203
+ * Retrieves all currently active state flags.
184
204
  */
185
205
  getStates(): string[];
186
206
  /**
187
207
  * Gets the current health of the player's ped.
188
- *
189
- * @returns Current health value (0-200, where 100 is dead).
190
208
  */
191
209
  getHealth(): number;
192
210
  /**
193
211
  * Sets the health of the player's ped.
194
212
  *
195
- * @param health - Health value to set (0-200).
213
+ * @param health - Health value to set (platform-specific range).
196
214
  */
197
215
  setHealth(health: number): void;
198
216
  /**
199
217
  * Gets the current armor of the player's ped.
200
- *
201
- * @returns Current armor value (0-100).
202
218
  */
203
219
  getArmor(): number;
204
220
  /**
205
221
  * Sets the armor of the player's ped.
206
222
  *
207
- * @param armor - Armor value to set (0-100).
223
+ * @param armor - Armor value to set (typically 0-100).
208
224
  */
209
225
  setArmor(armor: number): void;
210
226
  /**
@@ -214,16 +230,14 @@ export declare class Player {
214
230
  /**
215
231
  * Checks if the player is alive.
216
232
  *
217
- * @returns `true` if health is above 100 (dead threshold), `false` otherwise.
233
+ * @remarks
234
+ * The threshold (100) is platform-specific. In GTA V-based platforms,
235
+ * health below 100 means dead.
218
236
  */
219
237
  isAlive(): boolean;
220
238
  /**
221
239
  * Serializes the player data for cross-resource transfer.
222
240
  *
223
- * @remarks
224
- * Creates a plain object representation of the player session that can be
225
- * safely transferred between resources via FiveM exports.
226
- *
227
241
  * @returns Serialized player data DTO
228
242
  */
229
243
  serialize(): SerializedPlayerData;