@open-core/framework 1.0.2-beta.1 → 1.0.5-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/LICENSE +373 -373
- package/README.md +196 -268
- package/dist/adapters/cfx/cfx-capabilities.d.ts +16 -0
- package/dist/adapters/cfx/cfx-capabilities.js +70 -0
- package/dist/adapters/cfx/cfx-platform.d.ts +2 -0
- package/dist/adapters/cfx/cfx-platform.js +85 -0
- package/dist/adapters/cfx/index.d.ts +3 -0
- package/dist/adapters/cfx/index.js +3 -0
- package/dist/adapters/cfx/runtime-profile.d.ts +3 -0
- package/dist/adapters/cfx/runtime-profile.js +37 -0
- package/dist/adapters/contracts/IEngineEvents.d.ts +20 -0
- package/dist/adapters/contracts/IEngineEvents.js +2 -0
- package/dist/adapters/contracts/IExports.d.ts +4 -0
- package/dist/adapters/contracts/IExports.js +2 -0
- package/dist/adapters/contracts/IHasher.d.ts +15 -0
- package/dist/adapters/contracts/IHasher.js +8 -0
- package/dist/adapters/contracts/IPlatformCapabilities.d.ts +79 -0
- package/dist/adapters/contracts/IPlatformCapabilities.js +27 -0
- package/dist/adapters/contracts/IPlayerInfo.d.ts +5 -0
- package/dist/adapters/contracts/IPlayerInfo.js +2 -0
- package/dist/adapters/contracts/IResourceInfo.d.ts +4 -0
- package/dist/adapters/contracts/IResourceInfo.js +2 -0
- package/dist/adapters/contracts/ITick.d.ts +10 -0
- package/dist/adapters/contracts/ITick.js +5 -0
- package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +206 -0
- package/dist/adapters/contracts/client/IPedAppearanceClient.js +12 -0
- package/dist/adapters/contracts/index.d.ts +2 -0
- package/dist/adapters/contracts/index.js +3 -0
- package/dist/adapters/contracts/server/IEntityServer.d.ts +188 -0
- package/dist/adapters/contracts/server/IEntityServer.js +35 -0
- package/dist/adapters/contracts/server/IPedAppearanceServer.d.ts +45 -0
- package/dist/adapters/contracts/server/IPedAppearanceServer.js +12 -0
- package/dist/adapters/contracts/server/IPedServer.d.ts +29 -0
- package/dist/adapters/contracts/server/IPedServer.js +8 -0
- package/dist/adapters/contracts/server/IPlayerServer.d.ts +117 -0
- package/dist/adapters/contracts/server/IPlayerServer.js +35 -0
- package/dist/adapters/contracts/server/IVehicleServer.d.ts +55 -0
- package/dist/adapters/contracts/server/IVehicleServer.js +9 -0
- package/dist/adapters/contracts/transport/context.d.ts +5 -0
- package/dist/adapters/contracts/transport/events.api.d.ts +36 -0
- package/dist/adapters/contracts/transport/events.api.js +5 -0
- package/dist/adapters/contracts/transport/messaging.transport.d.ts +8 -0
- package/dist/adapters/contracts/transport/messaging.transport.js +2 -0
- package/dist/adapters/contracts/transport/rpc.api.d.ts +66 -0
- package/dist/adapters/contracts/transport/rpc.api.js +20 -0
- package/dist/adapters/contracts/types/identifier.d.ts +67 -0
- package/dist/adapters/contracts/types/identifier.js +58 -0
- package/dist/adapters/contracts/types/index.d.ts +1 -0
- package/dist/adapters/contracts/types/index.js +1 -0
- package/dist/adapters/fivem/fivem-capabilities.d.ts +18 -0
- package/dist/adapters/fivem/fivem-capabilities.js +61 -0
- package/dist/adapters/fivem/fivem-engine-events.d.ts +5 -0
- package/dist/adapters/fivem/fivem-engine-events.js +24 -0
- package/dist/adapters/fivem/fivem-entity-server.d.ts +26 -0
- package/dist/adapters/fivem/fivem-entity-server.js +87 -0
- package/dist/adapters/fivem/fivem-exports.d.ts +5 -0
- package/dist/adapters/fivem/fivem-exports.js +9 -0
- package/dist/adapters/fivem/fivem-hasher.d.ts +7 -0
- package/dist/adapters/fivem/fivem-hasher.js +20 -0
- package/dist/adapters/fivem/fivem-net-transport.d.ts +1 -0
- package/dist/adapters/fivem/fivem-net-transport.js +0 -0
- package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +34 -0
- package/dist/adapters/fivem/fivem-ped-appearance-client.js +79 -0
- package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +14 -0
- package/dist/adapters/fivem/fivem-ped-appearance-server.js +22 -0
- package/dist/adapters/fivem/fivem-ped-server.d.ts +9 -0
- package/dist/adapters/fivem/fivem-ped-server.js +30 -0
- package/dist/adapters/fivem/fivem-platform.d.ts +5 -0
- package/dist/adapters/fivem/fivem-platform.js +74 -0
- package/dist/adapters/fivem/fivem-player-server.d.ts +24 -0
- package/dist/adapters/fivem/fivem-player-server.js +83 -0
- package/dist/adapters/fivem/fivem-playerinfo.d.ts +6 -0
- package/dist/adapters/fivem/fivem-playerinfo.js +10 -0
- package/dist/adapters/fivem/fivem-resourceinfo.d.ts +5 -0
- package/dist/adapters/fivem/fivem-resourceinfo.js +24 -0
- package/dist/adapters/fivem/fivem-tick.d.ts +7 -0
- package/dist/adapters/fivem/fivem-tick.js +19 -0
- package/dist/adapters/fivem/fivem-vehicle-server.d.ts +15 -0
- package/dist/adapters/fivem/fivem-vehicle-server.js +44 -0
- package/dist/adapters/fivem/index.d.ts +14 -0
- package/dist/adapters/fivem/index.js +16 -0
- package/dist/adapters/fivem/transport/adapter.d.ts +8 -0
- package/dist/adapters/fivem/transport/adapter.js +8 -0
- package/dist/adapters/fivem/transport/fivem.events.d.ts +8 -0
- package/dist/adapters/fivem/transport/fivem.events.js +36 -0
- package/dist/adapters/fivem/transport/fivem.rpc.d.ts +28 -0
- package/dist/adapters/fivem/transport/fivem.rpc.js +183 -0
- package/dist/adapters/index.d.ts +21 -0
- package/dist/adapters/index.js +32 -0
- package/dist/adapters/node/index.d.ts +16 -0
- package/dist/adapters/node/index.js +18 -0
- package/dist/adapters/node/node-capabilities.d.ts +19 -0
- package/dist/adapters/node/node-capabilities.js +48 -0
- package/dist/adapters/node/node-engine-events.d.ts +20 -0
- package/dist/adapters/node/node-engine-events.js +40 -0
- package/dist/adapters/node/node-entity-server.d.ts +37 -0
- package/dist/adapters/node/node-entity-server.js +118 -0
- package/dist/adapters/node/node-exports.d.ts +26 -0
- package/dist/adapters/node/node-exports.js +58 -0
- package/dist/adapters/node/node-hasher.d.ts +12 -0
- package/dist/adapters/node/node-hasher.js +36 -0
- package/dist/adapters/node/node-ped-appearance-client.d.ts +34 -0
- package/dist/adapters/node/node-ped-appearance-client.js +55 -0
- package/dist/adapters/node/node-ped-appearance-server.d.ts +14 -0
- package/dist/adapters/node/node-ped-appearance-server.js +14 -0
- package/dist/adapters/node/node-ped-server.d.ts +13 -0
- package/dist/adapters/node/node-ped-server.js +45 -0
- package/dist/adapters/node/node-platform.d.ts +5 -0
- package/dist/adapters/node/node-platform.js +76 -0
- package/dist/adapters/node/node-player-server.d.ts +44 -0
- package/dist/adapters/node/node-player-server.js +105 -0
- package/dist/adapters/node/node-playerinfo.d.ts +6 -0
- package/dist/adapters/node/node-playerinfo.js +20 -0
- package/dist/adapters/node/node-resourceinfo.d.ts +13 -0
- package/dist/adapters/node/node-resourceinfo.js +27 -0
- package/dist/adapters/node/node-tick.d.ts +10 -0
- package/dist/adapters/node/node-tick.js +41 -0
- package/dist/adapters/node/node-vehicle-server.d.ts +21 -0
- package/dist/adapters/node/node-vehicle-server.js +84 -0
- package/dist/adapters/node/transport/adapter.d.ts +10 -0
- package/dist/adapters/node/transport/adapter.js +14 -0
- package/dist/adapters/node/transport/node.events.d.ts +14 -0
- package/dist/adapters/node/transport/node.events.js +38 -0
- package/dist/adapters/node/transport/node.rpc.d.ts +18 -0
- package/dist/adapters/node/transport/node.rpc.js +71 -0
- package/dist/adapters/platform/index.d.ts +1 -0
- package/dist/adapters/platform/index.js +1 -0
- package/dist/adapters/platform/platform-registry.d.ts +101 -0
- package/dist/adapters/platform/platform-registry.js +113 -0
- package/dist/adapters/register-capabilities.d.ts +61 -0
- package/dist/adapters/register-capabilities.js +78 -0
- package/dist/adapters/register-client-capabilities.d.ts +8 -0
- package/dist/adapters/register-client-capabilities.js +58 -0
- package/dist/index.d.ts +3 -6
- package/dist/index.js +4 -46
- package/dist/kernel/di/class-constructor.js +0 -0
- package/dist/kernel/di/container.d.ts +5 -0
- package/dist/kernel/di/container.js +6 -0
- package/dist/kernel/di/decorator-processor.js +0 -0
- package/dist/kernel/di/index.d.ts +4 -0
- package/dist/kernel/di/index.js +4 -0
- package/dist/kernel/di/metadata.scanner.d.ts +7 -0
- package/dist/kernel/di/metadata.scanner.js +61 -0
- package/dist/kernel/error/app.error.d.ts +9 -0
- package/dist/kernel/error/app.error.js +15 -0
- package/dist/kernel/error/common.error-codes.d.ts +1 -0
- package/dist/kernel/error/common.error-codes.js +0 -0
- package/dist/kernel/error/framework.error-codes.d.ts +12 -0
- package/dist/kernel/error/framework.error-codes.js +0 -0
- package/dist/kernel/error/index.d.ts +4 -0
- package/dist/kernel/error/index.js +2 -0
- package/dist/kernel/error/security.error.d.ts +6 -0
- package/dist/kernel/error/security.error.js +9 -0
- package/dist/kernel/error/security.types.js +0 -0
- package/dist/kernel/index.d.ts +6 -0
- package/dist/kernel/index.js +7 -0
- package/dist/kernel/logger/core-logger.d.ts +31 -0
- package/dist/kernel/logger/core-logger.js +66 -0
- package/dist/kernel/logger/index.d.ts +14 -0
- package/dist/kernel/logger/index.js +12 -0
- package/dist/kernel/logger/logger.config.d.ts +47 -0
- package/dist/kernel/logger/logger.config.js +32 -0
- package/dist/kernel/logger/logger.env.d.ts +35 -0
- package/dist/kernel/logger/logger.env.js +59 -0
- package/dist/kernel/logger/logger.service.d.ts +175 -0
- package/dist/kernel/logger/logger.service.js +301 -0
- package/dist/kernel/logger/logger.types.js +70 -0
- package/dist/kernel/logger/transports/buffered.transport.d.ts +88 -0
- package/dist/kernel/logger/transports/buffered.transport.js +154 -0
- package/dist/kernel/logger/transports/console.transport.d.ts +37 -0
- package/dist/kernel/logger/transports/console.transport.js +121 -0
- package/dist/kernel/logger/transports/dev-transport.factory.d.ts +75 -0
- package/dist/kernel/logger/transports/dev-transport.factory.js +101 -0
- package/dist/kernel/logger/transports/http.transport.d.ts +67 -0
- package/dist/kernel/logger/transports/http.transport.js +168 -0
- package/dist/kernel/logger/transports/index.d.ts +7 -0
- package/dist/kernel/logger/transports/index.js +7 -0
- package/dist/kernel/logger/transports/simple-console.transport.d.ts +38 -0
- package/dist/kernel/logger/transports/simple-console.transport.js +79 -0
- package/dist/kernel/logger/transports/transport.interface.d.ts +40 -0
- package/dist/kernel/logger/transports/transport.interface.js +0 -0
- package/dist/kernel/logger/transports/websocket.transport.d.ts +69 -0
- package/dist/kernel/logger/transports/websocket.transport.js +164 -0
- package/dist/kernel/schema/index.d.ts +32 -0
- package/dist/kernel/schema/index.js +4 -0
- package/dist/kernel/shared/index.d.ts +1 -0
- package/dist/kernel/shared/index.js +1 -0
- package/dist/kernel/shared/player-appearance.types.d.ts +276 -0
- package/dist/kernel/shared/player-appearance.types.js +74 -0
- package/dist/kernel/utils/index.d.ts +3 -0
- package/dist/kernel/utils/index.js +3 -0
- package/dist/kernel/utils/result.d.ts +12 -0
- package/dist/kernel/utils/result.js +6 -0
- package/dist/kernel/utils/rgb.d.ts +17 -0
- package/dist/kernel/utils/rgb.js +61 -0
- package/dist/kernel/utils/vector3.d.ts +14 -0
- package/dist/kernel/utils/vector3.js +24 -0
- package/dist/runtime/client/.opencore/autoload.client.controllers.d.ts +1 -0
- package/dist/runtime/client/.opencore/autoload.client.controllers.js +0 -0
- package/dist/runtime/client/api.d.ts +8 -0
- package/dist/runtime/client/api.js +8 -0
- package/dist/runtime/client/bus/library-event.bus.d.ts +5 -0
- package/dist/runtime/client/bus/library-event.bus.js +28 -0
- package/dist/runtime/client/client-api-runtime.d.ts +7 -0
- package/dist/runtime/client/client-api-runtime.js +34 -0
- package/dist/runtime/client/client-bootstrap.d.ts +7 -0
- package/dist/runtime/client/client-bootstrap.js +160 -0
- package/dist/runtime/client/client-container.js +3 -0
- package/dist/runtime/client/client-core.d.ts +19 -0
- package/dist/runtime/client/client-core.js +23 -0
- package/dist/runtime/client/client-runtime.d.ts +63 -0
- package/dist/runtime/client/client-runtime.js +21 -0
- package/dist/runtime/client/controllers/appearance.controller.d.ts +8 -0
- package/dist/runtime/client/controllers/appearance.controller.js +48 -0
- package/dist/runtime/client/controllers/player-sync.controller.d.ts +11 -0
- package/dist/runtime/client/controllers/player-sync.controller.js +51 -0
- package/dist/runtime/client/controllers/spawner.controller.d.ts +12 -0
- package/dist/runtime/client/controllers/spawner.controller.js +49 -0
- package/dist/runtime/client/decorators/controller.d.ts +20 -0
- package/dist/runtime/client/decorators/controller.js +62 -0
- package/dist/runtime/client/decorators/export.d.ts +21 -0
- package/dist/runtime/client/decorators/export.js +26 -0
- package/dist/runtime/client/decorators/gameEvent.d.ts +47 -0
- package/dist/runtime/client/decorators/gameEvent.js +50 -0
- package/dist/runtime/client/decorators/index.d.ts +13 -0
- package/dist/runtime/client/decorators/index.js +13 -0
- package/dist/runtime/client/decorators/interval.d.ts +23 -0
- package/dist/runtime/client/decorators/interval.js +28 -0
- package/dist/runtime/client/decorators/key.d.ts +23 -0
- package/dist/runtime/client/decorators/key.js +28 -0
- package/dist/runtime/client/decorators/localEvent.d.ts +21 -0
- package/dist/runtime/client/decorators/localEvent.js +26 -0
- package/dist/runtime/client/decorators/onLibraryEvent.d.ts +17 -0
- package/dist/runtime/client/decorators/onLibraryEvent.js +22 -0
- package/dist/runtime/client/decorators/onNet.d.ts +21 -0
- package/dist/runtime/client/decorators/onNet.js +26 -0
- package/dist/runtime/client/decorators/onRPC.d.ts +41 -0
- package/dist/runtime/client/decorators/onRPC.js +40 -0
- package/dist/runtime/client/decorators/onTick.d.ts +21 -0
- package/dist/runtime/client/decorators/onTick.js +26 -0
- package/dist/runtime/client/decorators/onView.d.ts +21 -0
- package/dist/runtime/client/decorators/onView.js +26 -0
- package/dist/runtime/client/decorators/resourceLifecycle.d.ts +40 -0
- package/dist/runtime/client/decorators/resourceLifecycle.js +49 -0
- package/dist/runtime/client/index.d.ts +4 -0
- package/dist/runtime/client/index.js +2 -0
- package/dist/runtime/client/library/create-client-library.d.ts +13 -0
- package/dist/runtime/client/library/create-client-library.js +45 -0
- package/dist/runtime/client/library/index.d.ts +4 -0
- package/dist/runtime/client/library/index.js +2 -0
- package/dist/runtime/client/library/plugin/client-plugin-api.d.ts +5 -0
- package/dist/runtime/client/library/plugin/client-plugin-api.js +0 -0
- package/dist/runtime/client/library/plugin/index.d.ts +4 -0
- package/dist/runtime/client/library/plugin/index.js +4 -0
- package/dist/runtime/client/library/plugin/install-client-plugins.d.ts +3 -0
- package/dist/runtime/client/library/plugin/install-client-plugins.js +35 -0
- package/dist/runtime/client/library/plugin/plugin-context.d.ts +10 -0
- package/dist/runtime/client/library/plugin/plugin-context.js +0 -0
- package/dist/runtime/client/library/plugin/plugin-registry.d.ts +6 -0
- package/dist/runtime/client/library/plugin/plugin-registry.js +12 -0
- package/dist/runtime/client/library/plugin/plugin.interface.d.ts +11 -0
- package/dist/runtime/client/library/plugin/plugin.interface.js +0 -0
- package/dist/runtime/client/player/player.d.ts +262 -0
- package/dist/runtime/client/player/player.js +474 -0
- package/dist/runtime/client/player/player.loader.js +18 -0
- package/dist/runtime/client/services/appearance.service.d.ts +132 -0
- package/dist/runtime/client/services/appearance.service.js +330 -0
- package/dist/runtime/client/services/blip.service.d.ts +112 -0
- package/dist/runtime/client/services/blip.service.js +209 -0
- package/dist/runtime/client/services/camera-effects.registry.d.ts +94 -0
- package/dist/runtime/client/services/camera-effects.registry.js +145 -0
- package/dist/runtime/client/services/camera.d.ts +129 -0
- package/dist/runtime/client/services/camera.js +158 -0
- package/dist/runtime/client/services/cinematic-builder.d.ts +107 -0
- package/dist/runtime/client/services/cinematic-builder.js +467 -0
- package/dist/runtime/client/services/cinematic.d.ts +284 -0
- package/dist/runtime/client/services/cinematic.js +783 -0
- package/dist/runtime/client/services/index.d.ts +14 -0
- package/dist/runtime/client/services/index.js +14 -0
- package/dist/runtime/client/services/marker.service.d.ts +94 -0
- package/dist/runtime/client/services/marker.service.js +148 -0
- package/dist/runtime/client/services/notification.service.js +108 -0
- package/dist/runtime/client/services/ped.service.d.ts +182 -0
- package/dist/runtime/client/services/ped.service.js +298 -0
- package/dist/runtime/client/services/progress.service.js +199 -0
- package/dist/runtime/client/services/spawn.service.d.ts +73 -0
- package/dist/runtime/client/services/spawn.service.js +255 -0
- package/dist/runtime/client/services/streaming.service.js +331 -0
- package/dist/runtime/client/services/textui.service.d.ts +82 -0
- package/dist/runtime/client/services/textui.service.js +160 -0
- package/dist/runtime/client/services/vehicle-client.service.d.ts +180 -0
- package/dist/runtime/client/services/vehicle-client.service.js +483 -0
- package/dist/runtime/client/services/vehicle.service.d.ts +168 -0
- package/dist/runtime/client/services/vehicle.service.js +293 -0
- package/dist/runtime/client/system/metadata-client.keys.d.ts +15 -0
- package/dist/runtime/client/system/metadata-client.keys.js +15 -0
- package/dist/runtime/client/system/processors/export.processor.d.ts +7 -0
- package/dist/runtime/client/system/processors/export.processor.js +34 -0
- package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +10 -0
- package/dist/runtime/client/system/processors/gameEvent.processor.js +53 -0
- package/dist/runtime/client/system/processors/interval.processor.d.ts +7 -0
- package/dist/runtime/client/system/processors/interval.processor.js +38 -0
- package/dist/runtime/client/system/processors/key.processor.d.ts +8 -0
- package/dist/runtime/client/system/processors/key.processor.js +22 -0
- package/dist/runtime/client/system/processors/libraryEvent.processor.d.ts +6 -0
- package/dist/runtime/client/system/processors/libraryEvent.processor.js +36 -0
- package/dist/runtime/client/system/processors/localEvent.processor.d.ts +7 -0
- package/dist/runtime/client/system/processors/localEvent.processor.js +33 -0
- package/dist/runtime/client/system/processors/netEvent.processor.d.ts +7 -0
- package/dist/runtime/client/system/processors/netEvent.processor.js +33 -0
- package/dist/runtime/client/system/processors/onRpc.processor.d.ts +9 -0
- package/dist/runtime/client/system/processors/onRpc.processor.js +62 -0
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +9 -0
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +62 -0
- package/dist/runtime/client/system/processors/tick.processor.d.ts +5 -0
- package/dist/runtime/client/system/processors/tick.processor.js +32 -0
- package/dist/runtime/client/system/processors/view.processor.d.ts +7 -0
- package/dist/runtime/client/system/processors/view.processor.js +36 -0
- package/dist/runtime/client/system/processors.register.js +28 -0
- package/dist/runtime/client/types/game-events.d.ts +128 -0
- package/dist/runtime/client/types/game-events.js +72 -0
- package/dist/runtime/client/types/index.js +1 -0
- package/dist/runtime/client/ui-bridge.js +196 -0
- package/dist/runtime/core/entity.d.ts +168 -0
- package/dist/runtime/core/entity.js +232 -0
- package/dist/runtime/core/index.d.ts +5 -0
- package/dist/runtime/core/index.js +5 -0
- package/dist/runtime/core/library/create-library-base.d.ts +15 -0
- package/dist/runtime/core/library/create-library-base.js +27 -0
- package/dist/runtime/core/library/index.d.ts +5 -0
- package/dist/runtime/core/library/index.js +4 -0
- package/dist/runtime/core/library/library-bus.d.ts +9 -0
- package/dist/runtime/core/library/library-bus.js +46 -0
- package/dist/runtime/core/library/library-config.d.ts +10 -0
- package/dist/runtime/core/library/library-config.js +12 -0
- package/dist/runtime/core/library/library-event-id.d.ts +8 -0
- package/dist/runtime/core/library/library-event-id.js +9 -0
- package/dist/runtime/core/library/types.d.ts +146 -0
- package/dist/runtime/core/library/types.js +0 -0
- package/dist/runtime/core/nativehandle.d.ts +3 -0
- package/dist/runtime/core/nativehandle.js +0 -0
- package/dist/runtime/core/spatial.d.ts +7 -0
- package/dist/runtime/core/spatial.js +0 -0
- package/dist/runtime/core/world.d.ts +13 -0
- package/dist/runtime/core/world.js +57 -0
- package/dist/runtime/server/.opencore/autoload.server.controllers.d.ts +1 -0
- package/dist/runtime/server/.opencore/autoload.server.controllers.js +0 -0
- package/dist/runtime/server/api.d.ts +15 -0
- package/dist/runtime/server/api.js +21 -0
- package/dist/runtime/server/apis/appearance.api.d.ts +41 -0
- package/dist/runtime/server/apis/appearance.api.js +66 -0
- package/dist/runtime/server/apis/chat.api.d.ts +69 -0
- package/dist/runtime/server/apis/chat.api.js +129 -0
- package/dist/runtime/server/apis/index.d.ts +6 -0
- package/dist/runtime/server/apis/index.js +6 -0
- package/dist/runtime/server/apis/npcs.api.d.ts +213 -0
- package/dist/runtime/server/apis/npcs.api.js +465 -0
- package/dist/runtime/server/apis/parallel-compute.api.d.ts +118 -0
- package/dist/runtime/server/apis/parallel-compute.api.js +423 -0
- package/dist/runtime/server/apis/vehicle-modification.api.d.ts +94 -0
- package/dist/runtime/server/apis/vehicle-modification.api.js +308 -0
- package/dist/runtime/server/apis/vehicles.api.d.ts +140 -0
- package/dist/runtime/server/apis/vehicles.api.js +386 -0
- package/dist/runtime/server/bootstrap.d.ts +21 -0
- package/dist/runtime/server/bootstrap.js +310 -0
- package/dist/runtime/server/bus/internal-event.bus.d.ts +6 -0
- package/dist/runtime/server/bus/internal-event.bus.js +30 -0
- package/dist/runtime/server/bus/library-event.bus.d.ts +5 -0
- package/dist/runtime/server/bus/library-event.bus.js +27 -0
- package/dist/runtime/server/concepts/channel.d.ts +29 -0
- package/dist/runtime/server/concepts/channel.js +70 -0
- package/dist/runtime/server/contracts/index.d.ts +6 -0
- package/dist/runtime/server/contracts/index.js +8 -0
- package/dist/runtime/server/contracts/player-persistence.contract.d.ts +84 -0
- package/dist/runtime/server/contracts/player-persistence.contract.js +46 -0
- package/dist/runtime/server/contracts/security/command-error-observer.contract.d.ts +73 -0
- package/dist/runtime/server/contracts/security/command-error-observer.contract.js +5 -0
- 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 +2 -0
- package/dist/runtime/server/contracts/security/principal-provider.contract.d.ts +43 -0
- package/dist/runtime/server/contracts/security/principal-provider.contract.js +15 -0
- package/dist/runtime/server/contracts/security/security-handler.contract.d.ts +5 -0
- package/dist/runtime/server/contracts/security/security-handler.contract.js +2 -0
- package/dist/runtime/server/controllers/channel.controller.d.ts +115 -0
- package/dist/runtime/server/controllers/channel.controller.js +373 -0
- package/dist/runtime/server/controllers/chat.controller.d.ts +11 -0
- package/dist/runtime/server/controllers/chat.controller.js +67 -0
- package/dist/runtime/server/controllers/command-export.controller.d.ts +83 -0
- package/dist/runtime/server/controllers/command-export.controller.js +331 -0
- package/dist/runtime/server/controllers/player-export.controller.d.ts +30 -0
- package/dist/runtime/server/controllers/player-export.controller.js +172 -0
- package/dist/runtime/server/controllers/principal-export.controller.d.ts +79 -0
- package/dist/runtime/server/controllers/principal-export.controller.js +292 -0
- package/dist/runtime/server/controllers/ready.controller.d.ts +4 -0
- package/dist/runtime/server/controllers/ready.controller.js +27 -0
- package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +52 -0
- package/dist/runtime/server/controllers/remote-command-execution.controller.js +172 -0
- package/dist/runtime/server/controllers/session.controller.d.ts +11 -0
- package/dist/runtime/server/controllers/session.controller.js +83 -0
- package/dist/runtime/server/controllers/vehicle.controller.d.ts +20 -0
- package/dist/runtime/server/controllers/vehicle.controller.js +68 -0
- package/dist/runtime/server/core.d.ts +7 -0
- package/dist/runtime/server/core.js +37 -0
- package/dist/runtime/server/decorators/binaryCall.d.ts +15 -0
- package/dist/runtime/server/decorators/binaryCall.js +23 -0
- package/dist/runtime/server/decorators/binaryEvent.d.ts +21 -0
- package/dist/runtime/server/decorators/binaryEvent.js +22 -0
- package/dist/runtime/server/decorators/binaryService.d.ts +27 -0
- package/dist/runtime/server/decorators/binaryService.js +71 -0
- package/dist/runtime/server/decorators/bind.d.ts +21 -0
- package/dist/runtime/server/decorators/bind.js +28 -0
- package/dist/runtime/server/decorators/command.d.ts +87 -0
- package/dist/runtime/server/decorators/command.js +36 -0
- package/dist/runtime/server/decorators/controller.d.ts +26 -0
- package/dist/runtime/server/decorators/controller.js +56 -0
- package/dist/runtime/server/decorators/export.d.ts +24 -0
- package/dist/runtime/server/decorators/export.js +29 -0
- package/dist/runtime/server/decorators/guard.d.ts +51 -0
- package/dist/runtime/server/decorators/guard.js +80 -0
- package/dist/runtime/server/decorators/index.d.ts +18 -0
- package/dist/runtime/server/decorators/index.js +18 -0
- package/dist/runtime/server/decorators/onFrameworkEvent.d.ts +24 -0
- package/dist/runtime/server/decorators/onFrameworkEvent.js +28 -0
- package/dist/runtime/server/decorators/onLibraryEvent.d.ts +17 -0
- package/dist/runtime/server/decorators/onLibraryEvent.js +22 -0
- package/dist/runtime/server/decorators/onNet.d.ts +65 -0
- package/dist/runtime/server/decorators/onNet.js +12 -0
- package/dist/runtime/server/decorators/onRPC.d.ts +78 -0
- package/dist/runtime/server/decorators/onRPC.js +59 -0
- package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +25 -0
- package/dist/runtime/server/decorators/onRuntimeEvent.js +30 -0
- package/dist/runtime/server/decorators/onTick.d.ts +21 -0
- package/dist/runtime/server/decorators/onTick.js +26 -0
- package/dist/runtime/server/decorators/public.d.ts +26 -0
- package/dist/runtime/server/decorators/public.js +32 -0
- package/dist/runtime/server/decorators/requiresState.d.ts +63 -0
- package/dist/runtime/server/decorators/requiresState.js +70 -0
- package/dist/runtime/server/decorators/throttle.d.ts +56 -0
- package/dist/runtime/server/decorators/throttle.js +73 -0
- package/dist/runtime/server/decorators/utils.d.ts +54 -0
- package/dist/runtime/server/decorators/utils.js +54 -0
- package/dist/runtime/server/default/default-command-error-observer.d.ts +14 -0
- package/dist/runtime/server/default/default-command-error-observer.js +40 -0
- package/dist/runtime/server/default/default-net-event-security-observer.d.ts +15 -0
- package/dist/runtime/server/default/default-net-event-security-observer.js +25 -0
- package/dist/runtime/server/default/default-principal.provider.d.ts +13 -0
- package/dist/runtime/server/default/default-principal.provider.js +35 -0
- package/dist/runtime/server/default/default-security.handler.d.ts +19 -0
- package/dist/runtime/server/default/default-security.handler.js +36 -0
- package/dist/runtime/server/devmode/contracts/IDevModeBridge.d.ts +36 -0
- package/dist/runtime/server/devmode/contracts/IDevModeBridge.js +8 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInspector.d.ts +52 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInspector.js +8 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.d.ts +41 -0
- package/dist/runtime/server/devmode/contracts/IDevModeInterceptor.js +7 -0
- package/dist/runtime/server/devmode/contracts/index.d.ts +3 -0
- package/dist/runtime/server/devmode/contracts/index.js +3 -0
- package/dist/runtime/server/devmode/dev-mode.service.d.ts +109 -0
- package/dist/runtime/server/devmode/dev-mode.service.js +290 -0
- package/dist/runtime/server/devmode/event-interceptor.service.d.ts +80 -0
- package/dist/runtime/server/devmode/event-interceptor.service.js +233 -0
- package/dist/runtime/server/devmode/index.d.ts +6 -0
- package/dist/runtime/server/devmode/index.js +7 -0
- package/dist/runtime/server/devmode/player-simulator.service.d.ts +66 -0
- package/dist/runtime/server/devmode/player-simulator.service.js +199 -0
- package/dist/runtime/server/devmode/state-inspector.service.d.ts +57 -0
- package/dist/runtime/server/devmode/state-inspector.service.js +175 -0
- package/dist/runtime/server/devmode/types.d.ts +197 -0
- package/dist/runtime/server/devmode/types.js +22 -0
- package/dist/runtime/server/entities/index.d.ts +3 -0
- package/dist/runtime/server/entities/index.js +3 -0
- package/dist/runtime/server/entities/npc.d.ts +255 -0
- package/dist/runtime/server/entities/npc.js +307 -0
- package/dist/runtime/server/entities/player.d.ts +239 -0
- package/dist/runtime/server/entities/player.js +340 -0
- package/dist/runtime/server/entities/vehicle.d.ts +113 -0
- package/dist/runtime/server/entities/vehicle.js +245 -0
- package/dist/runtime/server/error-handler.d.ts +2 -0
- package/dist/runtime/server/error-handler.js +39 -0
- package/dist/runtime/server/helpers/command-validation.helper.d.ts +3 -0
- package/dist/runtime/server/helpers/command-validation.helper.js +73 -0
- package/dist/runtime/server/helpers/function-helper.d.ts +6 -0
- package/dist/runtime/server/helpers/function-helper.js +28 -0
- package/dist/runtime/server/helpers/normalize-app-error.d.ts +9 -0
- package/dist/runtime/server/helpers/normalize-app-error.js +17 -0
- package/dist/runtime/server/helpers/process-tuple-schema.d.ts +20 -0
- package/dist/runtime/server/helpers/process-tuple-schema.js +56 -0
- package/dist/runtime/server/helpers/resolve-method.d.ts +5 -0
- package/dist/runtime/server/helpers/resolve-method.js +25 -0
- package/dist/runtime/server/implementations/local/channel.local.d.ts +32 -0
- package/dist/runtime/server/implementations/local/channel.local.js +185 -0
- package/dist/runtime/server/implementations/local/command.local.d.ts +57 -0
- package/dist/runtime/server/implementations/local/command.local.js +110 -0
- package/dist/runtime/server/implementations/local/player.local.d.ts +110 -0
- package/dist/runtime/server/implementations/local/player.local.js +204 -0
- package/dist/runtime/server/implementations/local/principal.local.d.ts +28 -0
- package/dist/runtime/server/implementations/local/principal.local.js +120 -0
- package/dist/runtime/server/implementations/remote/channel.remote.d.ts +47 -0
- package/dist/runtime/server/implementations/remote/channel.remote.js +165 -0
- package/dist/runtime/server/implementations/remote/command.remote.d.ts +64 -0
- package/dist/runtime/server/implementations/remote/command.remote.js +154 -0
- package/dist/runtime/server/implementations/remote/player.remote.d.ts +65 -0
- package/dist/runtime/server/implementations/remote/player.remote.js +204 -0
- package/dist/runtime/server/implementations/remote/principal.remote.d.ts +33 -0
- package/dist/runtime/server/implementations/remote/principal.remote.js +97 -0
- package/dist/runtime/server/index.d.ts +9 -0
- package/dist/runtime/server/index.js +4 -0
- package/dist/runtime/server/library/create-server-library.d.ts +13 -0
- package/dist/runtime/server/library/create-server-library.js +48 -0
- package/dist/runtime/server/library/index.d.ts +4 -0
- package/dist/runtime/server/library/index.js +2 -0
- package/dist/runtime/server/library/plugin/index.d.ts +4 -0
- package/dist/runtime/server/library/plugin/index.js +4 -0
- package/dist/runtime/server/library/plugin/plugin-context.d.ts +10 -0
- package/dist/runtime/server/library/plugin/plugin-context.js +0 -0
- package/dist/runtime/server/library/plugin/plugin-registry.d.ts +7 -0
- package/dist/runtime/server/library/plugin/plugin-registry.js +25 -0
- package/dist/runtime/server/library/plugin/plugin.interface.d.ts +19 -0
- package/dist/runtime/server/library/plugin/plugin.interface.js +0 -0
- package/dist/runtime/server/library/plugin/server-plugin-api.d.ts +5 -0
- package/dist/runtime/server/library/plugin/server-plugin-api.js +0 -0
- package/dist/runtime/server/ports/authorization.api-port.d.ts +149 -0
- package/dist/runtime/server/ports/authorization.api-port.js +28 -0
- package/dist/runtime/server/ports/channel.api-port.d.ts +218 -0
- package/dist/runtime/server/ports/channel.api-port.js +2 -0
- package/dist/runtime/server/ports/internal/command-execution.port.d.ts +48 -0
- package/dist/runtime/server/ports/internal/command-execution.port.js +11 -0
- package/dist/runtime/server/ports/internal/player-session-lifecycle.port.d.ts +37 -0
- package/dist/runtime/server/ports/internal/player-session-lifecycle.port.js +12 -0
- package/dist/runtime/server/ports/players.api-port.d.ts +108 -0
- package/dist/runtime/server/ports/players.api-port.js +19 -0
- package/dist/runtime/server/runtime.d.ts +192 -0
- package/dist/runtime/server/runtime.js +211 -0
- package/dist/runtime/server/server.runtime.d.ts +7 -0
- package/dist/runtime/server/server.runtime.js +34 -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/index.d.ts +6 -0
- package/dist/runtime/server/services/index.js +6 -0
- package/dist/runtime/server/services/parallel/native-worker.entry.d.ts +1 -0
- package/dist/runtime/server/services/parallel/native-worker.entry.js +10 -0
- package/dist/runtime/server/services/parallel/worker-pool.d.ts +79 -0
- package/dist/runtime/server/services/parallel/worker-pool.js +428 -0
- package/dist/runtime/server/services/parallel/worker.d.ts +22 -0
- package/dist/runtime/server/services/parallel/worker.js +48 -0
- package/dist/runtime/server/services/persistence.service.d.ts +59 -0
- package/dist/runtime/server/services/persistence.service.js +161 -0
- package/dist/runtime/server/services/rate-limiter.service.d.ts +23 -0
- package/dist/runtime/server/services/rate-limiter.service.js +52 -0
- package/dist/runtime/server/services/services.register.d.ts +11 -0
- package/dist/runtime/server/services/services.register.js +108 -0
- package/dist/runtime/server/services/session-recovery.local.d.ts +39 -0
- package/dist/runtime/server/services/session-recovery.local.js +108 -0
- package/dist/runtime/server/setup.d.ts +9 -0
- package/dist/runtime/server/setup.js +25 -0
- package/dist/runtime/server/system/managers/binary-process.manager.d.ts +19 -0
- package/dist/runtime/server/system/managers/binary-process.manager.js +312 -0
- package/dist/runtime/server/system/metadata-server.keys.d.ts +18 -0
- package/dist/runtime/server/system/metadata-server.keys.js +18 -0
- package/dist/runtime/server/system/processors/command.processor.d.ts +16 -0
- package/dist/runtime/server/system/processors/command.processor.js +62 -0
- package/dist/runtime/server/system/processors/export.processor.d.ts +10 -0
- package/dist/runtime/server/system/processors/export.processor.js +38 -0
- package/dist/runtime/server/system/processors/internalEvent.processor.d.ts +7 -0
- package/dist/runtime/server/system/processors/internalEvent.processor.js +36 -0
- package/dist/runtime/server/system/processors/libraryEvent.processor.d.ts +6 -0
- package/dist/runtime/server/system/processors/libraryEvent.processor.js +38 -0
- package/dist/runtime/server/system/processors/netEvent.processor.d.ts +23 -0
- package/dist/runtime/server/system/processors/netEvent.processor.js +243 -0
- package/dist/runtime/server/system/processors/onRpc.processor.d.ts +12 -0
- package/dist/runtime/server/system/processors/onRpc.processor.js +142 -0
- package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +10 -0
- package/dist/runtime/server/system/processors/runtimeEvent.processor.js +48 -0
- package/dist/runtime/server/system/processors/tick.processor.d.ts +8 -0
- package/dist/runtime/server/system/processors/tick.processor.js +44 -0
- package/dist/runtime/server/system/processors.register.d.ts +2 -0
- package/dist/runtime/server/system/processors.register.js +43 -0
- package/dist/runtime/server/system/schema-generator.d.ts +2 -0
- package/dist/runtime/server/system/schema-generator.js +38 -0
- package/dist/runtime/server/types/channel.types.d.ts +44 -0
- package/dist/runtime/server/types/channel.types.js +10 -0
- package/dist/runtime/server/types/core-exports.types.d.ts +286 -0
- package/dist/runtime/server/types/core-exports.types.js +0 -0
- package/dist/runtime/server/types/framework-events.types.d.ts +22 -0
- package/dist/runtime/server/types/framework-events.types.js +0 -0
- package/dist/runtime/server/types/index.d.ts +9 -0
- package/dist/runtime/server/types/index.js +9 -0
- package/dist/runtime/server/types/linked-id.d.ts +6 -0
- package/dist/runtime/server/types/linked-id.js +0 -0
- package/dist/runtime/server/types/npc.types.d.ts +36 -0
- package/dist/runtime/server/types/npc.types.js +0 -0
- package/dist/runtime/server/types/parallel.types.d.ts +191 -0
- package/dist/runtime/server/types/parallel.types.js +5 -0
- package/dist/runtime/server/types/player-session.types.d.ts +11 -0
- package/dist/runtime/server/types/player-session.types.js +0 -0
- package/dist/runtime/server/types/principal.type.d.ts +32 -0
- package/dist/runtime/server/types/principal.type.js +0 -0
- package/dist/runtime/server/types/vehicle.types.d.ts +152 -0
- package/dist/runtime/server/types/vehicle.types.js +0 -0
- package/package.json +43 -36
- package/dist/client/client-bootstrap.d.ts +0 -1
- package/dist/client/client-bootstrap.js +0 -53
- package/dist/client/client-container.js +0 -6
- package/dist/client/client-core.d.ts +0 -18
- package/dist/client/client-core.js +0 -52
- 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/gameEvent.d.ts +0 -47
- package/dist/client/decorators/gameEvent.js +0 -54
- package/dist/client/decorators/index.d.ts +0 -10
- package/dist/client/decorators/index.js +0 -26
- 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/index.d.ts +0 -6
- package/dist/client/index.js +0 -22
- package/dist/client/loaders/exports.loader.d.ts +0 -1
- package/dist/client/loaders/exports.loader.js +0 -13
- package/dist/client/player/player.d.ts +0 -262
- package/dist/client/player/player.js +0 -480
- package/dist/client/player/player.loader.js +0 -22
- package/dist/client/services/core/index.d.ts +0 -1
- package/dist/client/services/core/index.js +0 -17
- package/dist/client/services/core/spawn.service.d.ts +0 -20
- package/dist/client/services/core/spawn.service.js +0 -143
- package/dist/client/services/index.d.ts +0 -4
- package/dist/client/services/index.js +0 -24
- package/dist/client/services/streaming/index.d.ts +0 -1
- package/dist/client/services/streaming/index.js +0 -17
- package/dist/client/services/streaming/streaming.service.js +0 -341
- package/dist/client/services/ui/index.d.ts +0 -3
- package/dist/client/services/ui/index.js +0 -19
- package/dist/client/services/ui/notification.service.js +0 -111
- package/dist/client/services/ui/progress.service.js +0 -210
- package/dist/client/services/ui/textui.service.d.ts +0 -82
- package/dist/client/services/ui/textui.service.js +0 -156
- package/dist/client/services/world/blip.service.d.ts +0 -112
- package/dist/client/services/world/blip.service.js +0 -215
- package/dist/client/services/world/index.d.ts +0 -4
- package/dist/client/services/world/index.js +0 -20
- package/dist/client/services/world/marker.service.d.ts +0 -94
- package/dist/client/services/world/marker.service.js +0 -153
- package/dist/client/services/world/ped.service.d.ts +0 -182
- package/dist/client/services/world/ped.service.js +0 -302
- package/dist/client/services/world/vehicle.service.d.ts +0 -168
- package/dist/client/services/world/vehicle.service.js +0 -296
- package/dist/client/system/metadata-client.keys.d.ts +0 -13
- package/dist/client/system/metadata-client.keys.js +0 -16
- package/dist/client/system/processors/export.processor.d.ts +0 -7
- package/dist/client/system/processors/export.processor.js +0 -39
- package/dist/client/system/processors/gameEvent.processor.d.ts +0 -10
- package/dist/client/system/processors/gameEvent.processor.js +0 -58
- package/dist/client/system/processors/interval.processor.d.ts +0 -7
- package/dist/client/system/processors/interval.processor.js +0 -43
- package/dist/client/system/processors/key.processor.d.ts +0 -8
- package/dist/client/system/processors/key.processor.js +0 -27
- package/dist/client/system/processors/localEvent.processor.d.ts +0 -7
- package/dist/client/system/processors/localEvent.processor.js +0 -38
- package/dist/client/system/processors/netEvent.processor.d.ts +0 -7
- package/dist/client/system/processors/netEvent.processor.js +0 -38
- package/dist/client/system/processors/nui.processor.d.ts +0 -7
- package/dist/client/system/processors/nui.processor.js +0 -40
- package/dist/client/system/processors/resourceLifecycle.processor.d.ts +0 -9
- package/dist/client/system/processors/resourceLifecycle.processor.js +0 -69
- package/dist/client/system/processors/tick.processor.d.ts +0 -5
- package/dist/client/system/processors/tick.processor.js +0 -37
- package/dist/client/system/processors.register.js +0 -27
- package/dist/client/types/game-events.d.ts +0 -126
- package/dist/client/types/game-events.js +0 -83
- package/dist/client/types/index.js +0 -17
- package/dist/client/ui-bridge.js +0 -201
- package/dist/server/bootstrap.d.ts +0 -16
- package/dist/server/bootstrap.js +0 -57
- package/dist/server/bus/core-event-bus.d.ts +0 -6
- package/dist/server/bus/core-event-bus.js +0 -31
- package/dist/server/configs/api.config.d.ts +0 -71
- package/dist/server/configs/api.config.js +0 -81
- package/dist/server/configs/config.base.d.ts +0 -63
- package/dist/server/configs/config.base.js +0 -64
- package/dist/server/configs/index.d.ts +0 -2
- package/dist/server/configs/index.js +0 -18
- package/dist/server/container.d.ts +0 -2
- package/dist/server/container.js +0 -6
- package/dist/server/controllers/chat.controller.d.ts +0 -10
- package/dist/server/controllers/chat.controller.js +0 -50
- package/dist/server/controllers/command.controller.d.ts +0 -7
- package/dist/server/controllers/command.controller.js +0 -47
- package/dist/server/core.d.ts +0 -1
- package/dist/server/core.js +0 -7
- package/dist/server/database/adapters/oxmysql.adapter.d.ts +0 -89
- package/dist/server/database/adapters/oxmysql.adapter.js +0 -149
- package/dist/server/database/database.contract.d.ts +0 -128
- package/dist/server/database/database.contract.js +0 -29
- package/dist/server/database/database.service.d.ts +0 -216
- package/dist/server/database/database.service.js +0 -301
- package/dist/server/database/index.d.ts +0 -53
- package/dist/server/database/index.js +0 -70
- package/dist/server/database/types.d.ts +0 -67
- package/dist/server/database/types.js +0 -7
- package/dist/server/database.d.ts +0 -7
- package/dist/server/database.js +0 -23
- 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.d.ts +0 -25
- package/dist/server/decorators/controller.js +0 -36
- package/dist/server/decorators/coreEvent.d.ts +0 -22
- package/dist/server/decorators/coreEvent.js +0 -29
- 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/guard.js +0 -82
- package/dist/server/decorators/index.d.ts +0 -10
- package/dist/server/decorators/index.js +0 -29
- 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/public.js +0 -36
- package/dist/server/decorators/requiresState.d.ts +0 -56
- package/dist/server/decorators/requiresState.js +0 -63
- package/dist/server/decorators/throttle.d.ts +0 -48
- package/dist/server/decorators/throttle.js +0 -63
- 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/entities/index.js +0 -17
- package/dist/server/entities/player.d.ts +0 -157
- package/dist/server/entities/player.js +0 -217
- package/dist/server/error-handler.d.ts +0 -2
- package/dist/server/error-handler.js +0 -43
- package/dist/server/index.d.ts +0 -10
- package/dist/server/index.js +0 -29
- 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 -42
- 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/chat.service.js +0 -31
- package/dist/server/services/command.service.d.ts +0 -15
- package/dist/server/services/command.service.js +0 -77
- package/dist/server/services/config.service.d.ts +0 -75
- package/dist/server/services/config.service.js +0 -116
- package/dist/server/services/default/default-security.handler.d.ts +0 -6
- package/dist/server/services/default/default-security.handler.js +0 -26
- package/dist/server/services/http/http.service.d.ts +0 -50
- package/dist/server/services/http/http.service.js +0 -126
- package/dist/server/services/index.d.ts +0 -10
- package/dist/server/services/index.js +0 -26
- package/dist/server/services/parallel/index.d.ts +0 -49
- package/dist/server/services/parallel/index.js +0 -67
- package/dist/server/services/parallel/parallel-compute.service.d.ts +0 -132
- package/dist/server/services/parallel/parallel-compute.service.js +0 -449
- package/dist/server/services/parallel/types.d.ts +0 -188
- package/dist/server/services/parallel/types.js +0 -7
- package/dist/server/services/parallel/worker-pool.d.ts +0 -83
- package/dist/server/services/parallel/worker-pool.js +0 -350
- package/dist/server/services/parallel/worker.d.ts +0 -19
- package/dist/server/services/parallel/worker.js +0 -49
- package/dist/server/services/persistence.service.d.ts +0 -59
- package/dist/server/services/persistence.service.js +0 -166
- package/dist/server/services/player.service.d.ts +0 -96
- package/dist/server/services/player.service.js +0 -132
- package/dist/server/services/rate-limiter.service.d.ts +0 -5
- package/dist/server/services/rate-limiter.service.js +0 -39
- 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/metadata-server.keys.d.ts +0 -9
- package/dist/server/system/metadata-server.keys.js +0 -12
- package/dist/server/system/processors/command.processor.d.ts +0 -9
- package/dist/server/system/processors/command.processor.js +0 -30
- package/dist/server/system/processors/coreEvent.processor.d.ts +0 -7
- package/dist/server/system/processors/coreEvent.processor.js +0 -38
- package/dist/server/system/processors/export.processor.d.ts +0 -7
- package/dist/server/system/processors/export.processor.js +0 -26
- package/dist/server/system/processors/netEvent.processor.d.ts +0 -11
- package/dist/server/system/processors/netEvent.processor.js +0 -101
- package/dist/server/system/processors/tick.processor.d.ts +0 -5
- package/dist/server/system/processors/tick.processor.js +0 -36
- package/dist/server/system/processors.register.d.ts +0 -1
- package/dist/server/system/processors.register.js +0 -21
- package/dist/server/system/schema-generator.d.ts +0 -2
- package/dist/server/system/schema-generator.js +0 -28
- package/dist/server/templates/admin/admin.controller-template.d.ts +0 -12
- package/dist/server/templates/admin/admin.controller-template.js +0 -2
- package/dist/server/templates/auth/auth-provider.contract.d.ts +0 -58
- package/dist/server/templates/auth/auth-provider.contract.js +0 -23
- package/dist/server/templates/index.d.ts +0 -8
- package/dist/server/templates/index.js +0 -21
- package/dist/server/templates/persistence/index.d.ts +0 -30
- package/dist/server/templates/persistence/index.js +0 -34
- package/dist/server/templates/persistence/player-persistence.contract.d.ts +0 -86
- package/dist/server/templates/persistence/player-persistence.contract.js +0 -52
- package/dist/server/templates/repository/index.d.ts +0 -57
- package/dist/server/templates/repository/index.js +0 -61
- package/dist/server/templates/repository/repository.contract.d.ts +0 -224
- package/dist/server/templates/repository/repository.contract.js +0 -342
- package/dist/server/templates/repository/repository.types.d.ts +0 -51
- package/dist/server/templates/repository/repository.types.js +0 -7
- package/dist/server/templates/security/permission.types.d.ts +0 -32
- package/dist/server/templates/security/permission.types.js +0 -2
- package/dist/server/templates/security/principal-provider.contract.d.ts +0 -43
- package/dist/server/templates/security/principal-provider.contract.js +0 -19
- package/dist/server/templates/security/security-handler.contract.d.ts +0 -5
- package/dist/server/templates/security/security-handler.contract.js +0 -6
- package/dist/server/types/core-events.d.ts +0 -17
- package/dist/server/types/core-events.js +0 -2
- package/dist/server/types/security.types.js +0 -2
- package/dist/shared/index.d.ts +0 -1
- package/dist/shared/index.js +0 -17
- package/dist/shared/logger/core-logger.d.ts +0 -35
- package/dist/shared/logger/core-logger.js +0 -52
- package/dist/shared/logger/index.d.ts +0 -11
- package/dist/shared/logger/index.js +0 -26
- package/dist/shared/logger/logger.config.d.ts +0 -47
- package/dist/shared/logger/logger.config.js +0 -33
- package/dist/shared/logger/logger.service.d.ts +0 -161
- package/dist/shared/logger/logger.service.js +0 -279
- package/dist/shared/logger/logger.types.js +0 -74
- package/dist/shared/logger/transports/buffered.transport.d.ts +0 -88
- package/dist/shared/logger/transports/buffered.transport.js +0 -174
- package/dist/shared/logger/transports/console.transport.d.ts +0 -37
- package/dist/shared/logger/transports/console.transport.js +0 -134
- package/dist/shared/logger/transports/index.d.ts +0 -3
- package/dist/shared/logger/transports/index.js +0 -19
- package/dist/shared/logger/transports/transport.interface.d.ts +0 -40
- package/dist/shared/logger/transports/transport.interface.js +0 -2
- package/dist/system/class-constructor.js +0 -2
- package/dist/system/decorator-processor.js +0 -2
- package/dist/system/metadata.scanner.d.ts +0 -7
- package/dist/system/metadata.scanner.js +0 -45
- package/dist/utils/errors.d.ts +0 -14
- package/dist/utils/errors.js +0 -25
- package/dist/utils/index.d.ts +0 -4
- package/dist/utils/index.js +0 -20
- package/dist/utils/result.d.ts +0 -12
- package/dist/utils/result.js +0 -10
- package/dist/utils/rgb.d.ts +0 -5
- package/dist/utils/rgb.js +0 -2
- package/dist/utils/vector3.d.ts +0 -13
- package/dist/utils/vector3.js +0 -27
- /package/dist/{server/loaders/exports.loader.d.ts → adapters/contracts/transport/context.js} +0 -0
- /package/dist/{system → kernel/di}/class-constructor.d.ts +0 -0
- /package/dist/{system → kernel/di}/decorator-processor.d.ts +0 -0
- /package/dist/{server/types → kernel/error}/security.types.d.ts +0 -0
- /package/dist/{shared → kernel}/logger/logger.types.d.ts +0 -0
- /package/dist/{client → runtime/client}/client-container.d.ts +0 -0
- /package/dist/{client → runtime/client}/player/player.loader.d.ts +0 -0
- /package/dist/{client/services/ui → runtime/client/services}/notification.service.d.ts +0 -0
- /package/dist/{client/services/ui → runtime/client/services}/progress.service.d.ts +0 -0
- /package/dist/{client/services/streaming → runtime/client/services}/streaming.service.d.ts +0 -0
- /package/dist/{client → runtime/client}/system/processors.register.d.ts +0 -0
- /package/dist/{client → runtime/client}/types/index.d.ts +0 -0
- /package/dist/{client → runtime/client}/ui-bridge.d.ts +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ClassConstructor } from '../../../kernel/di/class-constructor';
|
|
3
|
+
import { Player } from '../entities/player';
|
|
4
|
+
import { SecurityMetadata } from '../types/core-exports.types';
|
|
5
|
+
export interface CommandConfig {
|
|
6
|
+
/**
|
|
7
|
+
* The command name (e.g. "revive", "deposit"), used in chat "/revive"
|
|
8
|
+
*/
|
|
9
|
+
command: string;
|
|
10
|
+
/**
|
|
11
|
+
* The command description, maybe "/help revive"
|
|
12
|
+
*/
|
|
13
|
+
description?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The command usage, maybe "/revive <player>"
|
|
16
|
+
*/
|
|
17
|
+
usage?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Optional Zod schema for command argument validation.
|
|
20
|
+
*
|
|
21
|
+
* - `z.tuple([...])`: positional args validation.
|
|
22
|
+
* - `z.object({...})`: named args validation (maps args to parameter names).
|
|
23
|
+
*
|
|
24
|
+
* If omitted, the framework auto-validates only primitive arg types (`string|number|boolean|any[]`).
|
|
25
|
+
*/
|
|
26
|
+
schema?: z.ZodType;
|
|
27
|
+
}
|
|
28
|
+
export interface CommandMetadata extends CommandConfig {
|
|
29
|
+
methodName: string;
|
|
30
|
+
target: ClassConstructor;
|
|
31
|
+
paramTypes: any;
|
|
32
|
+
paramNames: string[];
|
|
33
|
+
expectsPlayer: boolean;
|
|
34
|
+
isPublic?: boolean;
|
|
35
|
+
/** Security metadata for remote validation */
|
|
36
|
+
security?: SecurityMetadata;
|
|
37
|
+
/** True if the last parameter uses the spread operator (...args) */
|
|
38
|
+
hasSpreadParam?: boolean;
|
|
39
|
+
}
|
|
40
|
+
type ServerCommandHandler = (() => any) | ((player: Player, ...args: any[]) => any);
|
|
41
|
+
/**
|
|
42
|
+
* Registers a method as a chat command.
|
|
43
|
+
*
|
|
44
|
+
* @remarks
|
|
45
|
+
* Handler rules:
|
|
46
|
+
* - If the handler has parameters, the first parameter must be `Player`.
|
|
47
|
+
*
|
|
48
|
+
* Validation rules:
|
|
49
|
+
* - If schema is provided:
|
|
50
|
+
* - `z.tuple([...])` validates positional args.
|
|
51
|
+
* - `z.object({...})` validates named args by mapping chat args to parameter names.
|
|
52
|
+
* - If schema is omitted, the framework can only auto-validate primitive types
|
|
53
|
+
* (`string|number|boolean|any[]`). Complex payloads should use an explicit Zod schema.
|
|
54
|
+
*
|
|
55
|
+
* @param configOrName - Command name, full config, or just command name with schema as second arg.
|
|
56
|
+
* @param schema - Optional Zod schema when using short form @Command("name", schema).
|
|
57
|
+
*
|
|
58
|
+
* @throws Error - If applied to a method without a valid descriptor.
|
|
59
|
+
* @throws Error - If the method has parameters but does not declare `Player` as the first parameter.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* import { z, Infer } from '@open-core/framework'
|
|
64
|
+
*
|
|
65
|
+
* const AmountSchema = z.object({ amount: z.number() })
|
|
66
|
+
*
|
|
67
|
+
* @Server.Controller()
|
|
68
|
+
* export class BankController {
|
|
69
|
+
* // Simple command (no schema)
|
|
70
|
+
* @Server.Command('help')
|
|
71
|
+
* help(player: Player) { }
|
|
72
|
+
*
|
|
73
|
+
* // With schema directly (recommended)
|
|
74
|
+
* @Server.Command('deposit', AmountSchema)
|
|
75
|
+
* deposit(player: Player, data: Infer<typeof AmountSchema>) { }
|
|
76
|
+
*
|
|
77
|
+
* // With full config object (for description, usage, etc.)
|
|
78
|
+
* @Server.Command({ command: 'withdraw', schema: AmountSchema, usage: '/withdraw <amount>' })
|
|
79
|
+
* withdraw(player: Player, data: Infer<typeof AmountSchema>) { }
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function Command(name: string, schema: z.ZodType): <T extends ServerCommandHandler>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => void;
|
|
84
|
+
export declare function Command(name: string): <T extends ServerCommandHandler>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => void;
|
|
85
|
+
export declare function Command(config: CommandConfig): <T extends ServerCommandHandler>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => void;
|
|
86
|
+
export declare function Command(config: CommandConfig, schema: z.ZodType): <T extends ServerCommandHandler>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => void;
|
|
87
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Player } from '../entities/player';
|
|
2
|
+
import { getParameterNames, getSpreadParameterIndices } from '../helpers/function-helper';
|
|
3
|
+
import { METADATA_KEYS } from '../system/metadata-server.keys';
|
|
4
|
+
// Implementation
|
|
5
|
+
export function Command(configOrName, schema) {
|
|
6
|
+
return (target, propertyKey, descriptor) => {
|
|
7
|
+
if (!descriptor.value)
|
|
8
|
+
throw new Error(`@Command(): descriptor.value is undefined for method '${propertyKey}'`);
|
|
9
|
+
// Build config from various input forms
|
|
10
|
+
let config;
|
|
11
|
+
if (typeof configOrName === 'string') {
|
|
12
|
+
config = { command: configOrName, schema };
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
config = configOrName;
|
|
16
|
+
}
|
|
17
|
+
const paramTypes = Reflect.getMetadata('design:paramtypes', target, propertyKey) ?? [];
|
|
18
|
+
const expectsPlayer = paramTypes.length > 0 && paramTypes[0] === Player;
|
|
19
|
+
if (paramTypes.length > 0 && !expectsPlayer) {
|
|
20
|
+
throw new Error(`@Command '${config.command}': first parameter must be Player if parameters are present`);
|
|
21
|
+
}
|
|
22
|
+
const paramNames = getParameterNames(descriptor.value);
|
|
23
|
+
const spreadIndices = getSpreadParameterIndices(descriptor.value);
|
|
24
|
+
const hasSpreadParam = spreadIndices.length > 0 && spreadIndices[spreadIndices.length - 1];
|
|
25
|
+
const metadata = {
|
|
26
|
+
...config,
|
|
27
|
+
methodName: propertyKey,
|
|
28
|
+
target: target.constructor,
|
|
29
|
+
paramTypes,
|
|
30
|
+
paramNames,
|
|
31
|
+
expectsPlayer,
|
|
32
|
+
hasSpreadParam,
|
|
33
|
+
};
|
|
34
|
+
Reflect.defineMetadata(METADATA_KEYS.COMMAND, metadata, target, propertyKey);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ClassConstructor } from '../../../kernel/di/class-constructor';
|
|
2
|
+
export declare const _serverControllerRegistryByResource: Map<string, Set<ClassConstructor>>;
|
|
3
|
+
export declare function getServerControllerRegistry(resourceName?: string): ClassConstructor[];
|
|
4
|
+
/**
|
|
5
|
+
* Class decorator used to mark a class as a Server Controller.
|
|
6
|
+
*
|
|
7
|
+
* This decorator performs the following actions:
|
|
8
|
+
* 1. Marks the class as `@injectable` (via tsyringe) for dependency injection.
|
|
9
|
+
* 2. Defines metadata identifying the class as a 'server' type controller.
|
|
10
|
+
* 3. Automatically adds the class constructor to the `_serverControllerRegistryByResource`.
|
|
11
|
+
*
|
|
12
|
+
* @returns The decorator function to apply to the class.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { Controller } from '@core/server/decorators'
|
|
17
|
+
*
|
|
18
|
+
* @Server.Controller()
|
|
19
|
+
* export class PlayerController {
|
|
20
|
+
* constructor(private playerService: PlayerService) {
|
|
21
|
+
* // Dependency injection works automatically here
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function Controller(): (target: ClassConstructor) => void;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { injectable } from 'tsyringe';
|
|
2
|
+
import { METADATA_KEYS } from '../system/metadata-server.keys';
|
|
3
|
+
export const _serverControllerRegistryByResource = new Map();
|
|
4
|
+
function getCurrentResourceNameSafe() {
|
|
5
|
+
const fn = globalThis.GetCurrentResourceName;
|
|
6
|
+
if (typeof fn === 'function') {
|
|
7
|
+
const name = fn();
|
|
8
|
+
if (typeof name === 'string' && name.trim())
|
|
9
|
+
return name;
|
|
10
|
+
}
|
|
11
|
+
return 'default';
|
|
12
|
+
}
|
|
13
|
+
export function getServerControllerRegistry(resourceName) {
|
|
14
|
+
const key = resourceName ?? getCurrentResourceNameSafe();
|
|
15
|
+
let registry = _serverControllerRegistryByResource.get(key);
|
|
16
|
+
if (!registry) {
|
|
17
|
+
registry = new Set();
|
|
18
|
+
_serverControllerRegistryByResource.set(key, registry);
|
|
19
|
+
}
|
|
20
|
+
return Array.from(registry);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Class decorator used to mark a class as a Server Controller.
|
|
24
|
+
*
|
|
25
|
+
* This decorator performs the following actions:
|
|
26
|
+
* 1. Marks the class as `@injectable` (via tsyringe) for dependency injection.
|
|
27
|
+
* 2. Defines metadata identifying the class as a 'server' type controller.
|
|
28
|
+
* 3. Automatically adds the class constructor to the `_serverControllerRegistryByResource`.
|
|
29
|
+
*
|
|
30
|
+
* @returns The decorator function to apply to the class.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { Controller } from '@core/server/decorators'
|
|
35
|
+
*
|
|
36
|
+
* @Server.Controller()
|
|
37
|
+
* export class PlayerController {
|
|
38
|
+
* constructor(private playerService: PlayerService) {
|
|
39
|
+
* // Dependency injection works automatically here
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function Controller() {
|
|
45
|
+
return (target) => {
|
|
46
|
+
injectable()(target);
|
|
47
|
+
Reflect.defineMetadata(METADATA_KEYS.CONTROLLER, { type: 'server' }, target);
|
|
48
|
+
const key = getCurrentResourceNameSafe();
|
|
49
|
+
let registry = _serverControllerRegistryByResource.get(key);
|
|
50
|
+
if (!registry) {
|
|
51
|
+
registry = new Set();
|
|
52
|
+
_serverControllerRegistryByResource.set(key, registry);
|
|
53
|
+
}
|
|
54
|
+
registry.add(target);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exposes a method as a FiveM server export.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* This decorator only stores metadata. During bootstrap, the framework registers the export so that
|
|
6
|
+
* other resources can call it via `exports['resourceName'][exportName](...)`.
|
|
7
|
+
*
|
|
8
|
+
* @param name - Optional export name. If omitted, the method name is used.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* @Server.Controller()
|
|
13
|
+
* export class AccountController {
|
|
14
|
+
* @Server.Export('getAccountById')
|
|
15
|
+
* getAccountById(id: string) {
|
|
16
|
+
* return this.accountService.find(id)
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // From another resource:
|
|
21
|
+
* // const result = exports['core-resource'].getAccountById('1234')
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function Export(name?: string): (target: any, propertyKey: string) => void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { METADATA_KEYS } from '../system/metadata-server.keys';
|
|
2
|
+
/**
|
|
3
|
+
* Exposes a method as a FiveM server export.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* This decorator only stores metadata. During bootstrap, the framework registers the export so that
|
|
7
|
+
* other resources can call it via `exports['resourceName'][exportName](...)`.
|
|
8
|
+
*
|
|
9
|
+
* @param name - Optional export name. If omitted, the method name is used.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* @Server.Controller()
|
|
14
|
+
* export class AccountController {
|
|
15
|
+
* @Server.Export('getAccountById')
|
|
16
|
+
* getAccountById(id: string) {
|
|
17
|
+
* return this.accountService.find(id)
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* // From another resource:
|
|
22
|
+
* // const result = exports['core-resource'].getAccountById('1234')
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function Export(name) {
|
|
26
|
+
return (target, propertyKey) => {
|
|
27
|
+
Reflect.defineMetadata(METADATA_KEYS.EXPORT, { exportName: name || propertyKey }, target, propertyKey);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
* Declarative access-control decorator for controller methods.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* `@Guard()` protects a method by enforcing rank and/or permission requirements before executing it.
|
|
18
|
+
*
|
|
19
|
+
* Requirements are evaluated through {@link Authorization}, which determines whether the
|
|
20
|
+
* player (first argument of the method) is authorized to perform the action.
|
|
21
|
+
*
|
|
22
|
+
* Notes:
|
|
23
|
+
* - The decorated method must receive a `Player` instance as its first argument.
|
|
24
|
+
* - In stripped decorator builds (e.g. benchmarks), the `PropertyDescriptor` may be missing.
|
|
25
|
+
* In that case the decorator stores metadata only and does not wrap the method.
|
|
26
|
+
*
|
|
27
|
+
* @param options - Guard options.
|
|
28
|
+
* @param options.rank - Minimum rank required.
|
|
29
|
+
* @param options.permission - Permission required.
|
|
30
|
+
*
|
|
31
|
+
* @throws Error - If the method is invoked without a valid `Player` as the first argument.
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* @Server.Controller()
|
|
35
|
+
* export class AdminController {
|
|
36
|
+
*
|
|
37
|
+
* @Server.Guard({ permission: 'factions.manage' })
|
|
38
|
+
* @Server.Command('newfaction', schema)
|
|
39
|
+
* async createFaction(player: Player, dto: Infer<typeof schema>) {
|
|
40
|
+
* return this.service.create(dto)
|
|
41
|
+
* }
|
|
42
|
+
*
|
|
43
|
+
* @Server.Guard({ rank: 3 })
|
|
44
|
+
* @Server.Command('ban')
|
|
45
|
+
* async ban(player: Player, targetID: string) {
|
|
46
|
+
* return this.service.ban(player, memberID)
|
|
47
|
+
* }
|
|
48
|
+
}
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function Guard(options: GuardOptions): (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => PropertyDescriptor | undefined;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { AppError } from '../../../kernel';
|
|
2
|
+
import { GLOBAL_CONTAINER } from '../../../kernel/di/container';
|
|
3
|
+
import { loggers } from '../../../kernel/logger';
|
|
4
|
+
import { Authorization } from '../ports/authorization.api-port';
|
|
5
|
+
/**
|
|
6
|
+
* Declarative access-control decorator for controller methods.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* `@Guard()` protects a method by enforcing rank and/or permission requirements before executing it.
|
|
10
|
+
*
|
|
11
|
+
* Requirements are evaluated through {@link Authorization}, which determines whether the
|
|
12
|
+
* player (first argument of the method) is authorized to perform the action.
|
|
13
|
+
*
|
|
14
|
+
* Notes:
|
|
15
|
+
* - The decorated method must receive a `Player` instance as its first argument.
|
|
16
|
+
* - In stripped decorator builds (e.g. benchmarks), the `PropertyDescriptor` may be missing.
|
|
17
|
+
* In that case the decorator stores metadata only and does not wrap the method.
|
|
18
|
+
*
|
|
19
|
+
* @param options - Guard options.
|
|
20
|
+
* @param options.rank - Minimum rank required.
|
|
21
|
+
* @param options.permission - Permission required.
|
|
22
|
+
*
|
|
23
|
+
* @throws Error - If the method is invoked without a valid `Player` as the first argument.
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* @Server.Controller()
|
|
27
|
+
* export class AdminController {
|
|
28
|
+
*
|
|
29
|
+
* @Server.Guard({ permission: 'factions.manage' })
|
|
30
|
+
* @Server.Command('newfaction', schema)
|
|
31
|
+
* async createFaction(player: Player, dto: Infer<typeof schema>) {
|
|
32
|
+
* return this.service.create(dto)
|
|
33
|
+
* }
|
|
34
|
+
*
|
|
35
|
+
* @Server.Guard({ rank: 3 })
|
|
36
|
+
* @Server.Command('ban')
|
|
37
|
+
* async ban(player: Player, targetID: string) {
|
|
38
|
+
* return this.service.ban(player, memberID)
|
|
39
|
+
* }
|
|
40
|
+
}
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export function Guard(options) {
|
|
44
|
+
return (target, propertyKey, descriptor) => {
|
|
45
|
+
if (!descriptor) {
|
|
46
|
+
// In benchmarks or edge cases, only register metadata without method wrapping
|
|
47
|
+
// This should NOT happen in production code with proper TypeScript compilation
|
|
48
|
+
loggers.security.warn(`@Guard decorator: PropertyDescriptor not available. Only metadata will be registered. This should not happen in production code. Target: ${target.constructor?.name}, Method: ${propertyKey}`);
|
|
49
|
+
Reflect.defineMetadata('core:guard', options, target, propertyKey);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const originalMethod = descriptor.value;
|
|
53
|
+
descriptor.value = async function (...args) {
|
|
54
|
+
const player = args[0];
|
|
55
|
+
if (!player || !player.clientID) {
|
|
56
|
+
loggers.security.warn(`@Guard misuse: First argument is not a Player`, {
|
|
57
|
+
method: propertyKey,
|
|
58
|
+
targetClass: target.constructor?.name,
|
|
59
|
+
});
|
|
60
|
+
throw new Error('Guard Security Error: Context is not a player');
|
|
61
|
+
}
|
|
62
|
+
const principal = GLOBAL_CONTAINER.resolve(Authorization);
|
|
63
|
+
try {
|
|
64
|
+
await principal.enforce(player, options);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
// Send user-friendly error message for authorization failures
|
|
68
|
+
if (error instanceof AppError && error.code === 'AUTH:PERMISSION_DENIED') {
|
|
69
|
+
player.send(error.message, 'error');
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
return originalMethod.apply(this, args);
|
|
75
|
+
};
|
|
76
|
+
// no need a defined metadata key, as we won't read it later
|
|
77
|
+
Reflect.defineMetadata('core:guard', options, target, propertyKey);
|
|
78
|
+
return descriptor;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from './binaryCall';
|
|
2
|
+
export * from './binaryEvent';
|
|
3
|
+
export * from './binaryService';
|
|
4
|
+
export * from './bind';
|
|
5
|
+
export { Command, CommandConfig } from './command';
|
|
6
|
+
export { Controller } from './controller';
|
|
7
|
+
export * from './export';
|
|
8
|
+
export * from './guard';
|
|
9
|
+
export * from './onFrameworkEvent';
|
|
10
|
+
export * from './onLibraryEvent';
|
|
11
|
+
export * from './onNet';
|
|
12
|
+
export * from './onRuntimeEvent';
|
|
13
|
+
export * from './onTick';
|
|
14
|
+
export * from './public';
|
|
15
|
+
export * from './requiresState';
|
|
16
|
+
export * from './throttle';
|
|
17
|
+
export * from './utils';
|
|
18
|
+
export * from './onRPC';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from './binaryCall';
|
|
2
|
+
export * from './binaryEvent';
|
|
3
|
+
export * from './binaryService';
|
|
4
|
+
export * from './bind';
|
|
5
|
+
export { Command } from './command';
|
|
6
|
+
export { Controller } from './controller';
|
|
7
|
+
export * from './export';
|
|
8
|
+
export * from './guard';
|
|
9
|
+
export * from './onFrameworkEvent';
|
|
10
|
+
export * from './onLibraryEvent';
|
|
11
|
+
export * from './onNet';
|
|
12
|
+
export * from './onRuntimeEvent';
|
|
13
|
+
export * from './onTick';
|
|
14
|
+
export * from './public';
|
|
15
|
+
export * from './requiresState';
|
|
16
|
+
export * from './throttle';
|
|
17
|
+
export * from './utils';
|
|
18
|
+
export * from './onRPC';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FrameworkEventsMap } from '../types/framework-events.types';
|
|
2
|
+
/**
|
|
3
|
+
* Registers a method as a listener for an internal OpenCore framework event.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* This decorator only stores metadata. The framework binds listeners during bootstrap by scanning
|
|
7
|
+
* controller methods.
|
|
8
|
+
*
|
|
9
|
+
* The handler should accept the payload type corresponding to the event from {@link FrameworkEventsMap}.
|
|
10
|
+
*
|
|
11
|
+
* @param event - Internal event name, strongly typed to {@link FrameworkEventsMap}.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* @Server.Controller()
|
|
16
|
+
* export class SystemController {
|
|
17
|
+
* @Server.OnFrameworkEvent('internal:playerFullyConnected')
|
|
18
|
+
* onPlayerConnected(payload: PlayerFullyConnectedPayload) {
|
|
19
|
+
* console.log(`Player ${payload.player.session.clientId} connected`)
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function OnFrameworkEvent<K extends keyof FrameworkEventsMap>(event: K): (target: object, propertyKey: string | symbol, _descriptor: PropertyDescriptor) => void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { METADATA_KEYS } from '../system/metadata-server.keys';
|
|
2
|
+
/**
|
|
3
|
+
* Registers a method as a listener for an internal OpenCore framework event.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* This decorator only stores metadata. The framework binds listeners during bootstrap by scanning
|
|
7
|
+
* controller methods.
|
|
8
|
+
*
|
|
9
|
+
* The handler should accept the payload type corresponding to the event from {@link FrameworkEventsMap}.
|
|
10
|
+
*
|
|
11
|
+
* @param event - Internal event name, strongly typed to {@link FrameworkEventsMap}.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* @Server.Controller()
|
|
16
|
+
* export class SystemController {
|
|
17
|
+
* @Server.OnFrameworkEvent('internal:playerFullyConnected')
|
|
18
|
+
* onPlayerConnected(payload: PlayerFullyConnectedPayload) {
|
|
19
|
+
* console.log(`Player ${payload.player.session.clientId} connected`)
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function OnFrameworkEvent(event) {
|
|
25
|
+
return (target, propertyKey, _descriptor) => {
|
|
26
|
+
Reflect.defineMetadata(METADATA_KEYS.INTERNAL_EVENT, { event }, target, propertyKey);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LibraryEventName, LibraryName } from '../../core/library/types';
|
|
2
|
+
export interface LibraryEventDecoratorMetadata {
|
|
3
|
+
libraryName: LibraryName;
|
|
4
|
+
eventName: LibraryEventName;
|
|
5
|
+
eventId: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Registers a method as a listener for a runtime library event.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* The event is emitted when a library wrapper calls `library.emit(...)`.
|
|
12
|
+
* This decorator stores metadata only; listeners are bound during bootstrap.
|
|
13
|
+
*
|
|
14
|
+
* @param libraryName - Library identifier (for example: `characters`).
|
|
15
|
+
* @param eventName - Event name emitted by the library (for example: `session:created`).
|
|
16
|
+
*/
|
|
17
|
+
export declare function OnLibraryEvent(libraryName: LibraryName, eventName: LibraryEventName): (target: object, propertyKey: string | symbol, _descriptor: PropertyDescriptor) => void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { buildLibraryEventId } from '../../core/library';
|
|
2
|
+
import { METADATA_KEYS } from '../system/metadata-server.keys';
|
|
3
|
+
/**
|
|
4
|
+
* Registers a method as a listener for a runtime library event.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* The event is emitted when a library wrapper calls `library.emit(...)`.
|
|
8
|
+
* This decorator stores metadata only; listeners are bound during bootstrap.
|
|
9
|
+
*
|
|
10
|
+
* @param libraryName - Library identifier (for example: `characters`).
|
|
11
|
+
* @param eventName - Event name emitted by the library (for example: `session:created`).
|
|
12
|
+
*/
|
|
13
|
+
export function OnLibraryEvent(libraryName, eventName) {
|
|
14
|
+
return (target, propertyKey, _descriptor) => {
|
|
15
|
+
const metadata = {
|
|
16
|
+
libraryName,
|
|
17
|
+
eventName,
|
|
18
|
+
eventId: buildLibraryEventId(libraryName, eventName),
|
|
19
|
+
};
|
|
20
|
+
Reflect.defineMetadata(METADATA_KEYS.LIBRARY_EVENT, metadata, target, propertyKey);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { Player } from '../entities/player';
|
|
3
|
+
export interface NetEventOptions {
|
|
4
|
+
/**
|
|
5
|
+
* The network event name to register.
|
|
6
|
+
*/
|
|
7
|
+
eventName: string;
|
|
8
|
+
/**
|
|
9
|
+
* Zod schema for payload validation.
|
|
10
|
+
* - `z.tuple([...])`: validates all positional args.
|
|
11
|
+
* - otherwise: expects exactly 1 arg and validates `args[0]` (DTO payload pattern).
|
|
12
|
+
*/
|
|
13
|
+
schema?: z.ZodType;
|
|
14
|
+
/**
|
|
15
|
+
* Runtime parameter types for auto-validation.
|
|
16
|
+
*/
|
|
17
|
+
paramTypes: any;
|
|
18
|
+
}
|
|
19
|
+
type ServerNetHandler<TArgs extends any[] = any[]> = (player: Player, ...args: TArgs) => any;
|
|
20
|
+
/**
|
|
21
|
+
* Registers a method as a server-side network event handler.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* Rules:
|
|
25
|
+
* - First parameter must be `Player` (injected from the caller).
|
|
26
|
+
*
|
|
27
|
+
* Validation:
|
|
28
|
+
* - If schema is provided:
|
|
29
|
+
* - `z.tuple([...])` validates all positional args.
|
|
30
|
+
* - otherwise: expects exactly 1 arg and validates `args[0]` (DTO payload pattern).
|
|
31
|
+
* - If schema is omitted, only primitive args can be auto-validated from runtime param types
|
|
32
|
+
* (`string|number|boolean|any[]`). Complex payloads should use an explicit schema.
|
|
33
|
+
*
|
|
34
|
+
* Authentication:
|
|
35
|
+
* - Handlers are typically protected by the framework's net-event security layer.
|
|
36
|
+
* - Use {@link Public} to explicitly mark a handler as unauthenticated.
|
|
37
|
+
*
|
|
38
|
+
* @param eventName - Network event name.
|
|
39
|
+
* @param schemaOrOptions - Zod schema directly, or options object with schema property.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* import { z, Infer } from '@open-core/framework'
|
|
44
|
+
*
|
|
45
|
+
* const PayloadSchema = z.object({ message: z.string() })
|
|
46
|
+
*
|
|
47
|
+
* @Server.Controller()
|
|
48
|
+
* export class ExampleController {
|
|
49
|
+
* // Simple handler (no schema)
|
|
50
|
+
* @Server.OnNet('example:ping')
|
|
51
|
+
* ping(player: Server.Player, message: string) { }
|
|
52
|
+
*
|
|
53
|
+
* // With schema directly (recommended)
|
|
54
|
+
* @Server.OnNet('example:data', PayloadSchema)
|
|
55
|
+
* handleData(player: Server.Player, data: Infer<typeof PayloadSchema>) { }
|
|
56
|
+
*
|
|
57
|
+
* // With options object (legacy)
|
|
58
|
+
* @Server.OnNet('example:legacy', { schema: PayloadSchema })
|
|
59
|
+
* handleLegacy(player: Server.Player, data: Infer<typeof PayloadSchema>) { }
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function OnNet<TArgs extends any[]>(eventName: string, schema: z.ZodType): <H extends ServerNetHandler<TArgs>>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<H>) => void;
|
|
64
|
+
export declare function OnNet<TArgs extends any[]>(eventName: string, options?: Pick<NetEventOptions, 'schema'>): <H extends ServerNetHandler<TArgs>>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<H>) => void;
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { METADATA_KEYS } from '../system/metadata-server.keys';
|
|
3
|
+
// Implementation
|
|
4
|
+
export function OnNet(eventName, schemaOrOptions) {
|
|
5
|
+
return (target, propertyKey, _descriptor) => {
|
|
6
|
+
const paramTypes = Reflect.getMetadata('design:paramtypes', target, propertyKey);
|
|
7
|
+
// Detect if second arg is a Zod schema or an options object
|
|
8
|
+
const schema = schemaOrOptions instanceof z.ZodType ? schemaOrOptions : schemaOrOptions?.schema;
|
|
9
|
+
const metadata = { eventName, schema, paramTypes };
|
|
10
|
+
Reflect.defineMetadata(METADATA_KEYS.NET_EVENT, metadata, target, propertyKey);
|
|
11
|
+
};
|
|
12
|
+
}
|