@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,5 +1,5 @@
1
- import { Vector3 } from '../../kernel/utils';
2
- import { type EntityStateBag, IEntityServer } from '../contracts/IEntityServer';
1
+ import { Vector3 } from '../../kernel/utils/vector3';
2
+ import { type EntityStateBag, IEntityServer, type SetPositionOptions } from '../contracts/server/IEntityServer';
3
3
  /**
4
4
  * Node.js mock implementation of server-side entity operations.
5
5
  * Used for testing and standalone mode.
@@ -9,6 +9,10 @@ export declare class NodeEntityServer extends IEntityServer {
9
9
  private stateBags;
10
10
  doesExist(handle: number): boolean;
11
11
  getCoords(handle: number): Vector3;
12
+ setPosition(handle: number, position: Vector3, _options?: SetPositionOptions): void;
13
+ /**
14
+ * @deprecated Use setPosition() for cross-platform compatibility.
15
+ */
12
16
  setCoords(handle: number, x: number, y: number, z: number): void;
13
17
  getHeading(handle: number): number;
14
18
  setHeading(handle: number, heading: number): void;
@@ -18,9 +22,16 @@ export declare class NodeEntityServer extends IEntityServer {
18
22
  setRoutingBucket(handle: number, bucket: number): void;
19
23
  getRoutingBucket(handle: number): number;
20
24
  getStateBag(handle: number): EntityStateBag;
21
- getHealth(_handle: number): number;
22
- setHealth(_handle: number, _health: number): void;
23
- getArmor(_handle: number): number;
24
- setArmor(_handle: number, _armor: number): void;
25
+ getHealth(handle: number): number;
26
+ setHealth(handle: number, health: number): void;
27
+ getArmor(handle: number): number;
28
+ setArmor(handle: number, armor: number): void;
29
+ /**
30
+ * Create a mock entity for testing.
31
+ */
25
32
  _createMockEntity(handle: number, model: number, coords: Vector3, heading?: number): void;
33
+ /**
34
+ * Clear all mock entities.
35
+ */
36
+ _clearAll(): void;
26
37
  }
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.NodeEntityServer = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const IEntityServer_1 = require("../contracts/IEntityServer");
11
+ const IEntityServer_1 = require("../contracts/server/IEntityServer");
12
12
  /**
13
13
  * Node.js mock implementation of server-side entity operations.
14
14
  * Used for testing and standalone mode.
@@ -26,6 +26,15 @@ let NodeEntityServer = class NodeEntityServer extends IEntityServer_1.IEntitySer
26
26
  var _a, _b;
27
27
  return (_b = (_a = this.entities.get(handle)) === null || _a === void 0 ? void 0 : _a.coords) !== null && _b !== void 0 ? _b : { x: 0, y: 0, z: 0 };
28
28
  }
29
+ setPosition(handle, position, _options) {
30
+ const entity = this.entities.get(handle);
31
+ if (entity) {
32
+ entity.coords = Object.assign({}, position);
33
+ }
34
+ }
35
+ /**
36
+ * @deprecated Use setPosition() for cross-platform compatibility.
37
+ */
29
38
  setCoords(handle, x, y, z) {
30
39
  const entity = this.entities.get(handle);
31
40
  if (entity) {
@@ -80,23 +89,40 @@ let NodeEntityServer = class NodeEntityServer extends IEntityServer_1.IEntitySer
80
89
  },
81
90
  };
82
91
  }
83
- // TODO
84
- getHealth(_handle) {
85
- throw new Error('Method not implemented.');
86
- }
87
- setHealth(_handle, _health) {
88
- throw new Error('Method not implemented.');
89
- }
90
- getArmor(_handle) {
91
- throw new Error('Method not implemented.');
92
- }
93
- setArmor(_handle, _armor) {
94
- throw new Error('Method not implemented.');
95
- }
96
- // Test helper: Create a mock entity
92
+ getHealth(handle) {
93
+ var _a;
94
+ const bag = this.getStateBag(handle);
95
+ return (_a = bag.get('health')) !== null && _a !== void 0 ? _a : 200;
96
+ }
97
+ setHealth(handle, health) {
98
+ const bag = this.getStateBag(handle);
99
+ bag.set('health', health, true);
100
+ }
101
+ getArmor(handle) {
102
+ var _a;
103
+ const bag = this.getStateBag(handle);
104
+ return (_a = bag.get('armor')) !== null && _a !== void 0 ? _a : 0;
105
+ }
106
+ setArmor(handle, armor) {
107
+ const bag = this.getStateBag(handle);
108
+ bag.set('armor', armor, true);
109
+ }
110
+ // ─────────────────────────────────────────────────────────────────
111
+ // Test Helpers
112
+ // ─────────────────────────────────────────────────────────────────
113
+ /**
114
+ * Create a mock entity for testing.
115
+ */
97
116
  _createMockEntity(handle, model, coords, heading = 0) {
98
117
  this.entities.set(handle, { coords, heading, model, bucket: 0 });
99
118
  }
119
+ /**
120
+ * Clear all mock entities.
121
+ */
122
+ _clearAll() {
123
+ this.entities.clear();
124
+ this.stateBags.clear();
125
+ }
100
126
  };
101
127
  exports.NodeEntityServer = NodeEntityServer;
102
128
  exports.NodeEntityServer = NodeEntityServer = __decorate([
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.NodeNetTransport = void 0;
10
10
  const node_events_1 = require("node:events");
11
11
  const tsyringe_1 = require("tsyringe");
12
- const shared_1 = require("../../kernel/shared");
12
+ const logger_1 = require("../../kernel/logger");
13
13
  /**
14
14
  * Node.js implementation of INetTransport using EventEmitter.
15
15
  * Suitable for testing and non-FiveM runtime environments.
@@ -21,7 +21,7 @@ let NodeNetTransport = class NodeNetTransport {
21
21
  onNet(eventName, handler) {
22
22
  this.eventEmitter.on(eventName, (ctx, ...args) => {
23
23
  void Promise.resolve(handler(ctx, ...args)).catch((err) => {
24
- shared_1.loggers.netEvent.error(`handler error for '${eventName}'`, {}, err);
24
+ logger_1.loggers.netEvent.error(`handler error for '${eventName}'`, {}, err);
25
25
  });
26
26
  });
27
27
  }
@@ -1,5 +1,5 @@
1
1
  import { HeadBlendData } from '../../kernel/shared';
2
- import { IPedAppearanceClient } from '../contracts/IPedAppearanceClient';
2
+ import { IPedAppearanceClient } from '../contracts/client/IPedAppearanceClient';
3
3
  /**
4
4
  * Node.js stub implementation of client-side ped appearance adapter.
5
5
  *
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodePedAppearanceClient = void 0;
4
- const IPedAppearanceClient_1 = require("../contracts/IPedAppearanceClient");
4
+ const IPedAppearanceClient_1 = require("../contracts/client/IPedAppearanceClient");
5
5
  /**
6
6
  * Node.js stub implementation of client-side ped appearance adapter.
7
7
  *
@@ -1,4 +1,4 @@
1
- import { IPedAppearanceServer } from '../contracts/IPedAppearanceServer';
1
+ import { IPedAppearanceServer } from '../contracts/server/IPedAppearanceServer';
2
2
  /**
3
3
  * Node.js stub implementation of server-side ped appearance adapter.
4
4
  *
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodePedAppearanceServer = void 0;
4
- const IPedAppearanceServer_1 = require("../contracts/IPedAppearanceServer");
4
+ const IPedAppearanceServer_1 = require("../contracts/server/IPedAppearanceServer");
5
5
  /**
6
6
  * Node.js stub implementation of server-side ped appearance adapter.
7
7
  *
@@ -0,0 +1,5 @@
1
+ import type { PlatformAdapter } from '../platform/platform-registry';
2
+ /**
3
+ * Node.js mock platform adapter for testing and standalone development.
4
+ */
5
+ export declare const NodePlatform: PlatformAdapter;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NodePlatform = void 0;
37
+ const IEngineEvents_1 = require("../contracts/IEngineEvents");
38
+ const IExports_1 = require("../contracts/IExports");
39
+ const IHasher_1 = require("../contracts/IHasher");
40
+ const INetTransport_1 = require("../contracts/INetTransport");
41
+ const IPlatformCapabilities_1 = require("../contracts/IPlatformCapabilities");
42
+ const IPlayerInfo_1 = require("../contracts/IPlayerInfo");
43
+ const IResourceInfo_1 = require("../contracts/IResourceInfo");
44
+ const ITick_1 = require("../contracts/ITick");
45
+ const IEntityServer_1 = require("../contracts/server/IEntityServer");
46
+ const IPedAppearanceServer_1 = require("../contracts/server/IPedAppearanceServer");
47
+ const IPlayerServer_1 = require("../contracts/server/IPlayerServer");
48
+ const IVehicleServer_1 = require("../contracts/server/IVehicleServer");
49
+ /**
50
+ * Node.js mock platform adapter for testing and standalone development.
51
+ */
52
+ exports.NodePlatform = {
53
+ name: 'node',
54
+ priority: 0, // Lowest priority - fallback platform
55
+ detect() {
56
+ var _a;
57
+ // Node is the fallback platform when no other platform is detected
58
+ // It should only match if we're running in pure Node.js
59
+ return typeof process !== 'undefined' && ((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node) !== undefined;
60
+ },
61
+ async register(container) {
62
+ // Dynamically import Node.js mock implementations
63
+ const [{ NodeNetTransport }, { NodeEngineEvents }, { NodeExports }, { NodeResourceInfo }, { NodeTick }, { NodePlayerInfo }, { NodeEntityServer }, { NodeVehicleServer }, { NodePlayerServer }, { NodeHasher }, { NodePedAppearanceServer }, { NodeCapabilities },] = await Promise.all([
64
+ Promise.resolve().then(() => __importStar(require('./node-net-transport'))),
65
+ Promise.resolve().then(() => __importStar(require('./node-engine-events'))),
66
+ Promise.resolve().then(() => __importStar(require('./node-exports'))),
67
+ Promise.resolve().then(() => __importStar(require('./node-resourceinfo'))),
68
+ Promise.resolve().then(() => __importStar(require('./node-tick'))),
69
+ Promise.resolve().then(() => __importStar(require('./node-playerinfo'))),
70
+ Promise.resolve().then(() => __importStar(require('./node-entity-server'))),
71
+ Promise.resolve().then(() => __importStar(require('./node-vehicle-server'))),
72
+ Promise.resolve().then(() => __importStar(require('./node-player-server'))),
73
+ Promise.resolve().then(() => __importStar(require('./node-hasher'))),
74
+ Promise.resolve().then(() => __importStar(require('./node-ped-appearance-server'))),
75
+ Promise.resolve().then(() => __importStar(require('./node-capabilities'))),
76
+ ]);
77
+ // Register all Node.js mock implementations
78
+ if (!container.isRegistered(IPlatformCapabilities_1.IPlatformCapabilities))
79
+ container.registerSingleton(IPlatformCapabilities_1.IPlatformCapabilities, NodeCapabilities);
80
+ if (!container.isRegistered(INetTransport_1.INetTransport))
81
+ container.registerSingleton(INetTransport_1.INetTransport, NodeNetTransport);
82
+ if (!container.isRegistered(IEngineEvents_1.IEngineEvents))
83
+ container.registerSingleton(IEngineEvents_1.IEngineEvents, NodeEngineEvents);
84
+ if (!container.isRegistered(IExports_1.IExports))
85
+ container.registerSingleton(IExports_1.IExports, NodeExports);
86
+ if (!container.isRegistered(IResourceInfo_1.IResourceInfo))
87
+ container.registerSingleton(IResourceInfo_1.IResourceInfo, NodeResourceInfo);
88
+ if (!container.isRegistered(ITick_1.ITick))
89
+ container.registerSingleton(ITick_1.ITick, NodeTick);
90
+ if (!container.isRegistered(IPlayerInfo_1.IPlayerInfo))
91
+ container.registerSingleton(IPlayerInfo_1.IPlayerInfo, NodePlayerInfo);
92
+ if (!container.isRegistered(IEntityServer_1.IEntityServer))
93
+ container.registerSingleton(IEntityServer_1.IEntityServer, NodeEntityServer);
94
+ if (!container.isRegistered(IVehicleServer_1.IVehicleServer))
95
+ container.registerSingleton(IVehicleServer_1.IVehicleServer, NodeVehicleServer);
96
+ if (!container.isRegistered(IPlayerServer_1.IPlayerServer))
97
+ container.registerSingleton(IPlayerServer_1.IPlayerServer, NodePlayerServer);
98
+ if (!container.isRegistered(IHasher_1.IHasher))
99
+ container.registerSingleton(IHasher_1.IHasher, NodeHasher);
100
+ if (!container.isRegistered(IPedAppearanceServer_1.IPedAppearanceServer))
101
+ container.registerSingleton(IPedAppearanceServer_1.IPedAppearanceServer, NodePedAppearanceServer);
102
+ },
103
+ };
@@ -1,4 +1,5 @@
1
- import { IPlayerServer } from '../contracts/IPlayerServer';
1
+ import { IPlayerServer } from '../contracts/server/IPlayerServer';
2
+ import { type PlayerIdentifier } from '../contracts/types/identifier';
2
3
  /**
3
4
  * Node.js mock implementation of server-side player operations.
4
5
  * Used for testing and standalone mode.
@@ -9,20 +10,35 @@ export declare class NodePlayerServer extends IPlayerServer {
9
10
  getPed(playerSrc: string): number;
10
11
  drop(playerSrc: string, _reason: string): void;
11
12
  getIdentifier(playerSrc: string, identifierType: string): string | undefined;
13
+ /**
14
+ * @deprecated Use getPlayerIdentifiers() for structured identifier data.
15
+ */
12
16
  getIdentifiers(playerSrc: string): string[];
17
+ getPlayerIdentifiers(playerSrc: string): PlayerIdentifier[];
13
18
  getNumIdentifiers(playerSrc: string): number;
14
19
  getName(playerSrc: string): string;
15
20
  getPing(playerSrc: string): number;
16
21
  getEndpoint(playerSrc: string): string;
22
+ setRoutingBucket(playerSrc: string, bucket: number): void;
23
+ getRoutingBucket(playerSrc: string): number;
24
+ getConnectedPlayers(): string[];
25
+ /**
26
+ * Add a mock player for testing.
27
+ */
17
28
  _addMockPlayer(playerSrc: string, data: {
18
29
  ped?: number;
19
30
  name?: string;
20
31
  identifiers?: string[];
21
32
  ping?: number;
22
33
  endpoint?: string;
34
+ routingBucket?: number;
23
35
  }): void;
36
+ /**
37
+ * Check if a player was dropped.
38
+ */
24
39
  _wasDropped(playerSrc: string): boolean;
25
- setRoutingBucket(_playerSrc: string, _bucket: number): void;
26
- getConnectedPlayers(): string[];
40
+ /**
41
+ * Clear all mock data.
42
+ */
27
43
  _clear(): void;
28
44
  }
@@ -8,7 +8,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.NodePlayerServer = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const IPlayerServer_1 = require("../contracts/IPlayerServer");
11
+ const IPlayerServer_1 = require("../contracts/server/IPlayerServer");
12
+ const identifier_1 = require("../contracts/types/identifier");
12
13
  /**
13
14
  * Node.js mock implementation of server-side player operations.
14
15
  * Used for testing and standalone mode.
@@ -34,10 +35,24 @@ let NodePlayerServer = class NodePlayerServer extends IPlayerServer_1.IPlayerSer
34
35
  const prefix = `${identifierType}:`;
35
36
  return player.identifiers.find((id) => id.startsWith(prefix));
36
37
  }
38
+ /**
39
+ * @deprecated Use getPlayerIdentifiers() for structured identifier data.
40
+ */
37
41
  getIdentifiers(playerSrc) {
38
42
  var _a, _b;
39
43
  return (_b = (_a = this.players.get(playerSrc)) === null || _a === void 0 ? void 0 : _a.identifiers) !== null && _b !== void 0 ? _b : [];
40
44
  }
45
+ getPlayerIdentifiers(playerSrc) {
46
+ const rawIdentifiers = this.getIdentifiers(playerSrc);
47
+ const identifiers = [];
48
+ for (const raw of rawIdentifiers) {
49
+ const parsed = (0, identifier_1.parseIdentifier)(raw);
50
+ if (parsed) {
51
+ identifiers.push(parsed);
52
+ }
53
+ }
54
+ return identifiers;
55
+ }
41
56
  getNumIdentifiers(playerSrc) {
42
57
  var _a, _b;
43
58
  return (_b = (_a = this.players.get(playerSrc)) === null || _a === void 0 ? void 0 : _a.identifiers.length) !== null && _b !== void 0 ? _b : 0;
@@ -54,26 +69,45 @@ let NodePlayerServer = class NodePlayerServer extends IPlayerServer_1.IPlayerSer
54
69
  var _a, _b;
55
70
  return (_b = (_a = this.players.get(playerSrc)) === null || _a === void 0 ? void 0 : _a.endpoint) !== null && _b !== void 0 ? _b : '';
56
71
  }
57
- // Test helpers
72
+ setRoutingBucket(playerSrc, bucket) {
73
+ const player = this.players.get(playerSrc);
74
+ if (player) {
75
+ player.routingBucket = bucket;
76
+ }
77
+ }
78
+ getRoutingBucket(playerSrc) {
79
+ var _a, _b;
80
+ return (_b = (_a = this.players.get(playerSrc)) === null || _a === void 0 ? void 0 : _a.routingBucket) !== null && _b !== void 0 ? _b : 0;
81
+ }
82
+ getConnectedPlayers() {
83
+ return Array.from(this.players.keys());
84
+ }
85
+ // ─────────────────────────────────────────────────────────────────
86
+ // Test Helpers
87
+ // ─────────────────────────────────────────────────────────────────
88
+ /**
89
+ * Add a mock player for testing.
90
+ */
58
91
  _addMockPlayer(playerSrc, data) {
59
- var _a, _b, _c, _d, _e;
92
+ var _a, _b, _c, _d, _e, _f;
60
93
  this.players.set(playerSrc, {
61
94
  ped: (_a = data.ped) !== null && _a !== void 0 ? _a : 0,
62
95
  name: (_b = data.name) !== null && _b !== void 0 ? _b : 'TestPlayer',
63
96
  identifiers: (_c = data.identifiers) !== null && _c !== void 0 ? _c : [],
64
97
  ping: (_d = data.ping) !== null && _d !== void 0 ? _d : 50,
65
98
  endpoint: (_e = data.endpoint) !== null && _e !== void 0 ? _e : '127.0.0.1:30120',
99
+ routingBucket: (_f = data.routingBucket) !== null && _f !== void 0 ? _f : 0,
66
100
  });
67
101
  }
102
+ /**
103
+ * Check if a player was dropped.
104
+ */
68
105
  _wasDropped(playerSrc) {
69
106
  return this.droppedPlayers.includes(playerSrc);
70
107
  }
71
- setRoutingBucket(_playerSrc, _bucket) {
72
- // Mock: no-op in Node.js
73
- }
74
- getConnectedPlayers() {
75
- return Array.from(this.players.keys());
76
- }
108
+ /**
109
+ * Clear all mock data.
110
+ */
77
111
  _clear() {
78
112
  this.players.clear();
79
113
  this.droppedPlayers = [];
@@ -1,6 +1,6 @@
1
1
  import { Vector3 } from '../../kernel';
2
2
  import { IPlayerInfo } from '../contracts/IPlayerInfo';
3
- export declare class NodePlayerInfo implements IPlayerInfo {
3
+ export declare class NodePlayerInfo extends IPlayerInfo {
4
4
  getPlayerName(clientId: number): string | null;
5
- getPlayerPosition(_clientId: number): Vector3 | undefined;
5
+ getPlayerPosition(_clientId: number): Vector3;
6
6
  }
@@ -1,12 +1,23 @@
1
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
+ };
2
8
  Object.defineProperty(exports, "__esModule", { value: true });
3
9
  exports.NodePlayerInfo = void 0;
4
- class NodePlayerInfo {
10
+ const tsyringe_1 = require("tsyringe");
11
+ const IPlayerInfo_1 = require("../contracts/IPlayerInfo");
12
+ let NodePlayerInfo = class NodePlayerInfo extends IPlayerInfo_1.IPlayerInfo {
5
13
  getPlayerName(clientId) {
6
14
  return `Player${clientId.toString()}`;
7
15
  }
8
16
  getPlayerPosition(_clientId) {
9
- return { x: 6, y: 7, z: 6 };
17
+ return { x: 0, y: 0, z: 0 };
10
18
  }
11
- }
19
+ };
12
20
  exports.NodePlayerInfo = NodePlayerInfo;
21
+ exports.NodePlayerInfo = NodePlayerInfo = __decorate([
22
+ (0, tsyringe_1.injectable)()
23
+ ], NodePlayerInfo);
@@ -1,4 +1,4 @@
1
- import { IVehicleServer } from '../contracts/IVehicleServer';
1
+ import { IVehicleServer } from '../contracts/server/IVehicleServer';
2
2
  /**
3
3
  * Node.js mock implementation of server-side vehicle operations.
4
4
  * Used for testing and standalone mode.
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.NodeVehicleServer = void 0;
10
10
  const tsyringe_1 = require("tsyringe");
11
- const IVehicleServer_1 = require("../contracts/IVehicleServer");
11
+ const IVehicleServer_1 = require("../contracts/server/IVehicleServer");
12
12
  /**
13
13
  * Node.js mock implementation of server-side vehicle operations.
14
14
  * Used for testing and standalone mode.
@@ -0,0 +1 @@
1
+ export * from './platform-registry';
@@ -14,10 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- /**
18
- * Database Module Re-export
19
- *
20
- * This file re-exports the database module for backwards compatibility.
21
- * Prefer importing directly from '@open-core/framework/server' or './database/index'
22
- */
23
- __exportStar(require("./database/index"), exports);
17
+ __exportStar(require("./platform-registry"), exports);
@@ -0,0 +1,101 @@
1
+ import type { DependencyContainer } from 'tsyringe';
2
+ /**
3
+ * Platform adapter interface for registering platform-specific implementations.
4
+ *
5
+ * @remarks
6
+ * Each supported platform (FiveM, RageMP, alt:V, etc.) should implement this
7
+ * interface to provide automatic detection and dependency registration.
8
+ */
9
+ export interface PlatformAdapter {
10
+ /**
11
+ * Unique platform identifier.
12
+ * @example 'fivem', 'ragemp', 'altv', 'node'
13
+ */
14
+ readonly name: string;
15
+ /**
16
+ * Priority for platform detection (higher = checked first).
17
+ * Useful when multiple platforms might match.
18
+ * @default 0
19
+ */
20
+ readonly priority?: number;
21
+ /**
22
+ * Detect if the current runtime is this platform.
23
+ * @returns true if running on this platform
24
+ */
25
+ detect(): boolean;
26
+ /**
27
+ * Register all platform-specific adapters in the DI container.
28
+ * @param container - The dependency injection container
29
+ */
30
+ register(container: DependencyContainer): Promise<void>;
31
+ }
32
+ /**
33
+ * Registry for platform adapters.
34
+ * Allows dynamic registration and detection of platforms.
35
+ */
36
+ declare class PlatformRegistry {
37
+ private adapters;
38
+ private currentPlatform;
39
+ /**
40
+ * Register a platform adapter.
41
+ * @param adapter - Platform adapter to register
42
+ */
43
+ register(adapter: PlatformAdapter): void;
44
+ /**
45
+ * Unregister a platform adapter.
46
+ * @param name - Platform name to unregister
47
+ */
48
+ unregister(name: string): void;
49
+ /**
50
+ * Get all registered platform adapters.
51
+ */
52
+ getAll(): readonly PlatformAdapter[];
53
+ /**
54
+ * Get a specific platform adapter by name.
55
+ * @param name - Platform name
56
+ */
57
+ get(name: string): PlatformAdapter | undefined;
58
+ /**
59
+ * Detect the current platform from registered adapters.
60
+ * @returns The detected platform adapter or undefined
61
+ */
62
+ detect(): PlatformAdapter | undefined;
63
+ /**
64
+ * Detect and register platform capabilities in the container.
65
+ *
66
+ * @param container - DI container to register adapters in
67
+ * @param forcePlatform - Optional platform name to force (skip detection)
68
+ * @returns The registered platform adapter
69
+ * @throws Error if no platform is detected
70
+ */
71
+ detectAndRegister(container: DependencyContainer, forcePlatform?: string): Promise<PlatformAdapter>;
72
+ /**
73
+ * Get the currently active platform.
74
+ * Only available after detectAndRegister has been called.
75
+ */
76
+ getCurrent(): PlatformAdapter | null;
77
+ /**
78
+ * Check if a specific platform is currently active.
79
+ * @param name - Platform name to check
80
+ */
81
+ isCurrentPlatform(name: string): boolean;
82
+ /**
83
+ * Clear all registered adapters (mainly for testing).
84
+ */
85
+ clear(): void;
86
+ }
87
+ /**
88
+ * Global platform registry instance.
89
+ */
90
+ export declare const platformRegistry: PlatformRegistry;
91
+ /**
92
+ * Convenience function to register a platform adapter.
93
+ * @param adapter - Platform adapter to register
94
+ */
95
+ export declare function registerPlatform(adapter: PlatformAdapter): void;
96
+ /**
97
+ * Get the current platform name.
98
+ * @returns Platform name or 'unknown' if not detected
99
+ */
100
+ export declare function getCurrentPlatformName(): string;
101
+ export {};