@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,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResourceDatabaseAdapter = void 0;
4
- const database_contract_1 = require("../../runtime/server/database/database.contract");
5
- function getDbResourceName() {
6
- const name = GetConvar('opencore_db_resource', '').trim();
7
- if (!name) {
8
- throw new Error('[OpenCore] opencore_db_resource is required when opencore_db_adapter=resource');
9
- }
10
- return name;
11
- }
12
- function getDbExports() {
13
- const resourceName = getDbResourceName();
14
- const db = exports[resourceName];
15
- if (!db) {
16
- throw new Error(`[OpenCore] Database resource '${resourceName}' is not available. Start it before this resource.`);
17
- }
18
- return db;
19
- }
20
- function normalizeQueries(queries) {
21
- if (queries.length === 0)
22
- return [];
23
- const first = queries[0];
24
- if (typeof first === 'string') {
25
- return queries;
26
- }
27
- if (Array.isArray(first)) {
28
- return queries.map(([query, values]) => ({
29
- query,
30
- values,
31
- }));
32
- }
33
- return queries;
34
- }
35
- class ResourceDatabaseAdapter extends database_contract_1.DatabaseContract {
36
- constructor() {
37
- super();
38
- this.db = getDbExports();
39
- }
40
- async query(sql, params) {
41
- const result = await this.db.query_async(sql, params);
42
- return result !== null && result !== void 0 ? result : [];
43
- }
44
- async single(sql, params) {
45
- const result = await this.db.single_async(sql, params);
46
- return result !== null && result !== void 0 ? result : null;
47
- }
48
- async scalar(sql, params) {
49
- const result = await this.db.scalar_async(sql, params);
50
- return result !== null && result !== void 0 ? result : null;
51
- }
52
- async execute(sql, params) {
53
- return await this.db.execute_async(sql, params);
54
- }
55
- async insert(sql, params) {
56
- return await this.db.insert_async(sql, params);
57
- }
58
- async transaction(queries, sharedParams) {
59
- if (queries.length === 0)
60
- return true;
61
- const normalizedQueries = normalizeQueries(queries);
62
- if (sharedParams) {
63
- return await this.db.transaction_async(normalizedQueries, sharedParams);
64
- }
65
- return await this.db.transaction_async(normalizedQueries);
66
- }
67
- }
68
- exports.ResourceDatabaseAdapter = ResourceDatabaseAdapter;
@@ -1 +0,0 @@
1
- export * from './appearance.interface';
@@ -1,2 +0,0 @@
1
- export * as Client from './client';
2
- export * as Server from './server';
@@ -1,39 +0,0 @@
1
- "use strict";
2
- // Runtime - System execution
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.Server = exports.Client = void 0;
38
- exports.Client = __importStar(require("./client"));
39
- exports.Server = __importStar(require("./server"));
@@ -1,12 +0,0 @@
1
- export type BootstrapValidator = () => string[] | Promise<string[]>;
2
- /**
3
- * Register a bootstrap validator.
4
- * This is only used for cases of custom validators or resources that require validation,
5
- * like Driver resources.
6
- *
7
- * @param name - The name of the validator.
8
- * @param validator - The validator function.
9
- */
10
- export declare function registerBootstrapValidator(name: string, validator: BootstrapValidator): void;
11
- export declare function runBootstrapValidatorsOrThrow(): Promise<void>;
12
- export declare function registerDefaultBootstrapValidators(): void;
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerBootstrapValidator = registerBootstrapValidator;
4
- exports.runBootstrapValidatorsOrThrow = runBootstrapValidatorsOrThrow;
5
- exports.registerDefaultBootstrapValidators = registerDefaultBootstrapValidators;
6
- const zod_1 = require("zod");
7
- const logger_1 = require("../../kernel/shared/logger");
8
- const validators = new Map();
9
- /**
10
- * Register a bootstrap validator.
11
- * This is only used for cases of custom validators or resources that require validation,
12
- * like Driver resources.
13
- *
14
- * @param name - The name of the validator.
15
- * @param validator - The validator function.
16
- */
17
- function registerBootstrapValidator(name, validator) {
18
- if (validators.has(name)) {
19
- throw new Error(`[OpenCore] Bootstrap validator '${name}' is already registered`);
20
- }
21
- validators.set(name, validator);
22
- }
23
- async function runBootstrapValidatorsOrThrow() {
24
- const allErrors = [];
25
- for (const [name, validator] of validators.entries()) {
26
- const errors = await validator();
27
- for (const err of errors)
28
- allErrors.push(`[${name}] ${err}`);
29
- }
30
- if (allErrors.length === 0)
31
- return;
32
- const message = ['Invalid configuration detected during bootstrap:', ...allErrors].join('\n');
33
- logger_1.loggers.bootstrap.fatal(message);
34
- throw new Error(`[OpenCore] CRITICAL: ${message}`);
35
- }
36
- function getBooleanConvar(name, defaultValue = false) {
37
- const raw = GetConvar(name, defaultValue ? 'true' : 'false')
38
- .toLowerCase()
39
- .trim();
40
- return raw === 'true' || raw === '1' || raw === 'yes' || raw === 'y';
41
- }
42
- function getOptionalStringConvar(name) {
43
- const raw = GetConvar(name, '').trim();
44
- return raw.length > 0 ? raw : undefined;
45
- }
46
- function zodIssuesToLines(prefix, error) {
47
- return error.issues.map((i) => {
48
- const path = i.path.length ? `${prefix}.${i.path.join('.')}` : prefix;
49
- return `${path}: ${i.message}`;
50
- });
51
- }
52
- const PersistenceSchema = zod_1.z
53
- .object({
54
- enabled: zod_1.z.boolean(),
55
- adapter: zod_1.z.string().min(1).optional(),
56
- resourceName: zod_1.z.string().min(1).optional(),
57
- })
58
- .superRefine((val, ctx) => {
59
- if (!val.enabled)
60
- return;
61
- if (!val.adapter) {
62
- ctx.addIssue({
63
- code: 'custom',
64
- path: ['adapter'],
65
- message: 'Required when opencore_persistence_enabled=true (set opencore_db_adapter)',
66
- });
67
- return;
68
- }
69
- if (val.adapter === 'resource' && !val.resourceName) {
70
- ctx.addIssue({
71
- code: 'custom',
72
- path: ['resourceName'],
73
- message: 'Required when opencore_db_adapter=resource (set opencore_db_resource)',
74
- });
75
- }
76
- });
77
- function validatePersistence() {
78
- const enabled = getBooleanConvar('opencore_persistence_enabled', false);
79
- if (!enabled)
80
- return [];
81
- const adapter = getOptionalStringConvar('opencore_db_adapter');
82
- const resourceName = getOptionalStringConvar('opencore_db_resource');
83
- const parsed = PersistenceSchema.safeParse({ enabled, adapter, resourceName });
84
- if (!parsed.success)
85
- return zodIssuesToLines('persistence', parsed.error);
86
- if (adapter === 'resource') {
87
- if (!resourceName)
88
- return ['persistence.resourceName: Missing opencore_db_resource'];
89
- const db = exports[resourceName];
90
- if (!db) {
91
- return [
92
- `persistence.resource: Database resource '${resourceName}' is not available. Start it before this resource.`,
93
- ];
94
- }
95
- }
96
- return [];
97
- }
98
- let defaultsRegistered = false;
99
- function registerDefaultBootstrapValidators() {
100
- if (defaultsRegistered)
101
- return;
102
- registerBootstrapValidator('persistence', validatePersistence);
103
- defaultsRegistered = true;
104
- }
@@ -1,58 +0,0 @@
1
- import { Server } from '../../..';
2
- import { LinkedID } from '../services/types/linked-id';
3
- export interface AuthCredentials {
4
- /** Standard username/password auth */
5
- username?: string;
6
- password?: string;
7
- /** License-based auto-auth */
8
- license?: string;
9
- /** Discord OAuth */
10
- discordToken?: string;
11
- /** Custom auth data */
12
- [key: string]: unknown;
13
- }
14
- export interface AuthResult {
15
- success: boolean;
16
- accountID?: LinkedID;
17
- error?: string;
18
- /** Optional: newly created account flag */
19
- isNewAccount?: boolean;
20
- }
21
- /**
22
- * **Authentication**
23
- *
24
- * Defines the Authentication flow (login/register/logout).
25
- * This is separate from Authorization (roles/permissions) handled by PrincipalProviderContract.
26
- *
27
- * @example
28
- *
29
- * class MyAuthProvider implements AuthProviderContract {
30
- * async authenticate(player, credentials) {
31
- * const user = await db.users.findByLicense(credentials.license)
32
- * if (!user) return { success: false, error: 'User not found' }
33
- * player.linkAccount(user.id)
34
- * return { success: true, accountID: user.id }
35
- * }
36
- * }
37
- * */
38
- export declare abstract class AuthProviderContract {
39
- /**
40
- * Authenticates a player and links their account.
41
- * Called during the login flow.
42
- */
43
- abstract authenticate(player: Server.Player, credentials: AuthCredentials): Promise<AuthResult>;
44
- /**
45
- * Registers a new account for the player.
46
- * Can optionally auto-authenticate after registration.
47
- */
48
- abstract register(player: Server.Player, credentials: AuthCredentials): Promise<AuthResult>;
49
- /**
50
- * Validates an existing session/token.
51
- * Useful for reconnections or persistent sessions.
52
- */
53
- abstract validateSession(player: Server.Player): Promise<AuthResult>;
54
- /**
55
- * Clears the player's authenticated session.
56
- */
57
- abstract logout(player: Server.Player): Promise<void>;
58
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthProviderContract = void 0;
4
- /**
5
- * **Authentication**
6
- *
7
- * Defines the Authentication flow (login/register/logout).
8
- * This is separate from Authorization (roles/permissions) handled by PrincipalProviderContract.
9
- *
10
- * @example
11
- *
12
- * class MyAuthProvider implements AuthProviderContract {
13
- * async authenticate(player, credentials) {
14
- * const user = await db.users.findByLicense(credentials.license)
15
- * if (!user) return { success: false, error: 'User not found' }
16
- * player.linkAccount(user.id)
17
- * return { success: true, accountID: user.id }
18
- * }
19
- * }
20
- * */
21
- class AuthProviderContract {
22
- }
23
- exports.AuthProviderContract = AuthProviderContract;
@@ -1,57 +0,0 @@
1
- /**
2
- * Repository Pattern Module
3
- *
4
- * Provides an abstract Repository base class for implementing
5
- * the Repository Pattern with type-safe CRUD operations.
6
- *
7
- * @example
8
- * ```typescript
9
- * import { Repository, FindOptions } from '@open-core/framework/server'
10
- * import { DatabaseContract } from '@open-core/framework/server'
11
- *
12
- * interface User {
13
- * id: number
14
- * name: string
15
- * email: string
16
- * active: boolean
17
- * }
18
- *
19
- * class UserRepository extends Repository<User> {
20
- * protected tableName = 'users'
21
- *
22
- * constructor(db: DatabaseContract) {
23
- * super(db)
24
- * }
25
- *
26
- * protected toEntity(row: any): User {
27
- * return {
28
- * id: row.id,
29
- * name: row.name,
30
- * email: row.email,
31
- * active: Boolean(row.active)
32
- * }
33
- * }
34
- *
35
- * protected toRow(entity: User): Record<string, any> {
36
- * return {
37
- * id: entity.id,
38
- * name: entity.name,
39
- * email: entity.email,
40
- * active: entity.active ? 1 : 0
41
- * }
42
- * }
43
- *
44
- * // Custom methods
45
- * async findByEmail(email: string): Promise<User | null> {
46
- * return this.findOne({ email })
47
- * }
48
- *
49
- * async findActive(options?: FindOptions<User>): Promise<User[]> {
50
- * const { data } = await this.findMany({ active: true }, options)
51
- * return data
52
- * }
53
- * }
54
- * ```
55
- */
56
- export { Repository } from './repository.contract';
57
- export type { FindManyResult, FindOptions, OrderDirection, WhereCondition, } from './repository.types';
@@ -1,61 +0,0 @@
1
- "use strict";
2
- /**
3
- * Repository Pattern Module
4
- *
5
- * Provides an abstract Repository base class for implementing
6
- * the Repository Pattern with type-safe CRUD operations.
7
- *
8
- * @example
9
- * ```typescript
10
- * import { Repository, FindOptions } from '@open-core/framework/server'
11
- * import { DatabaseContract } from '@open-core/framework/server'
12
- *
13
- * interface User {
14
- * id: number
15
- * name: string
16
- * email: string
17
- * active: boolean
18
- * }
19
- *
20
- * class UserRepository extends Repository<User> {
21
- * protected tableName = 'users'
22
- *
23
- * constructor(db: DatabaseContract) {
24
- * super(db)
25
- * }
26
- *
27
- * protected toEntity(row: any): User {
28
- * return {
29
- * id: row.id,
30
- * name: row.name,
31
- * email: row.email,
32
- * active: Boolean(row.active)
33
- * }
34
- * }
35
- *
36
- * protected toRow(entity: User): Record<string, any> {
37
- * return {
38
- * id: entity.id,
39
- * name: entity.name,
40
- * email: entity.email,
41
- * active: entity.active ? 1 : 0
42
- * }
43
- * }
44
- *
45
- * // Custom methods
46
- * async findByEmail(email: string): Promise<User | null> {
47
- * return this.findOne({ email })
48
- * }
49
- *
50
- * async findActive(options?: FindOptions<User>): Promise<User[]> {
51
- * const { data } = await this.findMany({ active: true }, options)
52
- * return data
53
- * }
54
- * }
55
- * ```
56
- */
57
- Object.defineProperty(exports, "__esModule", { value: true });
58
- exports.Repository = void 0;
59
- // Contract
60
- var repository_contract_1 = require("./repository.contract");
61
- Object.defineProperty(exports, "Repository", { enumerable: true, get: function () { return repository_contract_1.Repository; } });
@@ -1,224 +0,0 @@
1
- /**
2
- * Repository Contract
3
- *
4
- * Abstract base class for implementing the Repository Pattern.
5
- * Provides common CRUD operations with support for pagination, ordering, and field selection.
6
- *
7
- * @example
8
- * ```typescript
9
- * interface User {
10
- * id: number
11
- * name: string
12
- * email: string
13
- * createdAt: Date
14
- * }
15
- *
16
- * class UserRepository extends Repository<User> {
17
- * protected tableName = 'users'
18
- *
19
- * constructor(db: DatabaseContract) {
20
- * super(db)
21
- * }
22
- *
23
- * protected toEntity(row: any): User {
24
- * return {
25
- * id: row.id,
26
- * name: row.name,
27
- * email: row.email,
28
- * createdAt: new Date(row.created_at)
29
- * }
30
- * }
31
- *
32
- * protected toRow(entity: User): Record<string, any> {
33
- * return {
34
- * id: entity.id,
35
- * name: entity.name,
36
- * email: entity.email,
37
- * created_at: entity.createdAt.toISOString()
38
- * }
39
- * }
40
- * }
41
- *
42
- * // Usage
43
- * const userRepo = new UserRepository(db)
44
- * const user = await userRepo.findById(1)
45
- * const users = await userRepo.findMany({ active: true }, { limit: 10, orderBy: { createdAt: 'DESC' } })
46
- * ```
47
- */
48
- import { DatabaseContract } from '../../database/database.contract';
49
- import { FindManyResult, FindOptions, OrderDirection, WhereCondition } from './repository.types';
50
- /**
51
- * Abstract Repository base class
52
- *
53
- * Extend this class to create type-safe repositories for your entities.
54
- *
55
- * @typeParam TEntity - The entity type this repository manages
56
- * @typeParam TId - The type of the primary key (defaults to number)
57
- */
58
- export declare abstract class Repository<TEntity, TId = number> {
59
- protected readonly db: DatabaseContract;
60
- /**
61
- * The database table name for this entity
62
- */
63
- protected abstract tableName: string;
64
- /**
65
- * The primary key column name (defaults to 'id')
66
- */
67
- protected primaryKey: string;
68
- /**
69
- * Creates a new repository instance
70
- *
71
- * @param db - The database contract/service to use for queries
72
- */
73
- constructor(db: DatabaseContract);
74
- /**
75
- * Maps a database row to an entity instance
76
- *
77
- * @param row - Raw database row
78
- * @returns The mapped entity
79
- */
80
- protected abstract toEntity(row: any): TEntity;
81
- /**
82
- * Maps an entity to a database row
83
- *
84
- * @param entity - The entity to map
85
- * @returns Object suitable for database operations
86
- */
87
- protected abstract toRow(entity: TEntity): Record<string, any>;
88
- /**
89
- * Find an entity by its primary key
90
- *
91
- * @param id - The primary key value
92
- * @returns The entity or null if not found
93
- *
94
- * @example
95
- * ```typescript
96
- * const user = await userRepo.findById(1)
97
- * if (user) {
98
- * console.log(user.name)
99
- * }
100
- * ```
101
- */
102
- findById(id: TId): Promise<TEntity | null>;
103
- /**
104
- * Find a single entity matching the given conditions
105
- *
106
- * @param where - Conditions to match (equality only)
107
- * @returns The first matching entity or null
108
- *
109
- * @example
110
- * ```typescript
111
- * const user = await userRepo.findOne({ email: 'john@example.com' })
112
- * ```
113
- */
114
- findOne(where: WhereCondition<TEntity>): Promise<TEntity | null>;
115
- /**
116
- * Find multiple entities with optional filtering, pagination, and ordering
117
- *
118
- * @param where - Optional conditions to filter by
119
- * @param options - Query options (select, orderBy, limit, offset)
120
- * @returns Result containing data array and optional total count
121
- *
122
- * @example
123
- * ```typescript
124
- * // Simple query
125
- * const { data: users } = await userRepo.findMany({ active: true })
126
- *
127
- * // With pagination and ordering
128
- * const result = await userRepo.findMany(
129
- * { role: 'admin' },
130
- * { limit: 10, offset: 20, orderBy: { createdAt: 'DESC' } }
131
- * )
132
- * console.log(`Page of ${result.data.length} admins`)
133
- * ```
134
- */
135
- findMany(where?: WhereCondition<TEntity>, options?: FindOptions<TEntity>): Promise<FindManyResult<TEntity>>;
136
- /**
137
- * Count entities matching the given conditions
138
- *
139
- * @param where - Optional conditions to filter by
140
- * @returns The count of matching entities
141
- *
142
- * @example
143
- * ```typescript
144
- * const activeCount = await userRepo.count({ active: true })
145
- * ```
146
- */
147
- count(where?: WhereCondition<TEntity>): Promise<number>;
148
- /**
149
- * Save an entity (insert if new, update if exists)
150
- *
151
- * If the entity has a primary key value, it will be updated.
152
- * Otherwise, a new record will be inserted.
153
- *
154
- * @param entity - The entity to save
155
- * @returns The saved entity with updated ID (for inserts)
156
- *
157
- * @example
158
- * ```typescript
159
- * // Insert new user
160
- * const newUser = await userRepo.save({ name: 'John', email: 'john@example.com' })
161
- * console.log(newUser.id) // Generated ID
162
- *
163
- * // Update existing user
164
- * user.name = 'John Doe'
165
- * await userRepo.save(user)
166
- * ```
167
- */
168
- save(entity: TEntity): Promise<TEntity>;
169
- /**
170
- * Delete an entity by its primary key
171
- *
172
- * @param id - The primary key of the entity to delete
173
- * @returns true if deleted, false if not found
174
- *
175
- * @example
176
- * ```typescript
177
- * const deleted = await userRepo.delete(1)
178
- * if (deleted) {
179
- * console.log('User deleted')
180
- * }
181
- * ```
182
- */
183
- delete(id: TId): Promise<boolean>;
184
- /**
185
- * Delete entities matching the given conditions
186
- *
187
- * @param where - Conditions to match for deletion
188
- * @returns Number of deleted entities
189
- *
190
- * @example
191
- * ```typescript
192
- * const count = await userRepo.deleteWhere({ active: false })
193
- * console.log(`Deleted ${count} inactive users`)
194
- * ```
195
- */
196
- deleteWhere(where: WhereCondition<TEntity>): Promise<number>;
197
- /**
198
- * Update an entity by ID
199
- */
200
- protected update(id: TId, row: Record<string, any>): Promise<void>;
201
- /**
202
- * Insert a new row and return the inserted ID
203
- */
204
- protected insertRow(row: Record<string, any>): Promise<TId>;
205
- /**
206
- * Build SELECT clause from field selection
207
- */
208
- protected buildSelectClause(select?: (keyof TEntity)[]): string;
209
- /**
210
- * Build WHERE clause from conditions
211
- */
212
- protected buildWhereClause(where?: WhereCondition<TEntity>): {
213
- clause: string;
214
- params: any[];
215
- };
216
- /**
217
- * Build ORDER BY clause from orderBy options
218
- */
219
- protected buildOrderClause(orderBy?: Partial<Record<keyof TEntity, OrderDirection>>): string;
220
- /**
221
- * Build LIMIT/OFFSET clause
222
- */
223
- protected buildLimitClause(limit?: number, offset?: number): string;
224
- }