@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,213 @@
|
|
|
1
|
+
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
2
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
3
|
+
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
4
|
+
import { IPedServer } from '../../../adapters/contracts/server/IPedServer';
|
|
5
|
+
import { Vector3 } from '../../../kernel/utils/vector3';
|
|
6
|
+
import { WorldContext } from '../../core/world';
|
|
7
|
+
import { NPC } from '../entities/npc';
|
|
8
|
+
import { NpcSpawnOptions, NpcSpawnResult, SerializedNpcData } from '../types/npc.types';
|
|
9
|
+
/**
|
|
10
|
+
* Server-side API responsible for the full NPC (ped) lifecycle:
|
|
11
|
+
* spawn, registry, queries, spatial search, serialization and deletion.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Prefer consuming this API from gameplay / AI systems instead of calling natives directly.
|
|
15
|
+
* This class keeps a stable in-memory registry keyed by `npcId` and maintains secondary
|
|
16
|
+
* indexes by `handle` and (when networked) by `netId`.
|
|
17
|
+
*
|
|
18
|
+
* The registry is authoritative for lookups, while `NPC.exists` reflects runtime existence.
|
|
19
|
+
*/
|
|
20
|
+
export declare class Npcs {
|
|
21
|
+
private readonly world;
|
|
22
|
+
private readonly entityServer;
|
|
23
|
+
private readonly pedServer;
|
|
24
|
+
private readonly hasher;
|
|
25
|
+
private readonly events;
|
|
26
|
+
private readonly npcById;
|
|
27
|
+
private readonly idByHandle;
|
|
28
|
+
private readonly idByNetId;
|
|
29
|
+
private readonly adapters;
|
|
30
|
+
constructor(world: WorldContext, entityServer: IEntityServer, pedServer: IPedServer, hasher: IHasher, events: EventsAPI<'server'>);
|
|
31
|
+
/**
|
|
32
|
+
* Spawn (create) a single NPC and register it into the runtime.
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* - Generates a UUID if `options.id` is not provided.
|
|
36
|
+
* - Prevents duplicate `npcId` collisions within this runtime.
|
|
37
|
+
* - Waits until the underlying entity exists (polling) and fails fast on timeout.
|
|
38
|
+
* - Applies routing bucket, orphan mode (persistent), and metadata after spawn.
|
|
39
|
+
* - Registers the NPC in `WorldContext` and internal indexes.
|
|
40
|
+
*
|
|
41
|
+
* @param options - Spawn options (model, position, routingBucket, persistence, metadata, etc.).
|
|
42
|
+
* @returns An object containing a `result` (success/error) and the created `npc` on success.
|
|
43
|
+
*/
|
|
44
|
+
create(options: NpcSpawnOptions): Promise<{
|
|
45
|
+
result: NpcSpawnResult;
|
|
46
|
+
npc?: NPC;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Spawn multiple NPCs sequentially using {@link create}.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* This method is intentionally sequential to keep spawn load predictable and to preserve
|
|
53
|
+
* deterministic side-effects (logging, indexing, world registration).
|
|
54
|
+
*
|
|
55
|
+
* If you want parallel spawning, you can build it externally, but be mindful of server load
|
|
56
|
+
* and potential native limits.
|
|
57
|
+
*
|
|
58
|
+
* @param options - List of spawn requests.
|
|
59
|
+
* @returns A list of per-item results, each containing a `result` and optionally an `npc`.
|
|
60
|
+
*/
|
|
61
|
+
createMany(options: NpcSpawnOptions[]): Promise<Array<{
|
|
62
|
+
result: NpcSpawnResult;
|
|
63
|
+
npc?: NPC;
|
|
64
|
+
}>>;
|
|
65
|
+
/**
|
|
66
|
+
* Get an NPC instance by its logical id (`npcId`).
|
|
67
|
+
*
|
|
68
|
+
* @param id - NPC logical identifier.
|
|
69
|
+
* @returns The NPC instance if present in the registry, otherwise `undefined`.
|
|
70
|
+
*/
|
|
71
|
+
getById(id: string): NPC | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Get an NPC instance by its ped handle.
|
|
74
|
+
*
|
|
75
|
+
* @remarks
|
|
76
|
+
* Handles are runtime-specific and can become invalid if the entity is removed.
|
|
77
|
+
* This lookup uses the internal `handle -> npcId` index.
|
|
78
|
+
*
|
|
79
|
+
* @param handle - Ped handle.
|
|
80
|
+
* @returns The NPC instance if present, otherwise `undefined`.
|
|
81
|
+
*/
|
|
82
|
+
getByHandle(handle: number): NPC | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* Get an NPC instance by its network id (netId).
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* Only NPCs created with `networked=true` will have a netId and be indexed here.
|
|
88
|
+
*
|
|
89
|
+
* @param netId - Network id of the entity.
|
|
90
|
+
* @returns The NPC instance if present, otherwise `undefined`.
|
|
91
|
+
*/
|
|
92
|
+
getByNetId(netId: number): NPC | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* Return a snapshot array of all NPCs currently registered.
|
|
95
|
+
*
|
|
96
|
+
* @remarks
|
|
97
|
+
* This includes NPCs that may no longer exist at runtime (e.g. removed externally),
|
|
98
|
+
* until {@link cleanupOrphans} is called.
|
|
99
|
+
*
|
|
100
|
+
* @returns An array of NPC instances.
|
|
101
|
+
*/
|
|
102
|
+
getAll(): NPC[];
|
|
103
|
+
/**
|
|
104
|
+
* Return all NPCs whose current routing bucket (dimension) matches the given bucket.
|
|
105
|
+
*
|
|
106
|
+
* @remarks
|
|
107
|
+
* The check is performed using `npc.dimension` (which resolves via entity server).
|
|
108
|
+
*
|
|
109
|
+
* @param bucket - Routing bucket / dimension.
|
|
110
|
+
* @returns An array of NPC instances in the given bucket.
|
|
111
|
+
*/
|
|
112
|
+
getInRoutingBucket(bucket: number): NPC[];
|
|
113
|
+
/**
|
|
114
|
+
* Find NPCs within `radius` of a position (Euclidean distance in 3D).
|
|
115
|
+
*
|
|
116
|
+
* @remarks
|
|
117
|
+
* - This method performs a linear scan over registered NPCs.
|
|
118
|
+
* - Uses squared distance (avoids `Math.sqrt`) for performance.
|
|
119
|
+
* - Skips NPCs that no longer exist (`npc.exists === false`).
|
|
120
|
+
* - Optionally filters by routing bucket (dimension).
|
|
121
|
+
*
|
|
122
|
+
* @param position - Center position.
|
|
123
|
+
* @param radius - Search radius (negative values are clamped to 0).
|
|
124
|
+
* @param bucket - Optional routing bucket filter.
|
|
125
|
+
* @returns Matching NPCs (order is insertion/iteration order).
|
|
126
|
+
*/
|
|
127
|
+
findNear(position: Vector3, radius: number, bucket?: number): NPC[];
|
|
128
|
+
/**
|
|
129
|
+
* Return the current number of NPCs tracked in the registry.
|
|
130
|
+
*
|
|
131
|
+
* @remarks
|
|
132
|
+
* This is the registry size, not necessarily the number of NPCs that still exist in the world.
|
|
133
|
+
* Use {@link cleanupOrphans} to remove non-existing NPCs from the registry.
|
|
134
|
+
*
|
|
135
|
+
* @returns Registry count.
|
|
136
|
+
*/
|
|
137
|
+
count(): number;
|
|
138
|
+
/**
|
|
139
|
+
* Check if a given `npcId` is registered and the underlying entity currently exists.
|
|
140
|
+
*
|
|
141
|
+
* @param id - NPC logical identifier.
|
|
142
|
+
* @returns `true` if registered and exists in the runtime, otherwise `false`.
|
|
143
|
+
*/
|
|
144
|
+
exists(id: string): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Delete an NPC by its logical id and remove it from internal registries.
|
|
147
|
+
*
|
|
148
|
+
* @remarks
|
|
149
|
+
* - Calls {@link NPC.delete} (ped deletion) if the entity exists.
|
|
150
|
+
* - Removes the NPC from internal indexes and {@link WorldContext}.
|
|
151
|
+
* - Emits the `opencore:npc:deleted` server event to `'all'` with the `npcId`.
|
|
152
|
+
*
|
|
153
|
+
* @param id - NPC logical identifier.
|
|
154
|
+
* @returns `true` if an NPC was found and deleted, otherwise `false`.
|
|
155
|
+
*/
|
|
156
|
+
deleteById(id: string): boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Delete an NPC by its handle.
|
|
159
|
+
*
|
|
160
|
+
* @remarks
|
|
161
|
+
* Resolves `handle -> npcId` and delegates to {@link deleteById}.
|
|
162
|
+
*
|
|
163
|
+
* @param handle - Ped handle.
|
|
164
|
+
* @returns `true` if an NPC was found and deleted, otherwise `false`.
|
|
165
|
+
*/
|
|
166
|
+
deleteByHandle(handle: number): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Delete an NPC by its network id (netId).
|
|
169
|
+
*
|
|
170
|
+
* @remarks
|
|
171
|
+
* Resolves `netId -> npcId` and delegates to {@link deleteById}.
|
|
172
|
+
* Only applies to NPCs created with `networked=true`.
|
|
173
|
+
*
|
|
174
|
+
* @param netId - Network id.
|
|
175
|
+
* @returns `true` if an NPC was found and deleted, otherwise `false`.
|
|
176
|
+
*/
|
|
177
|
+
deleteByNetId(netId: number): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Delete all currently registered NPCs.
|
|
180
|
+
*
|
|
181
|
+
* @remarks
|
|
182
|
+
* Iterates over a snapshot of ids to avoid mutation issues during deletion.
|
|
183
|
+
*
|
|
184
|
+
* @returns The number of NPCs successfully deleted.
|
|
185
|
+
*/
|
|
186
|
+
deleteAll(): number;
|
|
187
|
+
/**
|
|
188
|
+
* Remove registry entries for NPCs whose underlying entities no longer exist.
|
|
189
|
+
*
|
|
190
|
+
* @remarks
|
|
191
|
+
* This is useful when entities were deleted externally (by natives, scripts, cleanup, etc.).
|
|
192
|
+
* It removes them from internal indexes and {@link WorldContext}, without attempting to delete
|
|
193
|
+
* the already-nonexistent entity.
|
|
194
|
+
*
|
|
195
|
+
* @returns The number of orphan registry entries removed.
|
|
196
|
+
*/
|
|
197
|
+
cleanupOrphans(): number;
|
|
198
|
+
/**
|
|
199
|
+
* Serialize all registered NPCs to plain data objects.
|
|
200
|
+
*
|
|
201
|
+
* @remarks
|
|
202
|
+
* Each NPC serialization includes position, heading, routing bucket, metadata and state bag snapshot.
|
|
203
|
+
* NPCs that no longer exist may still serialize, but values depending on natives could be stale or fail
|
|
204
|
+
* depending on adapter behavior; prefer calling {@link cleanupOrphans} first when needed.
|
|
205
|
+
*
|
|
206
|
+
* @returns An array of serialized NPC data.
|
|
207
|
+
*/
|
|
208
|
+
serializeAll(): SerializedNpcData[];
|
|
209
|
+
private resolveNetId;
|
|
210
|
+
private removeFromRegistry;
|
|
211
|
+
private safeDeleteHandle;
|
|
212
|
+
private waitForSpawn;
|
|
213
|
+
}
|
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from 'tsyringe';
|
|
14
|
+
import { v4 as uuid } from 'uuid';
|
|
15
|
+
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
16
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
17
|
+
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
18
|
+
import { IPedServer } from '../../../adapters/contracts/server/IPedServer';
|
|
19
|
+
import { coreLogger } from '../../../kernel/logger';
|
|
20
|
+
import { WorldContext } from '../../core/world';
|
|
21
|
+
import { NPC } from '../entities/npc';
|
|
22
|
+
const DEFAULT_PED_TYPE = 4;
|
|
23
|
+
const DEFAULT_SPAWN_TIMEOUT_MS = 2000;
|
|
24
|
+
/**
|
|
25
|
+
* Server-side API responsible for the full NPC (ped) lifecycle:
|
|
26
|
+
* spawn, registry, queries, spatial search, serialization and deletion.
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* Prefer consuming this API from gameplay / AI systems instead of calling natives directly.
|
|
30
|
+
* This class keeps a stable in-memory registry keyed by `npcId` and maintains secondary
|
|
31
|
+
* indexes by `handle` and (when networked) by `netId`.
|
|
32
|
+
*
|
|
33
|
+
* The registry is authoritative for lookups, while `NPC.exists` reflects runtime existence.
|
|
34
|
+
*/
|
|
35
|
+
let Npcs = class Npcs {
|
|
36
|
+
world;
|
|
37
|
+
entityServer;
|
|
38
|
+
pedServer;
|
|
39
|
+
hasher;
|
|
40
|
+
events;
|
|
41
|
+
npcById = new Map();
|
|
42
|
+
idByHandle = new Map();
|
|
43
|
+
idByNetId = new Map();
|
|
44
|
+
adapters;
|
|
45
|
+
constructor(world, entityServer, pedServer, hasher, events) {
|
|
46
|
+
this.world = world;
|
|
47
|
+
this.entityServer = entityServer;
|
|
48
|
+
this.pedServer = pedServer;
|
|
49
|
+
this.hasher = hasher;
|
|
50
|
+
this.events = events;
|
|
51
|
+
this.adapters = {
|
|
52
|
+
entityServer: this.entityServer,
|
|
53
|
+
pedServer: this.pedServer,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Spawn (create) a single NPC and register it into the runtime.
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* - Generates a UUID if `options.id` is not provided.
|
|
61
|
+
* - Prevents duplicate `npcId` collisions within this runtime.
|
|
62
|
+
* - Waits until the underlying entity exists (polling) and fails fast on timeout.
|
|
63
|
+
* - Applies routing bucket, orphan mode (persistent), and metadata after spawn.
|
|
64
|
+
* - Registers the NPC in `WorldContext` and internal indexes.
|
|
65
|
+
*
|
|
66
|
+
* @param options - Spawn options (model, position, routingBucket, persistence, metadata, etc.).
|
|
67
|
+
* @returns An object containing a `result` (success/error) and the created `npc` on success.
|
|
68
|
+
*/
|
|
69
|
+
async create(options) {
|
|
70
|
+
const { id, model, position, heading = 0, networked = true, pedType = DEFAULT_PED_TYPE, routingBucket = 0, persistent = false, metadata, } = options;
|
|
71
|
+
const npcId = id ?? uuid();
|
|
72
|
+
if (this.npcById.has(npcId)) {
|
|
73
|
+
return {
|
|
74
|
+
result: {
|
|
75
|
+
success: false,
|
|
76
|
+
error: `NPC '${npcId}' already exists`,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const modelHash = typeof model === 'string' ? this.hasher.getHashKey(model) : model;
|
|
81
|
+
const handle = this.pedServer.create(pedType, modelHash, position.x, position.y, position.z, heading, networked);
|
|
82
|
+
if (!handle || handle <= 0) {
|
|
83
|
+
return {
|
|
84
|
+
result: {
|
|
85
|
+
success: false,
|
|
86
|
+
error: 'Failed to create NPC ped entity',
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const spawnOk = await this.waitForSpawn(handle);
|
|
91
|
+
if (!spawnOk) {
|
|
92
|
+
this.safeDeleteHandle(handle);
|
|
93
|
+
return {
|
|
94
|
+
result: {
|
|
95
|
+
success: false,
|
|
96
|
+
error: `NPC spawn timed out after ${DEFAULT_SPAWN_TIMEOUT_MS}ms`,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const resolvedModel = typeof model === 'string' ? model : modelHash.toString();
|
|
101
|
+
const netId = networked ? this.resolveNetId(handle) : undefined;
|
|
102
|
+
const session = {
|
|
103
|
+
id: npcId,
|
|
104
|
+
handle,
|
|
105
|
+
netId,
|
|
106
|
+
model: resolvedModel,
|
|
107
|
+
modelHash,
|
|
108
|
+
persistent,
|
|
109
|
+
routingBucket,
|
|
110
|
+
createdAt: Date.now(),
|
|
111
|
+
};
|
|
112
|
+
const npc = new NPC(session, this.adapters);
|
|
113
|
+
if (routingBucket !== 0) {
|
|
114
|
+
npc.setRoutingBucket(routingBucket);
|
|
115
|
+
}
|
|
116
|
+
if (persistent) {
|
|
117
|
+
this.entityServer.setOrphanMode(handle, 2);
|
|
118
|
+
}
|
|
119
|
+
if (metadata) {
|
|
120
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
121
|
+
npc.setMeta(key, value);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
this.npcById.set(npcId, npc);
|
|
125
|
+
this.idByHandle.set(handle, npcId);
|
|
126
|
+
if (netId !== undefined) {
|
|
127
|
+
this.idByNetId.set(netId, npcId);
|
|
128
|
+
}
|
|
129
|
+
this.world.add(npc);
|
|
130
|
+
coreLogger.info('NPC created', {
|
|
131
|
+
npcId,
|
|
132
|
+
handle,
|
|
133
|
+
netId,
|
|
134
|
+
model: resolvedModel,
|
|
135
|
+
persistent,
|
|
136
|
+
routingBucket,
|
|
137
|
+
totalNpcs: this.npcById.size,
|
|
138
|
+
});
|
|
139
|
+
// this.events.emit('opencore:npc:created', 'all', npc.serialize())
|
|
140
|
+
return {
|
|
141
|
+
result: {
|
|
142
|
+
success: true,
|
|
143
|
+
id: npcId,
|
|
144
|
+
handle,
|
|
145
|
+
netId,
|
|
146
|
+
},
|
|
147
|
+
npc,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Spawn multiple NPCs sequentially using {@link create}.
|
|
152
|
+
*
|
|
153
|
+
* @remarks
|
|
154
|
+
* This method is intentionally sequential to keep spawn load predictable and to preserve
|
|
155
|
+
* deterministic side-effects (logging, indexing, world registration).
|
|
156
|
+
*
|
|
157
|
+
* If you want parallel spawning, you can build it externally, but be mindful of server load
|
|
158
|
+
* and potential native limits.
|
|
159
|
+
*
|
|
160
|
+
* @param options - List of spawn requests.
|
|
161
|
+
* @returns A list of per-item results, each containing a `result` and optionally an `npc`.
|
|
162
|
+
*/
|
|
163
|
+
async createMany(options) {
|
|
164
|
+
const result = [];
|
|
165
|
+
for (const item of options) {
|
|
166
|
+
result.push(await this.create(item));
|
|
167
|
+
}
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get an NPC instance by its logical id (`npcId`).
|
|
172
|
+
*
|
|
173
|
+
* @param id - NPC logical identifier.
|
|
174
|
+
* @returns The NPC instance if present in the registry, otherwise `undefined`.
|
|
175
|
+
*/
|
|
176
|
+
getById(id) {
|
|
177
|
+
return this.npcById.get(id);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get an NPC instance by its ped handle.
|
|
181
|
+
*
|
|
182
|
+
* @remarks
|
|
183
|
+
* Handles are runtime-specific and can become invalid if the entity is removed.
|
|
184
|
+
* This lookup uses the internal `handle -> npcId` index.
|
|
185
|
+
*
|
|
186
|
+
* @param handle - Ped handle.
|
|
187
|
+
* @returns The NPC instance if present, otherwise `undefined`.
|
|
188
|
+
*/
|
|
189
|
+
getByHandle(handle) {
|
|
190
|
+
const id = this.idByHandle.get(handle);
|
|
191
|
+
return id ? this.npcById.get(id) : undefined;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get an NPC instance by its network id (netId).
|
|
195
|
+
*
|
|
196
|
+
* @remarks
|
|
197
|
+
* Only NPCs created with `networked=true` will have a netId and be indexed here.
|
|
198
|
+
*
|
|
199
|
+
* @param netId - Network id of the entity.
|
|
200
|
+
* @returns The NPC instance if present, otherwise `undefined`.
|
|
201
|
+
*/
|
|
202
|
+
getByNetId(netId) {
|
|
203
|
+
const id = this.idByNetId.get(netId);
|
|
204
|
+
return id ? this.npcById.get(id) : undefined;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Return a snapshot array of all NPCs currently registered.
|
|
208
|
+
*
|
|
209
|
+
* @remarks
|
|
210
|
+
* This includes NPCs that may no longer exist at runtime (e.g. removed externally),
|
|
211
|
+
* until {@link cleanupOrphans} is called.
|
|
212
|
+
*
|
|
213
|
+
* @returns An array of NPC instances.
|
|
214
|
+
*/
|
|
215
|
+
getAll() {
|
|
216
|
+
return Array.from(this.npcById.values());
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Return all NPCs whose current routing bucket (dimension) matches the given bucket.
|
|
220
|
+
*
|
|
221
|
+
* @remarks
|
|
222
|
+
* The check is performed using `npc.dimension` (which resolves via entity server).
|
|
223
|
+
*
|
|
224
|
+
* @param bucket - Routing bucket / dimension.
|
|
225
|
+
* @returns An array of NPC instances in the given bucket.
|
|
226
|
+
*/
|
|
227
|
+
getInRoutingBucket(bucket) {
|
|
228
|
+
const npcs = [];
|
|
229
|
+
for (const npc of this.npcById.values()) {
|
|
230
|
+
if (npc.dimension === bucket) {
|
|
231
|
+
npcs.push(npc);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return npcs;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Find NPCs within `radius` of a position (Euclidean distance in 3D).
|
|
238
|
+
*
|
|
239
|
+
* @remarks
|
|
240
|
+
* - This method performs a linear scan over registered NPCs.
|
|
241
|
+
* - Uses squared distance (avoids `Math.sqrt`) for performance.
|
|
242
|
+
* - Skips NPCs that no longer exist (`npc.exists === false`).
|
|
243
|
+
* - Optionally filters by routing bucket (dimension).
|
|
244
|
+
*
|
|
245
|
+
* @param position - Center position.
|
|
246
|
+
* @param radius - Search radius (negative values are clamped to 0).
|
|
247
|
+
* @param bucket - Optional routing bucket filter.
|
|
248
|
+
* @returns Matching NPCs (order is insertion/iteration order).
|
|
249
|
+
*/
|
|
250
|
+
findNear(position, radius, bucket) {
|
|
251
|
+
const maxDistance = Math.max(0, radius);
|
|
252
|
+
const maxDistanceSq = maxDistance * maxDistance;
|
|
253
|
+
const npcs = [];
|
|
254
|
+
for (const npc of this.npcById.values()) {
|
|
255
|
+
if (!npc.exists)
|
|
256
|
+
continue;
|
|
257
|
+
if (bucket !== undefined && npc.dimension !== bucket)
|
|
258
|
+
continue;
|
|
259
|
+
const npcPos = npc.getPosition();
|
|
260
|
+
const dx = npcPos.x - position.x;
|
|
261
|
+
const dy = npcPos.y - position.y;
|
|
262
|
+
const dz = npcPos.z - position.z;
|
|
263
|
+
const distSq = dx * dx + dy * dy + dz * dz;
|
|
264
|
+
if (distSq <= maxDistanceSq) {
|
|
265
|
+
npcs.push(npc);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return npcs;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Return the current number of NPCs tracked in the registry.
|
|
272
|
+
*
|
|
273
|
+
* @remarks
|
|
274
|
+
* This is the registry size, not necessarily the number of NPCs that still exist in the world.
|
|
275
|
+
* Use {@link cleanupOrphans} to remove non-existing NPCs from the registry.
|
|
276
|
+
*
|
|
277
|
+
* @returns Registry count.
|
|
278
|
+
*/
|
|
279
|
+
count() {
|
|
280
|
+
return this.npcById.size;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Check if a given `npcId` is registered and the underlying entity currently exists.
|
|
284
|
+
*
|
|
285
|
+
* @param id - NPC logical identifier.
|
|
286
|
+
* @returns `true` if registered and exists in the runtime, otherwise `false`.
|
|
287
|
+
*/
|
|
288
|
+
exists(id) {
|
|
289
|
+
const npc = this.npcById.get(id);
|
|
290
|
+
return npc ? npc.exists : false;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Delete an NPC by its logical id and remove it from internal registries.
|
|
294
|
+
*
|
|
295
|
+
* @remarks
|
|
296
|
+
* - Calls {@link NPC.delete} (ped deletion) if the entity exists.
|
|
297
|
+
* - Removes the NPC from internal indexes and {@link WorldContext}.
|
|
298
|
+
* - Emits the `opencore:npc:deleted` server event to `'all'` with the `npcId`.
|
|
299
|
+
*
|
|
300
|
+
* @param id - NPC logical identifier.
|
|
301
|
+
* @returns `true` if an NPC was found and deleted, otherwise `false`.
|
|
302
|
+
*/
|
|
303
|
+
deleteById(id) {
|
|
304
|
+
const npc = this.npcById.get(id);
|
|
305
|
+
if (!npc) {
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
npc.delete();
|
|
309
|
+
this.removeFromRegistry(npc);
|
|
310
|
+
coreLogger.info('NPC deleted', {
|
|
311
|
+
npcId: npc.npcId,
|
|
312
|
+
handle: npc.getHandle(),
|
|
313
|
+
netId: npc.netId,
|
|
314
|
+
remainingNpcs: this.npcById.size,
|
|
315
|
+
});
|
|
316
|
+
this.events.emit('opencore:npc:deleted', 'all', npc.npcId);
|
|
317
|
+
return true;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Delete an NPC by its handle.
|
|
321
|
+
*
|
|
322
|
+
* @remarks
|
|
323
|
+
* Resolves `handle -> npcId` and delegates to {@link deleteById}.
|
|
324
|
+
*
|
|
325
|
+
* @param handle - Ped handle.
|
|
326
|
+
* @returns `true` if an NPC was found and deleted, otherwise `false`.
|
|
327
|
+
*/
|
|
328
|
+
deleteByHandle(handle) {
|
|
329
|
+
const id = this.idByHandle.get(handle);
|
|
330
|
+
if (!id)
|
|
331
|
+
return false;
|
|
332
|
+
return this.deleteById(id);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Delete an NPC by its network id (netId).
|
|
336
|
+
*
|
|
337
|
+
* @remarks
|
|
338
|
+
* Resolves `netId -> npcId` and delegates to {@link deleteById}.
|
|
339
|
+
* Only applies to NPCs created with `networked=true`.
|
|
340
|
+
*
|
|
341
|
+
* @param netId - Network id.
|
|
342
|
+
* @returns `true` if an NPC was found and deleted, otherwise `false`.
|
|
343
|
+
*/
|
|
344
|
+
deleteByNetId(netId) {
|
|
345
|
+
const id = this.idByNetId.get(netId);
|
|
346
|
+
if (!id)
|
|
347
|
+
return false;
|
|
348
|
+
return this.deleteById(id);
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Delete all currently registered NPCs.
|
|
352
|
+
*
|
|
353
|
+
* @remarks
|
|
354
|
+
* Iterates over a snapshot of ids to avoid mutation issues during deletion.
|
|
355
|
+
*
|
|
356
|
+
* @returns The number of NPCs successfully deleted.
|
|
357
|
+
*/
|
|
358
|
+
deleteAll() {
|
|
359
|
+
const ids = Array.from(this.npcById.keys());
|
|
360
|
+
let deleted = 0;
|
|
361
|
+
for (const id of ids) {
|
|
362
|
+
if (this.deleteById(id)) {
|
|
363
|
+
deleted++;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return deleted;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Remove registry entries for NPCs whose underlying entities no longer exist.
|
|
370
|
+
*
|
|
371
|
+
* @remarks
|
|
372
|
+
* This is useful when entities were deleted externally (by natives, scripts, cleanup, etc.).
|
|
373
|
+
* It removes them from internal indexes and {@link WorldContext}, without attempting to delete
|
|
374
|
+
* the already-nonexistent entity.
|
|
375
|
+
*
|
|
376
|
+
* @returns The number of orphan registry entries removed.
|
|
377
|
+
*/
|
|
378
|
+
cleanupOrphans() {
|
|
379
|
+
const toDelete = [];
|
|
380
|
+
for (const npc of this.npcById.values()) {
|
|
381
|
+
if (!npc.exists) {
|
|
382
|
+
toDelete.push(npc.npcId);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
for (const id of toDelete) {
|
|
386
|
+
const npc = this.npcById.get(id);
|
|
387
|
+
if (!npc)
|
|
388
|
+
continue;
|
|
389
|
+
this.removeFromRegistry(npc);
|
|
390
|
+
coreLogger.debug('Cleaned up orphaned NPC', { npcId: id });
|
|
391
|
+
}
|
|
392
|
+
if (toDelete.length > 0) {
|
|
393
|
+
coreLogger.info('NPC cleanup completed', {
|
|
394
|
+
cleaned: toDelete.length,
|
|
395
|
+
remaining: this.npcById.size,
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
return toDelete.length;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Serialize all registered NPCs to plain data objects.
|
|
402
|
+
*
|
|
403
|
+
* @remarks
|
|
404
|
+
* Each NPC serialization includes position, heading, routing bucket, metadata and state bag snapshot.
|
|
405
|
+
* NPCs that no longer exist may still serialize, but values depending on natives could be stale or fail
|
|
406
|
+
* depending on adapter behavior; prefer calling {@link cleanupOrphans} first when needed.
|
|
407
|
+
*
|
|
408
|
+
* @returns An array of serialized NPC data.
|
|
409
|
+
*/
|
|
410
|
+
serializeAll() {
|
|
411
|
+
return Array.from(this.npcById.values()).map((npc) => npc.serialize());
|
|
412
|
+
}
|
|
413
|
+
resolveNetId(handle) {
|
|
414
|
+
const netId = this.pedServer.getNetworkIdFromEntity(handle);
|
|
415
|
+
return netId > 0 ? netId : undefined;
|
|
416
|
+
}
|
|
417
|
+
removeFromRegistry(npc) {
|
|
418
|
+
this.npcById.delete(npc.npcId);
|
|
419
|
+
this.idByHandle.delete(npc.getHandle());
|
|
420
|
+
if (npc.netId !== undefined) {
|
|
421
|
+
this.idByNetId.delete(npc.netId);
|
|
422
|
+
}
|
|
423
|
+
this.world.remove(npc.id);
|
|
424
|
+
}
|
|
425
|
+
safeDeleteHandle(handle) {
|
|
426
|
+
try {
|
|
427
|
+
if (this.entityServer.doesExist(handle)) {
|
|
428
|
+
this.pedServer.delete(handle);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
catch (error) {
|
|
432
|
+
coreLogger.warn('Failed to cleanup NPC handle after spawn failure', {
|
|
433
|
+
handle,
|
|
434
|
+
error: error instanceof Error ? error.message : String(error),
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
async waitForSpawn(handle, timeoutMs = DEFAULT_SPAWN_TIMEOUT_MS) {
|
|
439
|
+
const startedAt = Date.now();
|
|
440
|
+
while (!this.entityServer.doesExist(handle)) {
|
|
441
|
+
if (Date.now() - startedAt > timeoutMs) {
|
|
442
|
+
return false;
|
|
443
|
+
}
|
|
444
|
+
await sleep(0);
|
|
445
|
+
}
|
|
446
|
+
return true;
|
|
447
|
+
}
|
|
448
|
+
};
|
|
449
|
+
Npcs = __decorate([
|
|
450
|
+
injectable(),
|
|
451
|
+
__param(0, inject(WorldContext)),
|
|
452
|
+
__param(1, inject(IEntityServer)),
|
|
453
|
+
__param(2, inject(IPedServer)),
|
|
454
|
+
__param(3, inject(IHasher)),
|
|
455
|
+
__param(4, inject(EventsAPI)),
|
|
456
|
+
__metadata("design:paramtypes", [WorldContext,
|
|
457
|
+
IEntityServer,
|
|
458
|
+
IPedServer,
|
|
459
|
+
IHasher,
|
|
460
|
+
EventsAPI])
|
|
461
|
+
], Npcs);
|
|
462
|
+
export { Npcs };
|
|
463
|
+
function sleep(ms) {
|
|
464
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
465
|
+
}
|