@livekit/rtc-node 0.10.3 → 0.11.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.
Files changed (136) hide show
  1. package/README.md +54 -2
  2. package/build.rs +1 -1
  3. package/dist/audio_frame.d.ts +1 -1
  4. package/dist/audio_frame.d.ts.map +1 -1
  5. package/dist/audio_frame.js +4 -4
  6. package/dist/audio_frame.js.map +1 -1
  7. package/dist/audio_resampler.d.ts.map +1 -1
  8. package/dist/audio_resampler.js +8 -7
  9. package/dist/audio_resampler.js.map +1 -1
  10. package/dist/audio_source.d.ts.map +1 -1
  11. package/dist/audio_source.js +8 -4
  12. package/dist/audio_source.js.map +1 -1
  13. package/dist/audio_stream.d.ts +1 -1
  14. package/dist/audio_stream.d.ts.map +1 -1
  15. package/dist/audio_stream.js +4 -3
  16. package/dist/audio_stream.js.map +1 -1
  17. package/dist/e2ee.d.ts.map +1 -1
  18. package/dist/e2ee.js +25 -25
  19. package/dist/e2ee.js.map +1 -1
  20. package/dist/ffi_client.d.ts +3 -3
  21. package/dist/ffi_client.d.ts.map +1 -1
  22. package/dist/ffi_client.js +9 -7
  23. package/dist/ffi_client.js.map +1 -1
  24. package/dist/index.d.ts +29 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +34 -4
  27. package/dist/index.js.map +1 -1
  28. package/dist/napi/native.d.ts +1 -0
  29. package/dist/participant.d.ts +52 -6
  30. package/dist/participant.d.ts.map +1 -1
  31. package/dist/participant.js +155 -32
  32. package/dist/participant.js.map +1 -1
  33. package/dist/proto/audio_frame_pb.d.ts +451 -526
  34. package/dist/proto/audio_frame_pb.d.ts.map +1 -1
  35. package/dist/proto/audio_frame_pb.js +200 -1179
  36. package/dist/proto/audio_frame_pb.js.map +1 -1
  37. package/dist/proto/e2ee_pb.d.ts +264 -333
  38. package/dist/proto/e2ee_pb.d.ts.map +1 -1
  39. package/dist/proto/e2ee_pb.js +136 -810
  40. package/dist/proto/e2ee_pb.js.map +1 -1
  41. package/dist/proto/ffi_pb.d.ts +175 -129
  42. package/dist/proto/ffi_pb.d.ts.map +1 -1
  43. package/dist/proto/ffi_pb.js +58 -395
  44. package/dist/proto/ffi_pb.js.map +1 -1
  45. package/dist/proto/handle_pb.d.ts +14 -13
  46. package/dist/proto/handle_pb.d.ts.map +1 -1
  47. package/dist/proto/handle_pb.js +8 -39
  48. package/dist/proto/handle_pb.js.map +1 -1
  49. package/dist/proto/participant_pb.d.ts +54 -52
  50. package/dist/proto/participant_pb.d.ts.map +1 -1
  51. package/dist/proto/participant_pb.js +18 -90
  52. package/dist/proto/participant_pb.js.map +1 -1
  53. package/dist/proto/room_pb.d.ts +1042 -1187
  54. package/dist/proto/room_pb.d.ts.map +1 -1
  55. package/dist/proto/room_pb.js +470 -2938
  56. package/dist/proto/room_pb.js.map +1 -1
  57. package/dist/proto/rpc_pb.d.ts +235 -0
  58. package/dist/proto/rpc_pb.d.ts.map +1 -0
  59. package/dist/proto/rpc_pb.js +74 -0
  60. package/dist/proto/rpc_pb.js.map +1 -0
  61. package/dist/proto/stats_pb.d.ts +738 -800
  62. package/dist/proto/stats_pb.d.ts.map +1 -1
  63. package/dist/proto/stats_pb.js +218 -1960
  64. package/dist/proto/stats_pb.js.map +1 -1
  65. package/dist/proto/track_pb.d.ts +225 -258
  66. package/dist/proto/track_pb.d.ts.map +1 -1
  67. package/dist/proto/track_pb.js +98 -591
  68. package/dist/proto/track_pb.js.map +1 -1
  69. package/dist/proto/video_frame_pb.d.ts +357 -390
  70. package/dist/proto/video_frame_pb.d.ts.map +1 -1
  71. package/dist/proto/video_frame_pb.js +137 -790
  72. package/dist/proto/video_frame_pb.js.map +1 -1
  73. package/dist/room.d.ts +21 -7
  74. package/dist/room.d.ts.map +1 -1
  75. package/dist/room.js +134 -54
  76. package/dist/room.js.map +1 -1
  77. package/dist/rpc.d.ts +78 -0
  78. package/dist/rpc.d.ts.map +1 -0
  79. package/dist/rpc.js +69 -0
  80. package/dist/rpc.js.map +1 -0
  81. package/dist/track.d.ts.map +1 -1
  82. package/dist/track.js +7 -3
  83. package/dist/track.js.map +1 -1
  84. package/dist/track_publication.d.ts.map +1 -1
  85. package/dist/track_publication.js +3 -2
  86. package/dist/track_publication.js.map +1 -1
  87. package/dist/version.d.ts +2 -0
  88. package/dist/version.d.ts.map +1 -0
  89. package/dist/version.js +2 -0
  90. package/dist/version.js.map +1 -0
  91. package/dist/video_frame.d.ts +2 -2
  92. package/dist/video_frame.d.ts.map +1 -1
  93. package/dist/video_frame.js +47 -25
  94. package/dist/video_frame.js.map +1 -1
  95. package/dist/video_source.d.ts.map +1 -1
  96. package/dist/video_source.js +4 -3
  97. package/dist/video_source.js.map +1 -1
  98. package/dist/video_stream.d.ts +1 -1
  99. package/dist/video_stream.d.ts.map +1 -1
  100. package/dist/video_stream.js +7 -3
  101. package/dist/video_stream.js.map +1 -1
  102. package/package.json +13 -10
  103. package/src/audio_frame.ts +6 -6
  104. package/src/audio_resampler.ts +10 -9
  105. package/src/audio_source.ts +9 -8
  106. package/src/audio_stream.ts +7 -6
  107. package/src/e2ee.ts +34 -34
  108. package/src/ffi_client.ts +23 -10
  109. package/src/index.ts +61 -2
  110. package/src/napi/native.d.ts +1 -0
  111. package/src/nodejs.rs +6 -3
  112. package/src/participant.ts +219 -55
  113. package/src/proto/audio_frame_pb.ts +562 -1279
  114. package/src/proto/e2ee_pb.ts +365 -886
  115. package/src/proto/ffi_pb.ts +206 -405
  116. package/src/proto/handle_pb.ts +21 -35
  117. package/src/proto/participant_pb.ts +71 -112
  118. package/src/proto/room_pb.ts +1284 -2995
  119. package/src/proto/rpc_pb.ts +310 -0
  120. package/src/proto/stats_pb.ts +1028 -1947
  121. package/src/proto/track_pb.ts +287 -621
  122. package/src/proto/video_frame_pb.ts +445 -905
  123. package/src/room.ts +181 -75
  124. package/src/rpc.ts +121 -0
  125. package/src/track.ts +8 -7
  126. package/src/track_publication.ts +5 -4
  127. package/src/version.ts +1 -0
  128. package/src/video_frame.ts +54 -27
  129. package/src/video_source.ts +7 -6
  130. package/src/video_stream.ts +7 -6
  131. package/dist/utils.d.ts +0 -7
  132. package/dist/utils.d.ts.map +0 -1
  133. package/dist/utils.js +0 -48
  134. package/dist/utils.js.map +0 -1
  135. package/src/utils.test.ts +0 -47
  136. package/src/utils.ts +0 -44
package/dist/index.d.ts CHANGED
@@ -1,3 +1,8 @@
1
+ import type { MessageInitShape } from '@bufbuild/protobuf';
2
+ import type { AudioEncoding, TrackPublishOptionsSchema, VideoEncoding } from './proto/room_pb.js';
3
+ import { IceServerSchema, type IceServer as IceServerType, type TrackPublishOptions as TrackPublishOptionsType } from './proto/room_pb.js';
4
+ import { TrackSource } from './proto/track_pb.js';
5
+ import { VideoCodec } from './proto/video_frame_pb.js';
1
6
  export { Room, RoomEvent, ConnectError, RoomOptions, RtcConfiguration } from './room.js';
2
7
  export { Participant, RemoteParticipant, LocalParticipant } from './participant.js';
3
8
  export { Track, LocalTrack, RemoteTrack, VideoTrack, LocalAudioTrack, LocalVideoTrack, RemoteAudioTrack, RemoteVideoTrack, AudioTrack, } from './track.js';
@@ -11,11 +16,34 @@ export { VideoSource } from './video_source.js';
11
16
  export { TrackPublication, RemoteTrackPublication, LocalTrackPublication, } from './track_publication.js';
12
17
  export { Transcription, TranscriptionSegment } from './transcription.js';
13
18
  export { E2EEManager, E2EEOptions, KeyProviderOptions, KeyProvider, FrameCryptor } from './e2ee.js';
14
- export { ConnectionQuality, IceServer, IceTransportType, DataPacketKind, ContinualGatheringPolicy, TrackPublishOptions, ConnectionState, } from './proto/room_pb.js';
19
+ export { ConnectionQuality, IceTransportType, DataPacketKind, ContinualGatheringPolicy, ConnectionState, } from './proto/room_pb.js';
20
+ export { RpcError, type RpcInvocationData, type PerformRpcParams } from './rpc.js';
15
21
  export { EncryptionType, EncryptionState } from './proto/e2ee_pb.js';
16
22
  export { StreamState, TrackKind, TrackSource } from './proto/track_pb.js';
17
23
  export { VideoBufferType, VideoRotation, VideoCodec } from './proto/video_frame_pb.js';
18
24
  export { ParticipantKind } from './proto/participant_pb.js';
19
25
  export { dispose } from './ffi_client.js';
20
26
  export type { ChatMessage } from './types.js';
27
+ type IceServerInit = MessageInitShape<typeof IceServerSchema> & {
28
+ urls: string[];
29
+ };
30
+ export declare class IceServer implements IceServerType {
31
+ $typeName: "livekit.proto.IceServer";
32
+ urls: string[];
33
+ username: string;
34
+ password: string;
35
+ constructor(init: IceServerInit);
36
+ }
37
+ export declare class TrackPublishOptions implements TrackPublishOptionsType {
38
+ $typeName: "livekit.proto.TrackPublishOptions";
39
+ videoCodec: VideoCodec;
40
+ videoEncoding?: VideoEncoding | undefined;
41
+ audioEncoding?: AudioEncoding | undefined;
42
+ dtx: boolean;
43
+ simulcast: boolean;
44
+ source: TrackSource;
45
+ stream: string;
46
+ red: boolean;
47
+ constructor(init?: MessageInitShape<typeof TrackPublishOptionsSchema>);
48
+ }
21
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,KAAK,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACpG,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
- // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
- //
3
- // SPDX-License-Identifier: Apache-2.0
1
+ import { create } from '@bufbuild/protobuf';
2
+ import { AudioEncodingSchema, IceServerSchema, VideoEncodingSchema, } from './proto/room_pb.js';
3
+ import { TrackSource } from './proto/track_pb.js';
4
+ import { VideoCodec } from './proto/video_frame_pb.js';
4
5
  export { Room, RoomEvent, ConnectError } from './room.js';
5
6
  export { Participant, RemoteParticipant, LocalParticipant } from './participant.js';
6
7
  export { Track, LocalAudioTrack, LocalVideoTrack, RemoteAudioTrack, RemoteVideoTrack, } from './track.js';
@@ -13,10 +14,39 @@ export { AudioSource } from './audio_source.js';
13
14
  export { VideoSource } from './video_source.js';
14
15
  export { TrackPublication, RemoteTrackPublication, LocalTrackPublication, } from './track_publication.js';
15
16
  export { E2EEManager, KeyProvider, FrameCryptor } from './e2ee.js';
16
- export { ConnectionQuality, IceServer, IceTransportType, DataPacketKind, ContinualGatheringPolicy, TrackPublishOptions, ConnectionState, } from './proto/room_pb.js';
17
+ export { ConnectionQuality, IceTransportType, DataPacketKind, ContinualGatheringPolicy, ConnectionState, } from './proto/room_pb.js';
18
+ export { RpcError } from './rpc.js';
17
19
  export { EncryptionType, EncryptionState } from './proto/e2ee_pb.js';
18
20
  export { StreamState, TrackKind, TrackSource } from './proto/track_pb.js';
19
21
  export { VideoBufferType, VideoRotation, VideoCodec } from './proto/video_frame_pb.js';
20
22
  export { ParticipantKind } from './proto/participant_pb.js';
21
23
  export { dispose } from './ffi_client.js';
24
+ export class IceServer {
25
+ constructor(init) {
26
+ this.$typeName = 'livekit.proto.IceServer';
27
+ const { urls, username, password } = init;
28
+ this.urls = urls;
29
+ this.username = username ?? '';
30
+ this.password = password ?? '';
31
+ create(IceServerSchema, init);
32
+ }
33
+ }
34
+ export class TrackPublishOptions {
35
+ constructor(init = {}) {
36
+ this.$typeName = 'livekit.proto.TrackPublishOptions';
37
+ const { videoCodec, videoEncoding, audioEncoding, dtx, simulcast, source, stream, red } = init;
38
+ this.videoCodec = videoCodec ?? VideoCodec.VP8;
39
+ if (videoEncoding) {
40
+ this.videoEncoding = create(VideoEncodingSchema, videoEncoding);
41
+ }
42
+ if (audioEncoding) {
43
+ this.audioEncoding = create(AudioEncodingSchema, audioEncoding);
44
+ }
45
+ this.dtx = dtx ?? false;
46
+ this.simulcast = simulcast ?? false;
47
+ this.source = source ?? TrackSource.SOURCE_UNKNOWN;
48
+ this.stream = stream ?? '';
49
+ this.red = red ?? false;
50
+ }
51
+ }
22
52
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AAEtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAiC,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,KAAK,EAIL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAmC,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACpG,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  export declare function livekitInitialize(
7
7
  callback: (data: Uint8Array) => void,
8
8
  captureLogs: boolean,
9
+ sdkVersion: string,
9
10
  ): void;
10
11
  export declare function livekitFfiRequest(data: Uint8Array): Uint8Array;
11
12
  export declare function livekitRetrievePtr(handle: Uint8Array): bigint;
@@ -1,11 +1,12 @@
1
1
  import { FfiHandle } from './ffi_client.js';
2
2
  import type { OwnedParticipant, ParticipantInfo, ParticipantKind } from './proto/participant_pb.js';
3
- import { TrackPublishOptions } from './proto/room_pb.js';
3
+ import type { TrackPublishOptions } from './proto/room_pb.js';
4
+ import { type PerformRpcParams, type RpcInvocationData } from './rpc.js';
4
5
  import type { LocalTrack } from './track.js';
5
6
  import type { RemoteTrackPublication, TrackPublication } from './track_publication.js';
6
7
  import { LocalTrackPublication } from './track_publication.js';
7
8
  import type { Transcription } from './transcription.js';
8
- import { ChatMessage } from './types.js';
9
+ import type { ChatMessage } from './types.js';
9
10
  export declare abstract class Participant {
10
11
  /** @internal */
11
12
  info: ParticipantInfo;
@@ -36,15 +37,12 @@ export type DataPublishOptions = {
36
37
  topic?: string;
37
38
  };
38
39
  export declare class LocalParticipant extends Participant {
40
+ private rpcHandlers;
39
41
  trackPublications: Map<string, LocalTrackPublication>;
40
42
  publishData(data: Uint8Array, options: DataPublishOptions): Promise<void>;
41
43
  publishDtmf(code: number, digit: string): Promise<void>;
42
44
  publishTranscription(transcription: Transcription): Promise<void>;
43
45
  updateMetadata(metadata: string): Promise<void>;
44
- /**
45
- *
46
- */
47
- sendChatMessage(text: string, destinationIdentities?: Array<string>, senderIdentity?: string): Promise<ChatMessage>;
48
46
  /**
49
47
  * Sends a chat message to participants in the room
50
48
  *
@@ -53,11 +51,59 @@ export declare class LocalParticipant extends Participant {
53
51
  * @param senderIdentity - An optional identity of the sender. If omitted, the default sender identity is used.
54
52
  *
55
53
  */
54
+ sendChatMessage(text: string, destinationIdentities?: Array<string>, senderIdentity?: string): Promise<ChatMessage>;
55
+ /**
56
+ * @experimental
57
+ */
56
58
  editChatMessage(editText: string, originalMessage: ChatMessage, destinationIdentities?: Array<string>, senderIdentity?: string): Promise<ChatMessage>;
57
59
  updateName(name: string): Promise<void>;
58
60
  setAttributes(attributes: Record<string, string>): Promise<void>;
59
61
  publishTrack(track: LocalTrack, options: TrackPublishOptions): Promise<LocalTrackPublication>;
60
62
  unpublishTrack(trackSid: string): Promise<void>;
63
+ /**
64
+ * Initiate an RPC call to a remote participant.
65
+ * @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}
66
+ * @returns A promise that resolves with the response payload or rejects with an error.
67
+ * @throws Error on failure. Details in `message`.
68
+ */
69
+ performRpc({ destinationIdentity, method, payload, responseTimeout, }: PerformRpcParams): Promise<string>;
70
+ /**
71
+ * Establishes the participant as a receiver for calls of the specified RPC method.
72
+ * Will overwrite any existing callback for the same method.
73
+ *
74
+ * @param method - The name of the indicated RPC method
75
+ * @param handler - Will be invoked when an RPC request for this method is received
76
+ * @returns A promise that resolves when the method is successfully registered
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * room.localParticipant?.registerRpcMethod(
81
+ * 'greet',
82
+ * async (data: RpcInvocationData) => {
83
+ * console.log(`Received greeting from ${data.callerIdentity}: ${data.payload}`);
84
+ * return `Hello, ${data.callerIdentity}!`;
85
+ * }
86
+ * );
87
+ * ```
88
+ *
89
+ * See {@link RpcInvocationData} for more details on invocation params.
90
+ *
91
+ * The handler should return a Promise that resolves to a string.
92
+ * If unable to respond within `responseTimeout`, the request will result in an error on the caller's side.
93
+ *
94
+ * You may throw errors of type `RpcError` with a string `message` in the handler,
95
+ * and they will be received on the caller's side with the message intact.
96
+ * Other errors thrown in your handler will not be transmitted as-is, and will instead arrive to the caller as `1500` ("Application Error").
97
+ */
98
+ registerRpcMethod(method: string, handler: (data: RpcInvocationData) => Promise<string>): void;
99
+ /**
100
+ * Unregisters a previously registered RPC method.
101
+ *
102
+ * @param method - The name of the RPC method to unregister
103
+ */
104
+ unregisterRpcMethod(method: string): void;
105
+ /** @internal */
106
+ handleRpcMethodInvocation(invocationId: bigint, method: string, requestId: string, callerIdentity: string, payload: string, responseTimeout: number): Promise<void>;
61
107
  }
62
108
  export declare class RemoteParticipant extends Participant {
63
109
  trackPublications: Map<string, RemoteTrackPublication>;
@@ -1 +1 @@
1
- {"version":3,"file":"participant.d.ts","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAkBL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAc5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,8BAAsB,WAAW;IAC/B,gBAAgB;IAChB,IAAI,EAAE,eAAe,CAAC;IAEtB,gBAAgB;IAChB,UAAU,EAAE,SAAS,CAAC;IAEtB,iBAAiB,gCAAuC;gBAE5C,UAAU,EAAE,gBAAgB;IAKxC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEvC;IAED,IAAI,IAAI,IAAI,eAAe,CAE1B;CACF;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAa;IAE5D,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB;IAuBzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAoBvC,oBAAoB,CAAC,aAAa,EAAE,aAAa;IA+BjD,cAAc,CAAC,QAAQ,EAAE,MAAM;IAerC;;OAEG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC;IAuBvB;;;;;;;OAOG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,WAAW,EAC5B,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC;IA4BjB,UAAU,CAAC,IAAI,EAAE,MAAM;IAevB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAehD,YAAY,CAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IA0B3B,cAAc,CAAC,QAAQ,EAAE,MAAM;CAsBtC;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAa;gBAEvD,UAAU,EAAE,gBAAgB;CAGzC"}
1
+ {"version":3,"file":"participant.d.ts","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
2
  //
3
3
  // SPDX-License-Identifier: Apache-2.0
4
+ import { create } from '@bufbuild/protobuf';
4
5
  import { FfiClient, FfiHandle } from './ffi_client.js';
5
- import { ChatMessage as ChatMessageModel, } from './proto/room_pb.js';
6
- import { EditChatMessageRequest, TranscriptionSegment as ProtoTranscriptionSegment, PublishDataRequest, PublishSipDtmfRequest, PublishTrackRequest, PublishTranscriptionRequest, SendChatMessageRequest, SetLocalAttributesRequest, SetLocalMetadataRequest, SetLocalNameRequest, UnpublishTrackRequest, } from './proto/room_pb.js';
6
+ import { ChatMessageSchema, EditChatMessageRequestSchema, PublishDataRequestSchema, PublishSipDtmfRequestSchema, PublishTrackRequestSchema, PublishTranscriptionRequestSchema, SendChatMessageRequestSchema, SetLocalAttributesRequestSchema, SetLocalMetadataRequestSchema, SetLocalNameRequestSchema, UnpublishTrackRequestSchema, } from './proto/room_pb.js';
7
+ import { TranscriptionSegmentSchema } from './proto/room_pb.js';
8
+ import { PerformRpcRequestSchema, RegisterRpcMethodRequestSchema, RpcMethodInvocationResponseRequestSchema, UnregisterRpcMethodRequestSchema, } from './proto/rpc_pb.js';
9
+ import { RpcError } from './rpc.js';
7
10
  import { LocalTrackPublication } from './track_publication.js';
8
11
  export class Participant {
9
12
  constructor(owned_info) {
@@ -33,10 +36,11 @@ export class Participant {
33
36
  export class LocalParticipant extends Participant {
34
37
  constructor() {
35
38
  super(...arguments);
39
+ this.rpcHandlers = new Map();
36
40
  this.trackPublications = new Map();
37
41
  }
38
42
  async publishData(data, options) {
39
- const req = new PublishDataRequest({
43
+ const req = create(PublishDataRequestSchema, {
40
44
  localParticipantHandle: this.ffi_handle.handle,
41
45
  dataPtr: FfiClient.instance.retrievePtr(data),
42
46
  dataLen: BigInt(data.byteLength),
@@ -55,7 +59,7 @@ export class LocalParticipant extends Participant {
55
59
  }
56
60
  }
57
61
  async publishDtmf(code, digit) {
58
- const req = new PublishSipDtmfRequest({
62
+ const req = create(PublishSipDtmfRequestSchema, {
59
63
  localParticipantHandle: this.ffi_handle.handle,
60
64
  code,
61
65
  digit,
@@ -71,10 +75,10 @@ export class LocalParticipant extends Participant {
71
75
  }
72
76
  }
73
77
  async publishTranscription(transcription) {
74
- const req = new PublishTranscriptionRequest({
78
+ const req = create(PublishTranscriptionRequestSchema, {
75
79
  localParticipantHandle: this.ffi_handle.handle,
76
80
  participantIdentity: transcription.participantIdentity,
77
- segments: transcription.segments.map((s) => new ProtoTranscriptionSegment({
81
+ segments: transcription.segments.map((s) => create(TranscriptionSegmentSchema, {
78
82
  id: s.id,
79
83
  text: s.text,
80
84
  startTime: s.startTime,
@@ -95,7 +99,7 @@ export class LocalParticipant extends Participant {
95
99
  }
96
100
  }
97
101
  async updateMetadata(metadata) {
98
- const req = new SetLocalMetadataRequest({
102
+ const req = create(SetLocalMetadataRequestSchema, {
99
103
  localParticipantHandle: this.ffi_handle.handle,
100
104
  metadata: metadata,
101
105
  });
@@ -107,10 +111,15 @@ export class LocalParticipant extends Participant {
107
111
  });
108
112
  }
109
113
  /**
114
+ * Sends a chat message to participants in the room
115
+ *
116
+ * @param text - The text content of the chat message.
117
+ * @param destinationIdentities - An optional array of recipient identities to whom the message will be sent. If omitted, the message is broadcast to all participants.
118
+ * @param senderIdentity - An optional identity of the sender. If omitted, the default sender identity is used.
110
119
  *
111
120
  */
112
121
  async sendChatMessage(text, destinationIdentities, senderIdentity) {
113
- const req = new SendChatMessageRequest({
122
+ const req = create(SendChatMessageRequestSchema, {
114
123
  localParticipantHandle: this.ffi_handle.handle,
115
124
  message: text,
116
125
  destinationIdentities,
@@ -122,28 +131,25 @@ export class LocalParticipant extends Participant {
122
131
  const cb = await FfiClient.instance.waitFor((ev) => {
123
132
  return ev.message.case == 'chatMessage' && ev.message.value.asyncId == res.asyncId;
124
133
  });
125
- if (cb.error) {
126
- throw new Error(cb.error);
134
+ if (cb.message.case !== 'chatMessage') {
135
+ throw new Error(cb.message.value ?? 'Unknown Error');
127
136
  }
128
- const { id, timestamp, editTimestamp, message } = cb.chatMessage;
137
+ const { id, timestamp, editTimestamp, message } = cb.message.value;
129
138
  return { id, timestamp: Number(timestamp), editTimestamp: Number(editTimestamp), message };
130
139
  }
131
140
  /**
132
- * Sends a chat message to participants in the room
133
- *
134
- * @param text - The text content of the chat message.
135
- * @param destinationIdentities - An optional array of recipient identities to whom the message will be sent. If omitted, the message is broadcast to all participants.
136
- * @param senderIdentity - An optional identity of the sender. If omitted, the default sender identity is used.
137
- *
141
+ * @experimental
138
142
  */
139
143
  async editChatMessage(editText, originalMessage, destinationIdentities, senderIdentity) {
140
- const req = new EditChatMessageRequest({
144
+ const req = create(EditChatMessageRequestSchema, {
141
145
  localParticipantHandle: this.ffi_handle.handle,
142
146
  editText,
143
- originalMessage: new ChatMessageModel({
147
+ originalMessage: create(ChatMessageSchema, {
144
148
  ...originalMessage,
145
149
  timestamp: BigInt(originalMessage.timestamp),
146
- editTimestamp: BigInt(originalMessage.editTimestamp),
150
+ editTimestamp: originalMessage.editTimestamp
151
+ ? BigInt(originalMessage.editTimestamp)
152
+ : undefined,
147
153
  }),
148
154
  destinationIdentities,
149
155
  senderIdentity,
@@ -154,14 +160,14 @@ export class LocalParticipant extends Participant {
154
160
  const cb = await FfiClient.instance.waitFor((ev) => {
155
161
  return ev.message.case == 'chatMessage' && ev.message.value.asyncId == res.asyncId;
156
162
  });
157
- if (cb.error) {
158
- throw new Error(cb.error);
163
+ if (cb.message.case !== 'chatMessage') {
164
+ throw new Error(cb.message.value ?? 'Unknown Error');
159
165
  }
160
- const { id, timestamp, editTimestamp, message } = cb.chatMessage;
166
+ const { id, timestamp, editTimestamp, message } = cb.message.value;
161
167
  return { id, timestamp: Number(timestamp), editTimestamp: Number(editTimestamp), message };
162
168
  }
163
169
  async updateName(name) {
164
- const req = new SetLocalNameRequest({
170
+ const req = create(SetLocalNameRequestSchema, {
165
171
  localParticipantHandle: this.ffi_handle.handle,
166
172
  name: name,
167
173
  });
@@ -173,9 +179,11 @@ export class LocalParticipant extends Participant {
173
179
  });
174
180
  }
175
181
  async setAttributes(attributes) {
176
- const req = new SetLocalAttributesRequest({
182
+ const req = create(SetLocalAttributesRequestSchema, {
177
183
  localParticipantHandle: this.ffi_handle.handle,
178
- attributes: attributes,
184
+ attributes: Array.from(Object.entries(attributes)).map(([key, value]) => {
185
+ return { key, value };
186
+ }),
179
187
  });
180
188
  const res = FfiClient.instance.request({
181
189
  message: { case: 'setLocalAttributes', value: req },
@@ -185,7 +193,7 @@ export class LocalParticipant extends Participant {
185
193
  });
186
194
  }
187
195
  async publishTrack(track, options) {
188
- const req = new PublishTrackRequest({
196
+ const req = create(PublishTrackRequestSchema, {
189
197
  localParticipantHandle: this.ffi_handle.handle,
190
198
  trackHandle: track.ffi_handle.handle,
191
199
  options: options,
@@ -196,16 +204,16 @@ export class LocalParticipant extends Participant {
196
204
  const cb = await FfiClient.instance.waitFor((ev) => {
197
205
  return ev.message.case == 'publishTrack' && ev.message.value.asyncId == res.asyncId;
198
206
  });
199
- if (cb.error) {
200
- throw new Error(cb.error);
207
+ if (cb.message.case !== 'publication') {
208
+ throw new Error(cb.message.value ?? 'Unknown Error');
201
209
  }
202
- const track_publication = new LocalTrackPublication(cb.publication);
210
+ const track_publication = new LocalTrackPublication(cb.message.value);
203
211
  track_publication.track = track;
204
212
  this.trackPublications.set(track_publication.sid, track_publication);
205
213
  return track_publication;
206
214
  }
207
215
  async unpublishTrack(trackSid) {
208
- const req = new UnpublishTrackRequest({
216
+ const req = create(UnpublishTrackRequestSchema, {
209
217
  localParticipantHandle: this.ffi_handle.handle,
210
218
  trackSid: trackSid,
211
219
  });
@@ -219,9 +227,124 @@ export class LocalParticipant extends Participant {
219
227
  throw new Error(cb.error);
220
228
  }
221
229
  const pub = this.trackPublications.get(trackSid);
222
- pub.track = undefined;
230
+ if (pub) {
231
+ pub.track = undefined;
232
+ }
223
233
  this.trackPublications.delete(trackSid);
224
234
  }
235
+ /**
236
+ * Initiate an RPC call to a remote participant.
237
+ * @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}
238
+ * @returns A promise that resolves with the response payload or rejects with an error.
239
+ * @throws Error on failure. Details in `message`.
240
+ */
241
+ async performRpc({ destinationIdentity, method, payload, responseTimeout, }) {
242
+ const req = create(PerformRpcRequestSchema, {
243
+ localParticipantHandle: this.ffi_handle.handle,
244
+ destinationIdentity,
245
+ method,
246
+ payload,
247
+ responseTimeoutMs: responseTimeout,
248
+ });
249
+ const res = FfiClient.instance.request({
250
+ message: { case: 'performRpc', value: req },
251
+ });
252
+ const cb = await FfiClient.instance.waitFor((ev) => {
253
+ return ev.message.case === 'performRpc' && ev.message.value.asyncId === res.asyncId;
254
+ });
255
+ if (cb.error) {
256
+ throw RpcError.fromProto(cb.error);
257
+ }
258
+ return cb.payload;
259
+ }
260
+ /**
261
+ * Establishes the participant as a receiver for calls of the specified RPC method.
262
+ * Will overwrite any existing callback for the same method.
263
+ *
264
+ * @param method - The name of the indicated RPC method
265
+ * @param handler - Will be invoked when an RPC request for this method is received
266
+ * @returns A promise that resolves when the method is successfully registered
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * room.localParticipant?.registerRpcMethod(
271
+ * 'greet',
272
+ * async (data: RpcInvocationData) => {
273
+ * console.log(`Received greeting from ${data.callerIdentity}: ${data.payload}`);
274
+ * return `Hello, ${data.callerIdentity}!`;
275
+ * }
276
+ * );
277
+ * ```
278
+ *
279
+ * See {@link RpcInvocationData} for more details on invocation params.
280
+ *
281
+ * The handler should return a Promise that resolves to a string.
282
+ * If unable to respond within `responseTimeout`, the request will result in an error on the caller's side.
283
+ *
284
+ * You may throw errors of type `RpcError` with a string `message` in the handler,
285
+ * and they will be received on the caller's side with the message intact.
286
+ * Other errors thrown in your handler will not be transmitted as-is, and will instead arrive to the caller as `1500` ("Application Error").
287
+ */
288
+ registerRpcMethod(method, handler) {
289
+ this.rpcHandlers.set(method, handler);
290
+ const req = create(RegisterRpcMethodRequestSchema, {
291
+ localParticipantHandle: this.ffi_handle.handle,
292
+ method,
293
+ });
294
+ FfiClient.instance.request({
295
+ message: { case: 'registerRpcMethod', value: req },
296
+ });
297
+ }
298
+ /**
299
+ * Unregisters a previously registered RPC method.
300
+ *
301
+ * @param method - The name of the RPC method to unregister
302
+ */
303
+ unregisterRpcMethod(method) {
304
+ this.rpcHandlers.delete(method);
305
+ const req = create(UnregisterRpcMethodRequestSchema, {
306
+ localParticipantHandle: this.ffi_handle.handle,
307
+ method,
308
+ });
309
+ FfiClient.instance.request({
310
+ message: { case: 'unregisterRpcMethod', value: req },
311
+ });
312
+ }
313
+ /** @internal */
314
+ async handleRpcMethodInvocation(invocationId, method, requestId, callerIdentity, payload, responseTimeout) {
315
+ let responseError = null;
316
+ let responsePayload = null;
317
+ const handler = this.rpcHandlers.get(method);
318
+ if (!handler) {
319
+ responseError = RpcError.builtIn('UNSUPPORTED_METHOD');
320
+ }
321
+ else {
322
+ try {
323
+ responsePayload = await handler({ requestId, callerIdentity, payload, responseTimeout });
324
+ }
325
+ catch (error) {
326
+ if (error instanceof RpcError) {
327
+ responseError = error;
328
+ }
329
+ else {
330
+ console.warn(`Uncaught error returned by RPC handler for ${method}. Returning APPLICATION_ERROR instead.`, error);
331
+ responseError = RpcError.builtIn('APPLICATION_ERROR');
332
+ }
333
+ }
334
+ }
335
+ const req = create(RpcMethodInvocationResponseRequestSchema, {
336
+ localParticipantHandle: this.ffi_handle.handle,
337
+ invocationId,
338
+ error: responseError ? responseError.toProto() : undefined,
339
+ payload: responsePayload ?? undefined,
340
+ });
341
+ const res = FfiClient.instance.request({
342
+ message: { case: 'rpcMethodInvocationResponse', value: req },
343
+ });
344
+ if (res.error) {
345
+ console.warn(`error sending rpc method invocation response: ${res.error}`);
346
+ }
347
+ }
225
348
  }
226
349
  export class RemoteParticipant extends Participant {
227
350
  constructor(owned_info) {
@@ -1 +1 @@
1
- {"version":3,"file":"participant.js","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"participant.js","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"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"}