@open-core/framework 1.0.5-beta.1 → 1.0.5-beta.2
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.
- package/dist/adapters/contracts/IEngineEvents.d.ts +3 -0
- package/dist/adapters/contracts/IEngineEvents.js +7 -0
- package/dist/adapters/contracts/IPlatformContext.d.ts +43 -0
- package/dist/adapters/contracts/IPlatformContext.js +8 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.d.ts +4 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +2 -0
- package/dist/adapters/contracts/client/IClientLogConsole.d.ts +13 -0
- package/dist/adapters/contracts/client/IClientLogConsole.js +2 -0
- package/dist/adapters/contracts/client/IClientPlatformBridge.d.ts +195 -0
- package/dist/adapters/contracts/client/IClientPlatformBridge.js +282 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.d.ts +18 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.js +14 -0
- package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.d.ts +26 -0
- package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.js +2 -0
- package/dist/adapters/contracts/client/index.d.ts +7 -0
- package/dist/adapters/contracts/client/index.js +7 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.d.ts +7 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +2 -0
- package/dist/adapters/contracts/client/spawn/index.d.ts +2 -0
- package/dist/adapters/contracts/client/spawn/index.js +2 -0
- package/dist/adapters/contracts/client/spawn/types.d.ts +14 -0
- package/dist/adapters/contracts/client/ui/IClientBlipBridge.d.ts +25 -0
- package/dist/adapters/contracts/client/ui/IClientBlipBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/IClientMarkerBridge.d.ts +31 -0
- package/dist/adapters/contracts/client/ui/IClientMarkerBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/IClientNotificationBridge.d.ts +21 -0
- package/dist/adapters/contracts/client/ui/IClientNotificationBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/index.d.ts +4 -0
- package/dist/adapters/contracts/client/ui/index.js +4 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.d.ts +13 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/webview/index.d.ts +2 -0
- package/dist/adapters/contracts/client/ui/webview/index.js +2 -0
- package/dist/adapters/contracts/client/ui/webview/types.d.ts +25 -0
- package/dist/adapters/contracts/client/ui/webview/types.js +0 -0
- package/dist/adapters/contracts/index.d.ts +4 -2
- package/dist/adapters/contracts/index.js +4 -3
- package/dist/adapters/contracts/runtime/index.d.ts +1 -0
- package/dist/adapters/contracts/runtime/index.js +1 -0
- package/dist/adapters/contracts/runtime/runtime-events.d.ts +9 -0
- package/dist/adapters/contracts/runtime/runtime-events.js +7 -0
- package/dist/adapters/contracts/server/IEntityServer.d.ts +4 -28
- package/dist/adapters/contracts/server/IEntityServer.js +0 -26
- package/dist/adapters/contracts/server/IPlayerServer.d.ts +7 -26
- package/dist/adapters/contracts/server/IPlayerServer.js +0 -26
- package/dist/adapters/contracts/server/index.d.ts +10 -0
- package/dist/adapters/contracts/server/index.js +10 -0
- package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.d.ts +5 -0
- package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/types.d.ts +17 -0
- package/dist/adapters/contracts/server/npc-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.d.ts +11 -0
- package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/player-appearance/index.d.ts +1 -0
- package/dist/adapters/contracts/server/player-appearance/index.js +1 -0
- package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.d.ts +6 -0
- package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/types.d.ts +17 -0
- package/dist/adapters/contracts/server/player-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.d.ts +6 -0
- package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.js +2 -0
- package/dist/adapters/contracts/server/player-state/index.d.ts +1 -0
- package/dist/adapters/contracts/server/player-state/index.js +1 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.d.ts +5 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/types.d.ts +16 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/transport/index.d.ts +4 -0
- package/dist/adapters/contracts/transport/index.js +4 -0
- package/dist/adapters/index.d.ts +3 -14
- package/dist/adapters/index.js +3 -20
- package/dist/adapters/node/node-capabilities.d.ts +11 -11
- package/dist/adapters/node/node-capabilities.js +15 -27
- package/dist/adapters/node/node-engine-events.d.ts +1 -1
- package/dist/adapters/node/node-engine-events.js +2 -1
- package/dist/adapters/node/node-entity-server.d.ts +2 -2
- package/dist/adapters/node/node-entity-server.js +2 -2
- package/dist/adapters/node/node-ped-appearance-client.d.ts +2 -2
- package/dist/adapters/node/node-ped-appearance-client.js +2 -2
- package/dist/adapters/node/node-platform.js +4 -4
- package/dist/adapters/node/node-player-server.d.ts +3 -2
- package/dist/adapters/node/node-player-server.js +8 -2
- package/dist/adapters/register-capabilities.d.ts +1 -1
- package/dist/adapters/register-capabilities.js +1 -3
- package/dist/adapters/register-client-capabilities.d.ts +3 -2
- package/dist/adapters/register-client-capabilities.js +16 -41
- package/dist/contracts/client.d.ts +5 -0
- package/dist/contracts/client.js +5 -0
- package/dist/contracts/server.d.ts +19 -0
- package/dist/contracts/server.js +19 -0
- package/dist/contracts.d.ts +4 -0
- package/dist/contracts.js +4 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/kernel/logger/client-log-console.d.ts +4 -0
- package/dist/kernel/logger/client-log-console.js +43 -0
- package/dist/kernel/logger/core-logger.d.ts +3 -1
- package/dist/kernel/logger/core-logger.js +4 -2
- package/dist/kernel/logger/index.d.ts +2 -0
- package/dist/kernel/logger/index.js +1 -0
- package/dist/kernel/logger/transports/dev-transport.factory.js +1 -1
- package/dist/kernel/logger/transports/simple-console.transport.js +13 -8
- package/dist/kernel-public.d.ts +1 -0
- package/dist/kernel-public.js +1 -0
- package/dist/runtime/client/adapter/client-adapter.d.ts +25 -0
- package/dist/runtime/client/adapter/client-adapter.js +11 -0
- package/dist/runtime/client/adapter/index.d.ts +15 -0
- package/dist/runtime/client/adapter/index.js +15 -0
- package/dist/runtime/client/adapter/local-player-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/local-player-bridge.js +1 -0
- package/dist/runtime/client/adapter/node-blip-bridge.d.ts +9 -0
- package/dist/runtime/client/adapter/node-blip-bridge.js +34 -0
- package/dist/runtime/client/adapter/node-client-adapter.d.ts +5 -0
- package/dist/runtime/client/adapter/node-client-adapter.js +50 -0
- package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +8 -0
- package/dist/{adapters/fivem/fivem-hasher.js → runtime/client/adapter/node-local-player-bridge.js} +7 -9
- package/dist/runtime/client/adapter/node-log-console.d.ts +11 -0
- package/dist/runtime/client/adapter/node-log-console.js +48 -0
- package/dist/runtime/client/adapter/node-marker-bridge.d.ts +10 -0
- package/dist/runtime/client/adapter/node-marker-bridge.js +35 -0
- package/dist/runtime/client/adapter/node-notification-bridge.d.ts +5 -0
- package/dist/runtime/client/adapter/node-notification-bridge.js +16 -0
- package/dist/runtime/client/adapter/node-platform-bridge.d.ts +3 -0
- package/dist/{adapters/fivem/fivem-tick.js → runtime/client/adapter/node-platform-bridge.js} +5 -10
- package/dist/runtime/client/adapter/node-runtime-bridge.d.ts +24 -0
- package/dist/runtime/client/adapter/node-runtime-bridge.js +58 -0
- package/dist/runtime/client/adapter/node-spawn-bridge.d.ts +8 -0
- package/dist/runtime/client/adapter/node-spawn-bridge.js +18 -0
- package/dist/runtime/client/adapter/node-webview-bridge.d.ts +15 -0
- package/dist/runtime/client/adapter/node-webview-bridge.js +43 -0
- package/dist/runtime/client/adapter/platform-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/platform-bridge.js +1 -0
- package/dist/runtime/client/adapter/registry.d.ts +9 -0
- package/dist/runtime/client/adapter/registry.js +85 -0
- package/dist/runtime/client/adapter/runtime-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/runtime-bridge.js +1 -0
- package/dist/runtime/client/api.d.ts +2 -1
- package/dist/runtime/client/api.js +2 -1
- package/dist/runtime/client/client-bootstrap.js +51 -44
- package/dist/runtime/client/client-core.d.ts +2 -0
- package/dist/runtime/client/client-core.js +9 -0
- package/dist/runtime/client/client-runtime.d.ts +3 -0
- package/dist/runtime/client/client-runtime.js +3 -0
- package/dist/runtime/client/controllers/appearance.controller.d.ts +3 -1
- package/dist/runtime/client/controllers/appearance.controller.js +14 -4
- package/dist/runtime/client/controllers/spawner.controller.js +2 -0
- package/dist/runtime/client/decorators/controller.js +2 -10
- package/dist/runtime/client/decorators/onView.d.ts +3 -3
- package/dist/runtime/client/decorators/onView.js +3 -3
- package/dist/runtime/client/index.d.ts +1 -0
- package/dist/runtime/client/index.js +1 -0
- package/dist/runtime/client/library/create-client-library.js +9 -1
- package/dist/runtime/client/services/appearance.service.d.ts +2 -2
- package/dist/runtime/client/services/appearance.service.js +7 -4
- package/dist/runtime/client/services/blip.service.d.ts +6 -93
- package/dist/runtime/client/services/blip.service.js +58 -153
- package/dist/runtime/client/services/camera-effects.registry.d.ts +3 -0
- package/dist/runtime/client/services/camera-effects.registry.js +20 -7
- package/dist/runtime/client/services/camera.d.ts +3 -83
- package/dist/runtime/client/services/camera.js +37 -93
- package/dist/runtime/client/services/cinematic.d.ts +5 -1
- package/dist/runtime/client/services/cinematic.js +45 -30
- package/dist/runtime/client/services/index.d.ts +1 -0
- package/dist/runtime/client/services/index.js +1 -0
- package/dist/runtime/client/services/marker.service.d.ts +12 -63
- package/dist/runtime/client/services/marker.service.js +62 -97
- package/dist/runtime/client/services/notification.service.d.ts +6 -57
- package/dist/runtime/client/services/notification.service.js +43 -81
- package/dist/runtime/client/services/ped.service.d.ts +3 -130
- package/dist/runtime/client/services/ped.service.js +66 -198
- package/dist/runtime/client/services/progress.service.d.ts +5 -30
- package/dist/runtime/client/services/progress.service.js +73 -99
- package/dist/runtime/client/services/session-bridge.service.d.ts +15 -0
- package/dist/runtime/client/services/session-bridge.service.js +61 -0
- package/dist/runtime/client/services/spawn.service.d.ts +6 -56
- package/dist/runtime/client/services/spawn.service.js +34 -191
- package/dist/runtime/client/services/streaming.service.d.ts +5 -126
- package/dist/runtime/client/services/streaming.service.js +72 -217
- package/dist/runtime/client/services/textui.service.d.ts +5 -45
- package/dist/runtime/client/services/textui.service.js +55 -88
- package/dist/runtime/client/services/vehicle-client.service.d.ts +12 -149
- package/dist/runtime/client/services/vehicle-client.service.js +180 -326
- package/dist/runtime/client/services/vehicle.service.d.ts +3 -109
- package/dist/runtime/client/services/vehicle.service.js +94 -194
- package/dist/runtime/client/system/processors/export.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/export.processor.js +16 -3
- package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/gameEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/interval.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/interval.processor.js +17 -4
- package/dist/runtime/client/system/processors/key.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/key.processor.js +18 -5
- package/dist/runtime/client/system/processors/localEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/localEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/netEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/netEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/onRpc.processor.js +1 -1
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +5 -0
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +26 -7
- package/dist/runtime/client/system/processors/tick.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/tick.processor.js +16 -3
- package/dist/runtime/client/system/processors/view.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/view.processor.js +21 -10
- package/dist/runtime/client/system/processors.register.d.ts +1 -0
- package/dist/runtime/client/system/processors.register.js +8 -0
- package/dist/runtime/client/ui-bridge.d.ts +2 -114
- package/dist/runtime/client/ui-bridge.js +2 -194
- package/dist/runtime/client/webview-bridge.d.ts +31 -0
- package/dist/runtime/client/webview-bridge.js +97 -0
- package/dist/runtime/client/webview.service.d.ts +14 -0
- package/dist/runtime/client/webview.service.js +98 -0
- package/dist/runtime/server/adapter/index.d.ts +5 -0
- package/dist/runtime/server/adapter/index.js +5 -0
- package/dist/runtime/server/adapter/node-npc-lifecycle-server.d.ts +12 -0
- package/dist/runtime/server/adapter/node-npc-lifecycle-server.js +52 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.d.ts +22 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.js +94 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.d.ts +11 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.js +55 -0
- package/dist/runtime/server/adapter/node-player-state-sync-server.d.ts +12 -0
- package/dist/runtime/server/adapter/node-player-state-sync-server.js +49 -0
- package/dist/runtime/server/adapter/node-server-adapter.d.ts +5 -0
- package/dist/runtime/server/adapter/node-server-adapter.js +67 -0
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.d.ts +13 -0
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.js +57 -0
- package/dist/runtime/server/adapter/player-adapter.d.ts +28 -0
- package/dist/runtime/server/adapter/player-adapter.js +28 -0
- package/dist/runtime/server/adapter/registry.d.ts +26 -0
- package/dist/runtime/server/adapter/registry.js +101 -0
- package/dist/runtime/server/adapter/serialization.d.ts +6 -0
- package/dist/runtime/server/adapter/serialization.js +9 -0
- package/dist/runtime/server/adapter/server-adapter.d.ts +28 -0
- package/dist/runtime/server/adapter/server-adapter.js +14 -0
- package/dist/runtime/server/api.d.ts +2 -1
- package/dist/runtime/server/api.js +2 -1
- package/dist/runtime/server/apis/appearance.api.d.ts +5 -3
- package/dist/runtime/server/apis/appearance.api.js +20 -7
- package/dist/runtime/server/apis/npcs.api.d.ts +3 -4
- package/dist/runtime/server/apis/npcs.api.js +26 -56
- package/dist/runtime/server/apis/vehicle-modification.api.d.ts +3 -1
- package/dist/runtime/server/apis/vehicle-modification.api.js +9 -4
- package/dist/runtime/server/apis/vehicles.api.d.ts +12 -6
- package/dist/runtime/server/apis/vehicles.api.js +48 -36
- package/dist/runtime/server/bootstrap.js +15 -7
- package/dist/runtime/server/controllers/channel.controller.js +2 -1
- package/dist/runtime/server/controllers/command-export.controller.js +1 -1
- package/dist/runtime/server/controllers/player-export.controller.js +5 -4
- package/dist/runtime/server/controllers/session.controller.js +3 -2
- package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -1
- package/dist/runtime/server/controllers/vehicle.controller.js +10 -5
- package/dist/runtime/server/core.d.ts +2 -0
- package/dist/runtime/server/core.js +9 -1
- package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +2 -1
- package/dist/runtime/server/entities/npc.d.ts +2 -0
- package/dist/runtime/server/entities/npc.js +3 -3
- package/dist/runtime/server/entities/player.d.ts +8 -11
- package/dist/runtime/server/entities/player.js +39 -28
- package/dist/runtime/server/entities/vehicle.js +2 -2
- package/dist/runtime/server/error-handler.js +13 -2
- package/dist/runtime/server/helpers/command-validation.helper.js +1 -1
- package/dist/runtime/server/implementations/local/player.local.d.ts +7 -3
- package/dist/runtime/server/implementations/local/player.local.js +23 -11
- package/dist/runtime/server/implementations/remote/channel.remote.d.ts +2 -1
- package/dist/runtime/server/implementations/remote/channel.remote.js +5 -2
- package/dist/runtime/server/implementations/remote/command.remote.d.ts +3 -1
- package/dist/runtime/server/implementations/remote/command.remote.js +9 -4
- package/dist/runtime/server/implementations/remote/player.remote.d.ts +7 -10
- package/dist/runtime/server/implementations/remote/player.remote.js +24 -29
- package/dist/runtime/server/library/create-server-library.js +17 -2
- package/dist/runtime/server/runtime.d.ts +3 -0
- package/dist/runtime/server/runtime.js +1 -15
- package/dist/runtime/server/services/appearance.service.d.ts +0 -95
- package/dist/runtime/server/services/appearance.service.js +15 -192
- package/dist/runtime/server/services/services.register.js +56 -24
- package/dist/runtime/server/system/processors/netEvent.processor.js +1 -1
- package/dist/runtime/server/system/processors/onRpc.processor.js +1 -1
- package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +2 -1
- package/dist/runtime/server/system/processors/runtimeEvent.processor.js +1 -1
- package/dist/runtime/server/types/core-exports.types.d.ts +5 -0
- package/dist/runtime/shared/helpers/process-tuple-schema.d.ts +2 -0
- package/dist/runtime/shared/helpers/process-tuple-schema.js +29 -0
- package/package.json +21 -3
- package/dist/adapters/cfx/cfx-capabilities.d.ts +0 -16
- package/dist/adapters/cfx/cfx-capabilities.js +0 -70
- package/dist/adapters/cfx/cfx-platform.d.ts +0 -2
- package/dist/adapters/cfx/cfx-platform.js +0 -85
- package/dist/adapters/cfx/index.d.ts +0 -3
- package/dist/adapters/cfx/index.js +0 -3
- package/dist/adapters/cfx/runtime-profile.d.ts +0 -3
- package/dist/adapters/cfx/runtime-profile.js +0 -37
- package/dist/adapters/contracts/IPlatformCapabilities.d.ts +0 -79
- package/dist/adapters/contracts/IPlatformCapabilities.js +0 -27
- package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +0 -206
- package/dist/adapters/contracts/client/IPedAppearanceClient.js +0 -12
- package/dist/adapters/fivem/fivem-capabilities.d.ts +0 -18
- package/dist/adapters/fivem/fivem-capabilities.js +0 -61
- package/dist/adapters/fivem/fivem-engine-events.d.ts +0 -5
- package/dist/adapters/fivem/fivem-engine-events.js +0 -24
- package/dist/adapters/fivem/fivem-entity-server.d.ts +0 -26
- package/dist/adapters/fivem/fivem-entity-server.js +0 -87
- package/dist/adapters/fivem/fivem-exports.d.ts +0 -5
- package/dist/adapters/fivem/fivem-exports.js +0 -9
- package/dist/adapters/fivem/fivem-hasher.d.ts +0 -7
- package/dist/adapters/fivem/fivem-net-transport.d.ts +0 -1
- package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +0 -34
- package/dist/adapters/fivem/fivem-ped-appearance-client.js +0 -79
- package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +0 -14
- package/dist/adapters/fivem/fivem-ped-appearance-server.js +0 -22
- package/dist/adapters/fivem/fivem-ped-server.d.ts +0 -9
- package/dist/adapters/fivem/fivem-ped-server.js +0 -30
- package/dist/adapters/fivem/fivem-platform.d.ts +0 -5
- package/dist/adapters/fivem/fivem-platform.js +0 -74
- package/dist/adapters/fivem/fivem-player-server.d.ts +0 -24
- package/dist/adapters/fivem/fivem-player-server.js +0 -83
- package/dist/adapters/fivem/fivem-playerinfo.d.ts +0 -6
- package/dist/adapters/fivem/fivem-playerinfo.js +0 -10
- package/dist/adapters/fivem/fivem-resourceinfo.d.ts +0 -5
- package/dist/adapters/fivem/fivem-resourceinfo.js +0 -24
- package/dist/adapters/fivem/fivem-tick.d.ts +0 -7
- package/dist/adapters/fivem/fivem-vehicle-server.d.ts +0 -15
- package/dist/adapters/fivem/fivem-vehicle-server.js +0 -44
- package/dist/adapters/fivem/index.d.ts +0 -14
- package/dist/adapters/fivem/index.js +0 -16
- package/dist/adapters/fivem/transport/adapter.d.ts +0 -8
- package/dist/adapters/fivem/transport/adapter.js +0 -8
- package/dist/adapters/fivem/transport/fivem.events.d.ts +0 -8
- package/dist/adapters/fivem/transport/fivem.events.js +0 -36
- package/dist/adapters/fivem/transport/fivem.rpc.d.ts +0 -28
- package/dist/adapters/fivem/transport/fivem.rpc.js +0 -183
- package/dist/runtime/client/controllers/player-sync.controller.d.ts +0 -11
- package/dist/runtime/client/controllers/player-sync.controller.js +0 -51
- package/dist/runtime/client/player/player.d.ts +0 -262
- package/dist/runtime/client/player/player.js +0 -474
- package/dist/runtime/client/player/player.loader.d.ts +0 -1
- package/dist/runtime/client/player/player.loader.js +0 -18
- package/dist/runtime/server/helpers/process-tuple-schema.d.ts +0 -20
- package/dist/runtime/server/helpers/process-tuple-schema.js +0 -56
- /package/dist/adapters/{fivem/fivem-net-transport.js → contracts/client/spawn/types.js} +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from 'tsyringe';
|
|
14
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
15
|
+
import { IPlayerLifecycleServer } from '../../../adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer';
|
|
16
|
+
let NodePlayerLifecycleServer = class NodePlayerLifecycleServer extends IPlayerLifecycleServer {
|
|
17
|
+
events;
|
|
18
|
+
constructor(events) {
|
|
19
|
+
super();
|
|
20
|
+
this.events = events;
|
|
21
|
+
}
|
|
22
|
+
spawn(playerSrc, request) {
|
|
23
|
+
const target = this.resolveTarget(playerSrc);
|
|
24
|
+
if (!target)
|
|
25
|
+
return;
|
|
26
|
+
this.events.emit('opencore:spawner:spawn', target, {
|
|
27
|
+
position: request.position,
|
|
28
|
+
model: request.model,
|
|
29
|
+
heading: request.heading,
|
|
30
|
+
appearance: request.appearance,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
teleport(playerSrc, request) {
|
|
34
|
+
const target = this.resolveTarget(playerSrc);
|
|
35
|
+
if (!target)
|
|
36
|
+
return;
|
|
37
|
+
this.events.emit('opencore:spawner:teleport', target, request.position, request.heading);
|
|
38
|
+
}
|
|
39
|
+
respawn(playerSrc, request) {
|
|
40
|
+
const target = this.resolveTarget(playerSrc);
|
|
41
|
+
if (!target)
|
|
42
|
+
return;
|
|
43
|
+
this.events.emit('opencore:spawner:respawn', target, request.position, request.heading);
|
|
44
|
+
}
|
|
45
|
+
resolveTarget(playerSrc) {
|
|
46
|
+
const clientId = Number(playerSrc);
|
|
47
|
+
return Number.isFinite(clientId) && clientId > 0 ? clientId : undefined;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
NodePlayerLifecycleServer = __decorate([
|
|
51
|
+
injectable(),
|
|
52
|
+
__param(0, inject(EventsAPI)),
|
|
53
|
+
__metadata("design:paramtypes", [EventsAPI])
|
|
54
|
+
], NodePlayerLifecycleServer);
|
|
55
|
+
export { NodePlayerLifecycleServer };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
2
|
+
import { IPlayerServer } from '../../../adapters/contracts/server/IPlayerServer';
|
|
3
|
+
import { IPlayerStateSyncServer } from '../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
|
|
4
|
+
export declare class NodePlayerStateSyncServer extends IPlayerStateSyncServer {
|
|
5
|
+
private readonly playerServer;
|
|
6
|
+
private readonly entityServer;
|
|
7
|
+
constructor(playerServer: IPlayerServer, entityServer: IEntityServer);
|
|
8
|
+
getHealth(playerSrc: string): number;
|
|
9
|
+
setHealth(playerSrc: string, health: number): void;
|
|
10
|
+
getArmor(playerSrc: string): number;
|
|
11
|
+
setArmor(playerSrc: string, armor: number): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from 'tsyringe';
|
|
14
|
+
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
15
|
+
import { IPlayerServer } from '../../../adapters/contracts/server/IPlayerServer';
|
|
16
|
+
import { IPlayerStateSyncServer } from '../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
|
|
17
|
+
let NodePlayerStateSyncServer = class NodePlayerStateSyncServer extends IPlayerStateSyncServer {
|
|
18
|
+
playerServer;
|
|
19
|
+
entityServer;
|
|
20
|
+
constructor(playerServer, entityServer) {
|
|
21
|
+
super();
|
|
22
|
+
this.playerServer = playerServer;
|
|
23
|
+
this.entityServer = entityServer;
|
|
24
|
+
}
|
|
25
|
+
getHealth(playerSrc) {
|
|
26
|
+
return this.entityServer.getHealth(this.playerServer.getPed(playerSrc));
|
|
27
|
+
}
|
|
28
|
+
setHealth(playerSrc, health) {
|
|
29
|
+
const ped = this.playerServer.getPed(playerSrc);
|
|
30
|
+
this.entityServer.setHealth(ped, health);
|
|
31
|
+
this.entityServer.getStateBag(ped).set('health', health, true);
|
|
32
|
+
}
|
|
33
|
+
getArmor(playerSrc) {
|
|
34
|
+
return this.entityServer.getArmor(this.playerServer.getPed(playerSrc));
|
|
35
|
+
}
|
|
36
|
+
setArmor(playerSrc, armor) {
|
|
37
|
+
const ped = this.playerServer.getPed(playerSrc);
|
|
38
|
+
this.entityServer.setArmor(ped, armor);
|
|
39
|
+
this.entityServer.getStateBag(ped).set('armor', armor, true);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
NodePlayerStateSyncServer = __decorate([
|
|
43
|
+
injectable(),
|
|
44
|
+
__param(0, inject(IPlayerServer)),
|
|
45
|
+
__param(1, inject(IEntityServer)),
|
|
46
|
+
__metadata("design:paramtypes", [IPlayerServer,
|
|
47
|
+
IEntityServer])
|
|
48
|
+
], NodePlayerStateSyncServer);
|
|
49
|
+
export { NodePlayerStateSyncServer };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { IEngineEvents } from '../../../adapters/contracts/IEngineEvents';
|
|
2
|
+
import { IExports } from '../../../adapters/contracts/IExports';
|
|
3
|
+
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
4
|
+
import { IPlatformContext } from '../../../adapters/contracts/IPlatformContext';
|
|
5
|
+
import { IPlayerInfo } from '../../../adapters/contracts/IPlayerInfo';
|
|
6
|
+
import { IResourceInfo } from '../../../adapters/contracts/IResourceInfo';
|
|
7
|
+
import { ITick } from '../../../adapters/contracts/ITick';
|
|
8
|
+
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
9
|
+
import { INpcLifecycleServer } from '../../../adapters/contracts/server/npc-lifecycle/INpcLifecycleServer';
|
|
10
|
+
import { IPedAppearanceServer } from '../../../adapters/contracts/server/IPedAppearanceServer';
|
|
11
|
+
import { IPedServer } from '../../../adapters/contracts/server/IPedServer';
|
|
12
|
+
import { IPlayerAppearanceLifecycleServer } from '../../../adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer';
|
|
13
|
+
import { IPlayerLifecycleServer } from '../../../adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer';
|
|
14
|
+
import { IPlayerStateSyncServer } from '../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
|
|
15
|
+
import { IPlayerServer } from '../../../adapters/contracts/server/IPlayerServer';
|
|
16
|
+
import { IVehicleLifecycleServer } from '../../../adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer';
|
|
17
|
+
import { IVehicleServer } from '../../../adapters/contracts/server/IVehicleServer';
|
|
18
|
+
import { defineServerAdapter } from './server-adapter';
|
|
19
|
+
/**
|
|
20
|
+
* Default server adapter used when no runtime adapter is provided.
|
|
21
|
+
*/
|
|
22
|
+
export function createNodeServerAdapter() {
|
|
23
|
+
return defineServerAdapter({
|
|
24
|
+
name: 'node',
|
|
25
|
+
async register(ctx) {
|
|
26
|
+
const [{ NodeMessagingTransport }, { NodeEngineEvents }, { NodeExports }, { NodeResourceInfo }, { NodeTick }, { NodePlayerInfo }, { NodeEntityServer }, { NodePedServer }, { NodeVehicleServer }, { NodePlayerServer }, { NodeHasher }, { NodePedAppearanceServer }, { NodePlatformContext }, { NodePlayerLifecycleServer }, { NodeVehicleLifecycleServer }, { NodeNpcLifecycleServer }, { NodePlayerAppearanceLifecycleServer }, { NodePlayerStateSyncServer },] = await Promise.all([
|
|
27
|
+
import('../../../adapters/node/transport/adapter'),
|
|
28
|
+
import('../../../adapters/node/node-engine-events'),
|
|
29
|
+
import('../../../adapters/node/node-exports'),
|
|
30
|
+
import('../../../adapters/node/node-resourceinfo'),
|
|
31
|
+
import('../../../adapters/node/node-tick'),
|
|
32
|
+
import('../../../adapters/node/node-playerinfo'),
|
|
33
|
+
import('../../../adapters/node/node-entity-server'),
|
|
34
|
+
import('../../../adapters/node/node-ped-server'),
|
|
35
|
+
import('../../../adapters/node/node-vehicle-server'),
|
|
36
|
+
import('../../../adapters/node/node-player-server'),
|
|
37
|
+
import('../../../adapters/node/node-hasher'),
|
|
38
|
+
import('../../../adapters/node/node-ped-appearance-server'),
|
|
39
|
+
import('../../../adapters/node/node-capabilities'),
|
|
40
|
+
import('./node-player-lifecycle-server'),
|
|
41
|
+
import('./node-vehicle-lifecycle-server'),
|
|
42
|
+
import('./node-npc-lifecycle-server'),
|
|
43
|
+
import('./node-player-appearance-lifecycle-server'),
|
|
44
|
+
import('./node-player-state-sync-server'),
|
|
45
|
+
]);
|
|
46
|
+
ctx.bindSingleton(IPlatformContext, NodePlatformContext);
|
|
47
|
+
const transport = new NodeMessagingTransport('server');
|
|
48
|
+
ctx.bindMessagingTransport(transport);
|
|
49
|
+
ctx.bindSingleton(IEngineEvents, NodeEngineEvents);
|
|
50
|
+
ctx.bindSingleton(IExports, NodeExports);
|
|
51
|
+
ctx.bindSingleton(IResourceInfo, NodeResourceInfo);
|
|
52
|
+
ctx.bindSingleton(ITick, NodeTick);
|
|
53
|
+
ctx.bindSingleton(IPlayerInfo, NodePlayerInfo);
|
|
54
|
+
ctx.bindSingleton(IEntityServer, NodeEntityServer);
|
|
55
|
+
ctx.bindSingleton(INpcLifecycleServer, NodeNpcLifecycleServer);
|
|
56
|
+
ctx.bindSingleton(IPedServer, NodePedServer);
|
|
57
|
+
ctx.bindSingleton(IVehicleServer, NodeVehicleServer);
|
|
58
|
+
ctx.bindSingleton(IVehicleLifecycleServer, NodeVehicleLifecycleServer);
|
|
59
|
+
ctx.bindSingleton(IPlayerServer, NodePlayerServer);
|
|
60
|
+
ctx.bindSingleton(IPlayerAppearanceLifecycleServer, NodePlayerAppearanceLifecycleServer);
|
|
61
|
+
ctx.bindSingleton(IPlayerStateSyncServer, NodePlayerStateSyncServer);
|
|
62
|
+
ctx.bindSingleton(IPlayerLifecycleServer, NodePlayerLifecycleServer);
|
|
63
|
+
ctx.bindSingleton(IHasher, NodeHasher);
|
|
64
|
+
ctx.bindSingleton(IPedAppearanceServer, NodePedAppearanceServer);
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IVehicleLifecycleServer } from '../../../adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer';
|
|
2
|
+
import type { CreateVehicleServerRequest, CreateVehicleServerResult, WarpPlayerIntoVehicleRequest } from '../../../adapters/contracts/server/vehicle-lifecycle/types';
|
|
3
|
+
import { IPlatformContext } from '../../../adapters/contracts/IPlatformContext';
|
|
4
|
+
import { IVehicleServer } from '../../../adapters/contracts/server/IVehicleServer';
|
|
5
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
6
|
+
export declare class NodeVehicleLifecycleServer extends IVehicleLifecycleServer {
|
|
7
|
+
private readonly vehicleServer;
|
|
8
|
+
private readonly platformContext;
|
|
9
|
+
private readonly events;
|
|
10
|
+
constructor(vehicleServer: IVehicleServer, platformContext: IPlatformContext, events: EventsAPI<'server'>);
|
|
11
|
+
create(request: CreateVehicleServerRequest): CreateVehicleServerResult;
|
|
12
|
+
warpPlayerIntoVehicle(request: WarpPlayerIntoVehicleRequest): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from 'tsyringe';
|
|
14
|
+
import { IVehicleLifecycleServer } from '../../../adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer';
|
|
15
|
+
import { IPlatformContext } from '../../../adapters/contracts/IPlatformContext';
|
|
16
|
+
import { IVehicleServer } from '../../../adapters/contracts/server/IVehicleServer';
|
|
17
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
18
|
+
let NodeVehicleLifecycleServer = class NodeVehicleLifecycleServer extends IVehicleLifecycleServer {
|
|
19
|
+
vehicleServer;
|
|
20
|
+
platformContext;
|
|
21
|
+
events;
|
|
22
|
+
constructor(vehicleServer, platformContext, events) {
|
|
23
|
+
super();
|
|
24
|
+
this.vehicleServer = vehicleServer;
|
|
25
|
+
this.platformContext = platformContext;
|
|
26
|
+
this.events = events;
|
|
27
|
+
}
|
|
28
|
+
create(request) {
|
|
29
|
+
if (!this.platformContext.enableServerVehicleCreation) {
|
|
30
|
+
throw new Error(`Server vehicle creation is disabled for profile '${this.platformContext.gameProfile}'`);
|
|
31
|
+
}
|
|
32
|
+
const handle = this.vehicleServer.createServerSetter(request.modelHash, this.platformContext.defaultVehicleType, request.position.x, request.position.y, request.position.z, request.heading);
|
|
33
|
+
if (!handle || handle === 0) {
|
|
34
|
+
throw new Error('Failed to create vehicle entity');
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
handle,
|
|
38
|
+
networkId: this.vehicleServer.getNetworkIdFromEntity(handle),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
warpPlayerIntoVehicle(request) {
|
|
42
|
+
const clientId = Number(request.playerSrc);
|
|
43
|
+
if (Number.isNaN(clientId))
|
|
44
|
+
return;
|
|
45
|
+
this.events.emit('opencore:vehicle:warpInto', clientId, request.networkId, request.seatIndex);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
NodeVehicleLifecycleServer = __decorate([
|
|
49
|
+
injectable(),
|
|
50
|
+
__param(0, inject(IVehicleServer)),
|
|
51
|
+
__param(1, inject(IPlatformContext)),
|
|
52
|
+
__param(2, inject(EventsAPI)),
|
|
53
|
+
__metadata("design:paramtypes", [IVehicleServer,
|
|
54
|
+
IPlatformContext,
|
|
55
|
+
EventsAPI])
|
|
56
|
+
], NodeVehicleLifecycleServer);
|
|
57
|
+
export { NodeVehicleLifecycleServer };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PlayerAdapters, Player } from '../entities/player';
|
|
2
|
+
import { PlayerSession } from '../types/player-session.types';
|
|
3
|
+
import { SerializedPlayerData } from '../types/core-exports.types';
|
|
4
|
+
/**
|
|
5
|
+
* Dependencies required to build server-side player instances.
|
|
6
|
+
*/
|
|
7
|
+
export type PlayerFactoryDeps = PlayerAdapters;
|
|
8
|
+
/**
|
|
9
|
+
* Adapter hook for creating and hydrating Player instances.
|
|
10
|
+
*/
|
|
11
|
+
export interface ServerPlayerAdapter {
|
|
12
|
+
createLocal(session: PlayerSession, deps: PlayerFactoryDeps): Player;
|
|
13
|
+
createRemote(data: SerializedPlayerData, deps: PlayerFactoryDeps): Player;
|
|
14
|
+
serialize?(player: Player): Record<string, unknown> | undefined;
|
|
15
|
+
hydrate?(player: Player, payload: Record<string, unknown> | undefined): void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Restores base state shared by all Player instances.
|
|
19
|
+
*/
|
|
20
|
+
export declare function hydrateBasePlayerState(player: Player, data: SerializedPlayerData): Player;
|
|
21
|
+
/**
|
|
22
|
+
* Creates the framework default local Player instance.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createDefaultLocalPlayer(session: PlayerSession, deps: PlayerFactoryDeps): Player;
|
|
25
|
+
/**
|
|
26
|
+
* Creates the framework default remote Player instance.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createDefaultRemotePlayer(data: SerializedPlayerData, deps: PlayerFactoryDeps): Player;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Player } from '../entities/player';
|
|
2
|
+
/**
|
|
3
|
+
* Restores base state shared by all Player instances.
|
|
4
|
+
*/
|
|
5
|
+
export function hydrateBasePlayerState(player, data) {
|
|
6
|
+
for (const state of data.states) {
|
|
7
|
+
player.addState(state);
|
|
8
|
+
}
|
|
9
|
+
return player;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates the framework default local Player instance.
|
|
13
|
+
*/
|
|
14
|
+
export function createDefaultLocalPlayer(session, deps) {
|
|
15
|
+
return new Player(session, deps);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Creates the framework default remote Player instance.
|
|
19
|
+
*/
|
|
20
|
+
export function createDefaultRemotePlayer(data, deps) {
|
|
21
|
+
const player = new Player({
|
|
22
|
+
clientID: data.clientID,
|
|
23
|
+
accountID: data.accountID,
|
|
24
|
+
identifiers: data.identifiers,
|
|
25
|
+
meta: data.meta,
|
|
26
|
+
}, deps);
|
|
27
|
+
return hydrateBasePlayerState(player, data);
|
|
28
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Player } from '../entities/player';
|
|
2
|
+
import { SerializedPlayerData } from '../types/core-exports.types';
|
|
3
|
+
import { PlayerSession } from '../types/player-session.types';
|
|
4
|
+
import { type PlayerFactoryDeps } from './player-adapter';
|
|
5
|
+
import { type OpenCoreServerAdapter } from './server-adapter';
|
|
6
|
+
/**
|
|
7
|
+
* Installs the active server adapter for the current bootstrap.
|
|
8
|
+
*/
|
|
9
|
+
export declare function installServerAdapter(adapter: OpenCoreServerAdapter): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Returns the currently active server adapter name.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getActiveServerAdapterName(): string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Builds a local Player through the active adapter.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createLocalServerPlayer(session: PlayerSession, deps: PlayerFactoryDeps): Player;
|
|
18
|
+
/**
|
|
19
|
+
* Builds a remote Player through the active adapter.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createRemoteServerPlayer(data: SerializedPlayerData, deps: PlayerFactoryDeps): Player;
|
|
22
|
+
/**
|
|
23
|
+
* Serializes adapter-specific player payload.
|
|
24
|
+
*/
|
|
25
|
+
export declare function serializeServerPlayerAdapterPayload(player: Player): SerializedPlayerData['adapter'] | undefined;
|
|
26
|
+
export declare function __resetServerAdapterRegistryForTests(): void;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { GLOBAL_CONTAINER } from '../../../kernel/di/container';
|
|
2
|
+
import { createDefaultLocalPlayer, createDefaultRemotePlayer, } from './player-adapter';
|
|
3
|
+
import { bindTransportInstances, } from './server-adapter';
|
|
4
|
+
const DEFAULT_PLAYER_ADAPTER = {
|
|
5
|
+
createLocal: createDefaultLocalPlayer,
|
|
6
|
+
createRemote: createDefaultRemotePlayer,
|
|
7
|
+
};
|
|
8
|
+
let activeServerAdapter = null;
|
|
9
|
+
function assertTokenAvailable(container, token, adapterName) {
|
|
10
|
+
if (container.isRegistered(token)) {
|
|
11
|
+
throw new Error(`[OpenCore] Adapter '${adapterName}' cannot bind an already registered token.`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function createAdapterContext(adapterName) {
|
|
15
|
+
let playerAdapterConfigured = false;
|
|
16
|
+
return {
|
|
17
|
+
adapterName,
|
|
18
|
+
container: GLOBAL_CONTAINER,
|
|
19
|
+
isRegistered(token) {
|
|
20
|
+
return GLOBAL_CONTAINER.isRegistered(token);
|
|
21
|
+
},
|
|
22
|
+
bindSingleton(token, implementation) {
|
|
23
|
+
assertTokenAvailable(GLOBAL_CONTAINER, token, adapterName);
|
|
24
|
+
GLOBAL_CONTAINER.registerSingleton(token, implementation);
|
|
25
|
+
},
|
|
26
|
+
bindInstance(token, value) {
|
|
27
|
+
assertTokenAvailable(GLOBAL_CONTAINER, token, adapterName);
|
|
28
|
+
GLOBAL_CONTAINER.registerInstance(token, value);
|
|
29
|
+
},
|
|
30
|
+
bindFactory(token, factory) {
|
|
31
|
+
assertTokenAvailable(GLOBAL_CONTAINER, token, adapterName);
|
|
32
|
+
GLOBAL_CONTAINER.register(token, { useFactory: factory });
|
|
33
|
+
},
|
|
34
|
+
bindMessagingTransport(transport) {
|
|
35
|
+
bindTransportInstances(this, transport);
|
|
36
|
+
},
|
|
37
|
+
usePlayerAdapter(adapter) {
|
|
38
|
+
if (playerAdapterConfigured) {
|
|
39
|
+
throw new Error(`[OpenCore] Adapter '${adapterName}' already configured a Player adapter.`);
|
|
40
|
+
}
|
|
41
|
+
activeServerAdapter = {
|
|
42
|
+
name: adapterName,
|
|
43
|
+
playerAdapter: adapter,
|
|
44
|
+
};
|
|
45
|
+
playerAdapterConfigured = true;
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Installs the active server adapter for the current bootstrap.
|
|
51
|
+
*/
|
|
52
|
+
export async function installServerAdapter(adapter) {
|
|
53
|
+
activeServerAdapter = {
|
|
54
|
+
name: adapter.name,
|
|
55
|
+
playerAdapter: DEFAULT_PLAYER_ADAPTER,
|
|
56
|
+
};
|
|
57
|
+
const context = createAdapterContext(adapter.name);
|
|
58
|
+
await adapter.register(context);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Returns the currently active server adapter name.
|
|
62
|
+
*/
|
|
63
|
+
export function getActiveServerAdapterName() {
|
|
64
|
+
return activeServerAdapter?.name;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Builds a local Player through the active adapter.
|
|
68
|
+
*/
|
|
69
|
+
export function createLocalServerPlayer(session, deps) {
|
|
70
|
+
return (activeServerAdapter?.playerAdapter ?? DEFAULT_PLAYER_ADAPTER).createLocal(session, deps);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Builds a remote Player through the active adapter.
|
|
74
|
+
*/
|
|
75
|
+
export function createRemoteServerPlayer(data, deps) {
|
|
76
|
+
if (data.adapter?.name &&
|
|
77
|
+
activeServerAdapter?.name &&
|
|
78
|
+
data.adapter.name !== activeServerAdapter.name) {
|
|
79
|
+
throw new Error(`[OpenCore] Cannot hydrate Player for adapter '${data.adapter.name}' with active adapter '${activeServerAdapter.name}'.`);
|
|
80
|
+
}
|
|
81
|
+
const playerAdapter = activeServerAdapter?.playerAdapter ?? DEFAULT_PLAYER_ADAPTER;
|
|
82
|
+
const player = playerAdapter.createRemote(data, deps);
|
|
83
|
+
playerAdapter.hydrate?.(player, data.adapter?.payload);
|
|
84
|
+
return player;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Serializes adapter-specific player payload.
|
|
88
|
+
*/
|
|
89
|
+
export function serializeServerPlayerAdapterPayload(player) {
|
|
90
|
+
const payload = activeServerAdapter?.playerAdapter.serialize?.(player);
|
|
91
|
+
if (!activeServerAdapter || payload === undefined) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
name: activeServerAdapter.name,
|
|
96
|
+
payload,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export function __resetServerAdapterRegistryForTests() {
|
|
100
|
+
activeServerAdapter = null;
|
|
101
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Player } from '../entities/player';
|
|
2
|
+
import type { SerializedPlayerData } from '../types/core-exports.types';
|
|
3
|
+
/**
|
|
4
|
+
* Serializes a Player using the active server adapter payload hooks.
|
|
5
|
+
*/
|
|
6
|
+
export declare function serializeServerPlayerData(player: Player): SerializedPlayerData;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { serializeServerPlayerAdapterPayload } from './registry';
|
|
2
|
+
/**
|
|
3
|
+
* Serializes a Player using the active server adapter payload hooks.
|
|
4
|
+
*/
|
|
5
|
+
export function serializeServerPlayerData(player) {
|
|
6
|
+
const base = player.serialize();
|
|
7
|
+
const adapter = serializeServerPlayerAdapterPayload(player);
|
|
8
|
+
return adapter ? { ...base, adapter } : base;
|
|
9
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { DependencyContainer, InjectionToken } from 'tsyringe';
|
|
2
|
+
import { MessagingTransport } from '../../../adapters/contracts/transport/messaging.transport';
|
|
3
|
+
import { ServerPlayerAdapter } from './player-adapter';
|
|
4
|
+
/**
|
|
5
|
+
* Public contract implemented by external server adapters.
|
|
6
|
+
*/
|
|
7
|
+
export interface OpenCoreServerAdapter {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
register(context: ServerAdapterContext): void | Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Registration helpers exposed to server adapters.
|
|
13
|
+
*/
|
|
14
|
+
export interface ServerAdapterContext {
|
|
15
|
+
readonly adapterName: string;
|
|
16
|
+
readonly container: DependencyContainer;
|
|
17
|
+
isRegistered<T>(token: InjectionToken<T>): boolean;
|
|
18
|
+
bindSingleton<T>(token: InjectionToken<T>, implementation: InjectionToken<T>): void;
|
|
19
|
+
bindInstance<T>(token: InjectionToken<T>, value: T): void;
|
|
20
|
+
bindFactory<T>(token: InjectionToken<T>, factory: () => T): void;
|
|
21
|
+
bindMessagingTransport(transport: MessagingTransport): void;
|
|
22
|
+
usePlayerAdapter(adapter: ServerPlayerAdapter): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Helper for strongly typed adapter declarations.
|
|
26
|
+
*/
|
|
27
|
+
export declare function defineServerAdapter(adapter: OpenCoreServerAdapter): OpenCoreServerAdapter;
|
|
28
|
+
export declare function bindTransportInstances(context: Pick<ServerAdapterContext, 'bindInstance'>, transport: MessagingTransport): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
2
|
+
import { MessagingTransport } from '../../../adapters/contracts/transport/messaging.transport';
|
|
3
|
+
import { RpcAPI } from '../../../adapters/contracts/transport/rpc.api';
|
|
4
|
+
/**
|
|
5
|
+
* Helper for strongly typed adapter declarations.
|
|
6
|
+
*/
|
|
7
|
+
export function defineServerAdapter(adapter) {
|
|
8
|
+
return adapter;
|
|
9
|
+
}
|
|
10
|
+
export function bindTransportInstances(context, transport) {
|
|
11
|
+
context.bindInstance(MessagingTransport, transport);
|
|
12
|
+
context.bindInstance(EventsAPI, transport.events);
|
|
13
|
+
context.bindInstance(RpcAPI, transport.rpc);
|
|
14
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { onFrameworkEvent } from './bus/internal-event.bus';
|
|
2
|
-
export { init } from './core';
|
|
2
|
+
export { init, useAdapter } from './core';
|
|
3
3
|
export * from './apis';
|
|
4
4
|
export * from './decorators';
|
|
5
5
|
export * from './library';
|
|
6
|
+
export * from './adapter';
|
|
6
7
|
export * from './contracts';
|
|
7
8
|
export * from './ports/players.api-port';
|
|
8
9
|
export * from './ports/authorization.api-port';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
// Framework functions
|
|
2
2
|
export { onFrameworkEvent } from './bus/internal-event.bus';
|
|
3
|
-
export { init } from './core';
|
|
3
|
+
export { init, useAdapter } from './core';
|
|
4
4
|
// API
|
|
5
5
|
export * from './apis';
|
|
6
6
|
export * from './decorators';
|
|
7
7
|
export * from './library';
|
|
8
|
+
export * from './adapter';
|
|
8
9
|
export * from './contracts';
|
|
9
10
|
export * from './ports/players.api-port';
|
|
10
11
|
export * from './ports/authorization.api-port';
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { AppearanceService } from '../services';
|
|
2
|
+
import { IPlayerAppearanceLifecycleServer } from '../../../adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer';
|
|
2
3
|
import { AppearanceValidationResult, PlayerAppearance } from '../../..';
|
|
3
4
|
import { Player } from '../entities/player';
|
|
4
5
|
type PlayerRef = Player | number | string;
|
|
5
6
|
type Clothes = Pick<PlayerAppearance, 'components' | 'props'>;
|
|
6
7
|
export declare class Appearance {
|
|
7
8
|
private readonly appearance;
|
|
8
|
-
|
|
9
|
+
private readonly lifecycle;
|
|
10
|
+
constructor(appearance: AppearanceService, lifecycle: IPlayerAppearanceLifecycleServer);
|
|
9
11
|
/**
|
|
10
12
|
* Apply full appearance to a player.
|
|
11
13
|
*
|
|
@@ -25,11 +27,11 @@ export declare class Appearance {
|
|
|
25
27
|
*
|
|
26
28
|
* Useful for quick outfit swaps without touching face / tattoos.
|
|
27
29
|
*/
|
|
28
|
-
applyClothing(player: PlayerRef, appearance: Clothes): boolean
|
|
30
|
+
applyClothing(player: PlayerRef, appearance: Clothes): Promise<boolean>;
|
|
29
31
|
/**
|
|
30
32
|
* Reset player appearance to default.
|
|
31
33
|
*/
|
|
32
|
-
reset(player: PlayerRef): boolean
|
|
34
|
+
reset(player: PlayerRef): Promise<boolean>;
|
|
33
35
|
/**
|
|
34
36
|
* Validate appearance data without applying it.
|
|
35
37
|
*
|
|
@@ -7,12 +7,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
10
13
|
import { injectable } from 'tsyringe';
|
|
14
|
+
import { inject } from 'tsyringe';
|
|
11
15
|
import { AppearanceService } from '../services';
|
|
16
|
+
import { IPlayerAppearanceLifecycleServer } from '../../../adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer';
|
|
12
17
|
let Appearance = class Appearance {
|
|
13
18
|
appearance;
|
|
14
|
-
|
|
19
|
+
lifecycle;
|
|
20
|
+
constructor(appearance, lifecycle) {
|
|
15
21
|
this.appearance = appearance;
|
|
22
|
+
this.lifecycle = lifecycle;
|
|
16
23
|
}
|
|
17
24
|
/**
|
|
18
25
|
* Apply full appearance to a player.
|
|
@@ -24,24 +31,28 @@ let Appearance = class Appearance {
|
|
|
24
31
|
* - Returns validated appearance for persistence
|
|
25
32
|
*/
|
|
26
33
|
async apply(player, appearance) {
|
|
34
|
+
const validation = this.appearance.validateAppearance(appearance);
|
|
35
|
+
if (!validation.valid) {
|
|
36
|
+
return { success: false, errors: validation.errors };
|
|
37
|
+
}
|
|
27
38
|
const src = this.resolveSource(player);
|
|
28
|
-
return this.
|
|
39
|
+
return this.lifecycle.apply(src, appearance);
|
|
29
40
|
}
|
|
30
41
|
/**
|
|
31
42
|
* Apply only clothing (components + props).
|
|
32
43
|
*
|
|
33
44
|
* Useful for quick outfit swaps without touching face / tattoos.
|
|
34
45
|
*/
|
|
35
|
-
applyClothing(player, appearance) {
|
|
46
|
+
async applyClothing(player, appearance) {
|
|
36
47
|
const src = this.resolveSource(player);
|
|
37
|
-
return this.
|
|
48
|
+
return await Promise.resolve(this.lifecycle.applyClothing(src, appearance));
|
|
38
49
|
}
|
|
39
50
|
/**
|
|
40
51
|
* Reset player appearance to default.
|
|
41
52
|
*/
|
|
42
|
-
reset(player) {
|
|
53
|
+
async reset(player) {
|
|
43
54
|
const src = this.resolveSource(player);
|
|
44
|
-
return this.
|
|
55
|
+
return await Promise.resolve(this.lifecycle.reset(src));
|
|
45
56
|
}
|
|
46
57
|
/**
|
|
47
58
|
* Validate appearance data without applying it.
|
|
@@ -61,6 +72,8 @@ let Appearance = class Appearance {
|
|
|
61
72
|
};
|
|
62
73
|
Appearance = __decorate([
|
|
63
74
|
injectable(),
|
|
64
|
-
|
|
75
|
+
__param(1, inject(IPlayerAppearanceLifecycleServer)),
|
|
76
|
+
__metadata("design:paramtypes", [AppearanceService,
|
|
77
|
+
IPlayerAppearanceLifecycleServer])
|
|
65
78
|
], Appearance);
|
|
66
79
|
export { Appearance };
|