@open-core/framework 0.2.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/contracts/IPlatformCapabilities.d.ts +79 -0
- package/dist/adapters/contracts/IPlatformCapabilities.js +31 -0
- package/dist/adapters/contracts/IPlayerInfo.d.ts +1 -1
- package/dist/adapters/contracts/{IPedAppearanceClient.d.ts → client/IPedAppearanceClient.d.ts} +1 -1
- package/dist/adapters/contracts/server/IEntityServer.d.ts +188 -0
- package/dist/adapters/contracts/server/IEntityServer.js +39 -0
- package/dist/adapters/contracts/{IPlayerServer.d.ts → server/IPlayerServer.d.ts} +52 -9
- package/dist/adapters/contracts/server/IPlayerServer.js +39 -0
- package/dist/adapters/contracts/types/identifier.d.ts +67 -0
- package/dist/adapters/contracts/types/identifier.js +64 -0
- package/dist/adapters/contracts/types/index.d.ts +1 -0
- package/dist/{kernel/shared/appearance → adapters/contracts/types}/index.js +1 -1
- package/dist/adapters/fivem/fivem-capabilities.d.ts +18 -0
- package/dist/adapters/fivem/fivem-capabilities.js +67 -0
- package/dist/adapters/fivem/fivem-engine-events.js +17 -4
- package/dist/adapters/fivem/fivem-entity-server.d.ts +6 -2
- package/dist/adapters/fivem/fivem-entity-server.js +14 -1
- package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +1 -1
- package/dist/adapters/fivem/fivem-ped-appearance-client.js +1 -1
- package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +1 -1
- package/dist/adapters/fivem/fivem-ped-appearance-server.js +1 -1
- package/dist/adapters/fivem/fivem-platform.d.ts +5 -0
- package/dist/adapters/fivem/fivem-platform.js +100 -0
- package/dist/adapters/fivem/fivem-player-server.d.ts +7 -1
- package/dist/adapters/fivem/fivem-player-server.js +19 -1
- package/dist/adapters/fivem/fivem-playerinfo.d.ts +1 -1
- package/dist/adapters/fivem/fivem-vehicle-server.d.ts +1 -1
- package/dist/adapters/fivem/fivem-vehicle-server.js +1 -1
- package/dist/adapters/fivem/index.d.ts +13 -0
- package/dist/adapters/fivem/index.js +31 -0
- package/dist/adapters/index.d.ts +8 -7
- package/dist/adapters/index.js +13 -12
- package/dist/adapters/node/index.d.ts +5 -0
- package/dist/adapters/node/index.js +13 -1
- package/dist/adapters/node/node-capabilities.d.ts +19 -0
- package/dist/adapters/node/node-capabilities.js +54 -0
- package/dist/adapters/node/node-entity-server.d.ts +17 -6
- package/dist/adapters/node/node-entity-server.js +41 -15
- package/dist/adapters/node/node-net-transport.js +2 -2
- package/dist/adapters/node/node-ped-appearance-client.d.ts +1 -1
- package/dist/adapters/node/node-ped-appearance-client.js +1 -1
- package/dist/adapters/node/node-ped-appearance-server.d.ts +1 -1
- package/dist/adapters/node/node-ped-appearance-server.js +1 -1
- package/dist/adapters/node/node-platform.d.ts +5 -0
- package/dist/adapters/node/node-platform.js +103 -0
- package/dist/adapters/node/node-player-server.d.ts +19 -3
- package/dist/adapters/node/node-player-server.js +43 -9
- package/dist/adapters/node/node-playerinfo.d.ts +2 -2
- package/dist/adapters/node/node-playerinfo.js +14 -3
- package/dist/adapters/node/node-vehicle-server.d.ts +1 -1
- package/dist/adapters/node/node-vehicle-server.js +1 -1
- package/dist/adapters/platform/index.d.ts +1 -0
- package/dist/{runtime/server/database.js → adapters/platform/index.js} +1 -7
- package/dist/adapters/platform/platform-registry.d.ts +101 -0
- package/dist/adapters/platform/platform-registry.js +122 -0
- package/dist/adapters/register-capabilities.d.ts +52 -2
- package/dist/adapters/register-capabilities.js +69 -130
- package/dist/adapters/register-client-capabilities.js +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.js +5 -31
- package/dist/kernel/di/container.d.ts +4 -2
- package/dist/kernel/di/container.js +5 -3
- package/dist/kernel/di/metadata.scanner.d.ts +2 -1
- package/dist/kernel/di/metadata.scanner.js +3 -2
- package/dist/kernel/{utils/error → error}/app.error.d.ts +2 -2
- package/dist/kernel/error/common.error-codes.d.ts +1 -0
- package/dist/kernel/error/framework.error-codes.d.ts +12 -0
- package/dist/kernel/error/index.d.ts +4 -0
- package/dist/kernel/error/index.js +18 -0
- package/dist/kernel/{utils/error → error}/security.error.d.ts +1 -1
- package/dist/kernel/error/security.types.js +2 -0
- package/dist/kernel/index.d.ts +4 -5
- package/dist/kernel/index.js +6 -11
- package/dist/kernel/{shared/logger → logger}/core-logger.d.ts +0 -19
- package/dist/kernel/{shared/logger → logger}/core-logger.js +10 -24
- package/dist/kernel/{shared/logger → logger}/logger.env.d.ts +12 -5
- package/dist/kernel/{shared/logger → logger}/logger.env.js +29 -13
- package/dist/kernel/{shared/logger → logger}/logger.service.d.ts +14 -0
- package/dist/kernel/{shared/logger → logger}/logger.service.js +20 -2
- package/dist/kernel/logger/transports/transport.interface.js +2 -0
- package/dist/kernel/shared/index.d.ts +1 -2
- package/dist/kernel/shared/index.js +1 -2
- package/dist/kernel/utils/index.d.ts +0 -2
- package/dist/kernel/utils/index.js +0 -2
- package/dist/kernel/utils/result.d.ts +1 -1
- package/dist/runtime/client/api.d.ts +7 -0
- package/dist/runtime/client/api.js +23 -0
- package/dist/runtime/client/client-bootstrap.js +1 -1
- package/dist/runtime/client/controllers/spawner.controller.d.ts +1 -1
- package/dist/runtime/client/decorators/index.d.ts +2 -2
- package/dist/runtime/client/decorators/index.js +2 -2
- package/dist/runtime/client/decorators/key.d.ts +2 -2
- package/dist/runtime/client/decorators/key.js +3 -3
- package/dist/runtime/client/decorators/localEvent.d.ts +1 -1
- package/dist/runtime/client/decorators/localEvent.js +1 -1
- package/dist/runtime/client/decorators/{tick.d.ts → onTick.d.ts} +1 -1
- package/dist/runtime/client/decorators/{tick.js → onTick.js} +2 -2
- package/dist/runtime/client/decorators/{nui.d.ts → onView.d.ts} +4 -4
- package/dist/runtime/client/decorators/{nui.js → onView.js} +5 -5
- package/dist/runtime/client/index.d.ts +1 -7
- package/dist/runtime/client/index.js +26 -12
- package/dist/runtime/client/player/player.d.ts +1 -1
- package/dist/runtime/client/player/player.loader.js +3 -3
- package/dist/runtime/client/services/appearance.service.d.ts +1 -1
- package/dist/runtime/client/services/appearance.service.js +1 -1
- package/dist/runtime/client/services/blip.service.d.ts +1 -1
- package/dist/runtime/client/services/marker.service.d.ts +1 -1
- package/dist/runtime/client/services/ped.service.d.ts +1 -1
- package/dist/runtime/client/services/spawn.service.d.ts +2 -2
- package/dist/runtime/client/services/spawn.service.js +12 -12
- package/dist/runtime/client/services/textui.service.d.ts +1 -1
- package/dist/runtime/client/services/vehicle-client.service.d.ts +1 -1
- package/dist/runtime/client/services/vehicle.service.d.ts +1 -1
- package/dist/runtime/client/system/processors/export.processor.js +1 -1
- package/dist/runtime/client/system/processors/gameEvent.processor.js +1 -1
- package/dist/runtime/client/system/processors/interval.processor.js +1 -1
- package/dist/runtime/client/system/processors/localEvent.processor.js +1 -1
- package/dist/runtime/client/system/processors/netEvent.processor.js +1 -1
- package/dist/runtime/client/system/processors/nui.processor.js +1 -1
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +1 -1
- package/dist/runtime/client/system/processors/tick.processor.js +1 -1
- package/dist/runtime/client/ui-bridge.js +1 -1
- package/dist/runtime/core/entity.d.ts +168 -0
- package/dist/runtime/core/entity.js +226 -0
- package/dist/runtime/core/index.d.ts +3 -0
- package/dist/runtime/core/index.js +19 -0
- package/dist/runtime/core/spatial.d.ts +5 -0
- package/dist/runtime/core/spatial.js +2 -0
- package/dist/runtime/core/world.d.ts +13 -0
- package/dist/runtime/core/world.js +64 -0
- package/dist/runtime/server/api.d.ts +12 -0
- package/dist/runtime/server/api.js +34 -0
- package/dist/runtime/server/bootstrap.js +58 -103
- package/dist/runtime/server/bus/internal-event.bus.js +1 -1
- package/dist/runtime/server/contracts/index.d.ts +1 -2
- package/dist/runtime/server/contracts/index.js +2 -3
- package/dist/runtime/server/contracts/player-persistence.contract.d.ts +16 -18
- package/dist/runtime/server/contracts/player-persistence.contract.js +16 -18
- 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 +9 -0
- package/dist/runtime/server/contracts/security/permission.types.d.ts +2 -2
- package/dist/runtime/server/contracts/security/principal-provider.contract.d.ts +3 -3
- package/dist/runtime/server/contracts/security/principal-provider.contract.js +2 -2
- package/dist/runtime/server/contracts/security/security-handler.contract.d.ts +2 -2
- package/dist/runtime/server/controllers/chat.controller.d.ts +1 -1
- package/dist/runtime/server/controllers/chat.controller.js +5 -0
- package/dist/runtime/server/controllers/command-export.controller.d.ts +12 -3
- package/dist/runtime/server/controllers/command-export.controller.js +81 -25
- package/dist/runtime/server/controllers/player-export.controller.d.ts +2 -2
- package/dist/runtime/server/controllers/player-export.controller.js +5 -0
- package/dist/runtime/server/controllers/principal-export.controller.js +8 -7
- package/dist/runtime/server/controllers/ready.controller.d.ts +5 -0
- package/dist/runtime/server/controllers/ready.controller.js +37 -0
- package/dist/runtime/server/controllers/remote-command-execution.controller.d.ts +10 -1
- package/dist/runtime/server/controllers/remote-command-execution.controller.js +65 -13
- package/dist/runtime/server/controllers/session.controller.d.ts +2 -2
- package/dist/runtime/server/controllers/session.controller.js +25 -17
- package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -38
- package/dist/runtime/server/controllers/vehicle.controller.js +6 -152
- package/dist/runtime/server/decorators/guard.js +2 -2
- package/dist/runtime/server/decorators/index.d.ts +1 -1
- package/dist/runtime/server/decorators/index.js +1 -1
- package/dist/runtime/server/decorators/{onFiveMEvent.d.ts → onRuntimeEvent.d.ts} +5 -4
- package/dist/runtime/server/decorators/{onFiveMEvent.js → onRuntimeEvent.js} +7 -6
- package/dist/runtime/server/decorators/requiresState.js +3 -3
- package/dist/runtime/server/decorators/throttle.d.ts +1 -1
- package/dist/runtime/server/decorators/throttle.js +1 -1
- package/dist/runtime/server/decorators/utils.d.ts +1 -1
- package/dist/runtime/server/decorators/utils.js +1 -1
- package/dist/runtime/server/devmode/dev-mode.service.d.ts +7 -8
- package/dist/runtime/server/devmode/dev-mode.service.js +18 -46
- package/dist/runtime/server/devmode/index.d.ts +1 -3
- package/dist/runtime/server/devmode/index.js +1 -18
- package/dist/runtime/server/devmode/player-simulator.service.js +3 -3
- package/dist/runtime/server/devmode/state-inspector.service.js +2 -2
- package/dist/runtime/server/devmode/types.d.ts +67 -31
- package/dist/runtime/server/devmode/types.js +1 -4
- package/dist/runtime/server/entities/player.d.ts +80 -66
- package/dist/runtime/server/entities/player.js +137 -98
- package/dist/runtime/server/entities/vehicle.d.ts +3 -3
- package/dist/runtime/server/error-handler.js +5 -5
- package/dist/runtime/server/helpers/normalize-app-error.d.ts +9 -0
- package/dist/runtime/server/helpers/normalize-app-error.js +20 -0
- package/dist/runtime/server/helpers/resolve-method.js +3 -3
- package/dist/runtime/server/index.d.ts +1 -13
- package/dist/runtime/server/index.js +25 -23
- package/dist/runtime/server/runtime.d.ts +32 -281
- package/dist/runtime/server/runtime.js +46 -60
- package/dist/runtime/server/services/appearance.service.d.ts +5 -5
- package/dist/runtime/server/services/appearance.service.js +5 -5
- package/dist/runtime/server/services/chat.service.d.ts +5 -3
- package/dist/runtime/server/services/chat.service.js +17 -12
- package/dist/runtime/server/services/core/command.service.d.ts +9 -1
- package/dist/runtime/server/services/core/command.service.js +16 -7
- package/dist/runtime/server/services/core/player.service.d.ts +12 -16
- package/dist/runtime/server/services/core/player.service.js +42 -47
- package/dist/runtime/server/services/core/principal.service.js +5 -5
- package/dist/runtime/server/services/core/session-recovery.service.d.ts +1 -1
- package/dist/runtime/server/services/core/session-recovery.service.js +2 -2
- package/dist/runtime/server/services/default/default-command-error-observer.d.ts +14 -0
- package/dist/runtime/server/services/default/default-command-error-observer.js +43 -0
- package/dist/runtime/server/services/default/default-principal.provider.d.ts +13 -0
- package/dist/runtime/server/services/default/default-principal.provider.js +38 -0
- package/dist/runtime/server/services/default/default-security.handler.d.ts +1 -1
- package/dist/runtime/server/services/default/default-security.handler.js +1 -1
- package/dist/runtime/server/services/index.d.ts +0 -3
- package/dist/runtime/server/services/index.js +1 -6
- package/dist/runtime/server/services/persistence.service.js +3 -3
- package/dist/runtime/server/services/ports/command-execution.port.d.ts +7 -0
- package/dist/runtime/server/services/ports/principal.port.d.ts +1 -1
- package/dist/runtime/server/services/remote/remote-command.service.d.ts +1 -0
- package/dist/runtime/server/services/remote/remote-command.service.js +7 -3
- package/dist/runtime/server/services/remote/remote-player.service.d.ts +2 -2
- package/dist/runtime/server/services/remote/remote-player.service.js +3 -3
- package/dist/runtime/server/services/remote/server-bridge.js +2 -2
- package/dist/runtime/server/services/services.register.d.ts +2 -5
- package/dist/runtime/server/services/services.register.js +29 -41
- package/dist/runtime/server/services/vehicle-modification.service.js +1 -1
- package/dist/runtime/server/services/vehicle.service.d.ts +3 -3
- package/dist/runtime/server/services/vehicle.service.js +5 -5
- package/dist/runtime/server/setup.d.ts +2 -3
- package/dist/runtime/server/setup.js +10 -11
- package/dist/runtime/server/system/metadata-server.keys.d.ts +1 -1
- package/dist/runtime/server/system/metadata-server.keys.js +1 -1
- package/dist/runtime/server/system/processors/command.processor.js +4 -0
- package/dist/runtime/server/system/processors/export.processor.js +1 -1
- package/dist/runtime/server/system/processors/internalEvent.processor.js +1 -1
- package/dist/runtime/server/system/processors/netEvent.processor.js +8 -9
- package/dist/runtime/server/system/processors/{fivemEvent.processor.d.ts → runtimeEvent.processor.d.ts} +1 -1
- package/dist/runtime/server/system/processors/{fivemEvent.processor.js → runtimeEvent.processor.js} +8 -8
- package/dist/runtime/server/system/processors/tick.processor.js +1 -1
- package/dist/runtime/server/system/processors.register.js +16 -11
- package/dist/runtime/server/system/schema-generator.js +2 -2
- package/dist/runtime/server/types/core-exports.d.ts +6 -6
- package/dist/runtime/server/types/index.d.ts +1 -1
- package/dist/runtime/server/types/index.js +1 -1
- package/dist/runtime/server/types/internal-events.d.ts +1 -1
- package/dist/runtime/server/types/vehicle.types.d.ts +1 -1
- package/package.json +7 -15
- package/dist/adapters/contracts/IEntityServer.d.ts +0 -88
- package/dist/adapters/contracts/IEntityServer.js +0 -13
- package/dist/adapters/contracts/IPlayerServer.js +0 -13
- package/dist/adapters/database/oxmysql.adapter.d.ts +0 -89
- package/dist/adapters/database/oxmysql.adapter.js +0 -149
- package/dist/adapters/database/resource.adapter.d.ts +0 -12
- package/dist/adapters/database/resource.adapter.js +0 -68
- package/dist/kernel/shared/appearance/index.d.ts +0 -1
- package/dist/runtime/index.d.ts +0 -2
- package/dist/runtime/index.js +0 -39
- package/dist/runtime/server/bootstrap.validation.d.ts +0 -12
- package/dist/runtime/server/bootstrap.validation.js +0 -104
- package/dist/runtime/server/contracts/auth-provider.contract.d.ts +0 -58
- package/dist/runtime/server/contracts/auth-provider.contract.js +0 -23
- package/dist/runtime/server/contracts/repository/index.d.ts +0 -57
- package/dist/runtime/server/contracts/repository/index.js +0 -61
- package/dist/runtime/server/contracts/repository/repository.contract.d.ts +0 -224
- package/dist/runtime/server/contracts/repository/repository.contract.js +0 -341
- package/dist/runtime/server/contracts/repository/repository.types.d.ts +0 -51
- package/dist/runtime/server/contracts/repository/repository.types.js +0 -7
- package/dist/runtime/server/database/adapter.registry.d.ts +0 -4
- package/dist/runtime/server/database/adapter.registry.js +0 -14
- package/dist/runtime/server/database/database.contract.d.ts +0 -128
- package/dist/runtime/server/database/database.contract.js +0 -29
- package/dist/runtime/server/database/database.service.d.ts +0 -188
- package/dist/runtime/server/database/database.service.js +0 -287
- package/dist/runtime/server/database/index.d.ts +0 -5
- package/dist/runtime/server/database/index.js +0 -25
- package/dist/runtime/server/database/types.d.ts +0 -67
- package/dist/runtime/server/database/types.js +0 -7
- package/dist/runtime/server/database.d.ts +0 -7
- package/dist/runtime/server/devmode/hot-reload.server.d.ts +0 -74
- package/dist/runtime/server/devmode/hot-reload.server.js +0 -261
- package/dist/runtime/server/services/config.service.d.ts +0 -75
- package/dist/runtime/server/services/config.service.js +0 -116
- package/dist/runtime/server/services/http/http.service.d.ts +0 -50
- package/dist/runtime/server/services/http/http.service.js +0 -126
- /package/dist/adapters/contracts/{IPedAppearanceClient.js → client/IPedAppearanceClient.js} +0 -0
- /package/dist/adapters/contracts/{IPedAppearanceServer.d.ts → server/IPedAppearanceServer.d.ts} +0 -0
- /package/dist/adapters/contracts/{IPedAppearanceServer.js → server/IPedAppearanceServer.js} +0 -0
- /package/dist/adapters/contracts/{IVehicleServer.d.ts → server/IVehicleServer.d.ts} +0 -0
- /package/dist/adapters/contracts/{IVehicleServer.js → server/IVehicleServer.js} +0 -0
- /package/dist/kernel/{utils/error → error}/app.error.js +0 -0
- /package/dist/kernel/{shared/logger/transports/transport.interface.js → error/common.error-codes.js} +0 -0
- /package/dist/{runtime/server/types/security.types.js → kernel/error/framework.error-codes.js} +0 -0
- /package/dist/kernel/{utils/error → error}/security.error.js +0 -0
- /package/dist/{runtime/server/types → kernel/error}/security.types.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/index.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/index.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/logger.config.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/logger.config.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/logger.types.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/logger.types.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/buffered.transport.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/buffered.transport.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/console.transport.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/console.transport.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/dev-transport.factory.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/dev-transport.factory.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/http.transport.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/http.transport.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/index.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/index.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/simple-console.transport.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/simple-console.transport.js +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/transport.interface.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/websocket.transport.d.ts +0 -0
- /package/dist/kernel/{shared/logger → logger}/transports/websocket.transport.js +0 -0
- /package/dist/kernel/shared/{appearance/appearance.interface.d.ts → player-appearance.types.d.ts} +0 -0
- /package/dist/kernel/shared/{appearance/appearance.interface.js → player-appearance.types.js} +0 -0
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.PlayerPersistenceService = void 0;
|
|
10
10
|
const tsyringe_1 = require("tsyringe");
|
|
11
11
|
const container_1 = require("../../../kernel/di/container");
|
|
12
|
-
const logger_1 = require("../../../kernel/
|
|
12
|
+
const logger_1 = require("../../../kernel/logger");
|
|
13
13
|
const contracts_1 = require("../contracts");
|
|
14
14
|
/**
|
|
15
15
|
* Internal service that orchestrates player data persistence.
|
|
@@ -31,8 +31,8 @@ let PlayerPersistenceService = class PlayerPersistenceService {
|
|
|
31
31
|
if (this.initialized)
|
|
32
32
|
return;
|
|
33
33
|
try {
|
|
34
|
-
if (container_1.
|
|
35
|
-
const provider = container_1.
|
|
34
|
+
if (container_1.GLOBAL_CONTAINER.isRegistered(contracts_1.PlayerPersistenceContract)) {
|
|
35
|
+
const provider = container_1.GLOBAL_CONTAINER.resolve(contracts_1.PlayerPersistenceContract);
|
|
36
36
|
this.provider = provider;
|
|
37
37
|
logger_1.loggers.bootstrap.info('Player Persistence Provider initialized', {
|
|
38
38
|
autoSaveEnabled: provider.config.autoSaveEnabled,
|
|
@@ -34,6 +34,13 @@ export declare abstract class CommandExecutionPort {
|
|
|
34
34
|
* @param args - Raw argument strings
|
|
35
35
|
*/
|
|
36
36
|
abstract execute(player: Player, commandName: string, args: string[]): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Returns metadata for a command if registered in this runtime.
|
|
39
|
+
*
|
|
40
|
+
* @remarks
|
|
41
|
+
* Used to enrich error observation (usage/description/etc.).
|
|
42
|
+
*/
|
|
43
|
+
abstract getCommandMeta(commandName: string): CommandMetadata | undefined;
|
|
37
44
|
/**
|
|
38
45
|
* Returns all registered commands.
|
|
39
46
|
*/
|
|
@@ -38,7 +38,7 @@ export declare abstract class PrincipalPort {
|
|
|
38
38
|
/**
|
|
39
39
|
* Gets Principal by account ID (works for offline players too).
|
|
40
40
|
*
|
|
41
|
-
* @param accountId -
|
|
41
|
+
* @param accountId - Account identifier
|
|
42
42
|
* @returns Principal data or null
|
|
43
43
|
*/
|
|
44
44
|
abstract getPrincipalByAccountId(accountId: string): Promise<Principal | null>;
|
|
@@ -24,6 +24,7 @@ import { CommandExecutionPort, type CommandInfo } from '../ports/command-executi
|
|
|
24
24
|
export declare class RemoteCommandService extends CommandExecutionPort {
|
|
25
25
|
private exportsService;
|
|
26
26
|
private commands;
|
|
27
|
+
getCommandMeta(commandName: string): CommandMetadata | undefined;
|
|
27
28
|
constructor(exportsService: IExports);
|
|
28
29
|
/**
|
|
29
30
|
* Gets typed access to CORE resource exports.
|
|
@@ -15,8 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.RemoteCommandService = void 0;
|
|
16
16
|
const tsyringe_1 = require("tsyringe");
|
|
17
17
|
const IExports_1 = require("../../../../adapters/contracts/IExports");
|
|
18
|
-
const
|
|
19
|
-
const
|
|
18
|
+
const app_error_1 = require("../../../../kernel/error/app.error");
|
|
19
|
+
const logger_1 = require("../../../../kernel/logger");
|
|
20
20
|
const command_validation_helper_1 = require("../../helpers/command-validation.helper");
|
|
21
21
|
const runtime_1 = require("../../runtime");
|
|
22
22
|
const command_execution_port_1 = require("../ports/command-execution.port");
|
|
@@ -40,6 +40,10 @@ const command_execution_port_1 = require("../ports/command-execution.port");
|
|
|
40
40
|
* - RESOURCE validates: Zod schema (not serializable, must be local)
|
|
41
41
|
*/
|
|
42
42
|
let RemoteCommandService = class RemoteCommandService extends command_execution_port_1.CommandExecutionPort {
|
|
43
|
+
getCommandMeta(commandName) {
|
|
44
|
+
var _a;
|
|
45
|
+
return (_a = this.commands.get(commandName.toLowerCase())) === null || _a === void 0 ? void 0 : _a.meta;
|
|
46
|
+
}
|
|
43
47
|
constructor(exportsService) {
|
|
44
48
|
super();
|
|
45
49
|
this.exportsService = exportsService;
|
|
@@ -119,7 +123,7 @@ let RemoteCommandService = class RemoteCommandService extends command_execution_
|
|
|
119
123
|
command: commandName,
|
|
120
124
|
resource: GetCurrentResourceName(),
|
|
121
125
|
});
|
|
122
|
-
throw new
|
|
126
|
+
throw new app_error_1.AppError('COMMAND:NOT_FOUND', `Command not found: ${commandName}`, 'server');
|
|
123
127
|
}
|
|
124
128
|
const { meta, handler } = entry;
|
|
125
129
|
return await (0, command_validation_helper_1.validateAndExecuteCommand)(meta, player, args, handler);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IExports, IPlayerInfo } from '../../../../adapters';
|
|
2
|
-
import { IEntityServer } from '../../../../adapters/contracts/IEntityServer';
|
|
3
2
|
import { INetTransport } from '../../../../adapters/contracts/INetTransport';
|
|
4
|
-
import {
|
|
3
|
+
import { IEntityServer } from '../../../../adapters/contracts/server/IEntityServer';
|
|
4
|
+
import { IPlayerServer } from '../../../../adapters/contracts/server/IPlayerServer';
|
|
5
5
|
import { Player } from '../../entities';
|
|
6
6
|
import { PlayerDirectoryPort } from '../ports/player-directory.port';
|
|
7
7
|
/**
|
|
@@ -15,10 +15,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.RemotePlayerService = void 0;
|
|
16
16
|
const tsyringe_1 = require("tsyringe");
|
|
17
17
|
const adapters_1 = require("../../../../adapters");
|
|
18
|
-
const IEntityServer_1 = require("../../../../adapters/contracts/IEntityServer");
|
|
19
18
|
const INetTransport_1 = require("../../../../adapters/contracts/INetTransport");
|
|
20
|
-
const
|
|
21
|
-
const
|
|
19
|
+
const IEntityServer_1 = require("../../../../adapters/contracts/server/IEntityServer");
|
|
20
|
+
const IPlayerServer_1 = require("../../../../adapters/contracts/server/IPlayerServer");
|
|
21
|
+
const logger_1 = require("../../../../kernel/logger");
|
|
22
22
|
const entities_1 = require("../../entities");
|
|
23
23
|
const runtime_1 = require("../../runtime");
|
|
24
24
|
const player_directory_port_1 = require("../ports/player-directory.port");
|
|
@@ -83,12 +83,12 @@ function getCoreExports() {
|
|
|
83
83
|
* @returns An instance of PlayerServiceContract
|
|
84
84
|
*/
|
|
85
85
|
function getPlayerService() {
|
|
86
|
-
return container_1.
|
|
86
|
+
return container_1.GLOBAL_CONTAINER.resolve(player_directory_port_1.PlayerDirectoryPort);
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
89
|
* Gets the principal provider from the dependency injection container
|
|
90
90
|
* @returns An instance of PrincipalProviderContract
|
|
91
91
|
*/
|
|
92
92
|
function getPrincipalProvider() {
|
|
93
|
-
return container_1.
|
|
93
|
+
return container_1.GLOBAL_CONTAINER.resolve(contracts_1.PrincipalProviderContract);
|
|
94
94
|
}
|
|
@@ -3,12 +3,9 @@ import { RuntimeContext } from '../runtime';
|
|
|
3
3
|
* Registers server runtime services in the dependency injection container.
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
|
-
* This function
|
|
7
|
-
* - In `RESOURCE` mode, some features require explicit grants (`resourceGrants`).
|
|
6
|
+
* This function handles service bindings based on the runtime mode:
|
|
8
7
|
* - Service bindings may resolve to local implementations (CORE mode) or remote proxies.
|
|
9
8
|
*
|
|
10
|
-
* @param ctx - Runtime context containing mode
|
|
11
|
-
*
|
|
12
|
-
* @throws Error - If a forbidden feature is enabled in `RESOURCE` mode without the corresponding grant.
|
|
9
|
+
* @param ctx - Runtime context containing mode and feature flags.
|
|
13
10
|
*/
|
|
14
11
|
export declare function registerServicesServer(ctx: RuntimeContext): void;
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerServicesServer = registerServicesServer;
|
|
4
4
|
const index_1 = require("../../../kernel/di/index");
|
|
5
|
-
const
|
|
5
|
+
const world_1 = require("../../core/world");
|
|
6
|
+
const principal_provider_contract_1 = require("../contracts/security/principal-provider.contract");
|
|
6
7
|
const chat_service_1 = require("./chat.service");
|
|
7
8
|
const command_service_1 = require("./core/command.service");
|
|
8
9
|
const player_service_1 = require("./core/player.service");
|
|
9
10
|
const principal_service_1 = require("./core/principal.service");
|
|
10
11
|
const session_recovery_service_1 = require("./core/session-recovery.service");
|
|
11
|
-
const
|
|
12
|
+
const default_principal_provider_1 = require("./default/default-principal.provider");
|
|
12
13
|
const persistence_service_1 = require("./persistence.service");
|
|
13
14
|
const command_execution_port_1 = require("./ports/command-execution.port");
|
|
14
15
|
const player_directory_port_1 = require("./ports/player-directory.port");
|
|
@@ -21,80 +22,67 @@ const remote_principal_service_1 = require("./remote/remote-principal.service");
|
|
|
21
22
|
* Registers server runtime services in the dependency injection container.
|
|
22
23
|
*
|
|
23
24
|
* @remarks
|
|
24
|
-
* This function
|
|
25
|
-
* - In `RESOURCE` mode, some features require explicit grants (`resourceGrants`).
|
|
25
|
+
* This function handles service bindings based on the runtime mode:
|
|
26
26
|
* - Service bindings may resolve to local implementations (CORE mode) or remote proxies.
|
|
27
27
|
*
|
|
28
|
-
* @param ctx - Runtime context containing mode
|
|
29
|
-
*
|
|
30
|
-
* @throws Error - If a forbidden feature is enabled in `RESOURCE` mode without the corresponding grant.
|
|
28
|
+
* @param ctx - Runtime context containing mode and feature flags.
|
|
31
29
|
*/
|
|
32
30
|
function registerServicesServer(ctx) {
|
|
33
|
-
const { mode, features
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
if (features.auth.enabled && !(resourceGrants === null || resourceGrants === void 0 ? void 0 : resourceGrants.auth)) {
|
|
42
|
-
throw new Error(`[OpenCore] Feature 'auth' is forbidden in RESOURCE mode unless resourceGrants.auth=true`);
|
|
43
|
-
}
|
|
31
|
+
const { mode, features } = ctx;
|
|
32
|
+
// ═══════════════════════════════════════════════════════════════
|
|
33
|
+
// PHASE 1: Register all service types FIRST (recipes only)
|
|
34
|
+
// ═══════════════════════════════════════════════════════════════
|
|
35
|
+
// WorldContext must be registered first as it has no dependencies
|
|
36
|
+
if (!index_1.GLOBAL_CONTAINER.isRegistered(world_1.WorldContext)) {
|
|
37
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(world_1.WorldContext);
|
|
44
38
|
}
|
|
45
39
|
if (features.players.enabled) {
|
|
46
40
|
if (features.players.provider === 'local' || mode === 'CORE') {
|
|
47
|
-
index_1.
|
|
48
|
-
index_1.
|
|
49
|
-
index_1.
|
|
41
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(player_service_1.PlayerService);
|
|
42
|
+
index_1.GLOBAL_CONTAINER.register(player_directory_port_1.PlayerDirectoryPort, { useToken: player_service_1.PlayerService });
|
|
43
|
+
index_1.GLOBAL_CONTAINER.register(player_session_lifecycle_port_1.PlayerSessionLifecyclePort, { useToken: player_service_1.PlayerService });
|
|
50
44
|
}
|
|
51
45
|
else {
|
|
52
|
-
index_1.
|
|
46
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(player_directory_port_1.PlayerDirectoryPort, remote_player_service_1.RemotePlayerService);
|
|
53
47
|
}
|
|
54
48
|
}
|
|
55
49
|
if (mode === 'RESOURCE' && features.players.enabled) {
|
|
56
|
-
index_1.
|
|
50
|
+
index_1.GLOBAL_CONTAINER.register(player_session_lifecycle_port_1.PlayerSessionLifecyclePort, {
|
|
57
51
|
useFactory: () => {
|
|
58
52
|
throw new Error('[OpenCore] PlayerSessionLifecyclePort is not available in RESOURCE mode');
|
|
59
53
|
},
|
|
60
54
|
});
|
|
61
55
|
}
|
|
62
56
|
if (features.sessionLifecycle.enabled && mode !== 'RESOURCE') {
|
|
63
|
-
index_1.
|
|
64
|
-
index_1.
|
|
57
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(persistence_service_1.PlayerPersistenceService, persistence_service_1.PlayerPersistenceService);
|
|
58
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(session_recovery_service_1.SessionRecoveryService, session_recovery_service_1.SessionRecoveryService);
|
|
65
59
|
}
|
|
66
60
|
if (features.principal.enabled) {
|
|
67
61
|
if (features.principal.provider === 'local' || mode === 'CORE' || mode === 'STANDALONE') {
|
|
68
62
|
// CORE/STANDALONE: Local principal service wraps user's PrincipalProviderContract
|
|
69
|
-
index_1.
|
|
70
|
-
|
|
63
|
+
if (!index_1.GLOBAL_CONTAINER.isRegistered(principal_provider_contract_1.PrincipalProviderContract)) {
|
|
64
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(principal_provider_contract_1.PrincipalProviderContract, default_principal_provider_1.DefaultPrincipalProvider);
|
|
65
|
+
}
|
|
66
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(principal_service_1.LocalPrincipalService);
|
|
67
|
+
index_1.GLOBAL_CONTAINER.register(principal_port_1.PrincipalPort, { useToken: principal_service_1.LocalPrincipalService });
|
|
71
68
|
}
|
|
72
69
|
else {
|
|
73
70
|
// RESOURCE: Remote principal service delegates to CORE
|
|
74
|
-
index_1.
|
|
71
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(principal_port_1.PrincipalPort, remote_principal_service_1.RemotePrincipalService);
|
|
75
72
|
}
|
|
76
73
|
}
|
|
77
|
-
if (features.auth.enabled && features.auth.provider === 'core' && mode === 'RESOURCE') {
|
|
78
|
-
throw new Error("[OpenCore] Feature 'auth' with provider='core' in RESOURCE mode is not implemented yet (missing RemoteAuthProvider).");
|
|
79
|
-
}
|
|
80
|
-
if (features.database.enabled) {
|
|
81
|
-
index_1.di.registerSingleton(database_1.DatabaseService);
|
|
82
|
-
}
|
|
83
74
|
if (features.commands.enabled) {
|
|
84
75
|
if (features.commands.provider === 'local' || mode === 'CORE') {
|
|
85
76
|
// CORE/STANDALONE: local command execution
|
|
86
|
-
index_1.
|
|
87
|
-
index_1.
|
|
77
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(command_service_1.CommandService);
|
|
78
|
+
index_1.GLOBAL_CONTAINER.register(command_execution_port_1.CommandExecutionPort, { useToken: command_service_1.CommandService });
|
|
88
79
|
}
|
|
89
80
|
else {
|
|
90
81
|
// RESOURCE: remote command execution (delegates to CORE)
|
|
91
|
-
index_1.
|
|
82
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(command_execution_port_1.CommandExecutionPort, remote_command_service_1.RemoteCommandService);
|
|
92
83
|
}
|
|
93
84
|
}
|
|
94
|
-
if (features.http.enabled) {
|
|
95
|
-
index_1.di.registerSingleton(http_service_1.HttpService);
|
|
96
|
-
}
|
|
97
85
|
if (features.chat.enabled) {
|
|
98
|
-
index_1.
|
|
86
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(chat_service_1.ChatService);
|
|
99
87
|
}
|
|
100
88
|
}
|
|
@@ -14,7 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.VehicleModificationService = void 0;
|
|
16
16
|
const tsyringe_1 = require("tsyringe");
|
|
17
|
-
const logger_1 = require("../../../kernel/
|
|
17
|
+
const logger_1 = require("../../../kernel/logger");
|
|
18
18
|
const vehicle_service_1 = require("./vehicle.service");
|
|
19
19
|
/**
|
|
20
20
|
* Service for handling vehicle modifications with validation.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IEntityServer } from '../../../adapters/contracts/IEntityServer';
|
|
2
1
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
3
2
|
import { INetTransport } from '../../../adapters/contracts/INetTransport';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
4
|
+
import { IPlayerServer } from '../../../adapters/contracts/server/IPlayerServer';
|
|
5
|
+
import { IVehicleServer } from '../../../adapters/contracts/server/IVehicleServer';
|
|
6
6
|
import { Vehicle } from '../entities/vehicle';
|
|
7
7
|
import { SerializedVehicleData, VehicleCreateOptions, VehicleSpawnResult } from '../types/vehicle.types';
|
|
8
8
|
import { PlayerDirectoryPort } from './ports/player-directory.port';
|
|
@@ -14,12 +14,12 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.VehicleService = void 0;
|
|
16
16
|
const tsyringe_1 = require("tsyringe");
|
|
17
|
-
const IEntityServer_1 = require("../../../adapters/contracts/IEntityServer");
|
|
18
17
|
const IHasher_1 = require("../../../adapters/contracts/IHasher");
|
|
19
18
|
const INetTransport_1 = require("../../../adapters/contracts/INetTransport");
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
19
|
+
const IEntityServer_1 = require("../../../adapters/contracts/server/IEntityServer");
|
|
20
|
+
const IPlayerServer_1 = require("../../../adapters/contracts/server/IPlayerServer");
|
|
21
|
+
const IVehicleServer_1 = require("../../../adapters/contracts/server/IVehicleServer");
|
|
22
|
+
const logger_1 = require("../../../kernel/logger");
|
|
23
23
|
const vehicle_1 = require("../entities/vehicle");
|
|
24
24
|
const player_directory_port_1 = require("./ports/player-directory.port");
|
|
25
25
|
/**
|
|
@@ -295,7 +295,7 @@ let VehicleService = class VehicleService {
|
|
|
295
295
|
const player = this.playerDirectory.getByClient(clientID);
|
|
296
296
|
if (!player)
|
|
297
297
|
return false;
|
|
298
|
-
const playerPed = this.playerServer.getPed(player.
|
|
298
|
+
const playerPed = this.playerServer.getPed(player.clientID.toString());
|
|
299
299
|
if (!playerPed || playerPed === 0)
|
|
300
300
|
return false;
|
|
301
301
|
const playerPos = this.entityServer.getCoords(playerPed);
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ClassConstructor } from '../../kernel/di/index';
|
|
2
|
-
import { PlayerPersistenceContract, PrincipalProviderContract } from './contracts';
|
|
3
|
-
import { AuthProviderContract } from './contracts/auth-provider.contract';
|
|
2
|
+
import { CommandErrorObserverContract, PlayerPersistenceContract, PrincipalProviderContract } from './contracts';
|
|
4
3
|
import { NetEventSecurityObserverContract } from './contracts/security/net-event-security-observer.contract';
|
|
5
4
|
import { SecurityHandlerContract } from './contracts/security/security-handler.contract';
|
|
6
5
|
export declare function setPrincipalProvider(provider: ClassConstructor<PrincipalProviderContract>): void;
|
|
7
|
-
export declare function setAuthProvider(provider: ClassConstructor<AuthProviderContract>): void;
|
|
8
6
|
export declare function setSecurityHandler(handler: ClassConstructor<SecurityHandlerContract>): void;
|
|
9
7
|
export declare function setPersistenceProvider(provider: ClassConstructor<PlayerPersistenceContract>): void;
|
|
10
8
|
export declare function setNetEventSecurityObserver(observer: ClassConstructor<NetEventSecurityObserverContract>): void;
|
|
9
|
+
export declare function setCommandErrorObserver(observer: ClassConstructor<CommandErrorObserverContract>): void;
|
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.setPrincipalProvider = setPrincipalProvider;
|
|
4
|
-
exports.setAuthProvider = setAuthProvider;
|
|
5
4
|
exports.setSecurityHandler = setSecurityHandler;
|
|
6
5
|
exports.setPersistenceProvider = setPersistenceProvider;
|
|
7
6
|
exports.setNetEventSecurityObserver = setNetEventSecurityObserver;
|
|
7
|
+
exports.setCommandErrorObserver = setCommandErrorObserver;
|
|
8
8
|
const index_1 = require("../../kernel/di/index");
|
|
9
|
-
const logger_1 = require("../../kernel/
|
|
9
|
+
const logger_1 = require("../../kernel/logger");
|
|
10
10
|
const contracts_1 = require("./contracts");
|
|
11
|
-
const auth_provider_contract_1 = require("./contracts/auth-provider.contract");
|
|
12
11
|
const net_event_security_observer_contract_1 = require("./contracts/security/net-event-security-observer.contract");
|
|
13
12
|
const security_handler_contract_1 = require("./contracts/security/security-handler.contract");
|
|
14
13
|
function setPrincipalProvider(provider) {
|
|
15
|
-
index_1.
|
|
14
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(contracts_1.PrincipalProviderContract, provider);
|
|
16
15
|
logger_1.loggers.bootstrap.info(`Principal Provider configured: ${provider.name}`);
|
|
17
16
|
}
|
|
18
|
-
function setAuthProvider(provider) {
|
|
19
|
-
index_1.di.registerSingleton(auth_provider_contract_1.AuthProviderContract, provider);
|
|
20
|
-
logger_1.loggers.bootstrap.info(`Auth Provider configured: ${provider.name}`);
|
|
21
|
-
}
|
|
22
17
|
function setSecurityHandler(handler) {
|
|
23
|
-
index_1.
|
|
18
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(security_handler_contract_1.SecurityHandlerContract, handler);
|
|
24
19
|
logger_1.loggers.bootstrap.info(`Security Handler configured: ${handler.name}`);
|
|
25
20
|
}
|
|
26
21
|
function setPersistenceProvider(provider) {
|
|
27
|
-
index_1.
|
|
22
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(contracts_1.PlayerPersistenceContract, provider);
|
|
28
23
|
logger_1.loggers.bootstrap.info(`Persistence Provider configured: ${provider.name}`);
|
|
29
24
|
}
|
|
30
25
|
function setNetEventSecurityObserver(observer) {
|
|
31
|
-
index_1.
|
|
26
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(net_event_security_observer_contract_1.NetEventSecurityObserverContract, observer);
|
|
32
27
|
logger_1.loggers.bootstrap.info(`NetEvent Security Observer configured: ${observer.name}`);
|
|
33
28
|
}
|
|
29
|
+
function setCommandErrorObserver(observer) {
|
|
30
|
+
index_1.GLOBAL_CONTAINER.registerSingleton(contracts_1.CommandErrorObserverContract, observer);
|
|
31
|
+
logger_1.loggers.bootstrap.info(`Command Security Observer configured: ${observer.name}`);
|
|
32
|
+
}
|
|
@@ -7,7 +7,7 @@ exports.METADATA_KEYS = {
|
|
|
7
7
|
NET_EVENT: 'decorator:meta:net_event',
|
|
8
8
|
TICK: 'decorator:meta:tick',
|
|
9
9
|
INTERNAL_EVENT: 'decorator:meta:internal_event',
|
|
10
|
-
|
|
10
|
+
RUNTIME_EVENT: 'decorator:meta:runtime_event',
|
|
11
11
|
EXPORT: 'decorator:meta:export',
|
|
12
12
|
PUBLIC: 'decorator:meta:public',
|
|
13
13
|
THROTTLE: 'decorator:throttle',
|
|
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.CommandProcessor = void 0;
|
|
13
16
|
const tsyringe_1 = require("tsyringe");
|
|
@@ -50,5 +53,6 @@ let CommandProcessor = class CommandProcessor {
|
|
|
50
53
|
exports.CommandProcessor = CommandProcessor;
|
|
51
54
|
exports.CommandProcessor = CommandProcessor = __decorate([
|
|
52
55
|
(0, tsyringe_1.injectable)(),
|
|
56
|
+
__param(0, (0, tsyringe_1.inject)(command_execution_port_1.CommandExecutionPort)),
|
|
53
57
|
__metadata("design:paramtypes", [command_execution_port_1.CommandExecutionPort])
|
|
54
58
|
], CommandProcessor);
|
|
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.ExportProcessor = void 0;
|
|
16
16
|
const tsyringe_1 = require("tsyringe");
|
|
17
17
|
const IExports_1 = require("../../../../adapters/contracts/IExports");
|
|
18
|
-
const logger_1 = require("../../../../kernel/
|
|
18
|
+
const logger_1 = require("../../../../kernel/logger");
|
|
19
19
|
const resolve_method_1 = require("../../helpers/resolve-method");
|
|
20
20
|
const metadata_server_keys_1 = require("../metadata-server.keys");
|
|
21
21
|
let ExportProcessor = class ExportProcessor {
|
|
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.InternalEventProcessor = void 0;
|
|
10
10
|
const tsyringe_1 = require("tsyringe");
|
|
11
|
-
const logger_1 = require("../../../../kernel/
|
|
11
|
+
const logger_1 = require("../../../../kernel/logger");
|
|
12
12
|
const internal_event_bus_1 = require("../../bus/internal-event.bus");
|
|
13
13
|
const resolve_method_1 = require("../../helpers/resolve-method");
|
|
14
14
|
const metadata_server_keys_1 = require("../metadata-server.keys");
|
|
@@ -18,10 +18,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.NetEventProcessor = void 0;
|
|
19
19
|
const tsyringe_1 = require("tsyringe");
|
|
20
20
|
const zod_1 = __importDefault(require("zod"));
|
|
21
|
+
const __1 = require("../../../../");
|
|
21
22
|
const INetTransport_1 = require("../../../../adapters/contracts/INetTransport");
|
|
22
|
-
const logger_1 = require("../../../../kernel/
|
|
23
|
-
const utils_1 = require("../../../../kernel/utils");
|
|
24
|
-
const security_error_1 = require("../../../../kernel/utils/error/security.error");
|
|
23
|
+
const logger_1 = require("../../../../kernel/logger");
|
|
25
24
|
const net_event_security_observer_contract_1 = require("../../contracts/security/net-event-security-observer.contract");
|
|
26
25
|
const security_handler_contract_1 = require("../../contracts/security/security-handler.contract");
|
|
27
26
|
const resolve_method_1 = require("../../helpers/resolve-method");
|
|
@@ -62,7 +61,6 @@ let NetEventProcessor = class NetEventProcessor {
|
|
|
62
61
|
event: metadata.eventName,
|
|
63
62
|
clientId: clientId,
|
|
64
63
|
});
|
|
65
|
-
player.emit('core:auth:required', { event: metadata.eventName });
|
|
66
64
|
return;
|
|
67
65
|
}
|
|
68
66
|
let validatedArgs = args;
|
|
@@ -71,7 +69,7 @@ let NetEventProcessor = class NetEventProcessor {
|
|
|
71
69
|
schema = (_a = metadata.schema) !== null && _a !== void 0 ? _a : (0, schema_generator_1.generateSchemaFromTypes)(metadata.paramTypes);
|
|
72
70
|
}
|
|
73
71
|
catch (error) {
|
|
74
|
-
if (error instanceof
|
|
72
|
+
if (error instanceof __1.AppError) {
|
|
75
73
|
logger_1.loggers.netEvent.fatal(error.message, { playerId: clientId }, error);
|
|
76
74
|
return;
|
|
77
75
|
}
|
|
@@ -87,7 +85,7 @@ let NetEventProcessor = class NetEventProcessor {
|
|
|
87
85
|
}
|
|
88
86
|
else {
|
|
89
87
|
if (args.length !== 1) {
|
|
90
|
-
throw new
|
|
88
|
+
throw new __1.SecurityError('LOG', `Invalid argument count in ${metadata.eventName}`, {
|
|
91
89
|
expected: 1,
|
|
92
90
|
received: args.length,
|
|
93
91
|
});
|
|
@@ -107,7 +105,7 @@ let NetEventProcessor = class NetEventProcessor {
|
|
|
107
105
|
});
|
|
108
106
|
return;
|
|
109
107
|
}
|
|
110
|
-
if (error instanceof
|
|
108
|
+
if (error instanceof __1.SecurityError) {
|
|
111
109
|
await this.handleInvalidPayload({
|
|
112
110
|
player,
|
|
113
111
|
event: metadata.eventName,
|
|
@@ -128,7 +126,7 @@ let NetEventProcessor = class NetEventProcessor {
|
|
|
128
126
|
await handler(player, ...validatedArgs);
|
|
129
127
|
}
|
|
130
128
|
catch (error) {
|
|
131
|
-
if (error instanceof
|
|
129
|
+
if (error instanceof __1.SecurityError) {
|
|
132
130
|
await this.handleInvalidPayload({
|
|
133
131
|
player,
|
|
134
132
|
event: metadata.eventName,
|
|
@@ -186,7 +184,7 @@ let NetEventProcessor = class NetEventProcessor {
|
|
|
186
184
|
return;
|
|
187
185
|
}
|
|
188
186
|
if (params.zodError) {
|
|
189
|
-
const violation = new
|
|
187
|
+
const violation = new __1.SecurityError('LOG', `Invalid data received in ${params.event}`, {
|
|
190
188
|
issues: zodSummary !== null && zodSummary !== void 0 ? zodSummary : params.zodError.message,
|
|
191
189
|
});
|
|
192
190
|
await this.safeHandleViolation(params.player, violation, params.event);
|
|
@@ -230,6 +228,7 @@ let NetEventProcessor = class NetEventProcessor {
|
|
|
230
228
|
exports.NetEventProcessor = NetEventProcessor;
|
|
231
229
|
exports.NetEventProcessor = NetEventProcessor = __decorate([
|
|
232
230
|
(0, tsyringe_1.injectable)(),
|
|
231
|
+
__param(0, (0, tsyringe_1.inject)(player_directory_port_1.PlayerDirectoryPort)),
|
|
233
232
|
__param(1, (0, tsyringe_1.inject)(security_handler_contract_1.SecurityHandlerContract)),
|
|
234
233
|
__param(2, (0, tsyringe_1.inject)(net_event_security_observer_contract_1.NetEventSecurityObserverContract)),
|
|
235
234
|
__param(3, (0, tsyringe_1.inject)(INetTransport_1.INetTransport)),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IEngineEvents } from '../../../../adapters/contracts/IEngineEvents';
|
|
2
2
|
import { type DecoratorProcessor } from '../../../../kernel/di/index';
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class RuntimeEventProcessor implements DecoratorProcessor {
|
|
4
4
|
private readonly engineEvents;
|
|
5
5
|
readonly metadataKey: string;
|
|
6
6
|
constructor(engineEvents: IEngineEvents);
|
package/dist/runtime/server/system/processors/{fivemEvent.processor.js → runtimeEvent.processor.js}
RENAMED
|
@@ -12,19 +12,19 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.RuntimeEventProcessor = void 0;
|
|
16
16
|
const tsyringe_1 = require("tsyringe");
|
|
17
17
|
const IEngineEvents_1 = require("../../../../adapters/contracts/IEngineEvents");
|
|
18
|
-
const logger_1 = require("../../../../kernel/
|
|
18
|
+
const logger_1 = require("../../../../kernel/logger");
|
|
19
19
|
const resolve_method_1 = require("../../helpers/resolve-method");
|
|
20
20
|
const metadata_server_keys_1 = require("../metadata-server.keys");
|
|
21
|
-
let
|
|
21
|
+
let RuntimeEventProcessor = class RuntimeEventProcessor {
|
|
22
22
|
constructor(engineEvents) {
|
|
23
23
|
this.engineEvents = engineEvents;
|
|
24
|
-
this.metadataKey = metadata_server_keys_1.METADATA_KEYS.
|
|
24
|
+
this.metadataKey = metadata_server_keys_1.METADATA_KEYS.RUNTIME_EVENT;
|
|
25
25
|
}
|
|
26
26
|
process(instance, methodName, metadata) {
|
|
27
|
-
const result = (0, resolve_method_1.resolveMethod)(instance, methodName, `[
|
|
27
|
+
const result = (0, resolve_method_1.resolveMethod)(instance, methodName, `[RuntimeEventProcessor] Method "${methodName}" not found`);
|
|
28
28
|
if (!result)
|
|
29
29
|
return;
|
|
30
30
|
const { handler, handlerName } = result;
|
|
@@ -42,9 +42,9 @@ let FiveMEventProcessor = class FiveMEventProcessor {
|
|
|
42
42
|
logger_1.loggers.eventBus.debug(`Registered FiveM event: ${metadata.event} -> ${handlerName}`);
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
|
-
exports.
|
|
46
|
-
exports.
|
|
45
|
+
exports.RuntimeEventProcessor = RuntimeEventProcessor;
|
|
46
|
+
exports.RuntimeEventProcessor = RuntimeEventProcessor = __decorate([
|
|
47
47
|
(0, tsyringe_1.injectable)(),
|
|
48
48
|
__param(0, (0, tsyringe_1.inject)(IEngineEvents_1.IEngineEvents)),
|
|
49
49
|
__metadata("design:paramtypes", [IEngineEvents_1.IEngineEvents])
|
|
50
|
-
],
|
|
50
|
+
], RuntimeEventProcessor);
|
|
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.TickProcessor = void 0;
|
|
16
16
|
const tsyringe_1 = require("tsyringe");
|
|
17
17
|
const ITick_1 = require("../../../../adapters/contracts/ITick");
|
|
18
|
-
const logger_1 = require("../../../../kernel/
|
|
18
|
+
const logger_1 = require("../../../../kernel/logger");
|
|
19
19
|
const metadata_server_keys_1 = require("../metadata-server.keys");
|
|
20
20
|
let TickProcessor = class TickProcessor {
|
|
21
21
|
constructor(tickService) {
|