@open-core/framework 0.1.0-alpha.1 → 0.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +217 -360
- package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
- package/dist/adapters/contracts/IEngineEvents.js +6 -0
- package/dist/adapters/contracts/IEntityServer.d.ts +88 -0
- package/dist/adapters/contracts/IEntityServer.js +13 -0
- package/dist/adapters/contracts/IExports.d.ts +4 -0
- package/dist/adapters/contracts/IExports.js +6 -0
- package/dist/adapters/contracts/IHasher.d.ts +15 -0
- package/dist/adapters/contracts/IHasher.js +12 -0
- package/dist/adapters/contracts/INetTransport.d.ts +8 -0
- package/dist/adapters/contracts/INetTransport.js +6 -0
- package/dist/adapters/contracts/IPedAppearanceClient.d.ts +206 -0
- package/dist/adapters/contracts/IPedAppearanceClient.js +16 -0
- package/dist/adapters/contracts/IPedAppearanceServer.d.ts +45 -0
- package/dist/adapters/contracts/IPedAppearanceServer.js +16 -0
- package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
- package/dist/adapters/contracts/IPlayerInfo.js +6 -0
- package/dist/adapters/contracts/IPlayerServer.d.ts +73 -0
- package/dist/adapters/contracts/IPlayerServer.js +13 -0
- package/dist/adapters/contracts/IResourceInfo.d.ts +3 -0
- package/dist/adapters/contracts/IResourceInfo.js +6 -0
- package/dist/adapters/contracts/ITick.d.ts +10 -0
- package/dist/adapters/contracts/ITick.js +9 -0
- package/dist/adapters/contracts/IVehicleServer.d.ts +55 -0
- package/dist/adapters/contracts/IVehicleServer.js +13 -0
- package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.d.ts +2 -2
- package/dist/{server/database/adapters → adapters/database}/oxmysql.adapter.js +2 -2
- package/dist/adapters/database/resource.adapter.d.ts +12 -0
- package/dist/adapters/database/resource.adapter.js +68 -0
- package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
- package/dist/adapters/fivem/fivem-engine-events.js +13 -0
- package/dist/adapters/fivem/fivem-entity-server.d.ts +22 -0
- package/dist/adapters/fivem/fivem-entity-server.js +80 -0
- package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
- package/dist/adapters/fivem/fivem-exports.js +14 -0
- package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
- package/dist/adapters/fivem/fivem-hasher.js +23 -0
- package/dist/adapters/fivem/fivem-net-transport.d.ts +5 -0
- package/dist/adapters/fivem/fivem-net-transport.js +24 -0
- package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
- package/dist/adapters/fivem/fivem-ped-appearance-client.js +84 -0
- package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
- package/dist/adapters/fivem/fivem-ped-appearance-server.js +26 -0
- package/dist/adapters/fivem/fivem-player-server.d.ts +15 -0
- package/dist/adapters/fivem/fivem-player-server.js +63 -0
- package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
- package/dist/adapters/fivem/fivem-playerinfo.js +14 -0
- package/dist/adapters/fivem/fivem-resourceinfo.d.ts +4 -0
- package/dist/adapters/fivem/fivem-resourceinfo.js +16 -0
- package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
- package/dist/adapters/fivem/fivem-tick.js +22 -0
- package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
- package/dist/adapters/fivem/fivem-vehicle-server.js +47 -0
- package/dist/adapters/index.d.ts +15 -0
- package/dist/adapters/index.js +40 -0
- package/dist/adapters/node/index.d.ts +8 -0
- package/dist/adapters/node/index.js +19 -0
- package/dist/adapters/node/node-engine-events.d.ts +20 -0
- package/dist/adapters/node/node-engine-events.js +42 -0
- package/dist/adapters/node/node-entity-server.d.ts +26 -0
- package/dist/adapters/node/node-entity-server.js +101 -0
- package/dist/adapters/node/node-exports.d.ts +26 -0
- package/dist/adapters/node/node-exports.js +63 -0
- package/dist/adapters/node/node-hasher.d.ts +12 -0
- package/dist/adapters/node/node-hasher.js +39 -0
- package/dist/adapters/node/node-net-transport.d.ts +18 -0
- package/dist/adapters/node/node-net-transport.js +57 -0
- package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
- package/dist/adapters/node/node-ped-appearance-client.js +59 -0
- package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
- package/dist/adapters/node/node-ped-appearance-server.js +18 -0
- package/dist/adapters/node/node-player-server.d.ts +27 -0
- package/dist/adapters/node/node-player-server.js +82 -0
- package/dist/adapters/node/node-playerinfo.d.ts +6 -0
- package/dist/adapters/node/node-playerinfo.js +12 -0
- package/dist/adapters/node/node-resourceinfo.d.ts +12 -0
- package/dist/adapters/node/node-resourceinfo.js +27 -0
- package/dist/adapters/node/node-tick.d.ts +10 -0
- package/dist/{server/system/processors/command.processor.js → adapters/node/node-tick.js} +27 -14
- package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
- package/dist/adapters/node/node-vehicle-server.js +93 -0
- package/dist/adapters/register-capabilities.d.ts +11 -0
- package/dist/adapters/register-capabilities.js +148 -0
- package/dist/adapters/register-client-capabilities.d.ts +8 -0
- package/dist/adapters/register-client-capabilities.js +56 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.js +9 -5
- package/dist/kernel/di/index.d.ts +4 -0
- package/dist/kernel/di/index.js +20 -0
- package/dist/{system → kernel/di}/metadata.scanner.d.ts +1 -2
- package/dist/kernel/di/tokens.d.ts +30 -0
- package/dist/kernel/di/tokens.js +38 -0
- package/dist/kernel/index.d.ts +7 -0
- package/dist/kernel/index.js +30 -0
- package/dist/kernel/schema/index.d.ts +32 -0
- package/dist/kernel/schema/index.js +5 -0
- package/dist/kernel/shared/appearance/appearance.interface.d.ts +276 -0
- package/dist/kernel/shared/appearance/appearance.interface.js +77 -0
- package/dist/kernel/shared/appearance/index.d.ts +1 -0
- package/dist/kernel/shared/appearance/index.js +17 -0
- package/dist/kernel/shared/index.d.ts +2 -0
- package/dist/{shared → kernel/shared}/index.js +1 -0
- package/dist/{shared → kernel/shared}/logger/core-logger.d.ts +13 -0
- package/dist/{shared → kernel/shared}/logger/core-logger.js +38 -9
- package/dist/{shared → kernel/shared}/logger/index.d.ts +12 -9
- package/dist/{shared → kernel/shared}/logger/index.js +24 -15
- package/dist/{shared → kernel/shared}/logger/logger.config.d.ts +1 -1
- package/dist/kernel/shared/logger/logger.env.d.ts +28 -0
- package/dist/kernel/shared/logger/logger.env.js +51 -0
- package/dist/{shared → kernel/shared}/logger/logger.service.d.ts +2 -2
- package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.d.ts +2 -2
- package/dist/{shared → kernel/shared}/logger/transports/buffered.transport.js +1 -1
- package/dist/{shared → kernel/shared}/logger/transports/console.transport.d.ts +2 -2
- package/dist/{shared → kernel/shared}/logger/transports/console.transport.js +1 -0
- package/dist/kernel/shared/logger/transports/dev-transport.factory.d.ts +75 -0
- package/dist/kernel/shared/logger/transports/dev-transport.factory.js +111 -0
- package/dist/kernel/shared/logger/transports/http.transport.d.ts +67 -0
- package/dist/kernel/shared/logger/transports/http.transport.js +170 -0
- package/dist/kernel/shared/logger/transports/index.d.ts +7 -0
- package/dist/kernel/shared/logger/transports/index.js +34 -0
- package/dist/kernel/shared/logger/transports/simple-console.transport.d.ts +38 -0
- package/dist/kernel/shared/logger/transports/simple-console.transport.js +93 -0
- package/dist/{shared → kernel/shared}/logger/transports/transport.interface.d.ts +1 -1
- package/dist/kernel/shared/logger/transports/websocket.transport.d.ts +69 -0
- package/dist/kernel/shared/logger/transports/websocket.transport.js +169 -0
- package/dist/kernel/utils/error/app.error.d.ts +9 -0
- package/dist/{utils/errors.js → kernel/utils/error/app.error.js} +1 -9
- package/dist/kernel/utils/error/security.error.d.ts +6 -0
- package/dist/kernel/utils/error/security.error.js +12 -0
- package/dist/{utils → kernel/utils}/index.d.ts +3 -2
- package/dist/{utils → kernel/utils}/index.js +3 -2
- package/dist/{utils → kernel/utils}/result.d.ts +1 -1
- package/dist/runtime/client/client-bootstrap.d.ts +7 -0
- package/dist/runtime/client/client-bootstrap.js +180 -0
- package/dist/runtime/client/client-core.d.ts +19 -0
- package/dist/runtime/client/client-core.js +24 -0
- package/dist/runtime/client/client-runtime.d.ts +58 -0
- package/dist/runtime/client/client-runtime.js +32 -0
- package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
- package/dist/runtime/client/controllers/appearance.controller.js +50 -0
- package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
- package/dist/runtime/client/controllers/player-sync.controller.js +54 -0
- package/dist/{client → runtime/client}/controllers/spawner.controller.d.ts +1 -1
- package/dist/runtime/client/decorators/controller.d.ts +20 -0
- package/dist/runtime/client/decorators/controller.js +55 -0
- package/dist/runtime/client/decorators/export.d.ts +21 -0
- package/dist/runtime/client/decorators/export.js +29 -0
- package/dist/{client → runtime/client}/decorators/gameEvent.d.ts +2 -2
- package/dist/runtime/client/decorators/interval.d.ts +23 -0
- package/dist/runtime/client/decorators/interval.js +31 -0
- package/dist/runtime/client/decorators/key.d.ts +23 -0
- package/dist/runtime/client/decorators/key.js +31 -0
- package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
- package/dist/runtime/client/decorators/localEvent.js +29 -0
- package/dist/runtime/client/decorators/nui.d.ts +21 -0
- package/dist/runtime/client/decorators/nui.js +29 -0
- package/dist/runtime/client/decorators/onNet.d.ts +21 -0
- package/dist/runtime/client/decorators/onNet.js +29 -0
- package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
- package/dist/runtime/client/decorators/resourceLifecycle.js +53 -0
- package/dist/runtime/client/decorators/tick.d.ts +21 -0
- package/dist/runtime/client/decorators/tick.js +29 -0
- package/dist/{client → runtime/client}/index.d.ts +2 -2
- package/dist/{client → runtime/client}/index.js +4 -2
- package/dist/runtime/client/interfaces/appearance.interface.d.ts +25 -0
- package/dist/runtime/client/interfaces/appearance.interface.js +2 -0
- package/dist/{client → runtime/client}/player/player.d.ts +1 -1
- package/dist/{client → runtime/client}/player/player.js +5 -6
- package/dist/{client → runtime/client}/player/player.loader.js +2 -2
- package/dist/runtime/client/services/appearance.service.d.ts +132 -0
- package/dist/runtime/client/services/appearance.service.js +328 -0
- package/dist/{client → runtime/client}/services/blip.service.d.ts +1 -1
- package/dist/{client → runtime/client}/services/index.d.ts +6 -5
- package/dist/{client → runtime/client}/services/index.js +6 -5
- package/dist/{client → runtime/client}/services/marker.service.d.ts +1 -1
- package/dist/{client → runtime/client}/services/ped.service.d.ts +1 -1
- package/dist/{client → runtime/client}/services/ped.service.js +3 -2
- package/dist/{client → runtime/client}/services/spawn.service.d.ts +2 -2
- package/dist/{client → runtime/client}/services/spawn.service.js +4 -8
- package/dist/{client → runtime/client}/services/textui.service.d.ts +1 -1
- package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
- package/dist/runtime/client/services/vehicle-client.service.js +485 -0
- package/dist/{client → runtime/client}/services/vehicle.service.d.ts +2 -2
- package/dist/{client → runtime/client}/services/vehicle.service.js +1 -1
- package/dist/{client → runtime/client}/system/processors/export.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/export.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/gameEvent.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/gameEvent.processor.js +2 -2
- package/dist/{client → runtime/client}/system/processors/interval.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/interval.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/key.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/localEvent.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/localEvent.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/netEvent.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/netEvent.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/nui.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/nui.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/resourceLifecycle.processor.js +1 -1
- package/dist/{client → runtime/client}/system/processors/tick.processor.d.ts +1 -1
- package/dist/{client → runtime/client}/system/processors/tick.processor.js +1 -1
- package/dist/{client → runtime/client}/types/game-events.js +0 -8
- package/dist/{client → runtime/client}/ui-bridge.js +1 -1
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.js +39 -0
- package/dist/{server → runtime/server}/bootstrap.d.ts +2 -1
- package/dist/runtime/server/bootstrap.js +234 -0
- package/dist/runtime/server/bootstrap.validation.d.ts +12 -0
- package/dist/runtime/server/bootstrap.validation.js +102 -0
- package/dist/runtime/server/bus/core-event-bus.d.ts +6 -0
- package/dist/{server → runtime/server}/bus/core-event-bus.js +5 -5
- package/dist/{server → runtime/server}/configs/api.config.d.ts +1 -1
- package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.d.ts +2 -2
- package/dist/runtime/server/contracts/index.d.ts +7 -0
- package/dist/{server/templates → runtime/server/contracts}/index.js +8 -4
- package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.d.ts +1 -1
- package/dist/{server/templates → runtime/server/contracts}/repository/index.d.ts +2 -2
- package/dist/{server/templates → runtime/server/contracts}/repository/index.js +1 -1
- package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.d.ts +2 -2
- package/dist/{server/templates → runtime/server/contracts}/repository/repository.contract.js +0 -1
- package/dist/runtime/server/contracts/security/net-event-security-observer.contract.d.ts +15 -0
- package/dist/runtime/server/contracts/security/net-event-security-observer.contract.js +6 -0
- package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.d.ts +3 -3
- package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.d.ts +2 -2
- package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
- package/dist/{server → runtime/server}/controllers/chat.controller.js +23 -11
- package/dist/runtime/server/controllers/command-export.controller.d.ts +74 -0
- package/dist/runtime/server/controllers/command-export.controller.js +260 -0
- package/dist/runtime/server/controllers/command.controller.d.ts +15 -0
- package/dist/runtime/server/controllers/command.controller.js +100 -0
- package/dist/runtime/server/controllers/player-export.controller.d.ts +29 -0
- package/dist/runtime/server/controllers/player-export.controller.js +173 -0
- package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
- package/dist/runtime/server/controllers/principal-export.controller.js +296 -0
- package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +43 -0
- package/dist/runtime/server/controllers/remote-command-execution.controller.js +104 -0
- package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
- package/dist/{server → runtime/server}/controllers/session.controller.js +15 -12
- package/dist/runtime/server/controllers/vehicle.controller.d.ts +55 -0
- package/dist/runtime/server/controllers/vehicle.controller.js +216 -0
- package/dist/runtime/server/core.d.ts +3 -0
- package/dist/runtime/server/core.js +11 -0
- package/dist/runtime/server/database/adapter.registry.d.ts +4 -0
- package/dist/runtime/server/database/adapter.registry.js +14 -0
- package/dist/{server → runtime/server}/database/database.contract.d.ts +1 -1
- package/dist/{server → runtime/server}/database/database.service.d.ts +3 -31
- package/dist/{server → runtime/server}/database/database.service.js +36 -50
- package/dist/runtime/server/database/index.d.ts +5 -0
- package/dist/runtime/server/database/index.js +25 -0
- package/dist/runtime/server/decorators/bind.d.ts +21 -0
- package/dist/runtime/server/decorators/bind.js +31 -0
- package/dist/runtime/server/decorators/command.d.ts +81 -0
- package/dist/runtime/server/decorators/command.js +32 -0
- package/dist/{server → runtime/server}/decorators/controller.d.ts +4 -3
- package/dist/runtime/server/decorators/controller.js +61 -0
- package/dist/runtime/server/decorators/export.d.ts +24 -0
- package/dist/runtime/server/decorators/export.js +32 -0
- package/dist/runtime/server/decorators/guard.d.ts +49 -0
- package/dist/{server → runtime/server}/decorators/guard.js +33 -32
- package/dist/{server → runtime/server}/decorators/index.d.ts +7 -4
- package/dist/{server → runtime/server}/decorators/index.js +8 -5
- package/dist/runtime/server/decorators/onFiveMEvent.d.ts +24 -0
- package/dist/runtime/server/decorators/onFiveMEvent.js +32 -0
- package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +22 -0
- package/dist/{server → runtime/server}/decorators/onFrameworkEvent.js +9 -9
- package/dist/runtime/server/decorators/onNet.d.ts +62 -0
- package/dist/runtime/server/decorators/onNet.js +15 -0
- package/dist/runtime/server/decorators/onTick.d.ts +21 -0
- package/dist/runtime/server/decorators/onTick.js +29 -0
- package/dist/runtime/server/decorators/public.d.ts +26 -0
- package/dist/{server → runtime/server}/decorators/public.js +15 -16
- package/dist/{server → runtime/server}/decorators/requiresState.d.ts +29 -22
- package/dist/runtime/server/decorators/requiresState.js +73 -0
- package/dist/runtime/server/decorators/throttle.d.ts +56 -0
- package/dist/{server → runtime/server}/decorators/throttle.js +31 -19
- package/dist/runtime/server/decorators/utils.d.ts +54 -0
- package/dist/runtime/server/decorators/utils.js +60 -0
- package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
- package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +12 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +12 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +11 -0
- package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
- package/dist/runtime/server/devmode/contracts/index.js +9 -0
- package/dist/runtime/server/devmode/dev-mode.service.d.ts +110 -0
- package/dist/runtime/server/devmode/dev-mode.service.js +324 -0
- package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
- package/dist/runtime/server/devmode/event-interceptor.service.js +232 -0
- package/dist/runtime/server/devmode/hot-reload.server.d.ts +74 -0
- package/dist/runtime/server/devmode/hot-reload.server.js +261 -0
- package/dist/runtime/server/devmode/index.d.ts +8 -0
- package/dist/runtime/server/devmode/index.js +32 -0
- package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
- package/dist/runtime/server/devmode/player-simulator.service.js +202 -0
- package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
- package/dist/runtime/server/devmode/state-inspector.service.js +183 -0
- package/dist/runtime/server/devmode/types.d.ts +161 -0
- package/dist/runtime/server/devmode/types.js +28 -0
- package/dist/runtime/server/entities/index.d.ts +2 -0
- package/dist/{server → runtime/server}/entities/index.js +1 -0
- package/dist/{server → runtime/server}/entities/player.d.ts +70 -3
- package/dist/{server → runtime/server}/entities/player.js +92 -14
- package/dist/runtime/server/entities/vehicle.d.ts +160 -0
- package/dist/runtime/server/entities/vehicle.js +261 -0
- package/dist/{server → runtime/server}/error-handler.d.ts +1 -1
- package/dist/{server → runtime/server}/error-handler.js +7 -8
- package/dist/runtime/server/helpers/command-validation.helper.d.ts +6 -0
- package/dist/runtime/server/helpers/command-validation.helper.js +72 -0
- package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
- package/dist/runtime/server/helpers/function-helper.js +15 -0
- package/dist/{server → runtime/server}/helpers/resolve-method.d.ts +1 -1
- package/dist/runtime/server/helpers/resolve-method.js +28 -0
- package/dist/{server → runtime/server}/index.d.ts +8 -6
- package/dist/{server → runtime/server}/index.js +14 -10
- package/dist/runtime/server/runtime.d.ts +408 -0
- package/dist/runtime/server/runtime.js +234 -0
- package/dist/runtime/server/services/access-control.service.d.ts +59 -0
- package/dist/runtime/server/services/access-control.service.js +127 -0
- package/dist/runtime/server/services/appearance.service.d.ts +99 -0
- package/dist/runtime/server/services/appearance.service.js +307 -0
- package/dist/runtime/server/services/chat.service.d.ts +33 -0
- package/dist/{server → runtime/server}/services/chat.service.js +26 -0
- package/dist/{server → runtime/server}/services/config.service.js +1 -1
- package/dist/runtime/server/services/core/command.service.d.ts +49 -0
- package/dist/runtime/server/services/core/command.service.js +112 -0
- package/dist/{server/services → runtime/server/services/core}/player.service.d.ts +48 -22
- package/dist/{server/services → runtime/server/services/core}/player.service.js +98 -14
- package/dist/runtime/server/services/core/principal.service.d.ts +28 -0
- package/dist/runtime/server/services/core/principal.service.js +126 -0
- package/dist/runtime/server/services/core/vehicle-modification.service.d.ts +104 -0
- package/dist/runtime/server/services/core/vehicle-modification.service.js +330 -0
- package/dist/runtime/server/services/core/vehicle.service.d.ts +128 -0
- package/dist/runtime/server/services/core/vehicle.service.js +391 -0
- package/dist/runtime/server/services/default/default-net-event-security-observer.d.ts +15 -0
- package/dist/runtime/server/services/default/default-net-event-security-observer.js +28 -0
- package/dist/runtime/server/services/default/default-security.handler.d.ts +19 -0
- package/dist/{server → runtime/server}/services/default/default-security.handler.js +15 -2
- package/dist/{server → runtime/server}/services/http/http.service.js +5 -5
- package/dist/runtime/server/services/index.d.ts +16 -0
- package/dist/runtime/server/services/index.js +39 -0
- package/dist/{server → runtime/server}/services/parallel/index.d.ts +2 -4
- package/dist/{server → runtime/server}/services/parallel/index.js +13 -15
- package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.d.ts +1 -1
- package/dist/{server → runtime/server}/services/parallel/parallel-compute.service.js +2 -1
- package/dist/{server → runtime/server}/services/parallel/worker-pool.d.ts +1 -1
- package/dist/{server → runtime/server}/services/parallel/worker.d.ts +1 -1
- package/dist/{server → runtime/server}/services/persistence.service.d.ts +1 -1
- package/dist/{server → runtime/server}/services/persistence.service.js +13 -9
- package/dist/runtime/server/services/ports/command-execution.port.d.ts +41 -0
- package/dist/runtime/server/services/ports/command-execution.port.js +15 -0
- package/dist/runtime/server/services/ports/player-directory.port.d.ts +107 -0
- package/dist/runtime/server/services/ports/player-directory.port.js +23 -0
- package/dist/runtime/server/services/ports/player-session-lifecycle.port.d.ts +49 -0
- package/dist/runtime/server/services/ports/player-session-lifecycle.port.js +16 -0
- package/dist/runtime/server/services/ports/principal.port.d.ts +149 -0
- package/dist/runtime/server/services/ports/principal.port.js +32 -0
- package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
- package/dist/{server → runtime/server}/services/rate-limiter.service.js +18 -0
- package/dist/runtime/server/services/remote/remote-command.service.d.ts +63 -0
- package/dist/runtime/server/services/remote/remote-command.service.js +139 -0
- package/dist/runtime/server/services/remote/remote-player.service.d.ts +62 -0
- package/dist/runtime/server/services/remote/remote-player.service.js +191 -0
- package/dist/runtime/server/services/remote/remote-principal.provider.d.ts +55 -0
- package/dist/runtime/server/services/remote/remote-principal.provider.js +130 -0
- package/dist/runtime/server/services/remote/remote-principal.service.d.ts +33 -0
- package/dist/runtime/server/services/remote/remote-principal.service.js +99 -0
- package/dist/runtime/server/services/remote/server-bridge.d.ts +34 -0
- package/dist/runtime/server/services/remote/server-bridge.js +94 -0
- package/dist/runtime/server/services/services.register.d.ts +14 -0
- package/dist/runtime/server/services/services.register.js +98 -0
- package/dist/runtime/server/services/types/linked-id.d.ts +6 -0
- package/dist/runtime/server/services/types/player-session.object.d.ts +11 -0
- package/dist/runtime/server/services/vehicle-modification.service.d.ts +94 -0
- package/dist/runtime/server/services/vehicle-modification.service.js +310 -0
- package/dist/runtime/server/services/vehicle.service.d.ts +138 -0
- package/dist/runtime/server/services/vehicle.service.js +361 -0
- package/dist/runtime/server/setup.d.ts +10 -0
- package/dist/runtime/server/setup.js +33 -0
- package/dist/{server → runtime/server}/system/metadata-server.keys.d.ts +2 -0
- package/dist/{server → runtime/server}/system/metadata-server.keys.js +2 -0
- package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
- package/dist/runtime/server/system/processors/command.processor.js +54 -0
- package/dist/{server → runtime/server}/system/processors/coreEvent.processor.d.ts +1 -1
- package/dist/{server → runtime/server}/system/processors/coreEvent.processor.js +3 -3
- package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
- package/dist/{server → runtime/server}/system/processors/export.processor.js +15 -5
- package/dist/runtime/server/system/processors/fivemEvent.processor.d.ts +10 -0
- package/dist/{server → runtime/server}/system/processors/fivemEvent.processor.js +15 -5
- package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
- package/dist/runtime/server/system/processors/netEvent.processor.js +240 -0
- package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
- package/dist/{server → runtime/server}/system/processors/tick.processor.js +14 -4
- package/dist/runtime/server/system/processors.register.d.ts +2 -0
- package/dist/runtime/server/system/processors.register.js +37 -0
- package/dist/{server → runtime/server}/system/schema-generator.d.ts +1 -1
- package/dist/{server → runtime/server}/system/schema-generator.js +17 -8
- package/dist/{server/templates/admin → runtime/server/templates}/admin.controller-template.d.ts +1 -1
- package/dist/runtime/server/templates/index.d.ts +1 -0
- package/dist/runtime/server/templates/index.js +17 -0
- package/dist/runtime/server/types/core-exports.d.ts +285 -0
- package/dist/runtime/server/types/core-exports.js +2 -0
- package/dist/runtime/server/types/index.d.ts +4 -0
- package/dist/runtime/server/types/index.js +20 -0
- package/dist/runtime/server/types/security.types.js +2 -0
- package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
- package/dist/runtime/server/types/vehicle.types.js +2 -0
- package/package.json +30 -30
- package/dist/client/client-bootstrap.d.ts +0 -1
- package/dist/client/client-bootstrap.js +0 -50
- package/dist/client/client-core.d.ts +0 -1
- package/dist/client/client-core.js +0 -7
- package/dist/client/decorators/controller.d.ts +0 -3
- package/dist/client/decorators/controller.js +0 -14
- package/dist/client/decorators/export.d.ts +0 -7
- package/dist/client/decorators/export.js +0 -15
- package/dist/client/decorators/interval.d.ts +0 -7
- package/dist/client/decorators/interval.js +0 -15
- package/dist/client/decorators/key.d.ts +0 -2
- package/dist/client/decorators/key.js +0 -10
- package/dist/client/decorators/localEvent.d.ts +0 -7
- package/dist/client/decorators/localEvent.js +0 -15
- package/dist/client/decorators/nui.d.ts +0 -1
- package/dist/client/decorators/nui.js +0 -9
- package/dist/client/decorators/onNet.d.ts +0 -1
- package/dist/client/decorators/onNet.js +0 -9
- package/dist/client/decorators/resourceLifecycle.d.ts +0 -11
- package/dist/client/decorators/resourceLifecycle.js +0 -24
- package/dist/client/decorators/tick.d.ts +0 -1
- package/dist/client/decorators/tick.js +0 -9
- package/dist/client/interfaces/appearance.interface.d.ts +0 -19
- package/dist/client/services/appearance.service.d.ts +0 -6
- package/dist/client/services/appearance.service.js +0 -89
- package/dist/server/bootstrap.js +0 -57
- package/dist/server/bus/core-event-bus.d.ts +0 -6
- package/dist/server/controllers/chat.controller.d.ts +0 -10
- package/dist/server/controllers/command.controller.d.ts +0 -7
- package/dist/server/controllers/command.controller.js +0 -47
- package/dist/server/controllers/session.controller.d.ts +0 -9
- package/dist/server/core.d.ts +0 -1
- package/dist/server/core.js +0 -7
- package/dist/server/database/index.d.ts +0 -53
- package/dist/server/database/index.js +0 -70
- package/dist/server/decorators/bind.d.ts +0 -2
- package/dist/server/decorators/bind.js +0 -15
- package/dist/server/decorators/command.d.ts +0 -49
- package/dist/server/decorators/command.js +0 -23
- package/dist/server/decorators/controller.js +0 -36
- package/dist/server/decorators/export.d.ts +0 -39
- package/dist/server/decorators/export.js +0 -47
- package/dist/server/decorators/guard.d.ts +0 -56
- package/dist/server/decorators/onFiveMEvent.d.ts +0 -6
- package/dist/server/decorators/onFiveMEvent.js +0 -14
- package/dist/server/decorators/onFrameworkEvent.d.ts +0 -22
- package/dist/server/decorators/onNet.d.ts +0 -58
- package/dist/server/decorators/onNet.js +0 -57
- package/dist/server/decorators/onTick.d.ts +0 -32
- package/dist/server/decorators/onTick.js +0 -40
- package/dist/server/decorators/public.d.ts +0 -27
- package/dist/server/decorators/requiresState.js +0 -63
- package/dist/server/decorators/throttle.d.ts +0 -48
- package/dist/server/decorators/utils.d.ts +0 -57
- package/dist/server/decorators/utils.js +0 -63
- package/dist/server/entities/index.d.ts +0 -1
- package/dist/server/helpers/resolve-method.js +0 -18
- package/dist/server/loaders/exports.loader.d.ts +0 -0
- package/dist/server/loaders/exports.loader.js +0 -23
- package/dist/server/loaders/playerSession.loader.d.ts +0 -1
- package/dist/server/loaders/playerSession.loader.js +0 -51
- package/dist/server/services/access-control.service.d.ts +0 -56
- package/dist/server/services/access-control.service.js +0 -99
- package/dist/server/services/chat.service.d.ts +0 -7
- package/dist/server/services/command.service.d.ts +0 -15
- package/dist/server/services/command.service.js +0 -77
- package/dist/server/services/default/default-security.handler.d.ts +0 -6
- package/dist/server/services/index.d.ts +0 -10
- package/dist/server/services/index.js +0 -26
- package/dist/server/services/rate-limiter.service.d.ts +0 -5
- package/dist/server/services/registers.d.ts +0 -1
- package/dist/server/services/registers.js +0 -18
- package/dist/server/setup.d.ts +0 -9
- package/dist/server/setup.js +0 -28
- package/dist/server/system/processors/command.processor.d.ts +0 -9
- package/dist/server/system/processors/export.processor.d.ts +0 -7
- package/dist/server/system/processors/fivemEvent.processor.d.ts +0 -7
- package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
- package/dist/server/system/processors/netEvent.processor.js +0 -103
- package/dist/server/system/processors/tick.processor.d.ts +0 -5
- package/dist/server/system/processors.register.d.ts +0 -1
- package/dist/server/system/processors.register.js +0 -23
- package/dist/server/templates/index.d.ts +0 -8
- package/dist/server/templates/persistence/index.d.ts +0 -30
- package/dist/server/templates/persistence/index.js +0 -34
- package/dist/shared/index.d.ts +0 -1
- package/dist/shared/logger/transports/index.d.ts +0 -3
- package/dist/shared/logger/transports/index.js +0 -19
- package/dist/utils/errors.d.ts +0 -14
- package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
- package/dist/{system → kernel/di}/class-constructor.js +0 -0
- package/dist/{server → kernel/di}/container.d.ts +0 -0
- package/dist/{server → kernel/di}/container.js +0 -0
- package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
- package/dist/{system → kernel/di}/decorator-processor.js +0 -0
- package/dist/{system → kernel/di}/metadata.scanner.js +0 -0
- package/dist/{shared → kernel/shared}/logger/logger.config.js +0 -0
- package/dist/{shared → kernel/shared}/logger/logger.service.js +0 -0
- package/dist/{shared → kernel/shared}/logger/logger.types.d.ts +0 -0
- package/dist/{shared → kernel/shared}/logger/logger.types.js +0 -0
- package/dist/{shared → kernel/shared}/logger/transports/transport.interface.js +0 -0
- package/dist/{utils → kernel/utils}/result.js +0 -0
- package/dist/{utils → kernel/utils}/rgb.d.ts +0 -0
- package/dist/{utils → kernel/utils}/rgb.js +0 -0
- package/dist/{utils → kernel/utils}/vector3.d.ts +0 -0
- package/dist/{utils → kernel/utils}/vector3.js +0 -0
- package/dist/{client → runtime/client}/client-container.d.ts +0 -0
- package/dist/{client → runtime/client}/client-container.js +0 -0
- package/dist/{client → runtime/client}/controllers/spawner.controller.js +0 -0
- package/dist/{client → runtime/client}/decorators/gameEvent.js +0 -0
- package/dist/{client → runtime/client}/decorators/index.d.ts +5 -5
- package/dist/{client → runtime/client}/decorators/index.js +5 -5
- package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
- package/dist/{client → runtime/client}/services/blip.service.js +0 -0
- package/dist/{client → runtime/client}/services/marker.service.js +0 -0
- package/dist/{client → runtime/client}/services/notification.service.d.ts +0 -0
- package/dist/{client → runtime/client}/services/notification.service.js +0 -0
- package/dist/{client → runtime/client}/services/progress.service.d.ts +0 -0
- package/dist/{client → runtime/client}/services/progress.service.js +0 -0
- package/dist/{client → runtime/client}/services/streaming.service.d.ts +0 -0
- package/dist/{client → runtime/client}/services/streaming.service.js +0 -0
- package/dist/{client → runtime/client}/services/textui.service.js +0 -0
- package/dist/{client → runtime/client}/system/metadata-client.keys.d.ts +0 -0
- package/dist/{client → runtime/client}/system/metadata-client.keys.js +0 -0
- package/dist/{client → runtime/client}/system/processors/key.processor.js +0 -0
- package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
- package/dist/{client → runtime/client}/system/processors.register.js +6 -6
- /package/dist/{client → runtime/client}/types/game-events.d.ts +0 -0
- /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
- /package/dist/{client → runtime/client}/types/index.js +0 -0
- /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
- /package/dist/{server → runtime/server}/configs/api.config.js +0 -0
- /package/dist/{server → runtime/server}/configs/config.base.d.ts +0 -0
- /package/dist/{server → runtime/server}/configs/config.base.js +0 -0
- /package/dist/{server → runtime/server}/configs/index.d.ts +0 -0
- /package/dist/{server → runtime/server}/configs/index.js +0 -0
- /package/dist/{server/templates/auth → runtime/server/contracts}/auth-provider.contract.js +0 -0
- /package/dist/{server/templates/persistence → runtime/server/contracts}/player-persistence.contract.js +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.d.ts +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/repository/repository.types.js +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.d.ts +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/security/permission.types.js +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/security/principal-provider.contract.js +0 -0
- /package/dist/{server/templates → runtime/server/contracts}/security/security-handler.contract.js +0 -0
- /package/dist/{server → runtime/server}/database/database.contract.js +0 -0
- /package/dist/{server → runtime/server}/database/types.d.ts +0 -0
- /package/dist/{server → runtime/server}/database/types.js +0 -0
- /package/dist/{server → runtime/server}/database.d.ts +0 -0
- /package/dist/{server → runtime/server}/database.js +0 -0
- /package/dist/{server → runtime/server}/services/config.service.d.ts +0 -0
- /package/dist/{server → runtime/server}/services/http/http.service.d.ts +0 -0
- /package/dist/{server → runtime/server}/services/parallel/types.d.ts +0 -0
- /package/dist/{server → runtime/server}/services/parallel/types.js +0 -0
- /package/dist/{server → runtime/server}/services/parallel/worker-pool.js +0 -0
- /package/dist/{server → runtime/server}/services/parallel/worker.js +0 -0
- /package/dist/{client/interfaces/appearance.interface.js → runtime/server/services/types/linked-id.js} +0 -0
- /package/dist/{server/templates/admin/admin.controller-template.js → runtime/server/services/types/player-session.object.js} +0 -0
- /package/dist/{server/types/core-events.js → runtime/server/templates/admin.controller-template.js} +0 -0
- /package/dist/{server → runtime/server}/types/core-events.d.ts +0 -0
- /package/dist/{server/types/security.types.js → runtime/server/types/core-events.js} +0 -0
- /package/dist/{server → runtime/server}/types/security.types.d.ts +0 -0
|
@@ -5,21 +5,46 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
8
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
15
|
exports.PlayerService = void 0;
|
|
10
16
|
const tsyringe_1 = require("tsyringe");
|
|
11
|
-
const
|
|
17
|
+
const adapters_1 = require("../../../../adapters");
|
|
18
|
+
const IEntityServer_1 = require("../../../../adapters/contracts/IEntityServer");
|
|
19
|
+
const INetTransport_1 = require("../../../../adapters/contracts/INetTransport");
|
|
20
|
+
const IPlayerServer_1 = require("../../../../adapters/contracts/IPlayerServer");
|
|
21
|
+
const logger_1 = require("../../../../kernel/shared/logger");
|
|
22
|
+
const entities_1 = require("../../entities");
|
|
12
23
|
/**
|
|
13
24
|
* Service responsible for managing the lifecycle of player sessions.
|
|
14
25
|
* It acts as the central registry for all connected players, mapping FiveM client IDs
|
|
15
26
|
* to Core `Player` entities.
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* This service is used as a singleton in the dependency container.
|
|
30
|
+
* It exposes the operations defined by {@link PlayerDirectoryPort} and {@link PlayerSessionLifecyclePort}.
|
|
16
31
|
*/
|
|
17
32
|
let PlayerService = class PlayerService {
|
|
18
|
-
constructor() {
|
|
33
|
+
constructor(playerInfo, playerServer, entityServer, netTransport) {
|
|
34
|
+
this.playerInfo = playerInfo;
|
|
35
|
+
this.playerServer = playerServer;
|
|
36
|
+
this.entityServer = entityServer;
|
|
37
|
+
this.netTransport = netTransport;
|
|
19
38
|
/**
|
|
20
39
|
* Internal map storing active player sessions indexed by their FiveM client ID (source).
|
|
21
40
|
*/
|
|
22
41
|
this.playersByClient = new Map();
|
|
42
|
+
this.playerAdapters = {
|
|
43
|
+
playerInfo: this.playerInfo,
|
|
44
|
+
playerServer: this.playerServer,
|
|
45
|
+
entityServer: this.entityServer,
|
|
46
|
+
netTransport: this.netTransport,
|
|
47
|
+
};
|
|
23
48
|
}
|
|
24
49
|
/**
|
|
25
50
|
* Initializes a new player session for a connecting client.
|
|
@@ -37,8 +62,12 @@ let PlayerService = class PlayerService {
|
|
|
37
62
|
identifiers,
|
|
38
63
|
meta: {},
|
|
39
64
|
};
|
|
40
|
-
const player = new
|
|
65
|
+
const player = new entities_1.Player(session, this.playerAdapters);
|
|
41
66
|
this.playersByClient.set(clientID, player);
|
|
67
|
+
logger_1.loggers.session.debug('Player session bound', {
|
|
68
|
+
clientID,
|
|
69
|
+
totalPlayers: this.playersByClient.size,
|
|
70
|
+
});
|
|
42
71
|
return player;
|
|
43
72
|
}
|
|
44
73
|
/**
|
|
@@ -64,11 +93,12 @@ let PlayerService = class PlayerService {
|
|
|
64
93
|
*
|
|
65
94
|
* @param clientID - The FiveM server ID of the player disconnecting.
|
|
66
95
|
*/
|
|
67
|
-
|
|
68
|
-
const player = this.playersByClient.get(clientID);
|
|
69
|
-
if (!player)
|
|
70
|
-
return;
|
|
96
|
+
unbind(clientID) {
|
|
71
97
|
this.playersByClient.delete(clientID);
|
|
98
|
+
logger_1.loggers.session.debug('Player session unbound', {
|
|
99
|
+
clientID,
|
|
100
|
+
totalPlayers: this.playersByClient.size,
|
|
101
|
+
});
|
|
72
102
|
}
|
|
73
103
|
/**
|
|
74
104
|
* Retrieves the `Player` entity associated with a specific FiveM client ID.
|
|
@@ -77,8 +107,16 @@ let PlayerService = class PlayerService {
|
|
|
77
107
|
* @returns The `Player` instance if found, or `null` if the session does not exist.
|
|
78
108
|
*/
|
|
79
109
|
getByClient(clientID) {
|
|
80
|
-
|
|
81
|
-
|
|
110
|
+
return this.playersByClient.get(clientID);
|
|
111
|
+
}
|
|
112
|
+
getMany(clientIds) {
|
|
113
|
+
const result = [];
|
|
114
|
+
for (const id of clientIds) {
|
|
115
|
+
const player = this.playersByClient.get(id);
|
|
116
|
+
if (player)
|
|
117
|
+
result.push(player);
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
82
120
|
}
|
|
83
121
|
/**
|
|
84
122
|
* Helper to retrieve the authenticated Account ID for a given client.
|
|
@@ -87,9 +125,8 @@ let PlayerService = class PlayerService {
|
|
|
87
125
|
* @returns The bound Account ID (string/UUID) if the player is logged in, or `null` otherwise.
|
|
88
126
|
*/
|
|
89
127
|
getPlayerId(clientID) {
|
|
90
|
-
var _a;
|
|
91
128
|
const player = this.playersByClient.get(clientID);
|
|
92
|
-
return
|
|
129
|
+
return player === null || player === void 0 ? void 0 : player.accountID;
|
|
93
130
|
}
|
|
94
131
|
/**
|
|
95
132
|
* Stores arbitrary metadata in the player's session.
|
|
@@ -113,9 +150,9 @@ let PlayerService = class PlayerService {
|
|
|
113
150
|
* @param key - The metadata key to retrieve.
|
|
114
151
|
* @returns The value cast to type `T`, or `undefined` if the key or player doesn't exist.
|
|
115
152
|
*/
|
|
116
|
-
getMeta(clientID, key) {
|
|
153
|
+
async getMeta(clientID, key) {
|
|
117
154
|
const player = this.playersByClient.get(clientID);
|
|
118
|
-
return player === null || player === void 0 ? void 0 : player.getMeta(key);
|
|
155
|
+
return await (player === null || player === void 0 ? void 0 : player.getMeta(key));
|
|
119
156
|
}
|
|
120
157
|
/**
|
|
121
158
|
* Returns a list of all currently active `Player` entities.
|
|
@@ -125,8 +162,55 @@ let PlayerService = class PlayerService {
|
|
|
125
162
|
getAll() {
|
|
126
163
|
return Array.from(this.playersByClient.values());
|
|
127
164
|
}
|
|
165
|
+
// ═══════════════════════════════════════════════════════════════
|
|
166
|
+
// Extended Query Methods
|
|
167
|
+
// ═══════════════════════════════════════════════════════════════
|
|
168
|
+
/**
|
|
169
|
+
* Retrieves a Player by their persistent account ID.
|
|
170
|
+
*
|
|
171
|
+
* @param accountId - The unique account identifier to search for.
|
|
172
|
+
* @returns The Player if found, or `undefined` if not online.
|
|
173
|
+
*/
|
|
174
|
+
getByAccountId(accountId) {
|
|
175
|
+
for (const player of this.playersByClient.values()) {
|
|
176
|
+
if (player.accountID === accountId) {
|
|
177
|
+
return player;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return undefined;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Returns the current number of connected players.
|
|
184
|
+
*
|
|
185
|
+
* @returns Player count.
|
|
186
|
+
*/
|
|
187
|
+
getPlayerCount() {
|
|
188
|
+
return this.playersByClient.size;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Checks if a player with the given account ID is currently online.
|
|
192
|
+
*
|
|
193
|
+
* @param accountId - The account identifier to check.
|
|
194
|
+
* @returns `true` if online, `false` otherwise.
|
|
195
|
+
*/
|
|
196
|
+
isOnline(accountId) {
|
|
197
|
+
for (const player of this.playersByClient.values()) {
|
|
198
|
+
if (player.accountID === accountId) {
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
128
204
|
};
|
|
129
205
|
exports.PlayerService = PlayerService;
|
|
130
206
|
exports.PlayerService = PlayerService = __decorate([
|
|
131
|
-
(0, tsyringe_1.injectable)()
|
|
207
|
+
(0, tsyringe_1.injectable)(),
|
|
208
|
+
__param(0, (0, tsyringe_1.inject)(adapters_1.IPlayerInfo)),
|
|
209
|
+
__param(1, (0, tsyringe_1.inject)(IPlayerServer_1.IPlayerServer)),
|
|
210
|
+
__param(2, (0, tsyringe_1.inject)(IEntityServer_1.IEntityServer)),
|
|
211
|
+
__param(3, (0, tsyringe_1.inject)(INetTransport_1.INetTransport)),
|
|
212
|
+
__metadata("design:paramtypes", [adapters_1.IPlayerInfo,
|
|
213
|
+
IPlayerServer_1.IPlayerServer,
|
|
214
|
+
IEntityServer_1.IEntityServer,
|
|
215
|
+
INetTransport_1.INetTransport])
|
|
132
216
|
], PlayerService);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PrincipalProviderContract } from '../../contracts';
|
|
2
|
+
import { Principal } from '../../contracts/security/permission.types';
|
|
3
|
+
import { GuardOptions } from '../../decorators/guard';
|
|
4
|
+
import { Player } from '../../entities';
|
|
5
|
+
import { PrincipalPort } from '../ports/principal.port';
|
|
6
|
+
/**
|
|
7
|
+
* Local principal service for CORE/STANDALONE mode.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* This service wraps the user-provided PrincipalProviderContract and provides
|
|
11
|
+
* convenience methods for permission checking. All operations are performed locally.
|
|
12
|
+
*/
|
|
13
|
+
export declare class LocalPrincipalService extends PrincipalPort {
|
|
14
|
+
private readonly provider;
|
|
15
|
+
constructor(provider: PrincipalProviderContract);
|
|
16
|
+
getPrincipal(player: Player): Promise<Principal | null>;
|
|
17
|
+
getPrincipalByAccountId(accountId: string): Promise<Principal | null>;
|
|
18
|
+
refreshPrincipal(player: Player): Promise<void>;
|
|
19
|
+
hasPermission(player: Player, permission: string): Promise<boolean>;
|
|
20
|
+
hasRank(player: Player, requiredRank: number): Promise<boolean>;
|
|
21
|
+
hasAnyPermission(player: Player, permissions: string[]): Promise<boolean>;
|
|
22
|
+
hasAllPermissions(player: Player, permissions: string[]): Promise<boolean>;
|
|
23
|
+
getPermissions(player: Player): Promise<string[]>;
|
|
24
|
+
getRank(player: Player): Promise<number | null>;
|
|
25
|
+
getPrincipalName(player: Player): Promise<string | null>;
|
|
26
|
+
getPrincipalMeta(player: Player, key: string): Promise<unknown>;
|
|
27
|
+
enforce(player: Player, requirements: GuardOptions): Promise<void>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
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
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.LocalPrincipalService = void 0;
|
|
13
|
+
const tsyringe_1 = require("tsyringe");
|
|
14
|
+
const utils_1 = require("../../../../kernel/utils");
|
|
15
|
+
const contracts_1 = require("../../contracts");
|
|
16
|
+
const principal_port_1 = require("../ports/principal.port");
|
|
17
|
+
/**
|
|
18
|
+
* Local principal service for CORE/STANDALONE mode.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* This service wraps the user-provided PrincipalProviderContract and provides
|
|
22
|
+
* convenience methods for permission checking. All operations are performed locally.
|
|
23
|
+
*/
|
|
24
|
+
let LocalPrincipalService = class LocalPrincipalService extends principal_port_1.PrincipalPort {
|
|
25
|
+
constructor(provider) {
|
|
26
|
+
super();
|
|
27
|
+
this.provider = provider;
|
|
28
|
+
}
|
|
29
|
+
// ═══════════════════════════════════════════════════════════════
|
|
30
|
+
// Principal Queries
|
|
31
|
+
// ═══════════════════════════════════════════════════════════════
|
|
32
|
+
async getPrincipal(player) {
|
|
33
|
+
return await this.provider.getPrincipal(player);
|
|
34
|
+
}
|
|
35
|
+
async getPrincipalByAccountId(accountId) {
|
|
36
|
+
return await this.provider.getPrincipalByLinkedID(accountId);
|
|
37
|
+
}
|
|
38
|
+
async refreshPrincipal(player) {
|
|
39
|
+
await this.provider.refreshPrincipal(player);
|
|
40
|
+
}
|
|
41
|
+
// ═══════════════════════════════════════════════════════════════
|
|
42
|
+
// Quick Authorization Checks
|
|
43
|
+
// ═══════════════════════════════════════════════════════════════
|
|
44
|
+
async hasPermission(player, permission) {
|
|
45
|
+
const principal = await this.provider.getPrincipal(player);
|
|
46
|
+
if (!principal)
|
|
47
|
+
return false;
|
|
48
|
+
// Check for wildcard (super-admin) or specific permission
|
|
49
|
+
return principal.permissions.includes('*') || principal.permissions.includes(permission);
|
|
50
|
+
}
|
|
51
|
+
async hasRank(player, requiredRank) {
|
|
52
|
+
const principal = await this.provider.getPrincipal(player);
|
|
53
|
+
if (!principal || principal.rank === undefined)
|
|
54
|
+
return false;
|
|
55
|
+
return principal.rank >= requiredRank;
|
|
56
|
+
}
|
|
57
|
+
async hasAnyPermission(player, permissions) {
|
|
58
|
+
const principal = await this.provider.getPrincipal(player);
|
|
59
|
+
if (!principal)
|
|
60
|
+
return false;
|
|
61
|
+
// Wildcard grants all permissions
|
|
62
|
+
if (principal.permissions.includes('*'))
|
|
63
|
+
return true;
|
|
64
|
+
return permissions.some((perm) => principal.permissions.includes(perm));
|
|
65
|
+
}
|
|
66
|
+
async hasAllPermissions(player, permissions) {
|
|
67
|
+
const principal = await this.provider.getPrincipal(player);
|
|
68
|
+
if (!principal)
|
|
69
|
+
return false;
|
|
70
|
+
// Wildcard grants all permissions
|
|
71
|
+
if (principal.permissions.includes('*'))
|
|
72
|
+
return true;
|
|
73
|
+
return permissions.every((perm) => principal.permissions.includes(perm));
|
|
74
|
+
}
|
|
75
|
+
// ═══════════════════════════════════════════════════════════════
|
|
76
|
+
// Property Getters
|
|
77
|
+
// ═══════════════════════════════════════════════════════════════
|
|
78
|
+
async getPermissions(player) {
|
|
79
|
+
var _a;
|
|
80
|
+
const principal = await this.provider.getPrincipal(player);
|
|
81
|
+
return (_a = principal === null || principal === void 0 ? void 0 : principal.permissions) !== null && _a !== void 0 ? _a : [];
|
|
82
|
+
}
|
|
83
|
+
async getRank(player) {
|
|
84
|
+
var _a;
|
|
85
|
+
const principal = await this.provider.getPrincipal(player);
|
|
86
|
+
return (_a = principal === null || principal === void 0 ? void 0 : principal.rank) !== null && _a !== void 0 ? _a : null;
|
|
87
|
+
}
|
|
88
|
+
async getPrincipalName(player) {
|
|
89
|
+
var _a;
|
|
90
|
+
const principal = await this.provider.getPrincipal(player);
|
|
91
|
+
return (_a = principal === null || principal === void 0 ? void 0 : principal.name) !== null && _a !== void 0 ? _a : null;
|
|
92
|
+
}
|
|
93
|
+
async getPrincipalMeta(player, key) {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
const principal = await this.provider.getPrincipal(player);
|
|
96
|
+
return (_b = (_a = principal === null || principal === void 0 ? void 0 : principal.meta) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : null;
|
|
97
|
+
}
|
|
98
|
+
// ═══════════════════════════════════════════════════════════════
|
|
99
|
+
// Access Control Enforcement
|
|
100
|
+
// ═══════════════════════════════════════════════════════════════
|
|
101
|
+
async enforce(player, requirements) {
|
|
102
|
+
if (requirements.rank !== undefined) {
|
|
103
|
+
const principal = await this.provider.getPrincipal(player);
|
|
104
|
+
if (!principal) {
|
|
105
|
+
throw new utils_1.AppError('AUTH:UNAUTHORIZED', 'No principal found', 'core');
|
|
106
|
+
}
|
|
107
|
+
if (principal.rank === undefined) {
|
|
108
|
+
throw new utils_1.AppError('GAME:NO_RANK_IN_PRINCIPAL', "You're trying to compare a Principal rank, but there's no defined rank!", 'core');
|
|
109
|
+
}
|
|
110
|
+
if (principal.rank < requirements.rank) {
|
|
111
|
+
throw new utils_1.AppError('AUTH:PERMISSION_DENIED', `Access Denied: Requires minimum rank level ${requirements.rank}`, 'core');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (requirements.permission) {
|
|
115
|
+
const hasPerm = await this.hasPermission(player, requirements.permission);
|
|
116
|
+
if (!hasPerm) {
|
|
117
|
+
throw new utils_1.AppError('AUTH:PERMISSION_DENIED', `Access Denied: Missing required permission '${requirements.permission}'`, 'core');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
exports.LocalPrincipalService = LocalPrincipalService;
|
|
123
|
+
exports.LocalPrincipalService = LocalPrincipalService = __decorate([
|
|
124
|
+
(0, tsyringe_1.injectable)(),
|
|
125
|
+
__metadata("design:paramtypes", [contracts_1.PrincipalProviderContract])
|
|
126
|
+
], LocalPrincipalService);
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { VehicleService } from './vehicle.service'
|
|
2
|
+
import type { VehicleModificationOptions, VehicleMods } from '../../types/vehicle.types'
|
|
3
|
+
/**
|
|
4
|
+
* Service for handling vehicle modifications with validation.
|
|
5
|
+
*
|
|
6
|
+
* This service is separated from VehicleService to maintain single responsibility.
|
|
7
|
+
* All modifications are validated server-side before being applied.
|
|
8
|
+
*
|
|
9
|
+
* Security features:
|
|
10
|
+
* - Ownership validation
|
|
11
|
+
* - Proximity checks
|
|
12
|
+
* - Modification limits
|
|
13
|
+
* - Audit logging
|
|
14
|
+
*/
|
|
15
|
+
export declare class VehicleModificationService {
|
|
16
|
+
private readonly vehicleService
|
|
17
|
+
constructor(vehicleService: VehicleService)
|
|
18
|
+
/**
|
|
19
|
+
* Applies modifications to a vehicle with validation.
|
|
20
|
+
*
|
|
21
|
+
* @param options - Modification options
|
|
22
|
+
* @returns Success status
|
|
23
|
+
*/
|
|
24
|
+
applyModifications(options: VehicleModificationOptions): boolean
|
|
25
|
+
/**
|
|
26
|
+
* Sets vehicle colors with validation.
|
|
27
|
+
*
|
|
28
|
+
* @param networkId - Network ID of the vehicle
|
|
29
|
+
* @param primaryColor - Primary color ID
|
|
30
|
+
* @param secondaryColor - Secondary color ID
|
|
31
|
+
* @param requestedBy - Client ID requesting the change
|
|
32
|
+
* @returns Success status
|
|
33
|
+
*/
|
|
34
|
+
setColors(
|
|
35
|
+
networkId: number,
|
|
36
|
+
primaryColor: number,
|
|
37
|
+
secondaryColor: number,
|
|
38
|
+
requestedBy?: number,
|
|
39
|
+
): boolean
|
|
40
|
+
/**
|
|
41
|
+
* Sets vehicle livery with validation.
|
|
42
|
+
*
|
|
43
|
+
* @param networkId - Network ID of the vehicle
|
|
44
|
+
* @param livery - Livery index
|
|
45
|
+
* @param requestedBy - Client ID requesting the change
|
|
46
|
+
* @returns Success status
|
|
47
|
+
*/
|
|
48
|
+
setLivery(networkId: number, livery: number, requestedBy?: number): boolean
|
|
49
|
+
/**
|
|
50
|
+
* Toggles vehicle turbo with validation.
|
|
51
|
+
*
|
|
52
|
+
* @param networkId - Network ID of the vehicle
|
|
53
|
+
* @param enabled - Whether turbo should be enabled
|
|
54
|
+
* @param requestedBy - Client ID requesting the change
|
|
55
|
+
* @returns Success status
|
|
56
|
+
*/
|
|
57
|
+
setTurbo(networkId: number, enabled: boolean, requestedBy?: number): boolean
|
|
58
|
+
/**
|
|
59
|
+
* Sets vehicle window tint with validation.
|
|
60
|
+
*
|
|
61
|
+
* @param networkId - Network ID of the vehicle
|
|
62
|
+
* @param tint - Tint level (0-6)
|
|
63
|
+
* @param requestedBy - Client ID requesting the change
|
|
64
|
+
* @returns Success status
|
|
65
|
+
*/
|
|
66
|
+
setWindowTint(networkId: number, tint: number, requestedBy?: number): boolean
|
|
67
|
+
/**
|
|
68
|
+
* Sets vehicle neon lights with validation.
|
|
69
|
+
*
|
|
70
|
+
* @param networkId - Network ID of the vehicle
|
|
71
|
+
* @param enabled - Array of [left, right, front, back] enabled states
|
|
72
|
+
* @param color - RGB color array
|
|
73
|
+
* @param requestedBy - Client ID requesting the change
|
|
74
|
+
* @returns Success status
|
|
75
|
+
*/
|
|
76
|
+
setNeon(
|
|
77
|
+
networkId: number,
|
|
78
|
+
enabled: [boolean, boolean, boolean, boolean],
|
|
79
|
+
color?: [number, number, number],
|
|
80
|
+
requestedBy?: number,
|
|
81
|
+
): boolean
|
|
82
|
+
/**
|
|
83
|
+
* Resets all modifications on a vehicle.
|
|
84
|
+
*
|
|
85
|
+
* @param networkId - Network ID of the vehicle
|
|
86
|
+
* @param requestedBy - Client ID requesting the reset
|
|
87
|
+
* @returns Success status
|
|
88
|
+
*/
|
|
89
|
+
resetModifications(networkId: number, requestedBy?: number): boolean
|
|
90
|
+
/**
|
|
91
|
+
* Gets the current modifications of a vehicle.
|
|
92
|
+
*
|
|
93
|
+
* @param networkId - Network ID of the vehicle
|
|
94
|
+
* @returns Vehicle mods or undefined
|
|
95
|
+
*/
|
|
96
|
+
getModifications(networkId: number): VehicleMods | undefined
|
|
97
|
+
/**
|
|
98
|
+
* Validates modification values to prevent exploits.
|
|
99
|
+
*
|
|
100
|
+
* @param mods - Modifications to validate
|
|
101
|
+
* @returns Validated modifications
|
|
102
|
+
*/
|
|
103
|
+
private validateMods
|
|
104
|
+
}
|