@open-core/framework 0.2.9 → 0.3.0

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 (309) 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 +58 -103
  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 +81 -25
  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 +5 -0
  153. package/dist/runtime/server/controllers/ready.controller.js +37 -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 +65 -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/normalize-app-error.d.ts +9 -0
  183. package/dist/runtime/server/helpers/normalize-app-error.js +20 -0
  184. package/dist/runtime/server/helpers/resolve-method.js +3 -3
  185. package/dist/runtime/server/index.d.ts +1 -13
  186. package/dist/runtime/server/index.js +25 -23
  187. package/dist/runtime/server/runtime.d.ts +32 -281
  188. package/dist/runtime/server/runtime.js +46 -60
  189. package/dist/runtime/server/services/appearance.service.d.ts +5 -5
  190. package/dist/runtime/server/services/appearance.service.js +5 -5
  191. package/dist/runtime/server/services/chat.service.d.ts +5 -3
  192. package/dist/runtime/server/services/chat.service.js +17 -12
  193. package/dist/runtime/server/services/core/command.service.d.ts +9 -1
  194. package/dist/runtime/server/services/core/command.service.js +16 -7
  195. package/dist/runtime/server/services/core/player.service.d.ts +12 -16
  196. package/dist/runtime/server/services/core/player.service.js +42 -47
  197. package/dist/runtime/server/services/core/principal.service.js +5 -5
  198. package/dist/runtime/server/services/core/session-recovery.service.d.ts +1 -1
  199. package/dist/runtime/server/services/core/session-recovery.service.js +2 -2
  200. package/dist/runtime/server/services/default/default-command-error-observer.d.ts +14 -0
  201. package/dist/runtime/server/services/default/default-command-error-observer.js +43 -0
  202. package/dist/runtime/server/services/default/default-principal.provider.d.ts +13 -0
  203. package/dist/runtime/server/services/default/default-principal.provider.js +38 -0
  204. package/dist/runtime/server/services/default/default-security.handler.d.ts +1 -1
  205. package/dist/runtime/server/services/default/default-security.handler.js +1 -1
  206. package/dist/runtime/server/services/index.d.ts +0 -3
  207. package/dist/runtime/server/services/index.js +1 -6
  208. package/dist/runtime/server/services/persistence.service.js +3 -3
  209. package/dist/runtime/server/services/ports/command-execution.port.d.ts +7 -0
  210. package/dist/runtime/server/services/ports/principal.port.d.ts +1 -1
  211. package/dist/runtime/server/services/remote/remote-command.service.d.ts +1 -0
  212. package/dist/runtime/server/services/remote/remote-command.service.js +7 -3
  213. package/dist/runtime/server/services/remote/remote-player.service.d.ts +2 -2
  214. package/dist/runtime/server/services/remote/remote-player.service.js +3 -3
  215. package/dist/runtime/server/services/remote/server-bridge.js +2 -2
  216. package/dist/runtime/server/services/services.register.d.ts +2 -5
  217. package/dist/runtime/server/services/services.register.js +29 -41
  218. package/dist/runtime/server/services/vehicle-modification.service.js +1 -1
  219. package/dist/runtime/server/services/vehicle.service.d.ts +3 -3
  220. package/dist/runtime/server/services/vehicle.service.js +5 -5
  221. package/dist/runtime/server/setup.d.ts +2 -3
  222. package/dist/runtime/server/setup.js +10 -11
  223. package/dist/runtime/server/system/metadata-server.keys.d.ts +1 -1
  224. package/dist/runtime/server/system/metadata-server.keys.js +1 -1
  225. package/dist/runtime/server/system/processors/command.processor.js +4 -0
  226. package/dist/runtime/server/system/processors/export.processor.js +1 -1
  227. package/dist/runtime/server/system/processors/internalEvent.processor.js +1 -1
  228. package/dist/runtime/server/system/processors/netEvent.processor.js +8 -9
  229. package/dist/runtime/server/system/processors/{fivemEvent.processor.d.ts → runtimeEvent.processor.d.ts} +1 -1
  230. package/dist/runtime/server/system/processors/{fivemEvent.processor.js → runtimeEvent.processor.js} +8 -8
  231. package/dist/runtime/server/system/processors/tick.processor.js +1 -1
  232. package/dist/runtime/server/system/processors.register.js +16 -11
  233. package/dist/runtime/server/system/schema-generator.js +2 -2
  234. package/dist/runtime/server/types/core-exports.d.ts +6 -6
  235. package/dist/runtime/server/types/index.d.ts +1 -1
  236. package/dist/runtime/server/types/index.js +1 -1
  237. package/dist/runtime/server/types/internal-events.d.ts +1 -1
  238. package/dist/runtime/server/types/vehicle.types.d.ts +1 -1
  239. package/package.json +7 -15
  240. package/dist/adapters/contracts/IEntityServer.d.ts +0 -88
  241. package/dist/adapters/contracts/IEntityServer.js +0 -13
  242. package/dist/adapters/contracts/IPlayerServer.js +0 -13
  243. package/dist/adapters/database/oxmysql.adapter.d.ts +0 -89
  244. package/dist/adapters/database/oxmysql.adapter.js +0 -149
  245. package/dist/adapters/database/resource.adapter.d.ts +0 -12
  246. package/dist/adapters/database/resource.adapter.js +0 -68
  247. package/dist/kernel/shared/appearance/index.d.ts +0 -1
  248. package/dist/runtime/index.d.ts +0 -2
  249. package/dist/runtime/index.js +0 -39
  250. package/dist/runtime/server/bootstrap.validation.d.ts +0 -12
  251. package/dist/runtime/server/bootstrap.validation.js +0 -104
  252. package/dist/runtime/server/contracts/auth-provider.contract.d.ts +0 -58
  253. package/dist/runtime/server/contracts/auth-provider.contract.js +0 -23
  254. package/dist/runtime/server/contracts/repository/index.d.ts +0 -57
  255. package/dist/runtime/server/contracts/repository/index.js +0 -61
  256. package/dist/runtime/server/contracts/repository/repository.contract.d.ts +0 -224
  257. package/dist/runtime/server/contracts/repository/repository.contract.js +0 -341
  258. package/dist/runtime/server/contracts/repository/repository.types.d.ts +0 -51
  259. package/dist/runtime/server/contracts/repository/repository.types.js +0 -7
  260. package/dist/runtime/server/database/adapter.registry.d.ts +0 -4
  261. package/dist/runtime/server/database/adapter.registry.js +0 -14
  262. package/dist/runtime/server/database/database.contract.d.ts +0 -128
  263. package/dist/runtime/server/database/database.contract.js +0 -29
  264. package/dist/runtime/server/database/database.service.d.ts +0 -188
  265. package/dist/runtime/server/database/database.service.js +0 -287
  266. package/dist/runtime/server/database/index.d.ts +0 -5
  267. package/dist/runtime/server/database/index.js +0 -25
  268. package/dist/runtime/server/database/types.d.ts +0 -67
  269. package/dist/runtime/server/database/types.js +0 -7
  270. package/dist/runtime/server/database.d.ts +0 -7
  271. package/dist/runtime/server/devmode/hot-reload.server.d.ts +0 -74
  272. package/dist/runtime/server/devmode/hot-reload.server.js +0 -261
  273. package/dist/runtime/server/services/config.service.d.ts +0 -75
  274. package/dist/runtime/server/services/config.service.js +0 -116
  275. package/dist/runtime/server/services/http/http.service.d.ts +0 -50
  276. package/dist/runtime/server/services/http/http.service.js +0 -126
  277. /package/dist/adapters/contracts/{IPedAppearanceClient.js → client/IPedAppearanceClient.js} +0 -0
  278. /package/dist/adapters/contracts/{IPedAppearanceServer.d.ts → server/IPedAppearanceServer.d.ts} +0 -0
  279. /package/dist/adapters/contracts/{IPedAppearanceServer.js → server/IPedAppearanceServer.js} +0 -0
  280. /package/dist/adapters/contracts/{IVehicleServer.d.ts → server/IVehicleServer.d.ts} +0 -0
  281. /package/dist/adapters/contracts/{IVehicleServer.js → server/IVehicleServer.js} +0 -0
  282. /package/dist/kernel/{utils/error → error}/app.error.js +0 -0
  283. /package/dist/kernel/{shared/logger/transports/transport.interface.js → error/common.error-codes.js} +0 -0
  284. /package/dist/{runtime/server/types/security.types.js → kernel/error/framework.error-codes.js} +0 -0
  285. /package/dist/kernel/{utils/error → error}/security.error.js +0 -0
  286. /package/dist/{runtime/server/types → kernel/error}/security.types.d.ts +0 -0
  287. /package/dist/kernel/{shared/logger → logger}/index.d.ts +0 -0
  288. /package/dist/kernel/{shared/logger → logger}/index.js +0 -0
  289. /package/dist/kernel/{shared/logger → logger}/logger.config.d.ts +0 -0
  290. /package/dist/kernel/{shared/logger → logger}/logger.config.js +0 -0
  291. /package/dist/kernel/{shared/logger → logger}/logger.types.d.ts +0 -0
  292. /package/dist/kernel/{shared/logger → logger}/logger.types.js +0 -0
  293. /package/dist/kernel/{shared/logger → logger}/transports/buffered.transport.d.ts +0 -0
  294. /package/dist/kernel/{shared/logger → logger}/transports/buffered.transport.js +0 -0
  295. /package/dist/kernel/{shared/logger → logger}/transports/console.transport.d.ts +0 -0
  296. /package/dist/kernel/{shared/logger → logger}/transports/console.transport.js +0 -0
  297. /package/dist/kernel/{shared/logger → logger}/transports/dev-transport.factory.d.ts +0 -0
  298. /package/dist/kernel/{shared/logger → logger}/transports/dev-transport.factory.js +0 -0
  299. /package/dist/kernel/{shared/logger → logger}/transports/http.transport.d.ts +0 -0
  300. /package/dist/kernel/{shared/logger → logger}/transports/http.transport.js +0 -0
  301. /package/dist/kernel/{shared/logger → logger}/transports/index.d.ts +0 -0
  302. /package/dist/kernel/{shared/logger → logger}/transports/index.js +0 -0
  303. /package/dist/kernel/{shared/logger → logger}/transports/simple-console.transport.d.ts +0 -0
  304. /package/dist/kernel/{shared/logger → logger}/transports/simple-console.transport.js +0 -0
  305. /package/dist/kernel/{shared/logger → logger}/transports/transport.interface.d.ts +0 -0
  306. /package/dist/kernel/{shared/logger → logger}/transports/websocket.transport.d.ts +0 -0
  307. /package/dist/kernel/{shared/logger → logger}/transports/websocket.transport.js +0 -0
  308. /package/dist/kernel/shared/{appearance/appearance.interface.d.ts → player-appearance.types.d.ts} +0 -0
  309. /package/dist/kernel/shared/{appearance/appearance.interface.js → player-appearance.types.js} +0 -0
@@ -1,188 +0,0 @@
1
- import { DatabaseContract } from './database.contract';
2
- import { DatabaseConfig, ExecuteResult, InsertResult, TransactionInput, TransactionSharedParams } from './types';
3
- export declare class DatabaseService extends DatabaseContract {
4
- private adapter;
5
- private isInitialized;
6
- /**
7
- * Initialize the database service with optional configuration
8
- *
9
- * @param config - Database configuration options
10
- */
11
- initialize(config?: DatabaseConfig): void;
12
- /**
13
- * Check if the service is initialized
14
- */
15
- get initialized(): boolean;
16
- /**
17
- * Register a custom database adapter
18
- *
19
- * @param adapter - Custom adapter implementing DatabaseContract
20
- *
21
- * @example
22
- * ```typescript
23
- * class CustomAdapter extends DatabaseContract {
24
- * // Implementation
25
- * }
26
- *
27
- * db.setAdapter(new CustomAdapter())
28
- * ```
29
- */
30
- setAdapter(adapter: DatabaseContract): void;
31
- /**
32
- * Get the current adapter
33
- */
34
- getAdapter(): DatabaseContract;
35
- /**
36
- * Ensure the service is initialized and return the adapter
37
- */
38
- private getInitializedAdapter;
39
- /**
40
- * Execute a query and return all matching rows
41
- */
42
- query<T = any>(sql: string, params?: any[]): Promise<T[]>;
43
- /**
44
- * Execute a query and return a single row
45
- */
46
- single<T = any>(sql: string, params?: any[]): Promise<T | null>;
47
- /**
48
- * Execute a query and return a single scalar value
49
- */
50
- scalar<T = any>(sql: string, params?: any[]): Promise<T | null>;
51
- /**
52
- * Execute an UPDATE or DELETE statement
53
- */
54
- execute(sql: string, params?: any[]): Promise<ExecuteResult>;
55
- /**
56
- * Execute an INSERT statement
57
- */
58
- insert(sql: string, params?: any[]): Promise<InsertResult>;
59
- /**
60
- * Execute multiple queries within a transaction
61
- */
62
- transaction(queries: TransactionInput, sharedParams?: TransactionSharedParams): Promise<boolean>;
63
- }
64
- /**
65
- * Get the global DatabaseService instance
66
- *
67
- * @returns The singleton DatabaseService instance
68
- *
69
- * @example
70
- * ```typescript
71
- * import { getDatabaseService } from '@open-core/framework/server'
72
- *
73
- * const db = getDatabaseService()
74
- * const users = await db.query('SELECT * FROM users')
75
- * ```
76
- */
77
- export declare function getDatabaseService(): DatabaseService;
78
- /**
79
- * Initialize the database service
80
- *
81
- * @param config - Database configuration options
82
- *
83
- * @example
84
- * ```typescript
85
- * import { initDatabase } from '@open-core/framework/server'
86
- *
87
- * // Initialize with default oxmysql adapter
88
- * initDatabase()
89
- *
90
- * // Or with custom config
91
- * initDatabase({ debug: true })
92
- * ```
93
- */
94
- export declare function initDatabase(config?: DatabaseConfig): void;
95
- /**
96
- * Standalone query function
97
- *
98
- * @example
99
- * ```typescript
100
- * import { query } from '@open-core/framework/server'
101
- *
102
- * const users = await query<User>('SELECT * FROM users WHERE active = ?', [true])
103
- * ```
104
- */
105
- export declare function query<T = any>(sql: string, params?: any[]): Promise<T[]>;
106
- /**
107
- * Standalone single function
108
- *
109
- * @example
110
- * ```typescript
111
- * import { single } from '@open-core/framework/server'
112
- *
113
- * const user = await single<User>('SELECT * FROM users WHERE id = ?', [userId])
114
- * ```
115
- */
116
- export declare function single<T = any>(sql: string, params?: any[]): Promise<T | null>;
117
- /**
118
- * Standalone scalar function
119
- *
120
- * @example
121
- * ```typescript
122
- * import { scalar } from '@open-core/framework/server'
123
- *
124
- * const count = await scalar<number>('SELECT COUNT(*) FROM users')
125
- * ```
126
- */
127
- export declare function scalar<T = any>(sql: string, params?: any[]): Promise<T | null>;
128
- /**
129
- * Standalone execute function
130
- *
131
- * @example
132
- * ```typescript
133
- * import { execute } from '@open-core/framework/server'
134
- *
135
- * const result = await execute('UPDATE users SET active = ? WHERE id = ?', [false, userId])
136
- * console.log(`Updated ${result.affectedRows} rows`)
137
- * ```
138
- */
139
- export declare function execute(sql: string, params?: any[]): Promise<ExecuteResult>;
140
- /**
141
- * Standalone insert function
142
- *
143
- * @example
144
- * ```typescript
145
- * import { insert } from '@open-core/framework/server'
146
- *
147
- * const result = await insert('INSERT INTO users (name) VALUES (?)', ['John'])
148
- * console.log(`Inserted with ID: ${result.insertId}`)
149
- * ```
150
- */
151
- export declare function insert(sql: string, params?: any[]): Promise<InsertResult>;
152
- /**
153
- * Standalone transaction function
154
- *
155
- * Execute multiple queries atomically. All succeed or all fail.
156
- *
157
- * @example Specific format (each query has its own params)
158
- * ```typescript
159
- * import { transaction } from '@open-core/framework/server'
160
- *
161
- * const success = await transaction([
162
- * { query: 'INSERT INTO users (name) VALUES (?)', values: ['John'] },
163
- * { query: 'INSERT INTO logs (action) VALUES (?)', values: ['user_created'] },
164
- * ])
165
- * ```
166
- *
167
- * @example Tuple format
168
- * ```typescript
169
- * const success = await transaction([
170
- * ['INSERT INTO users (name) VALUES (?)', ['John']],
171
- * ['INSERT INTO logs (action) VALUES (?)', ['user_created']],
172
- * ])
173
- * ```
174
- *
175
- * @example Shared format (named parameters)
176
- * ```typescript
177
- * const success = await transaction(
178
- * [
179
- * 'INSERT INTO users (id, name) VALUES (@userid, @username)',
180
- * 'INSERT INTO profiles (user_id) VALUES (@userid)',
181
- * ],
182
- * { userid: 1, username: 'John' }
183
- * )
184
- * ```
185
- *
186
- * @see https://coxdocs.dev/oxmysql/Functions/transaction
187
- */
188
- export declare function transaction(queries: TransactionInput, sharedParams?: TransactionSharedParams): Promise<boolean>;
@@ -1,287 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DatabaseService = void 0;
10
- exports.getDatabaseService = getDatabaseService;
11
- exports.initDatabase = initDatabase;
12
- exports.query = query;
13
- exports.single = single;
14
- exports.scalar = scalar;
15
- exports.execute = execute;
16
- exports.insert = insert;
17
- exports.transaction = transaction;
18
- const tsyringe_1 = require("tsyringe");
19
- const oxmysql_adapter_1 = require("../../../adapters/database/oxmysql.adapter");
20
- const resource_adapter_1 = require("../../../adapters/database/resource.adapter");
21
- const adapter_registry_1 = require("./adapter.registry");
22
- const database_contract_1 = require("./database.contract");
23
- let defaultFactoriesRegistered = false;
24
- function registerDefaultDatabaseFactories() {
25
- if (defaultFactoriesRegistered)
26
- return;
27
- (0, adapter_registry_1.registerDatabaseAdapterFactory)('resource', () => new resource_adapter_1.ResourceDatabaseAdapter());
28
- (0, adapter_registry_1.registerDatabaseAdapterFactory)('oxmysql', () => new oxmysql_adapter_1.OxMySQLAdapter());
29
- defaultFactoriesRegistered = true;
30
- }
31
- let DatabaseService = class DatabaseService extends database_contract_1.DatabaseContract {
32
- constructor() {
33
- super(...arguments);
34
- this.adapter = null;
35
- this.isInitialized = false;
36
- }
37
- /**
38
- * Initialize the database service with optional configuration
39
- *
40
- * @param config - Database configuration options
41
- */
42
- initialize(config = {}) {
43
- var _a, _b;
44
- if (this.isInitialized)
45
- return;
46
- registerDefaultDatabaseFactories();
47
- if (!this.adapter) {
48
- const adapterName = ((_a = config.adapter) === null || _a === void 0 ? void 0 : _a.trim()) || ((_b = globalThis.GetConvar) === null || _b === void 0 ? void 0 : _b.call(globalThis, 'opencore_db_adapter', '')) || '';
49
- if (!adapterName) {
50
- throw new Error("[OpenCore] Database adapter is not configured. Set 'opencore_db_adapter' (recommended: 'resource') or call initDatabase({ adapter: 'resource' }).");
51
- }
52
- const factory = (0, adapter_registry_1.resolveDatabaseAdapterFactory)(adapterName);
53
- if (!factory) {
54
- throw new Error(`[OpenCore] Unknown database adapter '${adapterName}'. Register it via registerDatabaseAdapterFactory('${adapterName}', factory).`);
55
- }
56
- this.adapter = factory();
57
- }
58
- this.isInitialized = true;
59
- }
60
- /**
61
- * Check if the service is initialized
62
- */
63
- get initialized() {
64
- return this.isInitialized;
65
- }
66
- /**
67
- * Register a custom database adapter
68
- *
69
- * @param adapter - Custom adapter implementing DatabaseContract
70
- *
71
- * @example
72
- * ```typescript
73
- * class CustomAdapter extends DatabaseContract {
74
- * // Implementation
75
- * }
76
- *
77
- * db.setAdapter(new CustomAdapter())
78
- * ```
79
- */
80
- setAdapter(adapter) {
81
- this.adapter = adapter;
82
- }
83
- /**
84
- * Get the current adapter
85
- */
86
- getAdapter() {
87
- return this.getInitializedAdapter();
88
- }
89
- /**
90
- * Ensure the service is initialized and return the adapter
91
- */
92
- getInitializedAdapter() {
93
- if (!this.isInitialized) {
94
- this.initialize();
95
- }
96
- if (!this.adapter) {
97
- throw new Error('[OpenCore] Database adapter not initialized');
98
- }
99
- return this.adapter;
100
- }
101
- /**
102
- * Execute a query and return all matching rows
103
- */
104
- async query(sql, params) {
105
- return this.getInitializedAdapter().query(sql, params);
106
- }
107
- /**
108
- * Execute a query and return a single row
109
- */
110
- async single(sql, params) {
111
- return this.getInitializedAdapter().single(sql, params);
112
- }
113
- /**
114
- * Execute a query and return a single scalar value
115
- */
116
- async scalar(sql, params) {
117
- return this.getInitializedAdapter().scalar(sql, params);
118
- }
119
- /**
120
- * Execute an UPDATE or DELETE statement
121
- */
122
- async execute(sql, params) {
123
- return this.getInitializedAdapter().execute(sql, params);
124
- }
125
- /**
126
- * Execute an INSERT statement
127
- */
128
- async insert(sql, params) {
129
- return this.getInitializedAdapter().insert(sql, params);
130
- }
131
- /**
132
- * Execute multiple queries within a transaction
133
- */
134
- async transaction(queries, sharedParams) {
135
- return this.getInitializedAdapter().transaction(queries, sharedParams);
136
- }
137
- };
138
- exports.DatabaseService = DatabaseService;
139
- exports.DatabaseService = DatabaseService = __decorate([
140
- (0, tsyringe_1.injectable)()
141
- ], DatabaseService);
142
- // Singleton instance for standalone usage
143
- let databaseServiceInstance = null;
144
- /**
145
- * Get the global DatabaseService instance
146
- *
147
- * @returns The singleton DatabaseService instance
148
- *
149
- * @example
150
- * ```typescript
151
- * import { getDatabaseService } from '@open-core/framework/server'
152
- *
153
- * const db = getDatabaseService()
154
- * const users = await db.query('SELECT * FROM users')
155
- * ```
156
- */
157
- function getDatabaseService() {
158
- if (!databaseServiceInstance) {
159
- databaseServiceInstance = new DatabaseService();
160
- }
161
- return databaseServiceInstance;
162
- }
163
- /**
164
- * Initialize the database service
165
- *
166
- * @param config - Database configuration options
167
- *
168
- * @example
169
- * ```typescript
170
- * import { initDatabase } from '@open-core/framework/server'
171
- *
172
- * // Initialize with default oxmysql adapter
173
- * initDatabase()
174
- *
175
- * // Or with custom config
176
- * initDatabase({ debug: true })
177
- * ```
178
- */
179
- function initDatabase(config = {}) {
180
- getDatabaseService().initialize(config);
181
- }
182
- /**
183
- * Standalone query function
184
- *
185
- * @example
186
- * ```typescript
187
- * import { query } from '@open-core/framework/server'
188
- *
189
- * const users = await query<User>('SELECT * FROM users WHERE active = ?', [true])
190
- * ```
191
- */
192
- async function query(sql, params) {
193
- return getDatabaseService().query(sql, params);
194
- }
195
- /**
196
- * Standalone single function
197
- *
198
- * @example
199
- * ```typescript
200
- * import { single } from '@open-core/framework/server'
201
- *
202
- * const user = await single<User>('SELECT * FROM users WHERE id = ?', [userId])
203
- * ```
204
- */
205
- async function single(sql, params) {
206
- return getDatabaseService().single(sql, params);
207
- }
208
- /**
209
- * Standalone scalar function
210
- *
211
- * @example
212
- * ```typescript
213
- * import { scalar } from '@open-core/framework/server'
214
- *
215
- * const count = await scalar<number>('SELECT COUNT(*) FROM users')
216
- * ```
217
- */
218
- async function scalar(sql, params) {
219
- return getDatabaseService().scalar(sql, params);
220
- }
221
- /**
222
- * Standalone execute function
223
- *
224
- * @example
225
- * ```typescript
226
- * import { execute } from '@open-core/framework/server'
227
- *
228
- * const result = await execute('UPDATE users SET active = ? WHERE id = ?', [false, userId])
229
- * console.log(`Updated ${result.affectedRows} rows`)
230
- * ```
231
- */
232
- async function execute(sql, params) {
233
- return getDatabaseService().execute(sql, params);
234
- }
235
- /**
236
- * Standalone insert function
237
- *
238
- * @example
239
- * ```typescript
240
- * import { insert } from '@open-core/framework/server'
241
- *
242
- * const result = await insert('INSERT INTO users (name) VALUES (?)', ['John'])
243
- * console.log(`Inserted with ID: ${result.insertId}`)
244
- * ```
245
- */
246
- async function insert(sql, params) {
247
- return getDatabaseService().insert(sql, params);
248
- }
249
- /**
250
- * Standalone transaction function
251
- *
252
- * Execute multiple queries atomically. All succeed or all fail.
253
- *
254
- * @example Specific format (each query has its own params)
255
- * ```typescript
256
- * import { transaction } from '@open-core/framework/server'
257
- *
258
- * const success = await transaction([
259
- * { query: 'INSERT INTO users (name) VALUES (?)', values: ['John'] },
260
- * { query: 'INSERT INTO logs (action) VALUES (?)', values: ['user_created'] },
261
- * ])
262
- * ```
263
- *
264
- * @example Tuple format
265
- * ```typescript
266
- * const success = await transaction([
267
- * ['INSERT INTO users (name) VALUES (?)', ['John']],
268
- * ['INSERT INTO logs (action) VALUES (?)', ['user_created']],
269
- * ])
270
- * ```
271
- *
272
- * @example Shared format (named parameters)
273
- * ```typescript
274
- * const success = await transaction(
275
- * [
276
- * 'INSERT INTO users (id, name) VALUES (@userid, @username)',
277
- * 'INSERT INTO profiles (user_id) VALUES (@userid)',
278
- * ],
279
- * { userid: 1, username: 'John' }
280
- * )
281
- * ```
282
- *
283
- * @see https://coxdocs.dev/oxmysql/Functions/transaction
284
- */
285
- async function transaction(queries, sharedParams) {
286
- return getDatabaseService().transaction(queries, sharedParams);
287
- }
@@ -1,5 +0,0 @@
1
- export { ResourceDatabaseAdapter } from '../../../adapters/database/resource.adapter';
2
- export { registerDatabaseAdapterFactory, resolveDatabaseAdapterFactory } from './adapter.registry';
3
- export { DatabaseContract } from './database.contract';
4
- export { DatabaseService, execute, getDatabaseService, initDatabase, insert, query, scalar, single, transaction, } from './database.service';
5
- export type { DatabaseAdapterFactory, DatabaseConfig, ExecuteResult, InsertResult, TransactionInput, TransactionQuery, TransactionQueryTuple, TransactionSharedParams, } from './types';
@@ -1,25 +0,0 @@
1
- "use strict";
2
- // Types
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.transaction = exports.single = exports.scalar = exports.query = exports.insert = exports.initDatabase = exports.getDatabaseService = exports.execute = exports.DatabaseService = exports.DatabaseContract = exports.resolveDatabaseAdapterFactory = exports.registerDatabaseAdapterFactory = exports.ResourceDatabaseAdapter = void 0;
5
- // Adapters
6
- var resource_adapter_1 = require("../../../adapters/database/resource.adapter");
7
- Object.defineProperty(exports, "ResourceDatabaseAdapter", { enumerable: true, get: function () { return resource_adapter_1.ResourceDatabaseAdapter; } });
8
- var adapter_registry_1 = require("./adapter.registry");
9
- Object.defineProperty(exports, "registerDatabaseAdapterFactory", { enumerable: true, get: function () { return adapter_registry_1.registerDatabaseAdapterFactory; } });
10
- Object.defineProperty(exports, "resolveDatabaseAdapterFactory", { enumerable: true, get: function () { return adapter_registry_1.resolveDatabaseAdapterFactory; } });
11
- // Contract
12
- var database_contract_1 = require("./database.contract");
13
- Object.defineProperty(exports, "DatabaseContract", { enumerable: true, get: function () { return database_contract_1.DatabaseContract; } });
14
- // Service
15
- // Standalone functions
16
- var database_service_1 = require("./database.service");
17
- Object.defineProperty(exports, "DatabaseService", { enumerable: true, get: function () { return database_service_1.DatabaseService; } });
18
- Object.defineProperty(exports, "execute", { enumerable: true, get: function () { return database_service_1.execute; } });
19
- Object.defineProperty(exports, "getDatabaseService", { enumerable: true, get: function () { return database_service_1.getDatabaseService; } });
20
- Object.defineProperty(exports, "initDatabase", { enumerable: true, get: function () { return database_service_1.initDatabase; } });
21
- Object.defineProperty(exports, "insert", { enumerable: true, get: function () { return database_service_1.insert; } });
22
- Object.defineProperty(exports, "query", { enumerable: true, get: function () { return database_service_1.query; } });
23
- Object.defineProperty(exports, "scalar", { enumerable: true, get: function () { return database_service_1.scalar; } });
24
- Object.defineProperty(exports, "single", { enumerable: true, get: function () { return database_service_1.single; } });
25
- Object.defineProperty(exports, "transaction", { enumerable: true, get: function () { return database_service_1.transaction; } });
@@ -1,67 +0,0 @@
1
- /**
2
- * Database Module Types
3
- *
4
- * Core types for the database abstraction layer.
5
- */
6
- /**
7
- * Result of an execute/update operation
8
- */
9
- export interface ExecuteResult {
10
- /** Number of rows affected by the operation */
11
- affectedRows: number;
12
- }
13
- /**
14
- * Result of an insert operation
15
- */
16
- export interface InsertResult {
17
- /** The auto-generated ID of the inserted row */
18
- insertId: number;
19
- }
20
- /**
21
- * Configuration for database adapters
22
- */
23
- export interface DatabaseConfig {
24
- /** Adapter identifier (e.g., 'oxmysql', 'mysql-async') */
25
- adapter?: string;
26
- /** Enable debug logging */
27
- debug?: boolean;
28
- /** Connection timeout in milliseconds */
29
- timeout?: number;
30
- }
31
- /**
32
- * Transaction query definition for oxmysql (specific format)
33
- *
34
- * @see https://coxdocs.dev/oxmysql/Functions/transaction
35
- */
36
- export interface TransactionQuery {
37
- query: string;
38
- /** Parameter values for the query (oxmysql uses 'values') */
39
- values?: any[];
40
- }
41
- /**
42
- * Transaction query as tuple format [query, values]
43
- */
44
- export type TransactionQueryTuple = [string, any[]?];
45
- /**
46
- * Shared parameters for transaction queries (named parameters format)
47
- *
48
- * @example
49
- * ```typescript
50
- * const params: TransactionSharedParams = {
51
- * someid: 2,
52
- * somename: 'John Doe',
53
- * newname: 'John Notdoe'
54
- * }
55
- * ```
56
- */
57
- export interface TransactionSharedParams {
58
- [key: string]: any;
59
- }
60
- /**
61
- * Transaction input - can be specific format, tuple format, or just strings
62
- */
63
- export type TransactionInput = TransactionQuery[] | TransactionQueryTuple[] | string[];
64
- /**
65
- * Database adapter factory function type
66
- */
67
- export type DatabaseAdapterFactory = () => import('./database.contract').DatabaseContract;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- /**
3
- * Database Module Types
4
- *
5
- * Core types for the database abstraction layer.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +0,0 @@
1
- /**
2
- * Database Module Re-export
3
- *
4
- * This file re-exports the database module for backwards compatibility.
5
- * Prefer importing directly from '@open-core/framework/server' or './database/index'
6
- */
7
- export * from './database/index';
@@ -1,74 +0,0 @@
1
- import { HotReloadOptions } from './types';
2
- /**
3
- * Log message structure for HTTP transport.
4
- */
5
- export interface LogMessage {
6
- level: number;
7
- domain: string;
8
- message: string;
9
- timestamp: number;
10
- context?: Record<string, unknown>;
11
- error?: {
12
- name: string;
13
- message: string;
14
- stack?: string;
15
- };
16
- }
17
- /**
18
- * HTTP server for handling hot reload requests from the CLI.
19
- *
20
- * Provides an endpoint that the CLI can call to restart resources
21
- * after file changes are detected.
22
- *
23
- * @example
24
- * ```typescript
25
- * const server = new HotReloadServer({ enabled: true, port: 3847 })
26
- * server.start()
27
- * // CLI calls POST /restart?resource=my-resource
28
- * ```
29
- */
30
- export declare class HotReloadServer {
31
- private server;
32
- private options;
33
- private logBuffer;
34
- private maxLogBuffer;
35
- private logListeners;
36
- constructor(options: HotReloadOptions);
37
- /**
38
- * Adds logs to the buffer (called by HttpLogTransport).
39
- */
40
- addLogs(logs: LogMessage[]): void;
41
- /**
42
- * Gets and clears buffered logs.
43
- */
44
- consumeLogs(): LogMessage[];
45
- /**
46
- * Adds a listener for new logs.
47
- */
48
- onLogs(listener: (logs: LogMessage[]) => void): () => void;
49
- /**
50
- * Starts the hot reload HTTP server.
51
- */
52
- start(): void;
53
- /**
54
- * Stops the hot reload server.
55
- */
56
- stop(): void;
57
- /**
58
- * Checks if the server is running.
59
- */
60
- isRunning(): boolean;
61
- private handleRequest;
62
- private handleRestart;
63
- private handleRefresh;
64
- private handleHealth;
65
- private isResourceAllowed;
66
- /**
67
- * Handles GET /logs - CLI polls for buffered logs.
68
- */
69
- private handleGetLogs;
70
- /**
71
- * Handles POST /logs - Framework pushes logs to buffer.
72
- */
73
- private handlePostLogs;
74
- }