livekit-client 2.22.3 → 2.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -0
- package/dist/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +71 -8
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +1746 -547
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.fm.worker.js +1 -1
- package/dist/livekit-client.fm.worker.js.map +1 -1
- package/dist/livekit-client.fm.worker.mjs +2 -1
- package/dist/livekit-client.fm.worker.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/api/SignalClient.d.ts +4 -2
- package/dist/src/api/SignalClient.d.ts.map +1 -1
- package/dist/src/api/WebSocketStream.d.ts +1 -0
- package/dist/src/api/WebSocketStream.d.ts.map +1 -1
- package/dist/src/api/utils.d.ts +1 -1
- package/dist/src/api/utils.d.ts.map +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/e2ee/worker/naluUtils.d.ts +12 -1
- package/dist/src/e2ee/worker/naluUtils.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/options.d.ts +14 -0
- package/dist/src/options.d.ts.map +1 -1
- package/dist/src/room/DefaultReconnectPolicy.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts +100 -7
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/PCTransportManager.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts +16 -0
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +54 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/data-channel/DataChannelManager.d.ts +9 -8
- package/dist/src/room/data-channel/DataChannelManager.d.ts.map +1 -1
- package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts +25 -12
- package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts.map +1 -1
- package/dist/src/room/data-channel/LossyDataChannel.d.ts.map +1 -1
- package/dist/src/room/data-channel/ReliableDataChannel.d.ts.map +1 -1
- package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
- package/dist/src/room/defaults.d.ts.map +1 -1
- package/dist/src/room/errors.d.ts +18 -0
- package/dist/src/room/errors.d.ts.map +1 -1
- package/dist/src/room/events.d.ts +3 -2
- package/dist/src/room/events.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +4 -0
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/Participant.d.ts +1 -1
- package/dist/src/room/participant/Participant.d.ts.map +1 -1
- package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
- package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
- package/dist/src/room/rpc/utils.d.ts.map +1 -1
- package/dist/src/room/track/LocalAudioTrack.d.ts +24 -1
- package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
- package/dist/src/room/track/LocalTrack.d.ts +18 -0
- package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
- package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
- package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
- package/dist/src/room/track/RemoteAudioTrack.d.ts +6 -0
- package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -1
- package/dist/src/room/track/processor/types.d.ts +11 -0
- package/dist/src/room/track/processor/types.d.ts.map +1 -1
- package/dist/src/room/track/utils.d.ts +13 -0
- package/dist/src/room/track/utils.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +60 -1
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/src/test/compressionStreamStubs.d.ts +12 -0
- package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
- package/dist/ts4.2/api/SignalClient.d.ts +187 -185
- package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
- package/dist/ts4.2/api/WebSocketStream.d.ts +34 -33
- package/dist/ts4.2/api/utils.d.ts +9 -9
- package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
- package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
- package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
- package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
- package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
- package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
- package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -111
- package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
- package/dist/ts4.2/e2ee/constants.d.ts +21 -21
- package/dist/ts4.2/e2ee/errors.d.ts +12 -12
- package/dist/ts4.2/e2ee/events.d.ts +39 -39
- package/dist/ts4.2/e2ee/index.d.ts +6 -6
- package/dist/ts4.2/e2ee/types.d.ts +231 -231
- package/dist/ts4.2/e2ee/utils.d.ts +32 -32
- package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
- package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -21
- package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -209
- package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
- package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
- package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +39 -28
- package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
- package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
- package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
- package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
- package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
- package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
- package/dist/ts4.2/index.d.ts +76 -76
- package/dist/ts4.2/logger.d.ts +66 -66
- package/dist/ts4.2/options.d.ts +163 -149
- package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
- package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
- package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
- package/dist/ts4.2/room/PCTransport.d.ts +268 -175
- package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
- package/dist/ts4.2/room/RTCEngine.d.ts +277 -262
- package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
- package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
- package/dist/ts4.2/room/Room.d.ts +407 -365
- package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
- package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +63 -62
- package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +107 -95
- package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
- package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
- package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
- package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
- package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
- package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
- package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
- package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
- package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
- package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
- package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
- package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
- package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
- package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
- package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
- package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
- package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
- package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
- package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
- package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
- package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
- package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
- package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
- package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
- package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
- package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
- package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
- package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
- package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
- package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
- package/dist/ts4.2/room/data-track/types.d.ts +22 -22
- package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
- package/dist/ts4.2/room/debounce.d.ts +11 -11
- package/dist/ts4.2/room/defaults.d.ts +9 -9
- package/dist/ts4.2/room/errors.d.ts +180 -162
- package/dist/ts4.2/room/events.d.ts +638 -637
- package/dist/ts4.2/room/participant/LocalParticipant.d.ts +291 -287
- package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
- package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
- package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
- package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -53
- package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
- package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
- package/dist/ts4.2/room/rpc/index.d.ts +7 -7
- package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
- package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
- package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
- package/dist/ts4.2/room/stats.d.ts +71 -71
- package/dist/ts4.2/room/statsSummary.d.ts +13 -13
- package/dist/ts4.2/room/timers.d.ts +12 -12
- package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
- package/dist/ts4.2/room/token-source/types.d.ts +70 -70
- package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
- package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
- package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +62 -42
- package/dist/ts4.2/room/track/LocalTrack.d.ts +143 -125
- package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
- package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +109 -100
- package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +61 -55
- package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
- package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
- package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
- package/dist/ts4.2/room/track/Track.d.ts +156 -166
- package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
- package/dist/ts4.2/room/track/create.d.ts +25 -25
- package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
- package/dist/ts4.2/room/track/options.d.ts +403 -403
- package/dist/ts4.2/room/track/processor/types.d.ts +42 -31
- package/dist/ts4.2/room/track/record.d.ts +13 -13
- package/dist/ts4.2/room/track/types.d.ts +28 -28
- package/dist/ts4.2/room/track/utils.d.ts +60 -47
- package/dist/ts4.2/room/types.d.ts +127 -127
- package/dist/ts4.2/room/utils.d.ts +273 -214
- package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
- package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
- package/dist/ts4.2/test/mocks.d.ts +12 -12
- package/dist/ts4.2/test/promiseState.d.ts +12 -12
- package/dist/ts4.2/test/signalToken.d.ts +26 -26
- package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
- package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
- package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
- package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
- package/dist/ts4.2/utils/browserParser.d.ts +13 -13
- package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
- package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
- package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
- package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
- package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
- package/dist/ts4.2/utils/serializer.d.ts +48 -48
- package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
- package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
- package/dist/ts4.2/version.d.ts +15 -15
- package/package.json +5 -4
- package/src/api/SignalClient.e2e.test.ts +1 -3
- package/src/api/SignalClient.test.ts +394 -10
- package/src/api/SignalClient.ts +132 -76
- package/src/api/WebSocketStream.test.ts +11 -0
- package/src/api/WebSocketStream.ts +22 -1
- package/src/api/utils.ts +1 -1
- package/src/e2ee/E2eeManager.test.ts +43 -0
- package/src/e2ee/E2eeManager.ts +6 -2
- package/src/e2ee/worker/FrameCryptor.test.ts +212 -90
- package/src/e2ee/worker/FrameCryptor.ts +21 -4
- package/src/e2ee/worker/naluUtils.test.ts +123 -0
- package/src/e2ee/worker/naluUtils.ts +57 -2
- package/src/index.ts +2 -0
- package/src/options.ts +16 -0
- package/src/room/DefaultReconnectPolicy.test.ts +58 -0
- package/src/room/DefaultReconnectPolicy.ts +14 -2
- package/src/room/PCTransport.test.ts +327 -9
- package/src/room/PCTransport.ts +339 -36
- package/src/room/PCTransportManager.ts +3 -1
- package/src/room/RTCEngine.test.ts +318 -2
- package/src/room/RTCEngine.ts +126 -12
- package/src/room/Room.test.ts +148 -6
- package/src/room/Room.ts +312 -80
- package/src/room/data-channel/DataChannelManager.test.ts +24 -7
- package/src/room/data-channel/DataChannelManager.ts +43 -38
- package/src/room/data-channel/FlowControlledDataChannel.test.ts +60 -18
- package/src/room/data-channel/FlowControlledDataChannel.ts +40 -22
- package/src/room/data-channel/LossyDataChannel.test.ts +38 -0
- package/src/room/data-channel/LossyDataChannel.ts +10 -1
- package/src/room/data-channel/ReliableDataChannel.test.ts +72 -0
- package/src/room/data-channel/ReliableDataChannel.ts +16 -5
- package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +47 -20
- package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +16 -5
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
- package/src/room/defaults.ts +1 -0
- package/src/room/errors.test.ts +36 -0
- package/src/room/errors.ts +27 -0
- package/src/room/events.ts +2 -1
- package/src/room/participant/LocalParticipant.test.ts +136 -1
- package/src/room/participant/LocalParticipant.ts +66 -17
- package/src/room/participant/Participant.ts +6 -3
- package/src/room/participant/publishUtils.ts +0 -19
- package/src/room/participant/restartOnDefaultAudioDevice.test.ts +177 -0
- package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
- package/src/room/rpc/client/RpcClientManager.ts +32 -15
- package/src/room/rpc/utils.test.ts +32 -0
- package/src/room/rpc/utils.ts +7 -0
- package/src/room/track/LocalAudioTrack.ts +101 -10
- package/src/room/track/LocalTrack.ts +87 -19
- package/src/room/track/LocalVideoTrack.ts +17 -3
- package/src/room/track/RemoteAudioTrack.ts +59 -14
- package/src/room/track/RemoteVideoTrack.test.ts +210 -0
- package/src/room/track/RemoteVideoTrack.ts +29 -3
- package/src/room/track/processor/types.ts +11 -0
- package/src/room/track/utils.test.ts +206 -2
- package/src/room/track/utils.ts +117 -5
- package/src/room/utils.test.ts +250 -0
- package/src/room/utils.ts +152 -19
- package/src/test/compressionStreamStubs.ts +53 -0
|
@@ -1,287 +1,291 @@
|
|
|
1
|
-
import { Codec, ParticipantInfo } from '@livekit/protocol';
|
|
2
|
-
import type { InternalRoomOptions } from '../../options';
|
|
3
|
-
import type { NonSharedUint8Array } from '../../type-polyfills/non-shared-typed-arrays';
|
|
4
|
-
import TypedPromise from '../../utils/TypedPromise';
|
|
5
|
-
import type RTCEngine from '../RTCEngine';
|
|
6
|
-
import type OutgoingDataStreamManager from '../data-stream/outgoing/OutgoingDataStreamManager';
|
|
7
|
-
import type { TextStreamWriter } from '../data-stream/outgoing/StreamWriter';
|
|
8
|
-
import LocalDataTrack from '../data-track/LocalDataTrack';
|
|
9
|
-
import type OutgoingDataTrackManager from '../data-track/outgoing/OutgoingDataTrackManager';
|
|
10
|
-
import type { DataTrackOptions } from '../data-track/outgoing/types';
|
|
11
|
-
import type { PerformRpcParams, RpcInvocationData } from '../rpc';
|
|
12
|
-
import { RpcClientManager, RpcError, RpcServerManager } from '../rpc';
|
|
13
|
-
import LocalTrack from '../track/LocalTrack';
|
|
14
|
-
import LocalTrackPublication from '../track/LocalTrackPublication';
|
|
15
|
-
import { Track } from '../track/Track';
|
|
16
|
-
import type { AudioCaptureOptions, BackupVideoCodec, CreateLocalTracksOptions, ScreenShareCaptureOptions, TrackPublishOptions, VideoCaptureOptions } from '../track/options';
|
|
17
|
-
import type { ByteStreamInfo, ChatMessage, DataPublishOptions, SendBytesOptions, SendFileOptions, SendTextOptions, StreamBytesOptions, StreamTextOptions, TextStreamInfo } from '../types';
|
|
18
|
-
import Participant from './Participant';
|
|
19
|
-
import type { ParticipantTrackPermission } from './ParticipantTrackPermission';
|
|
20
|
-
import type RemoteParticipant from './RemoteParticipant';
|
|
21
|
-
export default class LocalParticipant extends Participant {
|
|
22
|
-
audioTrackPublications: Map<string, LocalTrackPublication>;
|
|
23
|
-
videoTrackPublications: Map<string, LocalTrackPublication>;
|
|
24
|
-
/** map of track sid => all published tracks */
|
|
25
|
-
trackPublications: Map<string, LocalTrackPublication>;
|
|
26
|
-
/** @internal */
|
|
27
|
-
engine: RTCEngine;
|
|
28
|
-
/** @internal */
|
|
29
|
-
activeDeviceMap: Map<MediaDeviceKind, string>;
|
|
30
|
-
private pendingPublishing;
|
|
31
|
-
private pendingPublishPromises;
|
|
32
|
-
private republishPromise;
|
|
33
|
-
private cameraError;
|
|
34
|
-
private microphoneError;
|
|
35
|
-
private participantTrackPermissions;
|
|
36
|
-
private allParticipantsAllowedToSubscribe;
|
|
37
|
-
private roomOptions;
|
|
38
|
-
private encryptionType;
|
|
39
|
-
private e2eeStateMutex;
|
|
40
|
-
private reconnectFuture?;
|
|
41
|
-
private signalConnectedFuture?;
|
|
42
|
-
private activeAgentFuture?;
|
|
43
|
-
private firstActiveAgent?;
|
|
44
|
-
private roomOutgoingDataStreamManager;
|
|
45
|
-
private roomOutgoingDataTrackManager;
|
|
46
|
-
private rpcClientManager;
|
|
47
|
-
private rpcServerManager;
|
|
48
|
-
private pendingSignalRequests;
|
|
49
|
-
private enabledPublishVideoCodecs;
|
|
50
|
-
/** @internal */
|
|
51
|
-
constructor(sid: string, identity: string, engine: RTCEngine, options: InternalRoomOptions, roomOutgoingDataStreamManager: OutgoingDataStreamManager, roomOutgoingDataTrackManager: OutgoingDataTrackManager, rpcClientManager: RpcClientManager, rpcServerManager: RpcServerManager);
|
|
52
|
-
get lastCameraError(): Error | undefined;
|
|
53
|
-
get lastMicrophoneError(): Error | undefined;
|
|
54
|
-
get isE2EEEnabled(): boolean;
|
|
55
|
-
getTrackPublication(source: Track.Source): LocalTrackPublication | undefined;
|
|
56
|
-
getTrackPublicationByName(name: string): LocalTrackPublication | undefined;
|
|
57
|
-
/**
|
|
58
|
-
* @internal
|
|
59
|
-
*/
|
|
60
|
-
setupEngine(engine: RTCEngine): void;
|
|
61
|
-
private handleReconnecting;
|
|
62
|
-
private handleReconnected;
|
|
63
|
-
private handleClosing;
|
|
64
|
-
private handleSignalConnected;
|
|
65
|
-
private handleSignalRequestResponse;
|
|
66
|
-
/**
|
|
67
|
-
* Sets and updates the metadata of the local participant.
|
|
68
|
-
* Note: this requires `canUpdateOwnMetadata` permission.
|
|
69
|
-
* method will throw if the user doesn't have the required permissions
|
|
70
|
-
* @param metadata
|
|
71
|
-
*/
|
|
72
|
-
setMetadata(metadata: string): Promise<void>;
|
|
73
|
-
/**
|
|
74
|
-
* Sets and updates the name of the local participant.
|
|
75
|
-
* Note: this requires `canUpdateOwnMetadata` permission.
|
|
76
|
-
* method will throw if the user doesn't have the required permissions
|
|
77
|
-
* @param metadata
|
|
78
|
-
*/
|
|
79
|
-
setName(name: string): Promise<void>;
|
|
80
|
-
/**
|
|
81
|
-
* Set or update participant attributes. It will make updates only to keys that
|
|
82
|
-
* are present in `attributes`, and will not override others.
|
|
83
|
-
* Note: this requires `canUpdateOwnMetadata` permission.
|
|
84
|
-
* @param attributes attributes to update
|
|
85
|
-
*/
|
|
86
|
-
setAttributes(attributes: Record<string, string>): Promise<void>;
|
|
87
|
-
private requestMetadataUpdate;
|
|
88
|
-
/**
|
|
89
|
-
* Enable or disable a participant's camera track.
|
|
90
|
-
*
|
|
91
|
-
* If a track has already published, it'll mute or unmute the track.
|
|
92
|
-
* Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
|
|
93
|
-
*/
|
|
94
|
-
setCameraEnabled(enabled: boolean, options?: VideoCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
|
|
95
|
-
/**
|
|
96
|
-
* Enable or disable a participant's microphone track.
|
|
97
|
-
*
|
|
98
|
-
* If a track has already published, it'll mute or unmute the track.
|
|
99
|
-
* Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
|
|
100
|
-
*/
|
|
101
|
-
setMicrophoneEnabled(enabled: boolean, options?: AudioCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
|
|
102
|
-
/**
|
|
103
|
-
* Start or stop sharing a participant's screen
|
|
104
|
-
* Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
|
|
105
|
-
*/
|
|
106
|
-
setScreenShareEnabled(enabled: boolean, options?: ScreenShareCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
|
|
107
|
-
/** @internal */
|
|
108
|
-
setE2EEEnabled(enabled: boolean): Promise<void>;
|
|
109
|
-
/**
|
|
110
|
-
* Enable or disable publishing for a track by source. This serves as a simple
|
|
111
|
-
* way to manage the common tracks (camera, mic, or screen share).
|
|
112
|
-
* Resolves with LocalTrackPublication if successful and void otherwise
|
|
113
|
-
*/
|
|
114
|
-
private setTrackEnabled;
|
|
115
|
-
/**
|
|
116
|
-
* Publish both camera and microphone at the same time. This is useful for
|
|
117
|
-
* displaying a single Permission Dialog box to the end user.
|
|
118
|
-
*/
|
|
119
|
-
enableCameraAndMicrophone(): Promise<void>;
|
|
120
|
-
/**
|
|
121
|
-
* Create local camera and/or microphone tracks
|
|
122
|
-
* @param options
|
|
123
|
-
* @returns
|
|
124
|
-
*/
|
|
125
|
-
createTracks(options?: CreateLocalTracksOptions): Promise<LocalTrack[]>;
|
|
126
|
-
/**
|
|
127
|
-
* Creates a screen capture tracks with getDisplayMedia().
|
|
128
|
-
* A LocalVideoTrack is always created and returned.
|
|
129
|
-
* If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
|
|
130
|
-
*/
|
|
131
|
-
createScreenTracks(options?: ScreenShareCaptureOptions): Promise<Array<LocalTrack>>;
|
|
132
|
-
/**
|
|
133
|
-
* Publish a new track to the room
|
|
134
|
-
* @param track
|
|
135
|
-
* @param options
|
|
136
|
-
*/
|
|
137
|
-
publishTrack(track: LocalTrack | MediaStreamTrack, options?: TrackPublishOptions): Promise<LocalTrackPublication>;
|
|
138
|
-
/**
|
|
139
|
-
* Waits for the engine's next `Restarted` event. Unlike `engine.waitForRestarted`, this does
|
|
140
|
-
* not short-circuit when `pcState === Connected` — at the point this is called (right after a
|
|
141
|
-
* `NegotiationError`) the PC transport is still connected, but `fullReconnectOnNext` has been
|
|
142
|
-
* set and `attemptReconnect` is queued via setTimeout. We need to wait for that restart to
|
|
143
|
-
* actually complete (which clears `pendingTrackResolvers` via `cleanupClient`) before retrying.
|
|
144
|
-
*/
|
|
145
|
-
private waitForNextEngineRestart;
|
|
146
|
-
private publishOrRepublishTrack;
|
|
147
|
-
private waitUntilEngineConnected;
|
|
148
|
-
private hasPermissionsToPublish;
|
|
149
|
-
private publish;
|
|
150
|
-
private canPublishFrameMetadata;
|
|
151
|
-
private normalizeRequestedFrameMetadataOptions;
|
|
152
|
-
get isLocal(): boolean;
|
|
153
|
-
/** @internal
|
|
154
|
-
* publish additional codec to existing track
|
|
155
|
-
*/
|
|
156
|
-
publishAdditionalCodecForTrack(track: LocalTrack | MediaStreamTrack, videoCodec: BackupVideoCodec, options?: TrackPublishOptions): Promise<void>;
|
|
157
|
-
unpublishTrack(track: LocalTrack | MediaStreamTrack, stopOnUnpublish?: boolean): Promise<LocalTrackPublication | undefined>;
|
|
158
|
-
unpublishTracks(tracks: LocalTrack[] | MediaStreamTrack[]): Promise<LocalTrackPublication[]>;
|
|
159
|
-
republishAllTracks(options?: TrackPublishOptions, restartTracks?: boolean): Promise<void>;
|
|
160
|
-
/**
|
|
161
|
-
* Publish a new data payload to the room. Data will be forwarded to each
|
|
162
|
-
* participant in the room if the destination field in publishOptions is empty
|
|
163
|
-
*
|
|
164
|
-
* @param data Uint8Array of the payload. To send string data, use TextEncoder.encode
|
|
165
|
-
* @param options optionally specify a `reliable`, `topic` and `destination`
|
|
166
|
-
*/
|
|
167
|
-
publishData(data: NonSharedUint8Array, options?: DataPublishOptions): Promise<void>;
|
|
168
|
-
/**
|
|
169
|
-
* Publish SIP DTMF message to the room.
|
|
170
|
-
*
|
|
171
|
-
* @param code DTMF code
|
|
172
|
-
* @param digit DTMF digit
|
|
173
|
-
*/
|
|
174
|
-
publishDtmf(code: number, digit: string): Promise<void>;
|
|
175
|
-
/** @deprecated Consider migrating to {@link sendText} */
|
|
176
|
-
sendChatMessage(text: string, options?: SendTextOptions): Promise<ChatMessage>;
|
|
177
|
-
/** @deprecated Consider migrating to {@link sendText} */
|
|
178
|
-
editChatMessage(editText: string, originalMessage: ChatMessage): Promise<{
|
|
179
|
-
readonly message: string;
|
|
180
|
-
readonly editTimestamp: number;
|
|
181
|
-
readonly id: string;
|
|
182
|
-
readonly timestamp: number;
|
|
183
|
-
readonly attachedFiles?: Array<File>;
|
|
184
|
-
}>;
|
|
185
|
-
/**
|
|
186
|
-
* Sends the given string to participants in the room via the data channel.
|
|
187
|
-
* For longer messages, consider using {@link streamText} instead.
|
|
188
|
-
*
|
|
189
|
-
* @param text The text payload
|
|
190
|
-
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
191
|
-
*/
|
|
192
|
-
sendText(text: string, options?: SendTextOptions): Promise<TextStreamInfo>;
|
|
193
|
-
/**
|
|
194
|
-
* Creates a new TextStreamWriter which can be used to stream text incrementally
|
|
195
|
-
* to participants in the room via the data channel.
|
|
196
|
-
*
|
|
197
|
-
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
198
|
-
*
|
|
199
|
-
* @internal
|
|
200
|
-
* @experimental CAUTION, might get removed in a minor release
|
|
201
|
-
*/
|
|
202
|
-
streamText(options?: StreamTextOptions): Promise<TextStreamWriter>;
|
|
203
|
-
/** Send a File to all participants in the room via the data channel.
|
|
204
|
-
* @param file The File object payload
|
|
205
|
-
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
206
|
-
* @param options.onProgress A callback function used to monitor the upload progress percentage.
|
|
207
|
-
*/
|
|
208
|
-
sendFile(file: File, options?: SendFileOptions): Promise<{
|
|
209
|
-
id: string;
|
|
210
|
-
}>;
|
|
211
|
-
/**
|
|
212
|
-
* Sends the given bytes to participants in the room via the data channel.
|
|
213
|
-
* For files, consider using {@link sendFile}; for longer/incremental payloads, {@link streamBytes}.
|
|
214
|
-
*
|
|
215
|
-
* @param bytes The byte payload
|
|
216
|
-
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
217
|
-
*/
|
|
218
|
-
sendBytes(bytes: Uint8Array, options?: SendBytesOptions): Promise<ByteStreamInfo>;
|
|
219
|
-
/**
|
|
220
|
-
* Stream bytes incrementally to participants in the room via the data channel.
|
|
221
|
-
* For sending files, consider using {@link sendFile} instead.
|
|
222
|
-
*
|
|
223
|
-
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
224
|
-
*/
|
|
225
|
-
streamBytes(options?: StreamBytesOptions): Promise<import("../..").ByteStreamWriter>;
|
|
226
|
-
/**
|
|
227
|
-
* Initiate an RPC call to a remote participant
|
|
228
|
-
* @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}
|
|
229
|
-
* @returns A promise that resolves with the response payload or rejects with an error.
|
|
230
|
-
* @throws Error on failure. Details in `message`.
|
|
231
|
-
*/
|
|
232
|
-
performRpc(params: PerformRpcParams): TypedPromise<string, RpcError>;
|
|
233
|
-
/**
|
|
234
|
-
* @deprecated use `room.registerRpcMethod` instead
|
|
235
|
-
*/
|
|
236
|
-
registerRpcMethod(method: string, handler: (data: RpcInvocationData) => Promise<string>): void;
|
|
237
|
-
/**
|
|
238
|
-
* @deprecated use `room.unregisterRpcMethod` instead
|
|
239
|
-
*/
|
|
240
|
-
unregisterRpcMethod(method: string): void;
|
|
241
|
-
/**
|
|
242
|
-
* Control who can subscribe to LocalParticipant's published tracks.
|
|
243
|
-
*
|
|
244
|
-
* By default, all participants can subscribe. This allows fine-grained control over
|
|
245
|
-
* who is able to subscribe at a participant and track level.
|
|
246
|
-
*
|
|
247
|
-
* Note: if access is given at a track-level (i.e. both [allParticipantsAllowed] and
|
|
248
|
-
* [ParticipantTrackPermission.allTracksAllowed] are false), any newer published tracks
|
|
249
|
-
* will not grant permissions to any participants and will require a subsequent
|
|
250
|
-
* permissions update to allow subscription.
|
|
251
|
-
*
|
|
252
|
-
* @param allParticipantsAllowed Allows all participants to subscribe all tracks.
|
|
253
|
-
* Takes precedence over [[participantTrackPermissions]] if set to true.
|
|
254
|
-
* By default this is set to true.
|
|
255
|
-
* @param participantTrackPermissions Full list of individual permissions per
|
|
256
|
-
* participant/track. Any omitted participants will not receive any permissions.
|
|
257
|
-
*/
|
|
258
|
-
setTrackSubscriptionPermissions(allParticipantsAllowed: boolean, participantTrackPermissions?: ParticipantTrackPermission[]): void;
|
|
259
|
-
/** @internal */
|
|
260
|
-
setEnabledPublishCodecs(codecs: Codec[]): void;
|
|
261
|
-
/** @internal */
|
|
262
|
-
updateInfo(info: ParticipantInfo): boolean;
|
|
263
|
-
private updateTrackSubscriptionPermissions;
|
|
264
|
-
/** @internal */
|
|
265
|
-
setActiveAgent(agent: RemoteParticipant | undefined): void;
|
|
266
|
-
private waitUntilActiveAgentPresent;
|
|
267
|
-
/** @internal */
|
|
268
|
-
private onTrackUnmuted;
|
|
269
|
-
/** @internal */
|
|
270
|
-
private onTrackMuted;
|
|
271
|
-
private onTrackUpstreamPaused;
|
|
272
|
-
private onTrackUpstreamResumed;
|
|
273
|
-
private onTrackFeatureUpdate;
|
|
274
|
-
private onTrackCpuConstrained;
|
|
275
|
-
private handleSubscribedQualityUpdate;
|
|
276
|
-
private handleLocalTrackUnpublished;
|
|
277
|
-
private handleTrackEnded;
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
}
|
|
287
|
-
|
|
1
|
+
import { Codec, ParticipantInfo } from '@livekit/protocol';
|
|
2
|
+
import type { InternalRoomOptions } from '../../options';
|
|
3
|
+
import type { NonSharedUint8Array } from '../../type-polyfills/non-shared-typed-arrays';
|
|
4
|
+
import TypedPromise from '../../utils/TypedPromise';
|
|
5
|
+
import type RTCEngine from '../RTCEngine';
|
|
6
|
+
import type OutgoingDataStreamManager from '../data-stream/outgoing/OutgoingDataStreamManager';
|
|
7
|
+
import type { TextStreamWriter } from '../data-stream/outgoing/StreamWriter';
|
|
8
|
+
import LocalDataTrack from '../data-track/LocalDataTrack';
|
|
9
|
+
import type OutgoingDataTrackManager from '../data-track/outgoing/OutgoingDataTrackManager';
|
|
10
|
+
import type { DataTrackOptions } from '../data-track/outgoing/types';
|
|
11
|
+
import type { PerformRpcParams, RpcInvocationData } from '../rpc';
|
|
12
|
+
import { RpcClientManager, RpcError, RpcServerManager } from '../rpc';
|
|
13
|
+
import LocalTrack from '../track/LocalTrack';
|
|
14
|
+
import LocalTrackPublication from '../track/LocalTrackPublication';
|
|
15
|
+
import { Track } from '../track/Track';
|
|
16
|
+
import type { AudioCaptureOptions, BackupVideoCodec, CreateLocalTracksOptions, ScreenShareCaptureOptions, TrackPublishOptions, VideoCaptureOptions } from '../track/options';
|
|
17
|
+
import type { ByteStreamInfo, ChatMessage, DataPublishOptions, SendBytesOptions, SendFileOptions, SendTextOptions, StreamBytesOptions, StreamTextOptions, TextStreamInfo } from '../types';
|
|
18
|
+
import Participant from './Participant';
|
|
19
|
+
import type { ParticipantTrackPermission } from './ParticipantTrackPermission';
|
|
20
|
+
import type RemoteParticipant from './RemoteParticipant';
|
|
21
|
+
export default class LocalParticipant extends Participant {
|
|
22
|
+
audioTrackPublications: Map<string, LocalTrackPublication>;
|
|
23
|
+
videoTrackPublications: Map<string, LocalTrackPublication>;
|
|
24
|
+
/** map of track sid => all published tracks */
|
|
25
|
+
trackPublications: Map<string, LocalTrackPublication>;
|
|
26
|
+
/** @internal */
|
|
27
|
+
engine: RTCEngine;
|
|
28
|
+
/** @internal */
|
|
29
|
+
activeDeviceMap: Map<MediaDeviceKind, string>;
|
|
30
|
+
private pendingPublishing;
|
|
31
|
+
private pendingPublishPromises;
|
|
32
|
+
private republishPromise;
|
|
33
|
+
private cameraError;
|
|
34
|
+
private microphoneError;
|
|
35
|
+
private participantTrackPermissions;
|
|
36
|
+
private allParticipantsAllowedToSubscribe;
|
|
37
|
+
private roomOptions;
|
|
38
|
+
private encryptionType;
|
|
39
|
+
private e2eeStateMutex;
|
|
40
|
+
private reconnectFuture?;
|
|
41
|
+
private signalConnectedFuture?;
|
|
42
|
+
private activeAgentFuture?;
|
|
43
|
+
private firstActiveAgent?;
|
|
44
|
+
private roomOutgoingDataStreamManager;
|
|
45
|
+
private roomOutgoingDataTrackManager;
|
|
46
|
+
private rpcClientManager;
|
|
47
|
+
private rpcServerManager;
|
|
48
|
+
private pendingSignalRequests;
|
|
49
|
+
private enabledPublishVideoCodecs;
|
|
50
|
+
/** @internal */
|
|
51
|
+
constructor(sid: string, identity: string, engine: RTCEngine, options: InternalRoomOptions, roomOutgoingDataStreamManager: OutgoingDataStreamManager, roomOutgoingDataTrackManager: OutgoingDataTrackManager, rpcClientManager: RpcClientManager, rpcServerManager: RpcServerManager);
|
|
52
|
+
get lastCameraError(): (Error | undefined);
|
|
53
|
+
get lastMicrophoneError(): (Error | undefined);
|
|
54
|
+
get isE2EEEnabled(): boolean;
|
|
55
|
+
getTrackPublication(source: Track.Source): LocalTrackPublication | undefined;
|
|
56
|
+
getTrackPublicationByName(name: string): LocalTrackPublication | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
setupEngine(engine: RTCEngine): void;
|
|
61
|
+
private handleReconnecting;
|
|
62
|
+
private handleReconnected;
|
|
63
|
+
private handleClosing;
|
|
64
|
+
private handleSignalConnected;
|
|
65
|
+
private handleSignalRequestResponse;
|
|
66
|
+
/**
|
|
67
|
+
* Sets and updates the metadata of the local participant.
|
|
68
|
+
* Note: this requires `canUpdateOwnMetadata` permission.
|
|
69
|
+
* method will throw if the user doesn't have the required permissions
|
|
70
|
+
* @param metadata
|
|
71
|
+
*/
|
|
72
|
+
setMetadata(metadata: string): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Sets and updates the name of the local participant.
|
|
75
|
+
* Note: this requires `canUpdateOwnMetadata` permission.
|
|
76
|
+
* method will throw if the user doesn't have the required permissions
|
|
77
|
+
* @param metadata
|
|
78
|
+
*/
|
|
79
|
+
setName(name: string): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Set or update participant attributes. It will make updates only to keys that
|
|
82
|
+
* are present in `attributes`, and will not override others.
|
|
83
|
+
* Note: this requires `canUpdateOwnMetadata` permission.
|
|
84
|
+
* @param attributes attributes to update
|
|
85
|
+
*/
|
|
86
|
+
setAttributes(attributes: Record<string, string>): Promise<void>;
|
|
87
|
+
private requestMetadataUpdate;
|
|
88
|
+
/**
|
|
89
|
+
* Enable or disable a participant's camera track.
|
|
90
|
+
*
|
|
91
|
+
* If a track has already published, it'll mute or unmute the track.
|
|
92
|
+
* Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
|
|
93
|
+
*/
|
|
94
|
+
setCameraEnabled(enabled: boolean, options?: VideoCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
|
|
95
|
+
/**
|
|
96
|
+
* Enable or disable a participant's microphone track.
|
|
97
|
+
*
|
|
98
|
+
* If a track has already published, it'll mute or unmute the track.
|
|
99
|
+
* Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
|
|
100
|
+
*/
|
|
101
|
+
setMicrophoneEnabled(enabled: boolean, options?: AudioCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
|
|
102
|
+
/**
|
|
103
|
+
* Start or stop sharing a participant's screen
|
|
104
|
+
* Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise
|
|
105
|
+
*/
|
|
106
|
+
setScreenShareEnabled(enabled: boolean, options?: ScreenShareCaptureOptions, publishOptions?: TrackPublishOptions): Promise<LocalTrackPublication | undefined>;
|
|
107
|
+
/** @internal */
|
|
108
|
+
setE2EEEnabled(enabled: boolean): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Enable or disable publishing for a track by source. This serves as a simple
|
|
111
|
+
* way to manage the common tracks (camera, mic, or screen share).
|
|
112
|
+
* Resolves with LocalTrackPublication if successful and void otherwise
|
|
113
|
+
*/
|
|
114
|
+
private setTrackEnabled;
|
|
115
|
+
/**
|
|
116
|
+
* Publish both camera and microphone at the same time. This is useful for
|
|
117
|
+
* displaying a single Permission Dialog box to the end user.
|
|
118
|
+
*/
|
|
119
|
+
enableCameraAndMicrophone(): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Create local camera and/or microphone tracks
|
|
122
|
+
* @param options
|
|
123
|
+
* @returns
|
|
124
|
+
*/
|
|
125
|
+
createTracks(options?: CreateLocalTracksOptions): Promise<LocalTrack[]>;
|
|
126
|
+
/**
|
|
127
|
+
* Creates a screen capture tracks with getDisplayMedia().
|
|
128
|
+
* A LocalVideoTrack is always created and returned.
|
|
129
|
+
* If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
|
|
130
|
+
*/
|
|
131
|
+
createScreenTracks(options?: ScreenShareCaptureOptions): Promise<Array<LocalTrack>>;
|
|
132
|
+
/**
|
|
133
|
+
* Publish a new track to the room
|
|
134
|
+
* @param track
|
|
135
|
+
* @param options
|
|
136
|
+
*/
|
|
137
|
+
publishTrack(track: LocalTrack | MediaStreamTrack, options?: TrackPublishOptions): Promise<LocalTrackPublication>;
|
|
138
|
+
/**
|
|
139
|
+
* Waits for the engine's next `Restarted` event. Unlike `engine.waitForRestarted`, this does
|
|
140
|
+
* not short-circuit when `pcState === Connected` — at the point this is called (right after a
|
|
141
|
+
* `NegotiationError`) the PC transport is still connected, but `fullReconnectOnNext` has been
|
|
142
|
+
* set and `attemptReconnect` is queued via setTimeout. We need to wait for that restart to
|
|
143
|
+
* actually complete (which clears `pendingTrackResolvers` via `cleanupClient`) before retrying.
|
|
144
|
+
*/
|
|
145
|
+
private waitForNextEngineRestart;
|
|
146
|
+
private publishOrRepublishTrack;
|
|
147
|
+
private waitUntilEngineConnected;
|
|
148
|
+
private hasPermissionsToPublish;
|
|
149
|
+
private publish;
|
|
150
|
+
private canPublishFrameMetadata;
|
|
151
|
+
private normalizeRequestedFrameMetadataOptions;
|
|
152
|
+
get isLocal(): boolean;
|
|
153
|
+
/** @internal
|
|
154
|
+
* publish additional codec to existing track
|
|
155
|
+
*/
|
|
156
|
+
publishAdditionalCodecForTrack(track: LocalTrack | MediaStreamTrack, videoCodec: BackupVideoCodec, options?: TrackPublishOptions): Promise<void>;
|
|
157
|
+
unpublishTrack(track: LocalTrack | MediaStreamTrack, stopOnUnpublish?: boolean): Promise<LocalTrackPublication | undefined>;
|
|
158
|
+
unpublishTracks(tracks: LocalTrack[] | MediaStreamTrack[]): Promise<LocalTrackPublication[]>;
|
|
159
|
+
republishAllTracks(options?: TrackPublishOptions, restartTracks?: boolean): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Publish a new data payload to the room. Data will be forwarded to each
|
|
162
|
+
* participant in the room if the destination field in publishOptions is empty
|
|
163
|
+
*
|
|
164
|
+
* @param data Uint8Array of the payload. To send string data, use TextEncoder.encode
|
|
165
|
+
* @param options optionally specify a `reliable`, `topic` and `destination`
|
|
166
|
+
*/
|
|
167
|
+
publishData(data: NonSharedUint8Array, options?: DataPublishOptions): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Publish SIP DTMF message to the room.
|
|
170
|
+
*
|
|
171
|
+
* @param code DTMF code
|
|
172
|
+
* @param digit DTMF digit
|
|
173
|
+
*/
|
|
174
|
+
publishDtmf(code: number, digit: string): Promise<void>;
|
|
175
|
+
/** @deprecated Consider migrating to {@link sendText} */
|
|
176
|
+
sendChatMessage(text: string, options?: SendTextOptions): Promise<ChatMessage>;
|
|
177
|
+
/** @deprecated Consider migrating to {@link sendText} */
|
|
178
|
+
editChatMessage(editText: string, originalMessage: ChatMessage): Promise<{
|
|
179
|
+
readonly message: string;
|
|
180
|
+
readonly editTimestamp: number;
|
|
181
|
+
readonly id: string;
|
|
182
|
+
readonly timestamp: number;
|
|
183
|
+
readonly attachedFiles?: Array<File>;
|
|
184
|
+
}>;
|
|
185
|
+
/**
|
|
186
|
+
* Sends the given string to participants in the room via the data channel.
|
|
187
|
+
* For longer messages, consider using {@link streamText} instead.
|
|
188
|
+
*
|
|
189
|
+
* @param text The text payload
|
|
190
|
+
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
191
|
+
*/
|
|
192
|
+
sendText(text: string, options?: SendTextOptions): Promise<TextStreamInfo>;
|
|
193
|
+
/**
|
|
194
|
+
* Creates a new TextStreamWriter which can be used to stream text incrementally
|
|
195
|
+
* to participants in the room via the data channel.
|
|
196
|
+
*
|
|
197
|
+
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
198
|
+
*
|
|
199
|
+
* @internal
|
|
200
|
+
* @experimental CAUTION, might get removed in a minor release
|
|
201
|
+
*/
|
|
202
|
+
streamText(options?: StreamTextOptions): Promise<TextStreamWriter>;
|
|
203
|
+
/** Send a File to all participants in the room via the data channel.
|
|
204
|
+
* @param file The File object payload
|
|
205
|
+
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
206
|
+
* @param options.onProgress A callback function used to monitor the upload progress percentage.
|
|
207
|
+
*/
|
|
208
|
+
sendFile(file: File, options?: SendFileOptions): Promise<{
|
|
209
|
+
id: string;
|
|
210
|
+
}>;
|
|
211
|
+
/**
|
|
212
|
+
* Sends the given bytes to participants in the room via the data channel.
|
|
213
|
+
* For files, consider using {@link sendFile}; for longer/incremental payloads, {@link streamBytes}.
|
|
214
|
+
*
|
|
215
|
+
* @param bytes The byte payload
|
|
216
|
+
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
217
|
+
*/
|
|
218
|
+
sendBytes(bytes: Uint8Array, options?: SendBytesOptions): Promise<ByteStreamInfo>;
|
|
219
|
+
/**
|
|
220
|
+
* Stream bytes incrementally to participants in the room via the data channel.
|
|
221
|
+
* For sending files, consider using {@link sendFile} instead.
|
|
222
|
+
*
|
|
223
|
+
* @param options.topic Topic identifier used to route the stream to appropriate handlers.
|
|
224
|
+
*/
|
|
225
|
+
streamBytes(options?: StreamBytesOptions): Promise<import("../..").ByteStreamWriter>;
|
|
226
|
+
/**
|
|
227
|
+
* Initiate an RPC call to a remote participant
|
|
228
|
+
* @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}
|
|
229
|
+
* @returns A promise that resolves with the response payload or rejects with an error.
|
|
230
|
+
* @throws Error on failure. Details in `message`.
|
|
231
|
+
*/
|
|
232
|
+
performRpc(params: PerformRpcParams): TypedPromise<string, RpcError>;
|
|
233
|
+
/**
|
|
234
|
+
* @deprecated use `room.registerRpcMethod` instead
|
|
235
|
+
*/
|
|
236
|
+
registerRpcMethod(method: string, handler: (data: RpcInvocationData) => Promise<string>): void;
|
|
237
|
+
/**
|
|
238
|
+
* @deprecated use `room.unregisterRpcMethod` instead
|
|
239
|
+
*/
|
|
240
|
+
unregisterRpcMethod(method: string): void;
|
|
241
|
+
/**
|
|
242
|
+
* Control who can subscribe to LocalParticipant's published tracks.
|
|
243
|
+
*
|
|
244
|
+
* By default, all participants can subscribe. This allows fine-grained control over
|
|
245
|
+
* who is able to subscribe at a participant and track level.
|
|
246
|
+
*
|
|
247
|
+
* Note: if access is given at a track-level (i.e. both [allParticipantsAllowed] and
|
|
248
|
+
* [ParticipantTrackPermission.allTracksAllowed] are false), any newer published tracks
|
|
249
|
+
* will not grant permissions to any participants and will require a subsequent
|
|
250
|
+
* permissions update to allow subscription.
|
|
251
|
+
*
|
|
252
|
+
* @param allParticipantsAllowed Allows all participants to subscribe all tracks.
|
|
253
|
+
* Takes precedence over [[participantTrackPermissions]] if set to true.
|
|
254
|
+
* By default this is set to true.
|
|
255
|
+
* @param participantTrackPermissions Full list of individual permissions per
|
|
256
|
+
* participant/track. Any omitted participants will not receive any permissions.
|
|
257
|
+
*/
|
|
258
|
+
setTrackSubscriptionPermissions(allParticipantsAllowed: boolean, participantTrackPermissions?: ParticipantTrackPermission[]): void;
|
|
259
|
+
/** @internal */
|
|
260
|
+
setEnabledPublishCodecs(codecs: Codec[]): void;
|
|
261
|
+
/** @internal */
|
|
262
|
+
updateInfo(info: ParticipantInfo): boolean;
|
|
263
|
+
private updateTrackSubscriptionPermissions;
|
|
264
|
+
/** @internal */
|
|
265
|
+
setActiveAgent(agent: RemoteParticipant | undefined): void;
|
|
266
|
+
private waitUntilActiveAgentPresent;
|
|
267
|
+
/** @internal */
|
|
268
|
+
private onTrackUnmuted;
|
|
269
|
+
/** @internal */
|
|
270
|
+
private onTrackMuted;
|
|
271
|
+
private onTrackUpstreamPaused;
|
|
272
|
+
private onTrackUpstreamResumed;
|
|
273
|
+
private onTrackFeatureUpdate;
|
|
274
|
+
private onTrackCpuConstrained;
|
|
275
|
+
private handleSubscribedQualityUpdate;
|
|
276
|
+
private handleLocalTrackUnpublished;
|
|
277
|
+
private handleTrackEnded;
|
|
278
|
+
/**
|
|
279
|
+
* @internal
|
|
280
|
+
*/
|
|
281
|
+
private restartOnDefaultAudioDevice;
|
|
282
|
+
private getPublicationForTrack;
|
|
283
|
+
private waitForPendingPublicationOfSource;
|
|
284
|
+
/** Publishes a data track.
|
|
285
|
+
*
|
|
286
|
+
* Returns the published data track if successful. Use {@link LocalDataTrack#tryPush}
|
|
287
|
+
* to send data frames on the track.
|
|
288
|
+
*/
|
|
289
|
+
publishDataTrack(options: DataTrackOptions): Promise<LocalDataTrack>;
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=LocalParticipant.d.ts.map
|