@open-core/framework 1.0.5-beta.1 → 1.0.5-beta.2
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/IEngineEvents.d.ts +3 -0
- package/dist/adapters/contracts/IEngineEvents.js +7 -0
- package/dist/adapters/contracts/IPlatformContext.d.ts +43 -0
- package/dist/adapters/contracts/IPlatformContext.js +8 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.d.ts +4 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +2 -0
- package/dist/adapters/contracts/client/IClientLogConsole.d.ts +13 -0
- package/dist/adapters/contracts/client/IClientLogConsole.js +2 -0
- package/dist/adapters/contracts/client/IClientPlatformBridge.d.ts +195 -0
- package/dist/adapters/contracts/client/IClientPlatformBridge.js +282 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.d.ts +18 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.js +14 -0
- package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.d.ts +26 -0
- package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.js +2 -0
- package/dist/adapters/contracts/client/index.d.ts +7 -0
- package/dist/adapters/contracts/client/index.js +7 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.d.ts +7 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +2 -0
- package/dist/adapters/contracts/client/spawn/index.d.ts +2 -0
- package/dist/adapters/contracts/client/spawn/index.js +2 -0
- package/dist/adapters/contracts/client/spawn/types.d.ts +14 -0
- package/dist/adapters/contracts/client/ui/IClientBlipBridge.d.ts +25 -0
- package/dist/adapters/contracts/client/ui/IClientBlipBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/IClientMarkerBridge.d.ts +31 -0
- package/dist/adapters/contracts/client/ui/IClientMarkerBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/IClientNotificationBridge.d.ts +21 -0
- package/dist/adapters/contracts/client/ui/IClientNotificationBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/index.d.ts +4 -0
- package/dist/adapters/contracts/client/ui/index.js +4 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.d.ts +13 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/webview/index.d.ts +2 -0
- package/dist/adapters/contracts/client/ui/webview/index.js +2 -0
- package/dist/adapters/contracts/client/ui/webview/types.d.ts +25 -0
- package/dist/adapters/contracts/client/ui/webview/types.js +0 -0
- package/dist/adapters/contracts/index.d.ts +4 -2
- package/dist/adapters/contracts/index.js +4 -3
- package/dist/adapters/contracts/runtime/index.d.ts +1 -0
- package/dist/adapters/contracts/runtime/index.js +1 -0
- package/dist/adapters/contracts/runtime/runtime-events.d.ts +9 -0
- package/dist/adapters/contracts/runtime/runtime-events.js +7 -0
- package/dist/adapters/contracts/server/IEntityServer.d.ts +4 -28
- package/dist/adapters/contracts/server/IEntityServer.js +0 -26
- package/dist/adapters/contracts/server/IPlayerServer.d.ts +7 -26
- package/dist/adapters/contracts/server/IPlayerServer.js +0 -26
- package/dist/adapters/contracts/server/index.d.ts +10 -0
- package/dist/adapters/contracts/server/index.js +10 -0
- package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.d.ts +5 -0
- package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/types.d.ts +17 -0
- package/dist/adapters/contracts/server/npc-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.d.ts +11 -0
- package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/player-appearance/index.d.ts +1 -0
- package/dist/adapters/contracts/server/player-appearance/index.js +1 -0
- package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.d.ts +6 -0
- package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/types.d.ts +17 -0
- package/dist/adapters/contracts/server/player-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.d.ts +6 -0
- package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.js +2 -0
- package/dist/adapters/contracts/server/player-state/index.d.ts +1 -0
- package/dist/adapters/contracts/server/player-state/index.js +1 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.d.ts +5 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/types.d.ts +16 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/transport/index.d.ts +4 -0
- package/dist/adapters/contracts/transport/index.js +4 -0
- package/dist/adapters/index.d.ts +3 -14
- package/dist/adapters/index.js +3 -20
- package/dist/adapters/node/node-capabilities.d.ts +11 -11
- package/dist/adapters/node/node-capabilities.js +15 -27
- package/dist/adapters/node/node-engine-events.d.ts +1 -1
- package/dist/adapters/node/node-engine-events.js +2 -1
- package/dist/adapters/node/node-entity-server.d.ts +2 -2
- package/dist/adapters/node/node-entity-server.js +2 -2
- package/dist/adapters/node/node-ped-appearance-client.d.ts +2 -2
- package/dist/adapters/node/node-ped-appearance-client.js +2 -2
- package/dist/adapters/node/node-platform.js +4 -4
- package/dist/adapters/node/node-player-server.d.ts +3 -2
- package/dist/adapters/node/node-player-server.js +8 -2
- package/dist/adapters/register-capabilities.d.ts +1 -1
- package/dist/adapters/register-capabilities.js +1 -3
- package/dist/adapters/register-client-capabilities.d.ts +3 -2
- package/dist/adapters/register-client-capabilities.js +16 -41
- package/dist/contracts/client.d.ts +5 -0
- package/dist/contracts/client.js +5 -0
- package/dist/contracts/server.d.ts +19 -0
- package/dist/contracts/server.js +19 -0
- package/dist/contracts.d.ts +4 -0
- package/dist/contracts.js +4 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/kernel/logger/client-log-console.d.ts +4 -0
- package/dist/kernel/logger/client-log-console.js +43 -0
- package/dist/kernel/logger/core-logger.d.ts +3 -1
- package/dist/kernel/logger/core-logger.js +4 -2
- package/dist/kernel/logger/index.d.ts +2 -0
- package/dist/kernel/logger/index.js +1 -0
- package/dist/kernel/logger/transports/dev-transport.factory.js +1 -1
- package/dist/kernel/logger/transports/simple-console.transport.js +13 -8
- package/dist/kernel-public.d.ts +1 -0
- package/dist/kernel-public.js +1 -0
- package/dist/runtime/client/adapter/client-adapter.d.ts +25 -0
- package/dist/runtime/client/adapter/client-adapter.js +11 -0
- package/dist/runtime/client/adapter/index.d.ts +15 -0
- package/dist/runtime/client/adapter/index.js +15 -0
- package/dist/runtime/client/adapter/local-player-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/local-player-bridge.js +1 -0
- package/dist/runtime/client/adapter/node-blip-bridge.d.ts +9 -0
- package/dist/runtime/client/adapter/node-blip-bridge.js +34 -0
- package/dist/runtime/client/adapter/node-client-adapter.d.ts +5 -0
- package/dist/runtime/client/adapter/node-client-adapter.js +50 -0
- package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +8 -0
- package/dist/{adapters/fivem/fivem-hasher.js → runtime/client/adapter/node-local-player-bridge.js} +7 -9
- package/dist/runtime/client/adapter/node-log-console.d.ts +11 -0
- package/dist/runtime/client/adapter/node-log-console.js +48 -0
- package/dist/runtime/client/adapter/node-marker-bridge.d.ts +10 -0
- package/dist/runtime/client/adapter/node-marker-bridge.js +35 -0
- package/dist/runtime/client/adapter/node-notification-bridge.d.ts +5 -0
- package/dist/runtime/client/adapter/node-notification-bridge.js +16 -0
- package/dist/runtime/client/adapter/node-platform-bridge.d.ts +3 -0
- package/dist/{adapters/fivem/fivem-tick.js → runtime/client/adapter/node-platform-bridge.js} +5 -10
- package/dist/runtime/client/adapter/node-runtime-bridge.d.ts +24 -0
- package/dist/runtime/client/adapter/node-runtime-bridge.js +58 -0
- package/dist/runtime/client/adapter/node-spawn-bridge.d.ts +8 -0
- package/dist/runtime/client/adapter/node-spawn-bridge.js +18 -0
- package/dist/runtime/client/adapter/node-webview-bridge.d.ts +15 -0
- package/dist/runtime/client/adapter/node-webview-bridge.js +43 -0
- package/dist/runtime/client/adapter/platform-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/platform-bridge.js +1 -0
- package/dist/runtime/client/adapter/registry.d.ts +9 -0
- package/dist/runtime/client/adapter/registry.js +85 -0
- package/dist/runtime/client/adapter/runtime-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/runtime-bridge.js +1 -0
- package/dist/runtime/client/api.d.ts +2 -1
- package/dist/runtime/client/api.js +2 -1
- package/dist/runtime/client/client-bootstrap.js +51 -44
- package/dist/runtime/client/client-core.d.ts +2 -0
- package/dist/runtime/client/client-core.js +9 -0
- package/dist/runtime/client/client-runtime.d.ts +3 -0
- package/dist/runtime/client/client-runtime.js +3 -0
- package/dist/runtime/client/controllers/appearance.controller.d.ts +3 -1
- package/dist/runtime/client/controllers/appearance.controller.js +14 -4
- package/dist/runtime/client/controllers/spawner.controller.js +2 -0
- package/dist/runtime/client/decorators/controller.js +2 -10
- package/dist/runtime/client/decorators/onView.d.ts +3 -3
- package/dist/runtime/client/decorators/onView.js +3 -3
- package/dist/runtime/client/index.d.ts +1 -0
- package/dist/runtime/client/index.js +1 -0
- package/dist/runtime/client/library/create-client-library.js +9 -1
- package/dist/runtime/client/services/appearance.service.d.ts +2 -2
- package/dist/runtime/client/services/appearance.service.js +7 -4
- package/dist/runtime/client/services/blip.service.d.ts +6 -93
- package/dist/runtime/client/services/blip.service.js +58 -153
- package/dist/runtime/client/services/camera-effects.registry.d.ts +3 -0
- package/dist/runtime/client/services/camera-effects.registry.js +20 -7
- package/dist/runtime/client/services/camera.d.ts +3 -83
- package/dist/runtime/client/services/camera.js +37 -93
- package/dist/runtime/client/services/cinematic.d.ts +5 -1
- package/dist/runtime/client/services/cinematic.js +45 -30
- package/dist/runtime/client/services/index.d.ts +1 -0
- package/dist/runtime/client/services/index.js +1 -0
- package/dist/runtime/client/services/marker.service.d.ts +12 -63
- package/dist/runtime/client/services/marker.service.js +62 -97
- package/dist/runtime/client/services/notification.service.d.ts +6 -57
- package/dist/runtime/client/services/notification.service.js +43 -81
- package/dist/runtime/client/services/ped.service.d.ts +3 -130
- package/dist/runtime/client/services/ped.service.js +66 -198
- package/dist/runtime/client/services/progress.service.d.ts +5 -30
- package/dist/runtime/client/services/progress.service.js +73 -99
- package/dist/runtime/client/services/session-bridge.service.d.ts +15 -0
- package/dist/runtime/client/services/session-bridge.service.js +61 -0
- package/dist/runtime/client/services/spawn.service.d.ts +6 -56
- package/dist/runtime/client/services/spawn.service.js +34 -191
- package/dist/runtime/client/services/streaming.service.d.ts +5 -126
- package/dist/runtime/client/services/streaming.service.js +72 -217
- package/dist/runtime/client/services/textui.service.d.ts +5 -45
- package/dist/runtime/client/services/textui.service.js +55 -88
- package/dist/runtime/client/services/vehicle-client.service.d.ts +12 -149
- package/dist/runtime/client/services/vehicle-client.service.js +180 -326
- package/dist/runtime/client/services/vehicle.service.d.ts +3 -109
- package/dist/runtime/client/services/vehicle.service.js +94 -194
- package/dist/runtime/client/system/processors/export.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/export.processor.js +16 -3
- package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/gameEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/interval.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/interval.processor.js +17 -4
- package/dist/runtime/client/system/processors/key.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/key.processor.js +18 -5
- package/dist/runtime/client/system/processors/localEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/localEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/netEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/netEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/onRpc.processor.js +1 -1
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +5 -0
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +26 -7
- package/dist/runtime/client/system/processors/tick.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/tick.processor.js +16 -3
- package/dist/runtime/client/system/processors/view.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/view.processor.js +21 -10
- package/dist/runtime/client/system/processors.register.d.ts +1 -0
- package/dist/runtime/client/system/processors.register.js +8 -0
- package/dist/runtime/client/ui-bridge.d.ts +2 -114
- package/dist/runtime/client/ui-bridge.js +2 -194
- package/dist/runtime/client/webview-bridge.d.ts +31 -0
- package/dist/runtime/client/webview-bridge.js +97 -0
- package/dist/runtime/client/webview.service.d.ts +14 -0
- package/dist/runtime/client/webview.service.js +98 -0
- package/dist/runtime/server/adapter/index.d.ts +5 -0
- package/dist/runtime/server/adapter/index.js +5 -0
- package/dist/runtime/server/adapter/node-npc-lifecycle-server.d.ts +12 -0
- package/dist/runtime/server/adapter/node-npc-lifecycle-server.js +52 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.d.ts +22 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.js +94 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.d.ts +11 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.js +55 -0
- package/dist/runtime/server/adapter/node-player-state-sync-server.d.ts +12 -0
- package/dist/runtime/server/adapter/node-player-state-sync-server.js +49 -0
- package/dist/runtime/server/adapter/node-server-adapter.d.ts +5 -0
- package/dist/runtime/server/adapter/node-server-adapter.js +67 -0
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.d.ts +13 -0
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.js +57 -0
- package/dist/runtime/server/adapter/player-adapter.d.ts +28 -0
- package/dist/runtime/server/adapter/player-adapter.js +28 -0
- package/dist/runtime/server/adapter/registry.d.ts +26 -0
- package/dist/runtime/server/adapter/registry.js +101 -0
- package/dist/runtime/server/adapter/serialization.d.ts +6 -0
- package/dist/runtime/server/adapter/serialization.js +9 -0
- package/dist/runtime/server/adapter/server-adapter.d.ts +28 -0
- package/dist/runtime/server/adapter/server-adapter.js +14 -0
- package/dist/runtime/server/api.d.ts +2 -1
- package/dist/runtime/server/api.js +2 -1
- package/dist/runtime/server/apis/appearance.api.d.ts +5 -3
- package/dist/runtime/server/apis/appearance.api.js +20 -7
- package/dist/runtime/server/apis/npcs.api.d.ts +3 -4
- package/dist/runtime/server/apis/npcs.api.js +26 -56
- package/dist/runtime/server/apis/vehicle-modification.api.d.ts +3 -1
- package/dist/runtime/server/apis/vehicle-modification.api.js +9 -4
- package/dist/runtime/server/apis/vehicles.api.d.ts +12 -6
- package/dist/runtime/server/apis/vehicles.api.js +48 -36
- package/dist/runtime/server/bootstrap.js +15 -7
- package/dist/runtime/server/controllers/channel.controller.js +2 -1
- package/dist/runtime/server/controllers/command-export.controller.js +1 -1
- package/dist/runtime/server/controllers/player-export.controller.js +5 -4
- package/dist/runtime/server/controllers/session.controller.js +3 -2
- package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -1
- package/dist/runtime/server/controllers/vehicle.controller.js +10 -5
- package/dist/runtime/server/core.d.ts +2 -0
- package/dist/runtime/server/core.js +9 -1
- package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +2 -1
- package/dist/runtime/server/entities/npc.d.ts +2 -0
- package/dist/runtime/server/entities/npc.js +3 -3
- package/dist/runtime/server/entities/player.d.ts +8 -11
- package/dist/runtime/server/entities/player.js +39 -28
- package/dist/runtime/server/entities/vehicle.js +2 -2
- package/dist/runtime/server/error-handler.js +13 -2
- package/dist/runtime/server/helpers/command-validation.helper.js +1 -1
- package/dist/runtime/server/implementations/local/player.local.d.ts +7 -3
- package/dist/runtime/server/implementations/local/player.local.js +23 -11
- package/dist/runtime/server/implementations/remote/channel.remote.d.ts +2 -1
- package/dist/runtime/server/implementations/remote/channel.remote.js +5 -2
- package/dist/runtime/server/implementations/remote/command.remote.d.ts +3 -1
- package/dist/runtime/server/implementations/remote/command.remote.js +9 -4
- package/dist/runtime/server/implementations/remote/player.remote.d.ts +7 -10
- package/dist/runtime/server/implementations/remote/player.remote.js +24 -29
- package/dist/runtime/server/library/create-server-library.js +17 -2
- package/dist/runtime/server/runtime.d.ts +3 -0
- package/dist/runtime/server/runtime.js +1 -15
- package/dist/runtime/server/services/appearance.service.d.ts +0 -95
- package/dist/runtime/server/services/appearance.service.js +15 -192
- package/dist/runtime/server/services/services.register.js +56 -24
- package/dist/runtime/server/system/processors/netEvent.processor.js +1 -1
- package/dist/runtime/server/system/processors/onRpc.processor.js +1 -1
- package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +2 -1
- package/dist/runtime/server/system/processors/runtimeEvent.processor.js +1 -1
- package/dist/runtime/server/types/core-exports.types.d.ts +5 -0
- package/dist/runtime/shared/helpers/process-tuple-schema.d.ts +2 -0
- package/dist/runtime/shared/helpers/process-tuple-schema.js +29 -0
- package/package.json +21 -3
- package/dist/adapters/cfx/cfx-capabilities.d.ts +0 -16
- package/dist/adapters/cfx/cfx-capabilities.js +0 -70
- package/dist/adapters/cfx/cfx-platform.d.ts +0 -2
- package/dist/adapters/cfx/cfx-platform.js +0 -85
- package/dist/adapters/cfx/index.d.ts +0 -3
- package/dist/adapters/cfx/index.js +0 -3
- package/dist/adapters/cfx/runtime-profile.d.ts +0 -3
- package/dist/adapters/cfx/runtime-profile.js +0 -37
- package/dist/adapters/contracts/IPlatformCapabilities.d.ts +0 -79
- package/dist/adapters/contracts/IPlatformCapabilities.js +0 -27
- package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +0 -206
- package/dist/adapters/contracts/client/IPedAppearanceClient.js +0 -12
- package/dist/adapters/fivem/fivem-capabilities.d.ts +0 -18
- package/dist/adapters/fivem/fivem-capabilities.js +0 -61
- package/dist/adapters/fivem/fivem-engine-events.d.ts +0 -5
- package/dist/adapters/fivem/fivem-engine-events.js +0 -24
- package/dist/adapters/fivem/fivem-entity-server.d.ts +0 -26
- package/dist/adapters/fivem/fivem-entity-server.js +0 -87
- package/dist/adapters/fivem/fivem-exports.d.ts +0 -5
- package/dist/adapters/fivem/fivem-exports.js +0 -9
- package/dist/adapters/fivem/fivem-hasher.d.ts +0 -7
- package/dist/adapters/fivem/fivem-net-transport.d.ts +0 -1
- package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +0 -34
- package/dist/adapters/fivem/fivem-ped-appearance-client.js +0 -79
- package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +0 -14
- package/dist/adapters/fivem/fivem-ped-appearance-server.js +0 -22
- package/dist/adapters/fivem/fivem-ped-server.d.ts +0 -9
- package/dist/adapters/fivem/fivem-ped-server.js +0 -30
- package/dist/adapters/fivem/fivem-platform.d.ts +0 -5
- package/dist/adapters/fivem/fivem-platform.js +0 -74
- package/dist/adapters/fivem/fivem-player-server.d.ts +0 -24
- package/dist/adapters/fivem/fivem-player-server.js +0 -83
- package/dist/adapters/fivem/fivem-playerinfo.d.ts +0 -6
- package/dist/adapters/fivem/fivem-playerinfo.js +0 -10
- package/dist/adapters/fivem/fivem-resourceinfo.d.ts +0 -5
- package/dist/adapters/fivem/fivem-resourceinfo.js +0 -24
- package/dist/adapters/fivem/fivem-tick.d.ts +0 -7
- package/dist/adapters/fivem/fivem-vehicle-server.d.ts +0 -15
- package/dist/adapters/fivem/fivem-vehicle-server.js +0 -44
- package/dist/adapters/fivem/index.d.ts +0 -14
- package/dist/adapters/fivem/index.js +0 -16
- package/dist/adapters/fivem/transport/adapter.d.ts +0 -8
- package/dist/adapters/fivem/transport/adapter.js +0 -8
- package/dist/adapters/fivem/transport/fivem.events.d.ts +0 -8
- package/dist/adapters/fivem/transport/fivem.events.js +0 -36
- package/dist/adapters/fivem/transport/fivem.rpc.d.ts +0 -28
- package/dist/adapters/fivem/transport/fivem.rpc.js +0 -183
- package/dist/runtime/client/controllers/player-sync.controller.d.ts +0 -11
- package/dist/runtime/client/controllers/player-sync.controller.js +0 -51
- package/dist/runtime/client/player/player.d.ts +0 -262
- package/dist/runtime/client/player/player.js +0 -474
- package/dist/runtime/client/player/player.loader.d.ts +0 -1
- package/dist/runtime/client/player/player.loader.js +0 -18
- package/dist/runtime/server/helpers/process-tuple-schema.d.ts +0 -20
- package/dist/runtime/server/helpers/process-tuple-schema.js +0 -56
- /package/dist/adapters/{fivem/fivem-net-transport.js → contracts/client/spawn/types.js} +0 -0
|
@@ -7,52 +7,28 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
|
|
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';
|
|
11
14
|
import { loggers } from '../../../kernel';
|
|
15
|
+
import { IClientPlatformBridge } from '../adapter/platform-bridge';
|
|
12
16
|
import { AppearanceService } from './appearance.service';
|
|
13
|
-
|
|
14
|
-
const NETWORK_TIMEOUT_MS = 15_000;
|
|
15
|
-
const PED_TIMEOUT_MS = 10_000;
|
|
16
|
-
const COLLISION_TIMEOUT_MS = 7_000;
|
|
17
|
-
/**
|
|
18
|
-
* Handles all player spawning logic on the client.
|
|
19
|
-
*
|
|
20
|
-
* This service manages the complete lifecycle of a player spawn:
|
|
21
|
-
* - Waiting for the network session
|
|
22
|
-
* - Loading and applying the player model
|
|
23
|
-
* - Ensuring collision and world data is ready
|
|
24
|
-
* - Resurrecting the player cleanly
|
|
25
|
-
* - Applying default ped components for freemode models
|
|
26
|
-
* - Fading the screen in/out during transitions
|
|
27
|
-
*
|
|
28
|
-
* The service is designed to be robust, predictable, and safe for any gamemode.
|
|
29
|
-
*/
|
|
17
|
+
import { IClientSpawnBridge } from '../../../adapters/contracts/client/spawn/IClientSpawnBridge';
|
|
30
18
|
let SpawnService = class SpawnService {
|
|
31
19
|
appearanceService;
|
|
20
|
+
spawnBridge;
|
|
21
|
+
platform;
|
|
32
22
|
spawned = false;
|
|
33
23
|
spawning = false;
|
|
34
|
-
constructor(appearanceService) {
|
|
24
|
+
constructor(appearanceService, spawnBridge, platform) {
|
|
35
25
|
this.appearanceService = appearanceService;
|
|
26
|
+
this.spawnBridge = spawnBridge;
|
|
27
|
+
this.platform = platform;
|
|
36
28
|
}
|
|
37
29
|
async init() {
|
|
38
30
|
loggers.spawn.debug('SpawnService initialized');
|
|
39
31
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Performs the first spawn of the player.
|
|
42
|
-
*
|
|
43
|
-
* This method handles:
|
|
44
|
-
* - Fade out
|
|
45
|
-
* - Closing loading screens
|
|
46
|
-
* - Setting the player model
|
|
47
|
-
* - Ensuring the ped exists
|
|
48
|
-
* - Ensuring collision is loaded
|
|
49
|
-
* - Resurrecting the player
|
|
50
|
-
* - Preparing the ped for gameplay
|
|
51
|
-
* - Placing the player at the desired position
|
|
52
|
-
* - Fade in
|
|
53
|
-
*
|
|
54
|
-
* It should only be called once when the player joins.
|
|
55
|
-
*/
|
|
56
32
|
async spawn(position, model, heading = 0.0, options) {
|
|
57
33
|
if (this.spawning) {
|
|
58
34
|
loggers.spawn.warn('Spawn requested while a spawn is already in progress');
|
|
@@ -60,27 +36,22 @@ let SpawnService = class SpawnService {
|
|
|
60
36
|
}
|
|
61
37
|
this.spawning = true;
|
|
62
38
|
try {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
39
|
+
loggers.spawn.debug('Waiting for spawn bridge readiness');
|
|
40
|
+
await this.spawnBridge.waitUntilReady();
|
|
41
|
+
loggers.spawn.debug('Spawn bridge ready, executing spawn', { position, model, heading });
|
|
42
|
+
await this.spawnBridge.spawn({ position, model, heading });
|
|
43
|
+
const ped = this.platform.getLocalPlayerPed();
|
|
44
|
+
if (ped !== 0) {
|
|
45
|
+
if (options?.appearance) {
|
|
46
|
+
loggers.spawn.debug('Applying post-spawn appearance', { ped });
|
|
47
|
+
await this.appearanceService.applyAppearance(ped, options.appearance);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.appearanceService.setDefaultAppearance(ped);
|
|
68
51
|
}
|
|
69
52
|
}
|
|
70
|
-
this.closeLoadingScreens();
|
|
71
|
-
await this.setPlayerModel(model);
|
|
72
|
-
const ped = await this.ensurePed();
|
|
73
|
-
await this.applyAppearanceIfNeeded(ped, options?.appearance);
|
|
74
|
-
await this.ensureCollisionAt(position, ped);
|
|
75
|
-
NetworkResurrectLocalPlayer(position.x, position.y, position.z, heading, 0, false);
|
|
76
|
-
const finalPed = await this.ensurePed();
|
|
77
|
-
await this.setupPedForGameplay(finalPed);
|
|
78
|
-
await this.placePed(finalPed, position, heading);
|
|
79
53
|
this.spawned = true;
|
|
80
|
-
|
|
81
|
-
DoScreenFadeIn(500);
|
|
82
|
-
}
|
|
83
|
-
loggers.spawn.info('Player spawned successfully (first spawn)', {
|
|
54
|
+
loggers.spawn.info('Player spawned successfully', {
|
|
84
55
|
position: { x: position.x, y: position.y, z: position.z },
|
|
85
56
|
model,
|
|
86
57
|
});
|
|
@@ -95,161 +66,33 @@ let SpawnService = class SpawnService {
|
|
|
95
66
|
this.spawning = false;
|
|
96
67
|
}
|
|
97
68
|
}
|
|
98
|
-
/**
|
|
99
|
-
* Teleports the player instantly to a new position.
|
|
100
|
-
* Does not change the model or resurrect the player.
|
|
101
|
-
* Safe for gameplay use.
|
|
102
|
-
*/
|
|
103
69
|
async teleportTo(position, heading) {
|
|
104
|
-
|
|
105
|
-
await this.ensureCollisionAt(position, ped);
|
|
106
|
-
FreezeEntityPosition(ped, true);
|
|
107
|
-
SetEntityCoordsNoOffset(ped, position.x, position.y, position.z, false, false, false);
|
|
108
|
-
if (heading !== undefined) {
|
|
109
|
-
SetEntityHeading(ped, heading);
|
|
110
|
-
}
|
|
111
|
-
FreezeEntityPosition(ped, false);
|
|
70
|
+
await this.spawnBridge.teleport({ position, heading });
|
|
112
71
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Respawns the player after death or a gameplay event.
|
|
115
|
-
* Restores health, resurrects the player, loads collision,
|
|
116
|
-
* prepares the ped and teleports them to the desired location.
|
|
117
|
-
*/
|
|
118
72
|
async respawn(position, heading = 0.0) {
|
|
119
|
-
|
|
120
|
-
await this.
|
|
121
|
-
|
|
122
|
-
SetEntityHealth(ped, GetEntityMaxHealth(ped));
|
|
123
|
-
NetworkResurrectLocalPlayer(position.x, position.y, position.z, heading, 0, false);
|
|
124
|
-
const finalPed = await this.ensurePed();
|
|
125
|
-
await this.setupPedForGameplay(finalPed);
|
|
126
|
-
await this.teleportTo(position, heading);
|
|
73
|
+
await this.spawnBridge.waitUntilReady();
|
|
74
|
+
await this.spawnBridge.respawn({ position, heading });
|
|
75
|
+
this.spawned = true;
|
|
127
76
|
loggers.spawn.info('Player respawned', {
|
|
128
77
|
position: { x: position.x, y: position.y, z: position.z },
|
|
129
78
|
heading,
|
|
130
79
|
});
|
|
131
80
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Returns whether the player has completed their first spawn.
|
|
134
|
-
*/
|
|
135
81
|
isSpawned() {
|
|
136
82
|
return this.spawned;
|
|
137
83
|
}
|
|
138
|
-
/**
|
|
139
|
-
* Allows other systems to wait until the player is fully spawned.
|
|
140
|
-
*/
|
|
141
84
|
async waitUntilSpawned() {
|
|
142
85
|
while (!this.spawned) {
|
|
143
|
-
await
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
async ensureNetworkReady() {
|
|
147
|
-
const start = GetGameTimer();
|
|
148
|
-
while (!NetworkIsSessionStarted()) {
|
|
149
|
-
if (GetGameTimer() - start > NETWORK_TIMEOUT_MS) {
|
|
150
|
-
loggers.spawn.error('Network session did not start in time');
|
|
151
|
-
throw new Error('NETWORK_TIMEOUT');
|
|
152
|
-
}
|
|
153
|
-
await delay(0);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
closeLoadingScreens() {
|
|
157
|
-
try {
|
|
158
|
-
ShutdownLoadingScreen();
|
|
159
|
-
}
|
|
160
|
-
catch { }
|
|
161
|
-
try {
|
|
162
|
-
ShutdownLoadingScreenNui();
|
|
163
|
-
}
|
|
164
|
-
catch { }
|
|
165
|
-
}
|
|
166
|
-
async setPlayerModel(model) {
|
|
167
|
-
const modelHash = GetHashKey(model);
|
|
168
|
-
if (!IsModelInCdimage(modelHash) || !IsModelValid(modelHash)) {
|
|
169
|
-
loggers.spawn.error('Invalid model requested', { model });
|
|
170
|
-
throw new Error('MODEL_INVALID');
|
|
171
|
-
}
|
|
172
|
-
RequestModel(modelHash);
|
|
173
|
-
while (!HasModelLoaded(modelHash)) {
|
|
174
|
-
await delay(0);
|
|
175
|
-
}
|
|
176
|
-
SetPlayerModel(PlayerId(), modelHash);
|
|
177
|
-
SetModelAsNoLongerNeeded(modelHash);
|
|
178
|
-
const ped = PlayerPedId();
|
|
179
|
-
if (ped !== 0) {
|
|
180
|
-
SetPedDefaultComponentVariation(ped);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
async ensurePed() {
|
|
184
|
-
const start = GetGameTimer();
|
|
185
|
-
let ped = PlayerPedId();
|
|
186
|
-
while (ped === 0) {
|
|
187
|
-
if (GetGameTimer() - start > PED_TIMEOUT_MS) {
|
|
188
|
-
loggers.spawn.error('PlayerPedId() did not become valid in time');
|
|
189
|
-
throw new Error('PED_TIMEOUT');
|
|
190
|
-
}
|
|
191
|
-
await delay(0);
|
|
192
|
-
ped = PlayerPedId();
|
|
193
|
-
}
|
|
194
|
-
return ped;
|
|
195
|
-
}
|
|
196
|
-
async ensureCollisionAt(position, ped) {
|
|
197
|
-
RequestCollisionAtCoord(position.x, position.y, position.z);
|
|
198
|
-
const start = GetGameTimer();
|
|
199
|
-
while (!HasCollisionLoadedAroundEntity(ped)) {
|
|
200
|
-
if (GetGameTimer() - start > COLLISION_TIMEOUT_MS) {
|
|
201
|
-
loggers.spawn.warn('Collision did not fully load around entity in time', {
|
|
202
|
-
x: position.x,
|
|
203
|
-
y: position.y,
|
|
204
|
-
z: position.z,
|
|
205
|
-
});
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
await delay(0);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
async setupPedForGameplay(ped) {
|
|
212
|
-
SetEntityAsMissionEntity(ped, true, true);
|
|
213
|
-
ClearPedTasksImmediately(ped);
|
|
214
|
-
RemoveAllPedWeapons(ped, true);
|
|
215
|
-
ResetEntityAlpha(ped);
|
|
216
|
-
await delay(0);
|
|
217
|
-
SetEntityAlpha(ped, 255, false);
|
|
218
|
-
SetEntityVisible(ped, true, false);
|
|
219
|
-
SetEntityCollision(ped, true, true);
|
|
220
|
-
SetEntityInvincible(ped, false);
|
|
221
|
-
}
|
|
222
|
-
async placePed(ped, position, heading) {
|
|
223
|
-
FreezeEntityPosition(ped, true);
|
|
224
|
-
SetEntityCoordsNoOffset(ped, position.x, position.y, position.z, false, false, false);
|
|
225
|
-
SetEntityHeading(ped, heading);
|
|
226
|
-
await delay(0);
|
|
227
|
-
FreezeEntityPosition(ped, false);
|
|
228
|
-
}
|
|
229
|
-
async applyAppearanceIfNeeded(ped, appearance) {
|
|
230
|
-
if (!appearance) {
|
|
231
|
-
SetPedDefaultComponentVariation(ped);
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
const validation = this.appearanceService.validateAppearance(appearance);
|
|
235
|
-
if (!validation.valid) {
|
|
236
|
-
loggers.spawn.warn('Invalid appearance data', { errors: validation.errors });
|
|
237
|
-
SetPedDefaultComponentVariation(ped);
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
try {
|
|
241
|
-
await this.appearanceService.applyAppearance(ped, appearance);
|
|
242
|
-
}
|
|
243
|
-
catch (error) {
|
|
244
|
-
loggers.spawn.error('Failed to apply appearance, using default variation', {
|
|
245
|
-
error: error instanceof Error ? error.message : String(error),
|
|
246
|
-
});
|
|
247
|
-
SetPedDefaultComponentVariation(ped);
|
|
86
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
248
87
|
}
|
|
249
88
|
}
|
|
250
89
|
};
|
|
251
90
|
SpawnService = __decorate([
|
|
252
91
|
injectable(),
|
|
253
|
-
|
|
92
|
+
__param(1, inject(IClientSpawnBridge)),
|
|
93
|
+
__param(2, inject(IClientPlatformBridge)),
|
|
94
|
+
__metadata("design:paramtypes", [AppearanceService,
|
|
95
|
+
IClientSpawnBridge,
|
|
96
|
+
IClientPlatformBridge])
|
|
254
97
|
], SpawnService);
|
|
255
98
|
export { SpawnService };
|
|
@@ -1,103 +1,28 @@
|
|
|
1
|
+
import { IClientPlatformBridge } from '../adapter/platform-bridge';
|
|
2
|
+
import { IClientRuntimeBridge } from '../adapter/runtime-bridge';
|
|
1
3
|
export interface StreamingRequest {
|
|
2
4
|
type: 'model' | 'animDict' | 'ptfx' | 'texture' | 'audio';
|
|
3
5
|
asset: string;
|
|
4
6
|
loaded: boolean;
|
|
5
7
|
hash?: number;
|
|
6
8
|
}
|
|
7
|
-
/**
|
|
8
|
-
* Service for managing asset streaming (models, animations, particles, etc.).
|
|
9
|
-
*/
|
|
10
9
|
export declare class StreamingService {
|
|
10
|
+
private readonly platform;
|
|
11
|
+
private readonly runtime;
|
|
11
12
|
private loadedAssets;
|
|
12
|
-
|
|
13
|
-
* Request and load a model.
|
|
14
|
-
*
|
|
15
|
-
* @param model - Model name or hash
|
|
16
|
-
* @param timeout - Maximum wait time in ms
|
|
17
|
-
* @returns Whether the model was loaded successfully
|
|
18
|
-
*/
|
|
13
|
+
constructor(platform: IClientPlatformBridge, runtime: IClientRuntimeBridge);
|
|
19
14
|
requestModel(model: string | number, timeout?: number): Promise<boolean>;
|
|
20
|
-
/**
|
|
21
|
-
* Check if a model is loaded.
|
|
22
|
-
*
|
|
23
|
-
* @param model - Model name or hash
|
|
24
|
-
*/
|
|
25
15
|
isModelLoaded(model: string | number): boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Release a loaded model.
|
|
28
|
-
*
|
|
29
|
-
* @param model - Model name or hash
|
|
30
|
-
*/
|
|
31
16
|
releaseModel(model: string | number): void;
|
|
32
|
-
/**
|
|
33
|
-
* Check if a model is valid and exists in the game files.
|
|
34
|
-
*
|
|
35
|
-
* @param model - Model name or hash
|
|
36
|
-
*/
|
|
37
17
|
isModelValid(model: string | number): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Check if a model is a vehicle.
|
|
40
|
-
*
|
|
41
|
-
* @param model - Model name or hash
|
|
42
|
-
*/
|
|
43
18
|
isModelVehicle(model: string | number): boolean;
|
|
44
|
-
/**
|
|
45
|
-
* Check if a model is a ped.
|
|
46
|
-
*
|
|
47
|
-
* @param model - Model name or hash
|
|
48
|
-
*/
|
|
49
19
|
isModelPed(model: string | number): boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Request and load an animation dictionary.
|
|
52
|
-
*
|
|
53
|
-
* @param dict - Animation dictionary name
|
|
54
|
-
* @param timeout - Maximum wait time in ms
|
|
55
|
-
* @returns Whether the dictionary was loaded successfully
|
|
56
|
-
*/
|
|
57
20
|
requestAnimDict(dict: string, timeout?: number): Promise<boolean>;
|
|
58
|
-
/**
|
|
59
|
-
* Check if an animation dictionary is loaded.
|
|
60
|
-
*
|
|
61
|
-
* @param dict - Animation dictionary name
|
|
62
|
-
*/
|
|
63
21
|
isAnimDictLoaded(dict: string): boolean;
|
|
64
|
-
/**
|
|
65
|
-
* Release a loaded animation dictionary.
|
|
66
|
-
*
|
|
67
|
-
* @param dict - Animation dictionary name
|
|
68
|
-
*/
|
|
69
22
|
releaseAnimDict(dict: string): void;
|
|
70
|
-
/**
|
|
71
|
-
* Request and load a particle effect asset.
|
|
72
|
-
*
|
|
73
|
-
* @param asset - PTFX asset name
|
|
74
|
-
* @param timeout - Maximum wait time in ms
|
|
75
|
-
* @returns Whether the asset was loaded successfully
|
|
76
|
-
*/
|
|
77
23
|
requestPtfxAsset(asset: string, timeout?: number): Promise<boolean>;
|
|
78
|
-
/**
|
|
79
|
-
* Check if a PTFX asset is loaded.
|
|
80
|
-
*
|
|
81
|
-
* @param asset - PTFX asset name
|
|
82
|
-
*/
|
|
83
24
|
isPtfxAssetLoaded(asset: string): boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Release a loaded PTFX asset.
|
|
86
|
-
*
|
|
87
|
-
* @param asset - PTFX asset name
|
|
88
|
-
*/
|
|
89
25
|
releasePtfxAsset(asset: string): void;
|
|
90
|
-
/**
|
|
91
|
-
* Start a particle effect at a position.
|
|
92
|
-
*
|
|
93
|
-
* @param asset - PTFX asset name
|
|
94
|
-
* @param effectName - Effect name within the asset
|
|
95
|
-
* @param position - World position
|
|
96
|
-
* @param rotation - Rotation
|
|
97
|
-
* @param scale - Scale
|
|
98
|
-
* @param looped - Whether to loop
|
|
99
|
-
* @returns The particle effect handle
|
|
100
|
-
*/
|
|
101
26
|
startParticleEffect(asset: string, effectName: string, position: {
|
|
102
27
|
x: number;
|
|
103
28
|
y: number;
|
|
@@ -107,59 +32,13 @@ export declare class StreamingService {
|
|
|
107
32
|
y: number;
|
|
108
33
|
z: number;
|
|
109
34
|
}, scale?: number, looped?: boolean): Promise<number>;
|
|
110
|
-
/**
|
|
111
|
-
* Stop a looped particle effect.
|
|
112
|
-
*
|
|
113
|
-
* @param handle - Particle effect handle
|
|
114
|
-
*/
|
|
115
35
|
stopParticleEffect(handle: number): void;
|
|
116
|
-
/**
|
|
117
|
-
* Request and load a texture dictionary.
|
|
118
|
-
*
|
|
119
|
-
* @param dict - Texture dictionary name
|
|
120
|
-
* @param timeout - Maximum wait time in ms
|
|
121
|
-
* @returns Whether the dictionary was loaded successfully
|
|
122
|
-
*/
|
|
123
36
|
requestTextureDict(dict: string, timeout?: number): Promise<boolean>;
|
|
124
|
-
/**
|
|
125
|
-
* Check if a texture dictionary is loaded.
|
|
126
|
-
*
|
|
127
|
-
* @param dict - Texture dictionary name
|
|
128
|
-
*/
|
|
129
37
|
isTextureDictLoaded(dict: string): boolean;
|
|
130
|
-
/**
|
|
131
|
-
* Release a loaded texture dictionary.
|
|
132
|
-
*
|
|
133
|
-
* @param dict - Texture dictionary name
|
|
134
|
-
*/
|
|
135
38
|
releaseTextureDict(dict: string): void;
|
|
136
|
-
/**
|
|
137
|
-
* Request and load a script audio bank.
|
|
138
|
-
*
|
|
139
|
-
* @param audioBank - Audio bank name
|
|
140
|
-
* @param networked - Whether the audio should be networked
|
|
141
|
-
* @param timeout - Maximum wait time in ms
|
|
142
|
-
* @returns Whether the audio bank was loaded successfully
|
|
143
|
-
*/
|
|
144
39
|
requestAudioBank(audioBank: string, networked?: boolean, _timeout?: number): Promise<boolean>;
|
|
145
|
-
/**
|
|
146
|
-
* Release a loaded audio bank.
|
|
147
|
-
*
|
|
148
|
-
* @param audioBank - Audio bank name
|
|
149
|
-
*/
|
|
150
40
|
releaseAudioBank(audioBank: string): void;
|
|
151
|
-
/**
|
|
152
|
-
* Get all currently loaded assets.
|
|
153
|
-
*/
|
|
154
41
|
getLoadedAssets(): StreamingRequest[];
|
|
155
|
-
/**
|
|
156
|
-
* Release all loaded assets.
|
|
157
|
-
*/
|
|
158
42
|
releaseAll(): void;
|
|
159
|
-
/**
|
|
160
|
-
* Get hash key for a string.
|
|
161
|
-
*
|
|
162
|
-
* @param str - String to hash
|
|
163
|
-
*/
|
|
164
43
|
getHash(str: string): number;
|
|
165
44
|
}
|