@open-core/framework 0.1.0-alpha.1 → 0.2.1-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 +98 -98
- 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
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Database Module
|
|
4
|
-
*
|
|
5
|
-
* Provides a flexible database abstraction layer with pluggable adapters.
|
|
6
|
-
* Uses oxmysql by default for FiveM environments.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import {
|
|
11
|
-
* DatabaseService,
|
|
12
|
-
* initDatabase,
|
|
13
|
-
* query,
|
|
14
|
-
* single,
|
|
15
|
-
* transaction,
|
|
16
|
-
* } from '@open-core/framework/server'
|
|
17
|
-
*
|
|
18
|
-
* // Option 1: Use standalone functions
|
|
19
|
-
* initDatabase()
|
|
20
|
-
* const users = await query<User>('SELECT * FROM users')
|
|
21
|
-
*
|
|
22
|
-
* // Option 2: Use DI
|
|
23
|
-
* @injectable()
|
|
24
|
-
* class UserService {
|
|
25
|
-
* constructor(@inject(DatabaseService) private db: DatabaseService) {}
|
|
26
|
-
*
|
|
27
|
-
* async findUser(id: number) {
|
|
28
|
-
* return this.db.single<User>('SELECT * FROM users WHERE id = ?', [id])
|
|
29
|
-
* }
|
|
30
|
-
* }
|
|
31
|
-
*
|
|
32
|
-
* // Option 3: Use transactions (specific format)
|
|
33
|
-
* const success = await transaction([
|
|
34
|
-
* { query: 'INSERT INTO orders (user_id) VALUES (?)', values: [userId] },
|
|
35
|
-
* { query: 'INSERT INTO order_items (order_id, product_id) VALUES (?, ?)', values: [orderId, productId] },
|
|
36
|
-
* ])
|
|
37
|
-
*
|
|
38
|
-
* // Option 4: Use transactions (shared params format)
|
|
39
|
-
* const success = await transaction(
|
|
40
|
-
* [
|
|
41
|
-
* 'INSERT INTO orders (user_id) VALUES (@userid)',
|
|
42
|
-
* 'UPDATE users SET order_count = order_count + 1 WHERE id = @userid',
|
|
43
|
-
* ],
|
|
44
|
-
* { userid: userId }
|
|
45
|
-
* )
|
|
46
|
-
* ```
|
|
47
|
-
*
|
|
48
|
-
* @see https://coxdocs.dev/oxmysql/Functions/transaction
|
|
49
|
-
*/
|
|
50
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
-
exports.OxMySQLAdapter = exports.transaction = exports.insert = exports.execute = exports.scalar = exports.single = exports.query = exports.initDatabase = exports.getDatabaseService = exports.DatabaseService = exports.DatabaseContract = void 0;
|
|
52
|
-
// Contract
|
|
53
|
-
var database_contract_1 = require("./database.contract");
|
|
54
|
-
Object.defineProperty(exports, "DatabaseContract", { enumerable: true, get: function () { return database_contract_1.DatabaseContract; } });
|
|
55
|
-
// Service
|
|
56
|
-
var database_service_1 = require("./database.service");
|
|
57
|
-
Object.defineProperty(exports, "DatabaseService", { enumerable: true, get: function () { return database_service_1.DatabaseService; } });
|
|
58
|
-
// Standalone functions
|
|
59
|
-
var database_service_2 = require("./database.service");
|
|
60
|
-
Object.defineProperty(exports, "getDatabaseService", { enumerable: true, get: function () { return database_service_2.getDatabaseService; } });
|
|
61
|
-
Object.defineProperty(exports, "initDatabase", { enumerable: true, get: function () { return database_service_2.initDatabase; } });
|
|
62
|
-
Object.defineProperty(exports, "query", { enumerable: true, get: function () { return database_service_2.query; } });
|
|
63
|
-
Object.defineProperty(exports, "single", { enumerable: true, get: function () { return database_service_2.single; } });
|
|
64
|
-
Object.defineProperty(exports, "scalar", { enumerable: true, get: function () { return database_service_2.scalar; } });
|
|
65
|
-
Object.defineProperty(exports, "execute", { enumerable: true, get: function () { return database_service_2.execute; } });
|
|
66
|
-
Object.defineProperty(exports, "insert", { enumerable: true, get: function () { return database_service_2.insert; } });
|
|
67
|
-
Object.defineProperty(exports, "transaction", { enumerable: true, get: function () { return database_service_2.transaction; } });
|
|
68
|
-
// Adapters
|
|
69
|
-
var oxmysql_adapter_1 = require("./adapters/oxmysql.adapter");
|
|
70
|
-
Object.defineProperty(exports, "OxMySQLAdapter", { enumerable: true, get: function () { return oxmysql_adapter_1.OxMySQLAdapter; } });
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Bind = Bind;
|
|
4
|
-
const tsyringe_1 = require("tsyringe");
|
|
5
|
-
function Bind(scope = 'singleton') {
|
|
6
|
-
return function (target) {
|
|
7
|
-
(0, tsyringe_1.injectable)()(target);
|
|
8
|
-
if (scope === 'singleton') {
|
|
9
|
-
(0, tsyringe_1.singleton)()(target);
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
(0, tsyringe_1.scoped)(tsyringe_1.Lifecycle.ResolutionScoped)(target);
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { ClassConstructor } from '../../system/class-constructor';
|
|
2
|
-
import type z from 'zod';
|
|
3
|
-
import type { Player } from '../entities/player';
|
|
4
|
-
export interface CommandConfig {
|
|
5
|
-
/**
|
|
6
|
-
* The command name (e.g. "revive", "deposit"), used in chat "/revive"
|
|
7
|
-
*/
|
|
8
|
-
command: string;
|
|
9
|
-
/**
|
|
10
|
-
* The command description, maybe "/help revive"
|
|
11
|
-
*/
|
|
12
|
-
description?: string;
|
|
13
|
-
/**
|
|
14
|
-
* The command usage, maybe "/revive <player>"
|
|
15
|
-
*/
|
|
16
|
-
usage?: string;
|
|
17
|
-
/**
|
|
18
|
-
* The command schema, used to validate the arguments, validated with zod
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* Server.Command({
|
|
22
|
-
* command: 'revive',
|
|
23
|
-
* schema: z.object({
|
|
24
|
-
* player: z.string(),
|
|
25
|
-
* }),
|
|
26
|
-
* })
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
schema?: z.ZodType;
|
|
30
|
-
}
|
|
31
|
-
export interface CommandMetadata extends CommandConfig {
|
|
32
|
-
methodName: string;
|
|
33
|
-
target: ClassConstructor;
|
|
34
|
-
paramTypes?: any;
|
|
35
|
-
}
|
|
36
|
-
type ServerCommandHandler = (player: Player, ...args: any[]) => any;
|
|
37
|
-
/**
|
|
38
|
-
* Decorator used to mark a controller method as a command.
|
|
39
|
-
* This method will be registered and then executed by the command service.
|
|
40
|
-
* It will depend on the chat you have implemented following the dependency conventions.
|
|
41
|
-
*
|
|
42
|
-
* @param configOrName - The command name (e.g. "revive", "deposit")
|
|
43
|
-
* @validation zod schema
|
|
44
|
-
* @handlerSignature ```ts
|
|
45
|
-
* (player: Server.Player, args: any[]) => any
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
export declare function Command(configOrName: string | CommandConfig): <T extends ServerCommandHandler>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => void;
|
|
49
|
-
export {};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Command = Command;
|
|
4
|
-
const metadata_server_keys_1 = require("../system/metadata-server.keys");
|
|
5
|
-
/**
|
|
6
|
-
* Decorator used to mark a controller method as a command.
|
|
7
|
-
* This method will be registered and then executed by the command service.
|
|
8
|
-
* It will depend on the chat you have implemented following the dependency conventions.
|
|
9
|
-
*
|
|
10
|
-
* @param configOrName - The command name (e.g. "revive", "deposit")
|
|
11
|
-
* @validation zod schema
|
|
12
|
-
* @handlerSignature ```ts
|
|
13
|
-
* (player: Server.Player, args: any[]) => any
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
function Command(configOrName) {
|
|
17
|
-
return (target, propertyKey, descriptor) => {
|
|
18
|
-
const config = typeof configOrName === 'string' ? { command: configOrName } : configOrName;
|
|
19
|
-
const paramTypes = Reflect.getMetadata('design:paramtypes', target, propertyKey);
|
|
20
|
-
const metadata = Object.assign(Object.assign({}, config), { methodName: propertyKey, target: target.constructor, paramTypes });
|
|
21
|
-
Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.COMMAND, metadata, target, propertyKey);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.serverControllerRegistry = void 0;
|
|
4
|
-
exports.Controller = Controller;
|
|
5
|
-
const tsyringe_1 = require("tsyringe");
|
|
6
|
-
const metadata_server_keys_1 = require("../system/metadata-server.keys");
|
|
7
|
-
exports.serverControllerRegistry = [];
|
|
8
|
-
/**
|
|
9
|
-
* Class decorator used to mark a class as a Server Controller.
|
|
10
|
-
*
|
|
11
|
-
* This decorator performs the following actions:
|
|
12
|
-
* 1. Marks the class as `@injectable` (via tsyringe) for dependency injection.
|
|
13
|
-
* 2. Defines metadata identifying the class as a 'server' type controller.
|
|
14
|
-
* 3. Automatically adds the class constructor to the `serverControllerRegistry`.
|
|
15
|
-
*
|
|
16
|
-
* @returns The decorator function to apply to the class.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```ts
|
|
20
|
-
* import { Controller } from '@core/server/decorators'
|
|
21
|
-
*
|
|
22
|
-
* @Server.Controller()
|
|
23
|
-
* export class PlayerController {
|
|
24
|
-
* constructor(private playerService: PlayerService) {
|
|
25
|
-
* // Dependency injection works automatically here
|
|
26
|
-
* }
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
function Controller() {
|
|
31
|
-
return function (target) {
|
|
32
|
-
(0, tsyringe_1.injectable)()(target);
|
|
33
|
-
Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.CONTROLLER, { type: 'server' }, target);
|
|
34
|
-
exports.serverControllerRegistry.push(target);
|
|
35
|
-
};
|
|
36
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Export
|
|
3
|
-
* -----------------------------------------
|
|
4
|
-
* Declares a method as an externally accessible export
|
|
5
|
-
* within the FiveM environment.
|
|
6
|
-
*
|
|
7
|
-
* Methods decorated with `@Export()` are automatically
|
|
8
|
-
* registered by the framework and exposed as native
|
|
9
|
-
* FXServer exports, allowing other resources to call them
|
|
10
|
-
* using:
|
|
11
|
-
*
|
|
12
|
-
* exports.resourceName.exportName(...)
|
|
13
|
-
*
|
|
14
|
-
* This decorator is typically used inside controller
|
|
15
|
-
* classes, where the framework’s module loader inspects
|
|
16
|
-
* metadata to register commands, events and exports
|
|
17
|
-
* consistently.
|
|
18
|
-
*
|
|
19
|
-
* @param name Optional name to expose. If omitted,
|
|
20
|
-
* the method name is used.
|
|
21
|
-
*
|
|
22
|
-
* ```ts
|
|
23
|
-
* @Server.Controller()
|
|
24
|
-
* export class AccountController {
|
|
25
|
-
* @Server.Export('getAccountById')
|
|
26
|
-
* getAccount(id: string) {
|
|
27
|
-
* return this.accountService.find(id)
|
|
28
|
-
* }
|
|
29
|
-
* }
|
|
30
|
-
*
|
|
31
|
-
* // From another resource:
|
|
32
|
-
* // const result = exports['core-resource'].getAccountById('1234')
|
|
33
|
-
*```
|
|
34
|
-
* Internally, this decorator stores metadata used by
|
|
35
|
-
* the server bootstrap to automatically register the
|
|
36
|
-
* export through FXServer's `global.exports` API.
|
|
37
|
-
*
|
|
38
|
-
*/
|
|
39
|
-
export declare function Export(name?: string): (target: any, propertyKey: string) => void;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Export = Export;
|
|
4
|
-
const metadata_server_keys_1 = require("../system/metadata-server.keys");
|
|
5
|
-
/**
|
|
6
|
-
* Export
|
|
7
|
-
* -----------------------------------------
|
|
8
|
-
* Declares a method as an externally accessible export
|
|
9
|
-
* within the FiveM environment.
|
|
10
|
-
*
|
|
11
|
-
* Methods decorated with `@Export()` are automatically
|
|
12
|
-
* registered by the framework and exposed as native
|
|
13
|
-
* FXServer exports, allowing other resources to call them
|
|
14
|
-
* using:
|
|
15
|
-
*
|
|
16
|
-
* exports.resourceName.exportName(...)
|
|
17
|
-
*
|
|
18
|
-
* This decorator is typically used inside controller
|
|
19
|
-
* classes, where the framework’s module loader inspects
|
|
20
|
-
* metadata to register commands, events and exports
|
|
21
|
-
* consistently.
|
|
22
|
-
*
|
|
23
|
-
* @param name Optional name to expose. If omitted,
|
|
24
|
-
* the method name is used.
|
|
25
|
-
*
|
|
26
|
-
* ```ts
|
|
27
|
-
* @Server.Controller()
|
|
28
|
-
* export class AccountController {
|
|
29
|
-
* @Server.Export('getAccountById')
|
|
30
|
-
* getAccount(id: string) {
|
|
31
|
-
* return this.accountService.find(id)
|
|
32
|
-
* }
|
|
33
|
-
* }
|
|
34
|
-
*
|
|
35
|
-
* // From another resource:
|
|
36
|
-
* // const result = exports['core-resource'].getAccountById('1234')
|
|
37
|
-
*```
|
|
38
|
-
* Internally, this decorator stores metadata used by
|
|
39
|
-
* the server bootstrap to automatically register the
|
|
40
|
-
* export through FXServer's `global.exports` API.
|
|
41
|
-
*
|
|
42
|
-
*/
|
|
43
|
-
function Export(name) {
|
|
44
|
-
return (target, propertyKey) => {
|
|
45
|
-
Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.EXPORT, { exportName: name || propertyKey }, target, propertyKey);
|
|
46
|
-
};
|
|
47
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
export interface GuardOptions {
|
|
2
|
-
/**
|
|
3
|
-
* Minimum rank required to execute the method.
|
|
4
|
-
* Permissions and Role/Ranks are defined by your Principal Controller
|
|
5
|
-
*/
|
|
6
|
-
rank?: number;
|
|
7
|
-
/**
|
|
8
|
-
* Permission required to execute the method.
|
|
9
|
-
* Permissions and Role/Ranks are defined by your Principal Controller
|
|
10
|
-
*/
|
|
11
|
-
permission?: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Guard
|
|
15
|
-
* ------------------------------------------------------------
|
|
16
|
-
* Declarative access-control decorator for controller methods.
|
|
17
|
-
*
|
|
18
|
-
* `@Guard()` protects a method by enforcing rank and/or
|
|
19
|
-
* permission requirements before executing it.
|
|
20
|
-
*
|
|
21
|
-
* Requirements are evaluated through the AccessControlService,
|
|
22
|
-
* which determines whether the player (first argument of the
|
|
23
|
-
* method) is authorized to perform the action.
|
|
24
|
-
*
|
|
25
|
-
* Usage of this decorator allows you to express authorization
|
|
26
|
-
* rules directly at the controller level, promoting a clean
|
|
27
|
-
* and explicit security model.
|
|
28
|
-
*
|
|
29
|
-
* @param options GuardOptions
|
|
30
|
-
* - rank: minimum rank required to execute the method.
|
|
31
|
-
* - permission: specific permission required.
|
|
32
|
-
*
|
|
33
|
-
* Notes:
|
|
34
|
-
* - The decorated method must receive a `Server.Player`
|
|
35
|
-
* instance as its first argument.
|
|
36
|
-
* - When compiling improperly (e.g., benchmarks, stripped
|
|
37
|
-
* decorators), the PropertyDescriptor may be missing.
|
|
38
|
-
* In that case, only metadata is recorded and execution
|
|
39
|
-
* fallback is disabled. This should *never* occur in a
|
|
40
|
-
* production environment.
|
|
41
|
-
*
|
|
42
|
-
* ```ts
|
|
43
|
-
* export class FactionController {
|
|
44
|
-
* @Server.Guard({ permission: 'factions.manage' })
|
|
45
|
-
* async createFaction(player: Player, dto: CreateFactionDTO) {
|
|
46
|
-
* return this.service.create(dto)
|
|
47
|
-
* }
|
|
48
|
-
*
|
|
49
|
-
* @Server.Guard({ rank: 3 })
|
|
50
|
-
* async promoteMember(player: Player, memberID: string) {
|
|
51
|
-
* return this.service.promote(player, memberID)
|
|
52
|
-
* }
|
|
53
|
-
* }
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
export declare function Guard(options: GuardOptions): (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => PropertyDescriptor | undefined;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OnFiveMEvent = OnFiveMEvent;
|
|
4
|
-
const metadata_server_keys_1 = require("../system/metadata-server.keys");
|
|
5
|
-
/**
|
|
6
|
-
* Listen to FiveM events server-side, check the list below
|
|
7
|
-
*
|
|
8
|
-
* https://docs.fivem.net/docs/scripting-reference/events/server-events/
|
|
9
|
-
*/
|
|
10
|
-
function OnFiveMEvent(event) {
|
|
11
|
-
return (target, propertyKey) => {
|
|
12
|
-
Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.FIVEM_EVENT, { event }, target, propertyKey);
|
|
13
|
-
};
|
|
14
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { CoreEventMap } from '../types/core-events';
|
|
2
|
-
/**
|
|
3
|
-
* Method decorator used to register a method as a listener for an internal OpenCore framework event.
|
|
4
|
-
*
|
|
5
|
-
* When the specified framework event is emitted, this method will be automatically triggered
|
|
6
|
-
* with the arguments provided by the event payload.
|
|
7
|
-
*
|
|
8
|
-
* @param event - The name of the core event to listen for (typed strictly to `CoreEventMap`).
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* ```ts
|
|
12
|
-
* @Server.Controller()
|
|
13
|
-
* export class SystemController {
|
|
14
|
-
*
|
|
15
|
-
* @OnFrameworkEvent('server:ready')
|
|
16
|
-
* public onServerStart() {
|
|
17
|
-
* console.log('OpenCore Framework is ready!')
|
|
18
|
-
* }
|
|
19
|
-
* }
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare function OnFrameworkEvent<K extends keyof CoreEventMap>(event: K): (target: any, propertyKey: string) => void;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { z } from 'zod';
|
|
2
|
-
import type { Player } from '../entities/player';
|
|
3
|
-
export interface NetEventOptions {
|
|
4
|
-
eventName: string;
|
|
5
|
-
schema?: z.ZodType;
|
|
6
|
-
paramTypes?: any;
|
|
7
|
-
}
|
|
8
|
-
type ServerNetHandler<TArgs extends any[] = any[]> = (player: Player, ...args: TArgs) => any;
|
|
9
|
-
/**
|
|
10
|
-
* Registers a server-side network event handler.
|
|
11
|
-
*
|
|
12
|
-
* The decorated method is invoked when the client triggers
|
|
13
|
-
* `emitNet(eventName, ...)`.
|
|
14
|
-
*
|
|
15
|
-
* ## Player Injection
|
|
16
|
-
* The first argument of the handler **must be `Player`** and is automatically
|
|
17
|
-
* replaced with a `Server.Player` instance representing the client that
|
|
18
|
-
* fired the event. You do NOT need to read `source` manually.
|
|
19
|
-
*
|
|
20
|
-
* ## Auto-Validation
|
|
21
|
-
* Arguments after `Player` are automatically validated based on their TypeScript types:
|
|
22
|
-
* - `string` → `z.string()`
|
|
23
|
-
* - `number` → `z.number()`
|
|
24
|
-
* - `boolean` → `z.boolean()`
|
|
25
|
-
* - `any[]` → `z.array(z.any())` (array content not validated)
|
|
26
|
-
*
|
|
27
|
-
* ## Explicit Schema (Advanced)
|
|
28
|
-
* For stricter validation (ranges, formats, nested objects), provide a Zod schema:
|
|
29
|
-
*
|
|
30
|
-
* @example Auto-validation (simple)
|
|
31
|
-
* ```ts
|
|
32
|
-
* @OnNet("auth:login")
|
|
33
|
-
* handleLogin(player: Player, username: string, password: string) {
|
|
34
|
-
* // username and password are validated as strings automatically
|
|
35
|
-
* }
|
|
36
|
-
* ```
|
|
37
|
-
*
|
|
38
|
-
* @example Explicit schema (strict validation)
|
|
39
|
-
* ```ts
|
|
40
|
-
* const transferSchema = z.object({
|
|
41
|
-
* targetId: z.number().positive(),
|
|
42
|
-
* amount: z.number().min(1).max(1000000),
|
|
43
|
-
* })
|
|
44
|
-
*
|
|
45
|
-
* @OnNet("bank:transfer", { schema: transferSchema })
|
|
46
|
-
* handleTransfer(player: Player, data: z.infer<typeof transferSchema>) {
|
|
47
|
-
* // data.amount is guaranteed to be between 1 and 1,000,000
|
|
48
|
-
* }
|
|
49
|
-
* ```
|
|
50
|
-
*
|
|
51
|
-
* @param eventName - The network event name to listen for.
|
|
52
|
-
* @param options - Optional configuration object.
|
|
53
|
-
* @param options.schema - Zod schema for strict payload validation.
|
|
54
|
-
*/
|
|
55
|
-
export declare function OnNet<TArgs extends any[]>(eventName: string, options?: {
|
|
56
|
-
schema?: z.ZodType;
|
|
57
|
-
}): <H extends ServerNetHandler<TArgs>>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<H>) => void;
|
|
58
|
-
export {};
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OnNet = OnNet;
|
|
4
|
-
const metadata_server_keys_1 = require("../system/metadata-server.keys");
|
|
5
|
-
/**
|
|
6
|
-
* Registers a server-side network event handler.
|
|
7
|
-
*
|
|
8
|
-
* The decorated method is invoked when the client triggers
|
|
9
|
-
* `emitNet(eventName, ...)`.
|
|
10
|
-
*
|
|
11
|
-
* ## Player Injection
|
|
12
|
-
* The first argument of the handler **must be `Player`** and is automatically
|
|
13
|
-
* replaced with a `Server.Player` instance representing the client that
|
|
14
|
-
* fired the event. You do NOT need to read `source` manually.
|
|
15
|
-
*
|
|
16
|
-
* ## Auto-Validation
|
|
17
|
-
* Arguments after `Player` are automatically validated based on their TypeScript types:
|
|
18
|
-
* - `string` → `z.string()`
|
|
19
|
-
* - `number` → `z.number()`
|
|
20
|
-
* - `boolean` → `z.boolean()`
|
|
21
|
-
* - `any[]` → `z.array(z.any())` (array content not validated)
|
|
22
|
-
*
|
|
23
|
-
* ## Explicit Schema (Advanced)
|
|
24
|
-
* For stricter validation (ranges, formats, nested objects), provide a Zod schema:
|
|
25
|
-
*
|
|
26
|
-
* @example Auto-validation (simple)
|
|
27
|
-
* ```ts
|
|
28
|
-
* @OnNet("auth:login")
|
|
29
|
-
* handleLogin(player: Player, username: string, password: string) {
|
|
30
|
-
* // username and password are validated as strings automatically
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* @example Explicit schema (strict validation)
|
|
35
|
-
* ```ts
|
|
36
|
-
* const transferSchema = z.object({
|
|
37
|
-
* targetId: z.number().positive(),
|
|
38
|
-
* amount: z.number().min(1).max(1000000),
|
|
39
|
-
* })
|
|
40
|
-
*
|
|
41
|
-
* @OnNet("bank:transfer", { schema: transferSchema })
|
|
42
|
-
* handleTransfer(player: Player, data: z.infer<typeof transferSchema>) {
|
|
43
|
-
* // data.amount is guaranteed to be between 1 and 1,000,000
|
|
44
|
-
* }
|
|
45
|
-
* ```
|
|
46
|
-
*
|
|
47
|
-
* @param eventName - The network event name to listen for.
|
|
48
|
-
* @param options - Optional configuration object.
|
|
49
|
-
* @param options.schema - Zod schema for strict payload validation.
|
|
50
|
-
*/
|
|
51
|
-
function OnNet(eventName, options) {
|
|
52
|
-
return (target, propertyKey, descriptor) => {
|
|
53
|
-
const paramTypes = Reflect.getMetadata('design:paramtypes', target, propertyKey);
|
|
54
|
-
const metadata = { eventName, schema: options === null || options === void 0 ? void 0 : options.schema, paramTypes };
|
|
55
|
-
Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.NET_EVENT, metadata, target, propertyKey);
|
|
56
|
-
};
|
|
57
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OnTick
|
|
3
|
-
* ------------------------------------------------------------
|
|
4
|
-
* Marks a method to be executed on every server tick.
|
|
5
|
-
*
|
|
6
|
-
* Methods decorated with `@OnTick()` are automatically
|
|
7
|
-
* registered by the framework's scheduler and invoked on each
|
|
8
|
-
* FXServer tick (~ every 0–10 ms depending on workload).
|
|
9
|
-
*
|
|
10
|
-
* This decorator should be used for lightweight recurring
|
|
11
|
-
* logic: status updates, background checks, cleanup tasks,
|
|
12
|
-
* or time-based processes relevant to gameplay.
|
|
13
|
-
*
|
|
14
|
-
* Heavy or blocking operations should be avoided inside tick
|
|
15
|
-
* handlers, as they directly impact global server performance.
|
|
16
|
-
*
|
|
17
|
-
* ```ts
|
|
18
|
-
* export class SyncController {
|
|
19
|
-
* @OnTick()
|
|
20
|
-
* updatePlayers() {
|
|
21
|
-
* // Runs every tick
|
|
22
|
-
* this.service.syncPositions()
|
|
23
|
-
* }
|
|
24
|
-
* }
|
|
25
|
-
*
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* Internally, the decorator only stores metadata. The
|
|
29
|
-
* server bootstrap scans for this metadata and binds the
|
|
30
|
-
* method to FiveM's tick cycle.
|
|
31
|
-
*/
|
|
32
|
-
export declare function OnTick(): (target: any, propertyKey: string) => void;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OnTick = OnTick;
|
|
4
|
-
const metadata_server_keys_1 = require("../system/metadata-server.keys");
|
|
5
|
-
/**
|
|
6
|
-
* OnTick
|
|
7
|
-
* ------------------------------------------------------------
|
|
8
|
-
* Marks a method to be executed on every server tick.
|
|
9
|
-
*
|
|
10
|
-
* Methods decorated with `@OnTick()` are automatically
|
|
11
|
-
* registered by the framework's scheduler and invoked on each
|
|
12
|
-
* FXServer tick (~ every 0–10 ms depending on workload).
|
|
13
|
-
*
|
|
14
|
-
* This decorator should be used for lightweight recurring
|
|
15
|
-
* logic: status updates, background checks, cleanup tasks,
|
|
16
|
-
* or time-based processes relevant to gameplay.
|
|
17
|
-
*
|
|
18
|
-
* Heavy or blocking operations should be avoided inside tick
|
|
19
|
-
* handlers, as they directly impact global server performance.
|
|
20
|
-
*
|
|
21
|
-
* ```ts
|
|
22
|
-
* export class SyncController {
|
|
23
|
-
* @OnTick()
|
|
24
|
-
* updatePlayers() {
|
|
25
|
-
* // Runs every tick
|
|
26
|
-
* this.service.syncPositions()
|
|
27
|
-
* }
|
|
28
|
-
* }
|
|
29
|
-
*
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* Internally, the decorator only stores metadata. The
|
|
33
|
-
* server bootstrap scans for this metadata and binds the
|
|
34
|
-
* method to FiveM's tick cycle.
|
|
35
|
-
*/
|
|
36
|
-
function OnTick() {
|
|
37
|
-
return (target, propertyKey) => {
|
|
38
|
-
Reflect.defineMetadata(metadata_server_keys_1.METADATA_KEYS.TICK, {}, target, propertyKey);
|
|
39
|
-
};
|
|
40
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marks a server-side NetEvent handler as publicly accessible.
|
|
3
|
-
*
|
|
4
|
-
* This decorator disables authentication requirements for the
|
|
5
|
-
* decorated method. It should only be applied to endpoints used for:
|
|
6
|
-
* - Login
|
|
7
|
-
* - Registration
|
|
8
|
-
* - Public information retrieval
|
|
9
|
-
*
|
|
10
|
-
* ## Security Warning
|
|
11
|
-
* This decorator must be used with caution. Public endpoints must NOT
|
|
12
|
-
* modify sensitive game state unless necessary.
|
|
13
|
-
*
|
|
14
|
-
* ## Example
|
|
15
|
-
* ```ts
|
|
16
|
-
* class AuthServerController {
|
|
17
|
-
* @Public()
|
|
18
|
-
* @OnNet("auth:login")
|
|
19
|
-
* async login(player: Server.Player, credentials: AuthCredentials) {
|
|
20
|
-
* // no authentication required for this event
|
|
21
|
-
* }
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @returns Method decorator that marks a handler as unauthenticated.
|
|
26
|
-
*/
|
|
27
|
-
export declare function Public(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RequiresState = RequiresState;
|
|
4
|
-
const utils_1 = require("../../utils");
|
|
5
|
-
/**
|
|
6
|
-
* Enforces gameplay state requirements before executing a method.
|
|
7
|
-
*
|
|
8
|
-
* The decorator intercepts the method call and verifies whether
|
|
9
|
-
* the player satisfies required state flags (e.g. "dead", "cuffed",
|
|
10
|
-
* "on_duty_police").
|
|
11
|
-
*
|
|
12
|
-
* ## Whitelist (`has`)
|
|
13
|
-
* The player MUST have *all* required states. Missing any state blocks execution.
|
|
14
|
-
*
|
|
15
|
-
* ## Blacklist (`missing`)
|
|
16
|
-
* The player MUST NOT have any of the forbidden states.
|
|
17
|
-
*
|
|
18
|
-
* ## Error Handling
|
|
19
|
-
* - Throws a normal Error if the method is called without a valid Player.
|
|
20
|
-
* - Throws an `AppError(GAME_STATE_ERROR)` if validation fails.
|
|
21
|
-
*
|
|
22
|
-
* ## Example
|
|
23
|
-
* ```ts
|
|
24
|
-
* @RequiresState({ missing: ["dead", "cuffed"] })
|
|
25
|
-
* openInventory(player: Server.Player) { ... }
|
|
26
|
-
*
|
|
27
|
-
* @RequiresState({
|
|
28
|
-
* has: ["police_duty"],
|
|
29
|
-
* missing: ["dead"],
|
|
30
|
-
* errorMessage: "You must be on duty to access the armory."
|
|
31
|
-
* })
|
|
32
|
-
* openArmory(player: Server.Player) { ... }
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* @param req - State validation configuration.
|
|
36
|
-
*/
|
|
37
|
-
function RequiresState(req) {
|
|
38
|
-
return function (target, propertyKey, descriptor) {
|
|
39
|
-
const originalMethod = descriptor.value;
|
|
40
|
-
descriptor.value = async function (...args) {
|
|
41
|
-
const player = args[0];
|
|
42
|
-
if (!player) {
|
|
43
|
-
throw new Error(`@RequiresState used on ${propertyKey} without Player context`);
|
|
44
|
-
}
|
|
45
|
-
if (req.has) {
|
|
46
|
-
for (const state of req.has) {
|
|
47
|
-
if (!player.hasState(state)) {
|
|
48
|
-
throw new utils_1.AppError('GAME_STATE_ERROR', req.errorMessage || `You must be [${state}] to do this.`, 'client');
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (req.missing) {
|
|
53
|
-
for (const state of req.missing) {
|
|
54
|
-
if (player.hasState(state)) {
|
|
55
|
-
throw new utils_1.AppError('GAME_STATE_ERROR', req.errorMessage || `You can't do this while you're [${state}].`, 'client');
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return originalMethod.apply(this, args);
|
|
60
|
-
};
|
|
61
|
-
return descriptor;
|
|
62
|
-
};
|
|
63
|
-
}
|