@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
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateRuntimeContextOrThrow = void 0;
|
|
4
|
+
exports.setRuntimeContext = setRuntimeContext;
|
|
5
|
+
exports.getRuntimeContext = getRuntimeContext;
|
|
6
|
+
exports.getFrameworkModeScope = getFrameworkModeScope;
|
|
7
|
+
exports.resolveRuntimeOptions = resolveRuntimeOptions;
|
|
8
|
+
exports.validateRuntimeOptions = validateRuntimeOptions;
|
|
9
|
+
const FEATURE_NAMES = [
|
|
10
|
+
'players',
|
|
11
|
+
'netEvents',
|
|
12
|
+
'fiveMEvents',
|
|
13
|
+
'commands',
|
|
14
|
+
'exports',
|
|
15
|
+
'http',
|
|
16
|
+
'chat',
|
|
17
|
+
'database',
|
|
18
|
+
'principal',
|
|
19
|
+
'auth',
|
|
20
|
+
'sessionLifecycle',
|
|
21
|
+
];
|
|
22
|
+
const FEATURE_ALLOWED_SCOPES = {
|
|
23
|
+
players: ['core', 'resource', 'standalone'],
|
|
24
|
+
netEvents: ['core', 'resource', 'standalone'],
|
|
25
|
+
fiveMEvents: ['core', 'resource', 'standalone'],
|
|
26
|
+
commands: ['core', 'resource', 'standalone'],
|
|
27
|
+
exports: ['core', 'resource', 'standalone'],
|
|
28
|
+
http: ['core', 'resource', 'standalone'],
|
|
29
|
+
chat: ['core', 'resource', 'standalone'],
|
|
30
|
+
database: ['core', 'resource', 'standalone'],
|
|
31
|
+
principal: ['core', 'resource', 'standalone'],
|
|
32
|
+
auth: ['core', 'resource', 'standalone'],
|
|
33
|
+
sessionLifecycle: ['core', 'standalone'],
|
|
34
|
+
};
|
|
35
|
+
let runtimeContext = null;
|
|
36
|
+
function setRuntimeContext(ctx) {
|
|
37
|
+
runtimeContext = ctx;
|
|
38
|
+
}
|
|
39
|
+
function getRuntimeContext() {
|
|
40
|
+
if (!runtimeContext) {
|
|
41
|
+
throw new Error('[OpenCore] RuntimeContext is not initialized. Call Server.init({ mode, ... }) before using the framework.');
|
|
42
|
+
}
|
|
43
|
+
return runtimeContext;
|
|
44
|
+
}
|
|
45
|
+
function getFrameworkModeScope(mode) {
|
|
46
|
+
if (mode === 'CORE')
|
|
47
|
+
return 'core';
|
|
48
|
+
if (mode === 'RESOURCE')
|
|
49
|
+
return 'resource';
|
|
50
|
+
return 'standalone';
|
|
51
|
+
}
|
|
52
|
+
function createDefaultFeatures(mode) {
|
|
53
|
+
const scope = getFrameworkModeScope(mode);
|
|
54
|
+
// Provider logic:
|
|
55
|
+
// - CORE/STANDALONE: All features use 'local' (run locally)
|
|
56
|
+
// - RESOURCE: Some features delegate to CORE ('core'), others run locally ('local')
|
|
57
|
+
const playersProvider = mode === 'RESOURCE' ? 'core' : 'local';
|
|
58
|
+
const commandsProvider = mode === 'RESOURCE' ? 'core' : 'local';
|
|
59
|
+
const principalProvider = mode === 'RESOURCE' ? 'core' : 'local';
|
|
60
|
+
const authProvider = mode === 'RESOURCE' ? 'core' : 'local';
|
|
61
|
+
// These always use 'local' regardless of mode
|
|
62
|
+
const netEventsProvider = 'local';
|
|
63
|
+
const fiveMEventsProvider = 'local';
|
|
64
|
+
const exportsProvider = 'local';
|
|
65
|
+
const httpProvider = 'local';
|
|
66
|
+
const chatProvider = 'local';
|
|
67
|
+
const databaseProvider = 'local';
|
|
68
|
+
const sessionLifecycleProvider = 'local';
|
|
69
|
+
const sessionLifecycleEnabled = mode !== 'RESOURCE';
|
|
70
|
+
// Features that should auto-export in CORE mode for RESOURCE access
|
|
71
|
+
const commandsExport = mode === 'CORE';
|
|
72
|
+
const playersExport = mode === 'CORE';
|
|
73
|
+
const principalExport = mode === 'CORE';
|
|
74
|
+
return {
|
|
75
|
+
players: {
|
|
76
|
+
enabled: true,
|
|
77
|
+
provider: playersProvider,
|
|
78
|
+
export: playersExport,
|
|
79
|
+
scope,
|
|
80
|
+
required: false,
|
|
81
|
+
},
|
|
82
|
+
netEvents: {
|
|
83
|
+
enabled: true,
|
|
84
|
+
provider: netEventsProvider,
|
|
85
|
+
export: false,
|
|
86
|
+
scope,
|
|
87
|
+
required: false,
|
|
88
|
+
},
|
|
89
|
+
fiveMEvents: {
|
|
90
|
+
enabled: sessionLifecycleEnabled,
|
|
91
|
+
provider: fiveMEventsProvider,
|
|
92
|
+
export: false,
|
|
93
|
+
scope,
|
|
94
|
+
required: false,
|
|
95
|
+
},
|
|
96
|
+
commands: {
|
|
97
|
+
enabled: false,
|
|
98
|
+
provider: commandsProvider,
|
|
99
|
+
export: commandsExport,
|
|
100
|
+
scope,
|
|
101
|
+
required: false,
|
|
102
|
+
},
|
|
103
|
+
exports: { enabled: false, provider: exportsProvider, export: false, scope, required: false },
|
|
104
|
+
http: { enabled: false, provider: httpProvider, export: false, scope, required: false },
|
|
105
|
+
chat: { enabled: false, provider: chatProvider, export: false, scope, required: false },
|
|
106
|
+
database: { enabled: false, provider: databaseProvider, export: false, scope, required: false },
|
|
107
|
+
principal: {
|
|
108
|
+
enabled: false,
|
|
109
|
+
provider: principalProvider,
|
|
110
|
+
export: principalExport,
|
|
111
|
+
scope,
|
|
112
|
+
required: false,
|
|
113
|
+
},
|
|
114
|
+
auth: { enabled: false, provider: authProvider, export: false, scope, required: false },
|
|
115
|
+
sessionLifecycle: {
|
|
116
|
+
enabled: sessionLifecycleEnabled,
|
|
117
|
+
provider: sessionLifecycleProvider,
|
|
118
|
+
export: false,
|
|
119
|
+
scope,
|
|
120
|
+
required: false,
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function resolveRuntimeOptions(options) {
|
|
125
|
+
var _a;
|
|
126
|
+
const defaults = createDefaultFeatures(options.mode);
|
|
127
|
+
const features = Object.assign({}, defaults);
|
|
128
|
+
if (options.features) {
|
|
129
|
+
for (const name of FEATURE_NAMES) {
|
|
130
|
+
const override = options.features[name];
|
|
131
|
+
if (!override)
|
|
132
|
+
continue;
|
|
133
|
+
features[name] = Object.assign(Object.assign({}, defaults[name]), override);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
mode: options.mode,
|
|
138
|
+
features,
|
|
139
|
+
coreResourceName: (_a = options.coreResourceName) !== null && _a !== void 0 ? _a : 'core',
|
|
140
|
+
resourceGrants: options.resourceGrants,
|
|
141
|
+
devMode: options.devMode,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function assertFeatureKeys(features) {
|
|
145
|
+
const keys = Object.keys(features);
|
|
146
|
+
for (const key of keys) {
|
|
147
|
+
if (!FEATURE_NAMES.includes(key)) {
|
|
148
|
+
throw new Error(`[OpenCore] Unknown feature: '${key}'`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function validateRuntimeOptions(options) {
|
|
153
|
+
var _a;
|
|
154
|
+
const { mode, features } = options;
|
|
155
|
+
assertFeatureKeys(features);
|
|
156
|
+
// If in RESOURCE mode, must have coreResourceName
|
|
157
|
+
if (mode === 'RESOURCE' && !options.coreResourceName) {
|
|
158
|
+
throw new Error('[OpenCore] RESOURCE mode requires coreResourceName to be specified');
|
|
159
|
+
}
|
|
160
|
+
// Determine which features need CORE exports in RESOURCE mode
|
|
161
|
+
const needsCoreExports = mode === 'RESOURCE' &&
|
|
162
|
+
(features.players.provider === 'core' ||
|
|
163
|
+
features.commands.provider === 'core' ||
|
|
164
|
+
features.principal.provider === 'core' ||
|
|
165
|
+
features.auth.provider === 'core');
|
|
166
|
+
// Validate coreResourceName exists if needed
|
|
167
|
+
if (mode === 'RESOURCE') {
|
|
168
|
+
const { coreResourceName } = options;
|
|
169
|
+
if (needsCoreExports) {
|
|
170
|
+
const core = (_a = globalThis.exports) === null || _a === void 0 ? void 0 : _a[coreResourceName];
|
|
171
|
+
if (!core) {
|
|
172
|
+
throw new Error(`[OpenCore] CORE resource '${coreResourceName}' not found. Ensure it is started before RESOURCE mode resources.`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const scope = getFrameworkModeScope(mode);
|
|
177
|
+
for (const name of FEATURE_NAMES) {
|
|
178
|
+
const f = features[name];
|
|
179
|
+
if (!f.enabled) {
|
|
180
|
+
if (f.required) {
|
|
181
|
+
throw new Error(`[OpenCore] Feature '${name}' is required but disabled`);
|
|
182
|
+
}
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const allowedScopes = FEATURE_ALLOWED_SCOPES[name];
|
|
186
|
+
if (!allowedScopes.includes(scope)) {
|
|
187
|
+
throw new Error(`[OpenCore] Feature '${name}' is not allowed in scope '${scope}' (allowed: ${allowedScopes.join(', ')})`);
|
|
188
|
+
}
|
|
189
|
+
if (f.scope !== scope) {
|
|
190
|
+
throw new Error(`[OpenCore] Invalid scope for feature '${name}': expected '${scope}' for mode '${mode}', received '${f.scope}'`);
|
|
191
|
+
}
|
|
192
|
+
if (f.export && !features.exports.enabled) {
|
|
193
|
+
throw new Error(`[OpenCore] Feature '${name}' cannot be exported when 'exports' is disabled`);
|
|
194
|
+
}
|
|
195
|
+
// Validate provider combinations
|
|
196
|
+
if (mode === 'CORE' && f.provider === 'core') {
|
|
197
|
+
throw new Error(`[OpenCore] Feature '${name}' cannot use provider='core' in CORE mode (use 'local' instead)`);
|
|
198
|
+
}
|
|
199
|
+
if (mode === 'RESOURCE' && f.provider === 'core' && f.export) {
|
|
200
|
+
throw new Error(`[OpenCore] Feature '${name}' cannot set export=true when provider='core' in RESOURCE mode`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Feature-specific validations
|
|
204
|
+
if (features.players.enabled && mode === 'RESOURCE' && features.players.provider !== 'core') {
|
|
205
|
+
throw new Error(`[OpenCore] Feature 'players' must use provider 'core' in RESOURCE mode`);
|
|
206
|
+
}
|
|
207
|
+
if (features.principal.enabled && mode === 'RESOURCE' && features.principal.provider !== 'core') {
|
|
208
|
+
throw new Error(`[OpenCore] Feature 'principal' must use provider 'core' in RESOURCE mode`);
|
|
209
|
+
}
|
|
210
|
+
if (features.auth.enabled && mode === 'RESOURCE' && features.auth.provider !== 'core') {
|
|
211
|
+
throw new Error(`[OpenCore] Feature 'auth' must use provider 'core' in RESOURCE mode`);
|
|
212
|
+
}
|
|
213
|
+
if (features.commands.enabled && mode === 'RESOURCE' && features.commands.provider !== 'core') {
|
|
214
|
+
throw new Error(`[OpenCore] Feature 'commands' must use provider 'core' in RESOURCE mode`);
|
|
215
|
+
}
|
|
216
|
+
// Commands export validation
|
|
217
|
+
if (features.commands.export && mode !== 'CORE') {
|
|
218
|
+
throw new Error(`[OpenCore] Feature 'commands' can only be exported in CORE mode (current mode: '${mode}')`);
|
|
219
|
+
}
|
|
220
|
+
// Validate dependencies
|
|
221
|
+
if (features.commands.enabled && !features.players.enabled) {
|
|
222
|
+
throw new Error(`[OpenCore] Feature 'commands' requires 'players' to be enabled`);
|
|
223
|
+
}
|
|
224
|
+
if (features.netEvents.enabled && !features.players.enabled) {
|
|
225
|
+
throw new Error(`[OpenCore] Feature 'netEvents' requires 'players' to be enabled`);
|
|
226
|
+
}
|
|
227
|
+
if (features.chat.enabled && !features.players.enabled) {
|
|
228
|
+
throw new Error(`[OpenCore] Feature 'chat' requires 'players' to be enabled`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* @deprecated Use validateRuntimeOptions instead
|
|
233
|
+
*/
|
|
234
|
+
exports.validateRuntimeContextOrThrow = validateRuntimeOptions;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Server } from '../../..'
|
|
2
|
+
import { PrincipalProviderContract } from '../contracts'
|
|
3
|
+
/**
|
|
4
|
+
* **Core Security Service**
|
|
5
|
+
*
|
|
6
|
+
* This service acts as the central enforcement point for the Access Control system.
|
|
7
|
+
* It uses the configured `PrincipalProvider` to query roles and validates them against requirements.
|
|
8
|
+
*
|
|
9
|
+
* It is primarily used internally by the `@Guard` decorator, but can be injected
|
|
10
|
+
* into services to perform manual checks.
|
|
11
|
+
*/
|
|
12
|
+
export declare class AccessControlService {
|
|
13
|
+
private readonly principalProvider
|
|
14
|
+
constructor(principalProvider: PrincipalProviderContract)
|
|
15
|
+
/**
|
|
16
|
+
* Verifies if a player meets a minimum numeric rank requirement.
|
|
17
|
+
*
|
|
18
|
+
* @param player - The target player.
|
|
19
|
+
* @param minRank - The minimum numeric value required (Inclusive).
|
|
20
|
+
*
|
|
21
|
+
* @returns `true` if `Principal.rank >= minRank`.
|
|
22
|
+
*
|
|
23
|
+
* @throws {AppError} code `UNAUTHORIZED` if the player has no Principal (not logged in).
|
|
24
|
+
* @throws {AppError} code `NO_RANK_IN_PRINCIPAL` if the Principal exists but has no `rank` defined.
|
|
25
|
+
*/
|
|
26
|
+
hasRank(player: Server.Player, minRank: number): Promise<boolean>
|
|
27
|
+
/**
|
|
28
|
+
* Verifies if a player possesses a specific permission string.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* This method supports the **Wildcard ('*')** permission. If the principal has `'*'`
|
|
32
|
+
* in their permissions array, this method always returns `true`.
|
|
33
|
+
*
|
|
34
|
+
* @param player - The target player.
|
|
35
|
+
* @param permission - The specific permission key (e.g., `'admin.ban'`).
|
|
36
|
+
* @returns `true` if the player has the permission or the wildcard.
|
|
37
|
+
*/
|
|
38
|
+
hasPermission(player: Server.Player, permission: string): Promise<boolean>
|
|
39
|
+
/**
|
|
40
|
+
* **Strict Enforcement**
|
|
41
|
+
*
|
|
42
|
+
* Validates a set of requirements against a player. If any requirement fails,
|
|
43
|
+
* it throws an exception, halting the execution flow.
|
|
44
|
+
*
|
|
45
|
+
* Used primarily by the `@Guard` decorator logic.
|
|
46
|
+
*
|
|
47
|
+
* @param player - The server player to validate.
|
|
48
|
+
* @param requirements - An object containing rank and/or permission constraints.
|
|
49
|
+
*
|
|
50
|
+
* @throws {AppError} code `PERMISSION_DENIED` if validation fails.
|
|
51
|
+
*/
|
|
52
|
+
enforce(
|
|
53
|
+
player: Server.Player,
|
|
54
|
+
requirements: {
|
|
55
|
+
minRank?: number
|
|
56
|
+
permission?: string
|
|
57
|
+
},
|
|
58
|
+
): Promise<void>
|
|
59
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
var __decorate =
|
|
3
|
+
(this && this.__decorate) ||
|
|
4
|
+
function (decorators, target, key, desc) {
|
|
5
|
+
var c = arguments.length,
|
|
6
|
+
r =
|
|
7
|
+
c < 3
|
|
8
|
+
? target
|
|
9
|
+
: desc === null
|
|
10
|
+
? (desc = Object.getOwnPropertyDescriptor(target, key))
|
|
11
|
+
: desc,
|
|
12
|
+
d
|
|
13
|
+
if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
|
|
14
|
+
r = Reflect.decorate(decorators, target, key, desc)
|
|
15
|
+
else
|
|
16
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
17
|
+
if ((d = decorators[i]))
|
|
18
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r
|
|
19
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r
|
|
20
|
+
}
|
|
21
|
+
var __metadata =
|
|
22
|
+
(this && this.__metadata) ||
|
|
23
|
+
((k, v) => {
|
|
24
|
+
if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function')
|
|
25
|
+
return Reflect.metadata(k, v)
|
|
26
|
+
})
|
|
27
|
+
Object.defineProperty(exports, '__esModule', { value: true })
|
|
28
|
+
exports.AccessControlService = void 0
|
|
29
|
+
const tsyringe_1 = require('tsyringe')
|
|
30
|
+
const utils_1 = require('../../../kernel/utils')
|
|
31
|
+
const contracts_1 = require('../contracts')
|
|
32
|
+
/**
|
|
33
|
+
* **Core Security Service**
|
|
34
|
+
*
|
|
35
|
+
* This service acts as the central enforcement point for the Access Control system.
|
|
36
|
+
* It uses the configured `PrincipalProvider` to query roles and validates them against requirements.
|
|
37
|
+
*
|
|
38
|
+
* It is primarily used internally by the `@Guard` decorator, but can be injected
|
|
39
|
+
* into services to perform manual checks.
|
|
40
|
+
*/
|
|
41
|
+
let AccessControlService = class AccessControlService {
|
|
42
|
+
constructor(principalProvider) {
|
|
43
|
+
this.principalProvider = principalProvider
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Verifies if a player meets a minimum numeric rank requirement.
|
|
47
|
+
*
|
|
48
|
+
* @param player - The target player.
|
|
49
|
+
* @param minRank - The minimum numeric value required (Inclusive).
|
|
50
|
+
*
|
|
51
|
+
* @returns `true` if `Principal.rank >= minRank`.
|
|
52
|
+
*
|
|
53
|
+
* @throws {AppError} code `UNAUTHORIZED` if the player has no Principal (not logged in).
|
|
54
|
+
* @throws {AppError} code `NO_RANK_IN_PRINCIPAL` if the Principal exists but has no `rank` defined.
|
|
55
|
+
*/
|
|
56
|
+
async hasRank(player, minRank) {
|
|
57
|
+
const principal = await this.principalProvider.getPrincipal(player)
|
|
58
|
+
if (!principal) throw new utils_1.AppError('AUTH:UNAUTHORIZED', 'No principal found', 'core')
|
|
59
|
+
if (principal.rank === undefined)
|
|
60
|
+
throw new utils_1.AppError(
|
|
61
|
+
'GAME:NO_RANK_IN_PRINCIPAL',
|
|
62
|
+
"You're trying to compare a Principal rank, but there's no defined rank! ",
|
|
63
|
+
'core',
|
|
64
|
+
)
|
|
65
|
+
return principal.rank >= minRank
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Verifies if a player possesses a specific permission string.
|
|
69
|
+
*
|
|
70
|
+
* @remarks
|
|
71
|
+
* This method supports the **Wildcard ('*')** permission. If the principal has `'*'`
|
|
72
|
+
* in their permissions array, this method always returns `true`.
|
|
73
|
+
*
|
|
74
|
+
* @param player - The target player.
|
|
75
|
+
* @param permission - The specific permission key (e.g., `'admin.ban'`).
|
|
76
|
+
* @returns `true` if the player has the permission or the wildcard.
|
|
77
|
+
*/
|
|
78
|
+
async hasPermission(player, permission) {
|
|
79
|
+
const principal = await this.principalProvider.getPrincipal(player)
|
|
80
|
+
if (!principal) return false
|
|
81
|
+
if (principal.permissions.includes('*')) return true
|
|
82
|
+
return principal.permissions.includes(permission)
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* **Strict Enforcement**
|
|
86
|
+
*
|
|
87
|
+
* Validates a set of requirements against a player. If any requirement fails,
|
|
88
|
+
* it throws an exception, halting the execution flow.
|
|
89
|
+
*
|
|
90
|
+
* Used primarily by the `@Guard` decorator logic.
|
|
91
|
+
*
|
|
92
|
+
* @param player - The server player to validate.
|
|
93
|
+
* @param requirements - An object containing rank and/or permission constraints.
|
|
94
|
+
*
|
|
95
|
+
* @throws {AppError} code `PERMISSION_DENIED` if validation fails.
|
|
96
|
+
*/
|
|
97
|
+
async enforce(player, requirements) {
|
|
98
|
+
if (requirements.minRank !== undefined) {
|
|
99
|
+
const hasRank = await this.hasRank(player, requirements.minRank)
|
|
100
|
+
if (!hasRank) {
|
|
101
|
+
throw new utils_1.AppError(
|
|
102
|
+
'AUTH:PERMISSION_DENIED',
|
|
103
|
+
`Access Denied: Requires minimum rank level ${requirements.minRank}`,
|
|
104
|
+
'core',
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (requirements.permission) {
|
|
109
|
+
const hasPerm = await this.hasPermission(player, requirements.permission)
|
|
110
|
+
if (!hasPerm) {
|
|
111
|
+
throw new utils_1.AppError(
|
|
112
|
+
'AUTH:PERMISSION_DENIED',
|
|
113
|
+
`Access Denied: Missing required permission '${requirements.permission}'`,
|
|
114
|
+
'core',
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.AccessControlService = AccessControlService
|
|
121
|
+
exports.AccessControlService = AccessControlService = __decorate(
|
|
122
|
+
[
|
|
123
|
+
(0, tsyringe_1.injectable)(),
|
|
124
|
+
__metadata('design:paramtypes', [contracts_1.PrincipalProviderContract]),
|
|
125
|
+
],
|
|
126
|
+
AccessControlService,
|
|
127
|
+
)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { INetTransport } from '../../../adapters/contracts/INetTransport';
|
|
2
|
+
import { IPedAppearanceServer } from '../../../adapters/contracts/IPedAppearanceServer';
|
|
3
|
+
import { IPlayerServer } from '../../../adapters/contracts/IPlayerServer';
|
|
4
|
+
import { AppearanceValidationResult, PlayerAppearance } from '../../../kernel/shared';
|
|
5
|
+
/**
|
|
6
|
+
* Server-side appearance management service.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Handles validating and applying ped appearance data on the server.
|
|
10
|
+
* Provides security validation and server-authoritative appearance control.
|
|
11
|
+
*
|
|
12
|
+
* **Security Model:**
|
|
13
|
+
* - All appearance changes should be validated server-side
|
|
14
|
+
* - Server applies components/props directly (available natives)
|
|
15
|
+
* - Server emits events to client for client-only natives (headBlend, overlays, tattoos)
|
|
16
|
+
* - Client never sends appearance data directly to other clients
|
|
17
|
+
*
|
|
18
|
+
* **Persistence:**
|
|
19
|
+
* The framework does NOT handle persistence internally.
|
|
20
|
+
* After calling `applyAppearance`, you receive the validated data back.
|
|
21
|
+
* You decide when and where to save it (database, file, etc.).
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Apply appearance to a player
|
|
26
|
+
* const result = await appearanceService.applyAppearance(playerSrc, appearanceData)
|
|
27
|
+
* if (result.success) {
|
|
28
|
+
* // Save to your database
|
|
29
|
+
* await myDatabase.saveAppearance(playerId, result.appearance)
|
|
30
|
+
* }
|
|
31
|
+
*
|
|
32
|
+
* // Validate appearance without applying
|
|
33
|
+
* const validation = appearanceService.validateAppearance(appearanceData)
|
|
34
|
+
* if (!validation.valid) {
|
|
35
|
+
* console.log('Errors:', validation.errors)
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare class AppearanceService {
|
|
40
|
+
private readonly pedAdapter;
|
|
41
|
+
private readonly playerServer;
|
|
42
|
+
private readonly netTransport;
|
|
43
|
+
constructor(pedAdapter: IPedAppearanceServer, playerServer: IPlayerServer, netTransport: INetTransport);
|
|
44
|
+
/**
|
|
45
|
+
* Applies validated appearance to a player.
|
|
46
|
+
*
|
|
47
|
+
* @remarks
|
|
48
|
+
* This method:
|
|
49
|
+
* 1. Validates the appearance data
|
|
50
|
+
* 2. Applies server-side natives (components, props)
|
|
51
|
+
* 3. Emits event to client for client-only natives
|
|
52
|
+
* 4. Returns the validated appearance for persistence
|
|
53
|
+
*
|
|
54
|
+
* @param playerSrc - Player source/client ID
|
|
55
|
+
* @param appearance - Appearance data to apply
|
|
56
|
+
* @returns Result with success status and validated appearance
|
|
57
|
+
*/
|
|
58
|
+
applyAppearance(playerSrc: string, appearance: PlayerAppearance): Promise<{
|
|
59
|
+
success: boolean;
|
|
60
|
+
appearance?: PlayerAppearance;
|
|
61
|
+
errors?: string[];
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Applies only components and props (server-side available natives).
|
|
65
|
+
*
|
|
66
|
+
* @remarks
|
|
67
|
+
* Use this for quick clothing changes without full appearance update.
|
|
68
|
+
*
|
|
69
|
+
* @param playerSrc - Player source/client ID
|
|
70
|
+
* @param appearance - Partial appearance with components/props only
|
|
71
|
+
* @returns Success status
|
|
72
|
+
*/
|
|
73
|
+
applyClothing(playerSrc: string, appearance: Pick<PlayerAppearance, 'components' | 'props'>): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Resets a player's appearance to default.
|
|
76
|
+
*
|
|
77
|
+
* @param playerSrc - Player source/client ID
|
|
78
|
+
* @returns Success status
|
|
79
|
+
*/
|
|
80
|
+
resetAppearance(playerSrc: string): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Validates appearance data without applying it.
|
|
83
|
+
*
|
|
84
|
+
* @remarks
|
|
85
|
+
* Use this to validate appearance data before storing or applying.
|
|
86
|
+
* All validation rules are enforced to prevent invalid/malicious data.
|
|
87
|
+
*
|
|
88
|
+
* @param appearance - Appearance data to validate
|
|
89
|
+
* @returns Validation result with errors if any
|
|
90
|
+
*/
|
|
91
|
+
validateAppearance(appearance: Partial<PlayerAppearance>): AppearanceValidationResult;
|
|
92
|
+
/**
|
|
93
|
+
* Applies server-side appearance natives (components and props only).
|
|
94
|
+
*
|
|
95
|
+
* @param ped - Ped entity handle
|
|
96
|
+
* @param appearance - Appearance data
|
|
97
|
+
*/
|
|
98
|
+
private applyServerSideAppearance;
|
|
99
|
+
}
|